Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Aidez moi svp...
Aidez moi svp...
Par black wizard le 4/2/2003 à 15:01:59 (#3168957)
///////////////////////////////////////
///////////////////////////////////////
//cree par un nul qui y connait rien///
//malgre la lecture des tutoriaux//////
//mais qui est motive pour apprendre///
///////////////////////////////////////
///////////////////////////////////////
void main()
{
//script de merde qui marche pas
//Le keum est cense partir de l'endroit ou il est mais il veut pas
ActionMoveToObject(chest1 oMoveTo,bRun=FALSE,fRange=1.0f);
}
//reponse du PC : ERREUR : UNDEFINED IDENTIFIER (chest1)
//pourtant ya bien un objet chest1
MAIS QU'EST CE QUI VA PAS ??!!
j'en ai marre ! S'il vous plait, envoyer moi un script correct ! Et j'aimerais également que mon pnj resserve pour apres. C'est à dire qu'il parte avec le script et que je le retrouve plus loin mais avec une autre conversation et je ne sais pas le faire ( à vrai dire, je sais pas faire grand chose ! )
J'espere que vous allez m'aider et je vous remercie deja !!
PS : une autre question qui à rien à voir : _ que signifie le grade en dessous du nom sur le site ( roi, comte etc ..... ) ? merci
Par eMRaistlin le 4/2/2003 à 15:25:58 (#3169116)
Plus serieusement, ton script, tu l'as copier/coller tel quel ?
Si oui, ca ne m'etonne pas que cela ne marche pas :/*cree par un nul qui y connait rien
malgre la lecture des tutoriaux
mais qui est motive pour apprendre
*/
/*Il a bien raison, en tout cas*/
void main()
{
//script de merde qui marche pas
//Le keum est cense partir de l'endroit ou il est mais il veut pas
ActionMoveToObject(GetObjectByTag("chest1"));
}
//reponse du PC : ERREUR : UNDEFINED IDENTIFIER (chest1)
//pourtant ya bien un objet chest1
Le truc, c'est que l'objet existe dans le jeu, mais le script, lui, ne regarde pas le jeu (enfin, pas avant qu'il soit execute par le jeu)
Donc, tu doit lui preparer le chemin, lui apprendre ce qu'il doit trouver.
En gros : "declarer" toutes tes variables avant des les utiliser :
si tu met :void main(){
ActionMoveToObject(oObjet1);
}
tu lui demande de faire une fonction (en fait, il faut voir les fonction (CreateObject/ActionMoveTo...etc...) comme des opérateurs (multiplication / division) : ils sont directement defini dans le jeu... tu as pas besoin de les redefinir.
Ensuite, tu lui demande d'appliquer cette fonction sur oObjet1.
Tres bien, mais oObjet1, c'est quoi ? Un chiffre ? Un objet qui s'appele (avec le nom) comme ca ? ou alors un objet dont c'est le Tag ? ou encore meme le nom du module ?
Le programme a besoin de savoir ou il doit aller chercher cet oObjet1...
Un peu comme si tu lui disais : multiplie un chiffre...
void main(){
object oObjet1;
ActionMoveToObject(oObjet1);
}
La, le script va marcher : tu declare que oObjet est un objet quelquonque. Ensuite, tu dis que tu va appliquer l'action a un objet : le moteur du jeu est content : ce coup ci, tu lui dit quelque chose qu'il comprends : comme si tu lui disais : multiplie un chiffre par un autre
Probleme : en jeu, ce script ne fera rien, pourtant, il est bon. Pourquoi ? parceque tu n'as defini oObjet1 que pour le script. (ca devient tordu, non ? :D)
Voila la fin :
void main(){
object oObjet1 = GetObjectByTag("object1");
ActionMoveToObject(oObjet1);
}
La, tu lui dit de rechercher l'objet quelconque qui porte le Tag "object1", et de faire bouger le porteur dui script vers cet objet.
Tu as donc bien un script complet.
A noter que l'étape 2 est la plus importante : TOUJOURS DECLARER UNE VARIABLE !
(en specifiant au script ce qu'il doit attendre : object / int / float / string / effect ...etc...etc)
Ok ?
Hope this'll help
PS : que les puriostes m'excusent pour les exemple, c'est juste a titre d'illustration... aussi laid soient ces exemples...
(pense aux balises PHP, c'est plus agreable a corriger ^^)
Thanks
Par black wizard le 4/2/2003 à 15:34:47 (#3169192)
2.A nouveau merci pour les infos, je testerai ce soir mais tout cela me semble assez clair !
3.je n'est pas le temps d'écrire plus car je doit allez bosser mais je te remercie beaucoup et je réecrirai pour surement te demander autre chose.
BYE
JOL Archives 1.0.1
@ JOL / JeuxOnLine