Guide de création NPC pour débutant
Bonjour tout le monde, donc dans cette partie je vous explique comment créer un NPC assez simple à vous de vous améliorer par la suite ^^
P.S : Regarder d'autre NPC déjà terminé pour essayer de comprendre le langage, cela vous aidera à mieux comprendre et d'approfondir les connaissances.I.Présentation du NPC ( Facultatif)
D'abord ce chapitre vous montre comment commencer votre NPC, moi je vous propose une en-tête dans le script pour commencer la voici ci-dessous:
Hop Pop Pop, je vous rappelle que ceci n'est pas obligatoire, c'est juste pour lui donner un air plus Pro et surtout faire plus Classe xD.
Donc la Voici:
//===== eAthena Script =======================================
//=
Nom du Script ou du NPC//===== By: ==================================================
//=
Nom de l'auteur//===== Current Version: =====================================
//= 1.0 (
la version du script, le par défaut est 1.0 puis 2.0 etc ... )
//===== Compatible With: =====================================
//= eAthena SVN (
version compatible avec qu'elle version d'eAthena, sinon vous pouvez le laisser)
//===== Description: =========================================
//=
La description du NPC//===== Additional Comments: =================================
//= 1.0
Un commentaire sur la version ( ex : fix bug ... )//============================================================
Voilà pour l'en-tête Universelle ^^
II.Position du NPC dans une map du jeu
Donc si vous avez mit l'en-tête vous pouvez sauter une ligne pour enfin taper votre premier "vers" du script de votre fameux NPC. La voici:
ville.gat,
X,Y,
#[tab]script
[tab]Nom Du Npc[tab]?,{
Alors l'explication est assez simple:
- Remplacez
ville par le nom de la ville ou vous voulez implanter le NPC.
- Remplacez
X,Y par les coordonnées de l'endroit où doit être situé le NPC ( taper /where dans le jeu pour connaitre sa coordonnée).
- Remplacez
# par la direction que le NPC soit dirigé:
1 = Nord
2 = Nord Est
3 = Est
4 = Sud Est
5 = Sud
6 = Sud Ouest
7 = Ouest
8 = Nord Ouest
La plus utilisé est la position 4.
- script est le type de NPC que vous creer, pour l'instant n'y toucher pas, ceci est pour un NPC comme les autres et il existe plusieur différents types de NPC ( par exemple: shop etc ... ).
- Remplacez
Nom Du Npc par comme indiqué, le nom de votre NPC.
- Remplacez le "
?" par le sprite du NPC, ceci est représenté par un chiffre que vous trouverez
ICI.
IMPORTANT : Les cases [tab] ne sont pas a écrire, vous devez les remplacer en tapant "tabulation" (le bouton des deux fleches, au dessus de la touche Verr.Maj).et pour finir voici un exemple de ce que vous devriez avoir...
prontera.gat,150,184,5 script Healer 742,{
III.Le message
Après avoir fait votre 1ere ligne, sauter une ligne et nous allons commencer a taper des messages pour que le NPC parle ^^
mes "[Healer]";
mes "J'ai d'excellents pouvoirs de soigneur!!";
mes "Vous ressemblez a une personne qui à besoin de mes services";
mes "Un peu?";
close;
}
Explication: "mes" signifie un message
} signifie la fin du script
; annonce une fin de ligne
Ils sont tous obligatoires !
Vous pouvez aussi ajouter un commentaire en haut ou en bas du script en ajoutant "//", il sépare le script du commentaire.
Si vous voulez plus de message vous n'avez qu'à rajouter mes "le messages";
et n'oublier surtout pas le close; a la fin sinon le script ne pourra pas se fermer.
IV.Le menu
Voici l'exemple rapide:
mes "[Healer]";
mes "J'ai d'excellents pouvoirs de soigneur!!";
mes "Vous ressemblez a une personne qui à besoin de mes services";
mes "Un peu?";
next;
menu "Heal",-,"Non merci",ANNULER;
percentheal 100,100;
mes "[Healer]";
mes "Magnifique, Vous êtes maintenant guerri!.";
mes "Bonne continuation et bon Jeu!!";
close;
ANNULER:
mes "[Healer]";
mes "Bien, revenez si vous avez besoin d'un heal.";
close;
}
Donc le principe est aussi essez simple, après le message ajouter next; pour faire changer de page puis vous avez la ligne menu :
menu "Heal",-,"Non merci",ANNULER;
menu signifie que vous rédigez un menu ou l'on peut choisir des options au choix, puis le 1er choix ( dans l'exemple : Heal ) séparé par ",-," qui signifie que quand le joueur selectionne cette option le NPC doit afficher le message qui suit juste apres cette ligne menu puis le 2eme choix ( "Non merci" ) est séparer par une virgule puis du message "ANNULER". Il s'agit d'indiquer au NPC d'aller vers qu'elle message à afficher si vous defiler plus bas vous verrait le paragraphe "ANNULER" qui sera le message a suivre pour "Non merci" et chaque fois il y a close; pour fermer le dialogue et tout a la fin le célèbre "}" pour fermer le script. AH oui, il y a aussi la commande que le NPC doit suivre si vous le reperez : percentheal 100,100; , il s'agit ici d'un heal de la personne à 100% ^^
VI.Les Commandes
announce message;
passe une annonce en jeu.
close;
fermer le script
delitem ID quantité;
supprime l'item d'un joueur
getitem ID quantité;
Donner un item
heal 800000,800000;
heal complet (800k hp/sp )
heal -800000,-800000;
L'inverse (Tuer le joueur xD).
percentheal 100,100;
Heal en pourcentage, ici, 100% hp et sp.
if(countitem(ID)<1) goto noitem;
(changer id et noitem) Verifie si l'item est présent en au moins une foie sur le joueur.
jobchange ID;
Change le job du joueur
monster "map.gat",X,Y,"Nom du monstre",ID,quantité;
invoque un monstre a l'endroit désiré
next;
actualiser une fenetre ou faire apparaitre le bouton "suivant"
resetskill;
reset skill
resetstatus;
reset stat
set SkillPoint,SkillPoint+#;
Rajoute des points de skill (remplacez # par le nombre de points)
set StatusPoint,StatusPoint+#;
Rajoute des points de stats(remplacez # par le nombre de points)
Si vous voulez enlever des points, remplacez le + par un -
warp "map.gat",X,Y;
teleporte le joueur
Vous en trouverez une liste bien plus complète sur le serveur svn :
http://72.36.236.18:8080/svn/ea/branches/stable/doc/script_commands.txt
Aussi pour plus de réalisme vou pouvez ajouter dans les dialogues le nom du joueur avec le message qui suit : mes "Salut " + strcharinfo(0) + "";
Bon une grosse partie de la création de NPC a était faite, moi suis fatiguer maintenant donc dodo ^^" *ronfle*...
Avec la demande de Loydea, je vais vous mettre une exemple de NPC tiré d'eAthena :
- Code:
-
//===== eAthena Script =======================================
//= Heal Npc
//===== By: ==================================================
//= Lotsa People (1.x)
//===== Current Version: =====================================
//= 3.0
//===== Compatible With: =====================================
//= eAthena 0.1+;
//===== Description: =========================================
//= Healer NPC Which Heals For Free
//===== Additional Comments: =================================
//= 3.0 By massdriller, Changed and edited the script
//= added other warp points of maps.
//= 2.0 By Darkchild, Duplicates And Changed A Bit
//= you can replace this script file by heal_payment.txt
//= if you want that players have to pay their healings.
//============================================================
prontera.gat,150,184,5 script Healer#h1-1::Healer 742,{
mes "[Healer]";
mes "J'ai d'excellents pouvoirs de soigneur!!";
mes "Vous ressemblez a une personne qui à besoin de mes services";
mes "Un peu?";
next;
menu "Heal",-,"Non merci",CANCEL;
percentheal 100,100;
mes "[Healer]";
mes "Magnifique, Vous êtes maintenant guerri!.";
mes "Bonne continuation et bon Jeu!!";
close;
CANCEL:
mes "[Healer]";
mes "Bien, revenez si vous avez besoin d'un heal.";
close;
}
morocc.gat,159,96,5 duplicate(Healer) Healer#h1-2 742
ayothaya.gat,155,111,5 duplicate(Healer) Healer#h1-3 742
geffen.gat,121,61,5 duplicate(Healer) Healer#h1-4 742
umbala.gat,94,162,5 duplicate(Healer) Healer#h1-5 742
payon.gat,180,105,5 duplicate(Healer) Healer#h1-6 742
alberta.gat,185,144,5 duplicate(Healer) Healer#h1-7 742
aldebaran.gat,134,123,5 duplicate(Healer) Healer#h1-8 742
izlude.gat,125,118,5 duplicate(Healer) Healer#h1-9 742
xmas.gat,149,136,5 duplicate(Healer) Healer#h1-10 742
comodo.gat,188,162,5 duplicate(Healer) Healer#h1-11 742
amatsu.gat,200,80,5 duplicate(Healer) Healer#h1-12 742
gonryun.gat,164,130,5 duplicate(Healer) Healer#h1-13 742
yuno.gat,152,186,5 duplicate(Healer) Healer#h1-14 742
niflheim.gat,188,180,5 duplicate(Healer) Healer#h1-15 742
louyang.gat,225,103,5 duplicate(Healer) Healer#h1-16 742
Et voilà !