Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Aidez moi svp...

Par black wizard le 4/2/2003 à 15:01:59 (#3168957)

Dans quoi me suis-je lancé ?? Je vous le demande ! La création d' un module avec Aurora est une chose très interessante mais j'avoue que je regrette d'avoir commencé depuis que j'ai fini mes zones, mes transition etc... Car il me faut à présent écrire des scripts, chose qui parait évidente à la majorité des personnes sur le site mais qui pour moi semble une chose insurmontable. J'ai lu tous les tutoriaux et autres aides ( en tout à peu près 100 pages) mais je ne suis pas pour autant avancé car je ne sais pas faire les trucs de base. C'est pourquoi je demande à un où plusieurs d'entre vous de me dire comment je pourrai faire pour faire partir mon pnj à la fin de la conversation ! Ca parait bête mais j'ai tout essayé et je n'y arrive pas. J'ai éditer mon dialogue et à la fin d'une réplique j'ai fait action conséquente et j'ai tapé ça :

///////////////////////////////////////
///////////////////////////////////////
//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)

Le titre signifie ta puissance de spam...:p plus haut c'est, et plus tu peut être sur que c'est un spammer en face :)


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)

1.Merci pour l'info mais j'ai peur de ne pas comprendre ce qu'est un spam
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