il faut un petit script dans ce style, tu le met dans l'onglet action consequente.
imagine que tu veuilles donner 100 pts d'experience a ton joueur.
void main()
{
// qui est celui qui va recevoir les points
object me = GetFirstPC();
// la fonction de base
GiveXPToCreature(me,100);
}
une version plus courte
void main()
{
// la fonction de base
GiveXPToCreature(GetFirstPC(),100);
}
le joueur recevra bien 100 pts ni plus ni moins
je prefere ka premiere version plus lisible
les simbole // sont des commentaires, le compilateur ne tiens pas compte de ce qu'il y a d'ecrit derriere
TOUJOURS mettre des commentaires dans ses scripts, il est plus facile plus tard de retrouver ce qu'on a voulut faire.
maintenant si tu desires tenir compte du niveau du joueur et d'un tas d'autre parametres, de son alignement, de sa cote d'amour (je plaisante)
il existe une autre methode.
avec l'editeur de script tu ouvres le fichier "nw_io_plot"
ce n'est pas un sccript mais une ressource qui contient un certain nombre de fonction, pour utiliser ces fonctions il faut ecrire un script de cette facon.
// script bidon
# include "nw_io_plot"
void main()
{
RewardXP("quete_bidon, 50, GetFirstPC(),ALIGNMENT_GOOD,TRUE)
}
rewardxp est un fonction qui prmet de donner les points d'xp a la fin d'une quete.
quete_bidon est le tag de la quete que tu trouve dans le menu outils/editeur de journal
50 est le pourcentage de point de base (qui se trouve dans la quete)
GetFirstPC(), c'est ton personnage
alignment et compagnie est l'alignement neutre bon ou mauvais du joueur.
true je n'en ai pas la moindre idee, je n'ai pas creusee la chose, je me suis fait ma propre fonction avec mes propres parametres.
comment ca fonctionne.
pas comme dans un programme classique mais comme en c ou c++, il n'y a pas appel de la fonction.
quand tu vas sauvergarder ton script, le compilateur va enregistrer la ligne #include et savoir que tu va faire reference a une fonction de cette ressource, il va donc la recuperer et l'integrer automatiquement a ton script puis compiler le tout et seul la fontion que tu as inclus dans ton script sera compile, pas la ressource.
rien ne t'empeche de creer ta propre ressource toi meme avec tes fonctions respecte bien le principe.
declarer d'abord la fonction au debut (en fait n'importe ou mais toujours avant l'ecriture de la fonction.
un exemple.
// ressource bidon
// nom = bidon_de_lait
// pour donner de points en fonction du niveai du personnage.
// nombre_de_points = nombre de points de base
// perso = le personnage a qui donner les points
// niveau = niveau du personnage
// pourcentage = pourcentage de ses points
void donner_xp ( object perso, int nombre_de_points, int niveau, int pourcentage);
//
//
//la fonction.
void donner_xp ( object perso, int nombre_de_points, int niveau, int pourcentage)
{
int total = (nombre_de_points * niveau * pourcentage)/100;
GiveXPToCreature (perso,total);
}
c'est une toute petite ressource.
le script qui va maintenant utiliser la fonction.
j'imaginearais que ton perso est un guerrier, pour obtenir le niveau c'est plus complique que ça, il faut tester chaque classe et ajouter les levels obtenu.
// nom du script = attribuerxp
#include "bidon_de_lait"
void main ()
{
// le personnage a qui donner les points
object me = GetFirstPC();
// le niveau de ce meme personnage
int level = GetLevelByClass(CLASS_TYPE_FIGHTER,me);
// on donne les points
donner_xp(me, 200, level, 60);
}
dans ce cas je donne 200 pts avec un pourcentage de 60 pour 100
donc 120 pts de base, si le perso a un niveau de 10 cela fera 1200 pts. c'est une bonne base de depart.
attention je ne suis pas certain que ce script fonctionne bien, en effet je divise par cent des valeur entiere ce qui peut donner une valeur flottante(virgule), il y a des tas de trucs a verifier ou utiliser une variable flottante a convertir en valeur entiere "FloatToInt(float valeur)".