| | [Les bases] Scripting de NPC. | |
| | Auteur | Message |
---|
Dark Templar Administrateur
Nombre de messages : 96 Date d'inscription : 24/07/2005
| Sujet: [Les bases] Scripting de NPC. Jeu 11 Aoû à 21:24 | |
| Pour bien commencer: Dans un premier temps, il faut definir la localisation de la map et definir le look qu'aura le NPC ainsi que son emplacement. Pour cela, on utilisera le script: 1) Création d'un NPC - Code:
-
<nommap.gat>,<x>,<y>,<dir> script <nomNPC> <sprite n°>,{
<nommap.gat> /represente le nom de la map ex:pront_field8.gat <x> et <y> /represente la position du NPC dans l'espace carte que vous pouvez trouver en tapant la ligne "/where" dans le jeu (ça vous donne le nom de la map ainsi que la position où vous vous situez actuellement) <dir> /represente la direction où le NPC fixe son regard le regard du NPC sera defini par ces N°: [1][8][7] [2][0][6] / 8 étant le nord. [3][4][5] Les N° sont visibles à cette url : N° NPC => Contacter un Admin pour avoir le lien.script <nomNPC> /represente le choix que vous ferez pour le nom du NPC <sprite n°> /represente le N° du NPC, donc son look final. Voilà, le NPC est créé. N'oubliez surtout pas le " {" car c'est lui qui va indiquer le début du script. Exemple type : - Code:
-
prt_monk.gat,250,255,4 script Mili 101,{ Maintenant il faut lui donner quelque chose à faire. PS Important : Les séparations entre *prt_monk.gat,250,255,4* *Script* *Mili* et *101,{* ne sont pas des espaces, mais des sauts de tabulation (touche Tab), le nom du NPC peut contenir des espaces.
Dernière édition par le Mer 17 Aoû à 23:55, édité 2 fois | |
| | | Dark Templar Administrateur
Nombre de messages : 96 Date d'inscription : 24/07/2005
| Sujet: Re: [Les bases] Scripting de NPC. Ven 12 Aoû à 1:50 | |
| 2) La base de la Communication - Code:
-
<nommap.gat>,<x>,<y>,<dir> script <nomNPC> <sprite n°>,{
mes "[nomNPC]"; mes "Dialogues"; Close; }
ou - Code:
-
<nommap.gat>,<x>,<y>,<dir> script <nomNPC> <sprite n°>,{
mes "[^3366FFnomNPC^000000]"; mes "Salut, je suis là pour apprendre le scripting"; menu "Oui, je veux apprendre",OUI,"Non merci",NON; Close;
OUI: mes "[^3366FFnomNPC^000000]"; mes "Bienvenu(e) dans la classe."; next; mes "Installez-vous ..."; goto FIN;
NON: mes "[^3366FFnomNPC^000000]"; mes "Ce n'est pas grave, repasse la prochaine fois."; goto FIN;
FIN: mes "il est tard"; Close; }
mes /est la fonction qui va afficher le dialogue. " " /les guillemets, sont début et la fin d'un texte. Tant que le guillemet n'est pas fermé par rapport au 1er, le texte continu. Le Client fera le retour à la ligne automatiquement. ; /va indiquer la fin d'une commande Close /va permettre au joueur de fermer la boite de dialogue ^3366FFDIALOGUE^000000 /tous ce qui commence par " ^" indique que la suite sera une couleur dont le code est en hexadecimal. la 1ere couleur avant le dialogue est appliquée à celui-ci, alors que la 2nde couleur elle, ne s'applique qu'à la suite du dialogue. Pensez donc à revenir à la couleur de départ sous peine de voir tout le dialogue d'une couleur. exemple: - Citation :
- script ecrit:
mes "[^3366FFnomNPC^000000] mes "Salut"
Résultat In-game: [nomNPC] Salut Le code des couleurs peut-être trouvé à cette adresse:Code de couleurs => Contacter un Admin pour avoir le lien.exemple de choix multiple: menu "Oui, je veux apprendre", OUI,"Non merci", NON; Ici une fenêtre apparaîtra laissant 2 choix au joueur : - Citation :
- Oui, je veux apprendre
Non merci Si le joueur sélectionne *Non merci*, le script ira au label * NON* et suivra les directive que celui-ci donne, si il avais choisi *Oui, je veux apprendre*, le script se serait dirigé vers * OUI*. Coté Technique: OUI: /il s'agit d'un label, une marque dans le script goto "label" /dirige vers un label next /represente un changement de page Quand on continu d'exploiter les multi-choix, très souvent, la boite de dialogue est vite saturé. C'est pourquoi l'emploi de la fonction " next" va aérer celle-ci (la boite de dialogue) en effaçant l'ancienne pour en créer une nouvelle. } /represente la fin du script Petit tips : lors de la rédaction d'un NPC, il est préférable d'ecrire les labels en majuscule, le script en sera bien plus lisible.
Dernière édition par le Mer 17 Aoû à 23:56, édité 1 fois | |
| | | Beld Administrateur
Nombre de messages : 136 Localisation : Le plus souvent sur un siége Date d'inscription : 15/06/2005
| Sujet: Re: [Les bases] Scripting de NPC. Ven 12 Aoû à 17:22 | |
| Hop maitenant vous avez assimilé toute les donné superieur, on va passé a des exemples concret de NPC, commençon doucement avec Julia, elle va instauré quelque notion plus avancé, tout en restant simple. I/Un personnage simpleLa petite Julia qui aime soigné les gens. - Citation :
prontera.gat,150,184,5 script Julia::Julia 778,{ mes "[Julia]"; mes "Euh bonjour..."; mes "Vouler vous de l'aide ?"; mes "Je suis diplomer en medecine... Je veux aider les gens."; next; menu "Peux tu me soigner ?",HEAL,"Non je vais bien",NON;
HEAL: heal 50000,50000; mes "J'espere vous avoir été utile."; close;
NON: mes "J'en suis heureuse."; close;
} morocc.gat,159,96,5 duplicate(Julia) Julia 778 geffen.gat,121,61,5 duplicate(Julia) Julia 778 payon.gat,83,115,5 duplicate(Julia) Julia 778
La 1er ligne ne devrait plus avoir de secret pour vous : - Citation :
- prontera.gat,150,184,5 script Julia::Julia 778,{
Petit rappel vite fait :prontera.gat = Carte sur lequelle se trouvera le NPC 150,184,5 = Coordonné X/Y du NPC sur cette carte, le 3ém chiffre montre l'orientation du NPC. script = commande indiquan qu'il s'agit d'un Script Julia::Julia = Petite nouveauté ici, il s'agit bien du nom du NPC, et il est doublé entre deux *:*, cela a un but, le 1er nom sera le nom *server* du NPC, le deuxieme le nom affiché au joueur. (alors que normalement les 2 se confonde, vous verrez plus bas a quoi cela sert exactement). 778 = Sprite utilisé pour representé le NPC { = indique le debut du script Exemple et resulat : - Citation :
- mes "[Julia]";
mes "Euh bonjour..."; mes "Vouler vous de l'aide ?"; mes "Je suis diplomer en medecine... Je veux aider les gens."; next; menu "Peux tu me soigner ?",HEAL,"Non je vais bien",NON; (screen du résultat ici) Ensuite le menu : - Citation :
- menu "Peux tu me soigner ?",HEAL,"Non je vais bien",NON;
HEAL: heal 50000,50000; mes "J'espere vous avoir été utile."; close;
NON: mes "J'en suis heureuse."; close; Encore un rappel :"Peux tu me soigner ?",HEAL = Si le joueur choisi de repondre cela au NPC, le script va exécuté les commande situé dans HEAL "Non je vais bien",NON = Si le joueur choisi de repondre cela au NPC, le script va exécuté les commande situé dans NON Rien de bien compliké en somme ^^ (screen : ici) Voyon voir ce ki se passe si le joueur repond "Peux tu me soigner ?" : - Citation :
- L_HEAL:
heal 50000,50000; mes "J'espere vous avoir été utile."; close; Une commande qu'il vous ai inconnue : heal 50000,50000; = Redonne 50000 Hp et 50000 Sp au joueur. (prochainement : une liste des commandes les plus fréquente) Me voila totalement soigné : iciDuplication de NPC : - Citation :
- morocc.gat,159,96,5 duplicate(Julia) Julia 778
geffen.gat,121,61,5 duplicate(Julia) Julia 778 payon.gat,83,115,5 duplicate(Julia) Mina 776 Cette simple commande sert a dupliké le NPC au different endroit, le nom entre parenthese etant celui du NPC ke vous voulé dupliké (nom server), et celui ensuite le nom du NPC dupliqué, 778 etant tjr le sprite le representant, vous pouvez donc crée un NPC ayant les même fonction, mais avec un nom et un sprite different. | |
| | | Contenu sponsorisé
| Sujet: Re: [Les bases] Scripting de NPC. | |
| |
| | | | [Les bases] Scripting de NPC. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |