Beld Administrateur
Nombre de messages : 136 Localisation : Le plus souvent sur un siége Date d'inscription : 15/06/2005
| Sujet: [Les variable] Scripting de NPC. Ven 12 Aoû à 17:45 | |
| -/ attention, la, sa commence a ne plus etre simple \-Inclure une variable, et une fonction sur un personnageSans doute la fonction la plus importante pour le RP. - Citation :
tur_dun04.gat,99,111,5 script Tortue Génial 737,{ // vérif des variables (normal et personnel)// if (BaseLevel < 60) goto L1; if ((BaseLevel < 70) && (tortueG == 0)) goto L2; if ((BaseLevel >= 70) && (tortueG == 0)) goto L3;
// déjà donné // mes "[Tortue Génial]"; mes "Je t'ai déjà aidé dans ta quête, ne m'en demande pas trop !"; close;
// trop faible // L1: mes "[Tortue Génial]"; mes "Tu es trop faible pour suivre" mes "mon entrainement." next; mes "Repart d'ou tu viens." close;
// lvlup // L2: mes "[Tortue Génial]"; mes "Tu es un courageux de venir jusqu'ici."; next; mes "Voila une recompense meritée, maintenant va-t-en."; next; set BaseLevel, BaseLevel + 1; set tortueG, 1; close;
// déjà lvl 70 // L3: mes "[Tortue Génial]"; mes "Tu es déjà très puissant," mes "je ne peux rien faire de plus." next; mes "Repart d'ou tu viens." close;
} Le vif du sujet : Les Variables. - Citation :
if (BaseLevel < 60) goto L1; if ((BaseLevel < 70) && (tortueG == 0)) goto L2; if ((BaseLevel >= 70) && (tortueG == 0)) goto L3;
A ce niveaux, le script va verifier kel est le base level du joueur, si le joueur est inferieur au lvl 60, le script se referencera au label *L1*, si inferieur au lvl 70, ai label *L2* et si lvl est egal ou superieur a 70, au label *L3*, tout cela grace a une nouvelle commande * if*. Remarque : Le programme li les script ligne par ligne, c'est pour cela k'il n'y a pas de conflit entre les ligne *if(BaseLevel < 60)* et *if(BaseLevel < 70)*, en ce ki concerne le *&& (tortueG == 0)) *, nous verrons sa dans peu de temps. Par contre, si la ligne *if (BaseLevel < 70)* etait avant *if(BaseLevel < 60)*, le script ne marcherai pas ! On va dire ke le personnage en question est lvl 65, observont donc ce ki se passe dans ce cas la : - Citation :
- L2:
mes "[Tortue Génial]"; mes "Tu es un courageux de venir jusqu'ici."; next; mes "Voila une recompense meritée, maintenant va-t-en."; next; set BaseLevel, BaseLevel + 1; set tortueG, 1; close;
Observons la nouvelle commande *set*, elle sert a definir les variables du joueur, la ligne *set BaseLevel, BaseLevel + 1;* pourrait etre traduite par *Definir le level du joueur ,level du joueur +1* (baselevel etant la variable fixe de lvl base du joueur) donc si vous avez bien comprit, vous venez de gagné un lvl de base, rien de compliké, maintenant passon au chose serieuse : - Citation :
- set tortueG, 1;
tortueG n'est pas une variable commune a tout les personnage, elle va se crée dans le personnage au moment ou vous parler pour la 1er foi a tortue génial. Le chiffre 1 situé juste aprés, définie ke cette variable sera definie par le chiffre 1. C'est bien bô tout ça, vous allez me dire, mais a koi sa sert ? Et bien revenon au depart : - Citation :
- if((BaseLevel < 70) && (tortueG == 0)) goto L2;
Si une variable n'existe pas sur un personnage elle est definie par 0 par défaut, donc a ce moment du script, pour k'il se passe L2, il faut ke le lvl sois inferieur a 70, et ke la variable *tortueG* sois egal a 0, hors maintenant ke notre personnage a parler a Tortue Génial ce n'est pu la cas, ke se passe t'il donc ? Et bien tout simplement le script continue sa route et tombe sur : - Citation :
- mes "[Tortue Génial]";
mes "Je t'ai déjà aidé dans ta quête, ne m'en demande pas trop !"; close;
Paf, et cela a chaque foi derenavant. Remarque Importante : Les variables personnages sont tjr actif auprés de tout les NPC, en gros un NPC vous donne une variable qui pourra agir sur d'autre NPC, les possibilité ke cela donne son enorme. Listing des variable commune a tout les personnages : - Citation :
- Baselevel
Joblevel Sex Zeny Class Type de variable personnalisé : - Citation :
- Variables permanentes:
VariableName = Variable numérique permanente, stoquée dans le fichier du personnage.
VariableName$ = Variable permanente ("char string"), stoquée dans le fichier du personnage.
$VariableName = Variable globale numérique, stoquée dans les fichier du serveur
$VariableName$ = Variable globale ("char string"), stoquée dans les fichiers du serveur.
#VariableName = Variable numérique permanente du compte, stoquée dans le fichier du compte.
#VariableName$ = idem sauf que variable "char string"
Variables temporaires:
@VariableName = Variable numérique temporaire stoquée dans le script et détruite à la fin du script.
@VariableName$ = idem sauf que variable "char string"
$@VariableName = Variable temporaire numérique globale, stoquée dans le serveur et détruite quand le serveur redémarre.
$@VariableName$ = idem sauf que variable "char string"
"char string" est pour les variables avec du texte. Ces variables la ne sont pas très stables car il suffit de changer de perso avant la fin du script pour qu'elles restent. #@VariableName #@Variablename | |
|