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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

créer une fonction

Par Dzib le 15/7/2002 à 0:59:57 (#1806127)

C'est possible de créer une fonction (où faut il le faire?) qui sera appelée, en utilisant juste le nom de la fonction avec les paramètres, lors de différents choix de dialogues???
J'explique: je crée la fonction "BoireVerre(x,y,z)" (où?) et lorsque le PJ chosit l'option "A" ds un dialogue, la fonction "BoireVerre" est appelée avec certains paramères. Lorsque le PJ chosit l'option "B" ds un dialogue, la fonction "BoireVerre" est appelée avec d'autres paramères, etc.....

Par Kray le 15/7/2002 à 1:12:55 (#1806171)

Tout à fait, oui :)

Tu dois créer un fichier NWScript que tu nomeras par exemple "fonctions". Ensuite, tu appellera ce fichier de fonctions via la commande #include "fonctions" dans tes autres scripts.

Par Dzib le 15/7/2002 à 1:41:19 (#1806248)

merci bcp! :merci:

heu.... et la syntaxe pour la créer, c'est comment?

void (si aucune valeur retournée) trucmachinbrol(x,y,z)
{
void main()
{
blablabla
}
}

???

Par Kray le 15/7/2002 à 1:53:05 (#1806277)

Non, c'est :

void MaFonction(int MonParametre)
{
//Ici les actions de ta fonction avec ton ou tes paramètres
}

Par Dzib le 16/7/2002 à 7:22:50 (#1811632)

qq1 peut m'expliquer clairement (ou me dire où je peux trouver de l'info sur le sujet) la syntaxe exacte pour la déclaration de la fonction (je dois déclarer des paramètres avant?) et pour l'appel de la fonction?
Merci.

Par Gargantuel le 16/7/2002 à 9:54:55 (#1811985)

Petit exemple:
Créons une commande qui envoit un message au joueur le plus proche et servons en nous dans un script normal :


// Déclaration de la fonction
void SendToNearestPC(string sMessage)
{
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
if (GetIsPC(oPC))
SendMessageToPC(oPC, sMessage);
}

// Script "normal"
void main()
{
// on utilise notre nouvelle fonction
SendToNearestPC("Il semble que quelque chose vous attire");
}

Il y a plus propre comme méthode pour déclarer des fonctions mais celle ci est à mon humble avis la plus simple.

Par Dzib le 16/7/2002 à 15:24:42 (#1813538)

merci :merci:

Par Dzib le 17/7/2002 à 12:49:45 (#1818208)

Voilà l'appel de ma fonction:

#include "func_dzibdrink"
void main()
{
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
DzibDrink(5,2,2,2,0);
}

a la compilation, il me dit "DUPLICATE FUNCTION IMPLEMENTATION"......????

OK OK, cé bon j'ai trouvé mais y a des probs lors de la compilation de la fonction
NO FUNCTION STARTINGCONDITIONAL() IN SCRIPT!!!
mais apparamment, cé pas grave, ça compile qd même

Par Amaranthe le 17/7/2002 à 13:06:02 (#1818287)

Pourrais tu nous mettre le contenu de ton include...
Et l'appel de ta fonction...
Afin qu'on te dise ce qui pourrait eventuellement clocher...

Amaranthe.

Par Kray le 17/7/2002 à 13:11:06 (#1818311)

Il ne faut pas de main() dans ton include, sinon tu as deux fois la même fonction.

Ensuite, je ne saurais que te conseiller d'utiliser des pseudo-constantes que tu déclareras dans ton include et que tu utiliseras dans l'appel de ta fonction à la place de ces 2,2,2,5,0 qui ne veulent strictement rien dire pour quelqu'un qui observerait ton script.

JOL Archives 1.0.1
@ JOL / JeuxOnLine