La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 27/11/2024 00:09:42
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Soros Acolyte Messages: 28 |
Bonsoir, j'ai trouvé ce script sur le forum en cherchant:
NWScript :
////////////////////////////// ////////////////////////////// //////////// void main() { object oPC = GetPCLevellingUp(); int nXP; int nLv = GetHitDice(oPC); object oPass = GetItemPossessedBy(oPC, "PasseNiveau");//tag du pass dans le blue print // pour autre passage remplacer ou ajouter des nLv if(nLv == 10 || nLv == 15 || nLv == 18 || nLv == 20 || nLv == 23 || nLv == 25 || nLv == 27 || nLv == 30 || nLv == 33 || nLv == 35 || nLv == 37) { if(GetIsObjectValid(oPass)) { SendMessageToPC(oPC, "Vous avez eu l'accord de {MD} pour monter de niveau." ); DestroyObject(oPass); } else { SendMessageToPC(oPC, "Vous ne pouvez passer au niveau " + IntToString(nLv) + " sans l'autorisation d'un MJ." ); nXP = (( nLv * ( nLv - 1 )) / 2 * 1000 ) - 1; SetXP(oPC, nXP); } { } } } ////////////////////////////// ////////////////////////////// //////////// donc voila, je voudrais savoir comment il fonctionne.Comment je dois proceder pour faire les bon lvl.. etc.. Je vous en remercie d'avance. Amicalement,Soros. |
Revenir en haut | |
Seth de Sombrelune Seigneur Messages: 156 |
J'ai mis ton script en balise NWN, c'est plus lisible.
Ensuite à chaque étape, j'ai commenter les actions de la programation Pour choisir les lv, ben tu change la valeur des nLv dans la condition "if" NWScript : ////////////////////////////// ////////////////////////////// //////////// void main() { object oPC = GetPCLevellingUp(); int nXP; // recupration de son nombre d'xp int nLv = GetHitDice(oPC); // recuperation de son level object oPass = GetItemPossessedBy(oPC, "PasseNiveau");//tag de l'item qui permet de valider les levels //on recherche dans l'inventaire du PJ un objet ayant le tag definit, cet objet est donner par un md // pour autre passage remplacer ou ajouter des nLv if(nLv == 10 || nLv == 15 || nLv == 18 || nLv == 20 || nLv == 23 || nLv == 25 || nLv == 27 || nLv == 30 || nLv == 33 || nLv == 35 || nLv == 37)// pour chaque valeur de lv, on verifie que le PJ a recus l'item de passage de niveau { if(GetIsObjectValid(oPass))//le pj a bien dans son inventaire l'item rechercher { SendMessageToPC(oPC, "Vous avez eu l'accord de {MD} pour monter de niveau." );//on envois un message au joueur pour lui confirmer le passage de level DestroyObject(oPass);// on detruit l'item de passage de level } else // donc ici le pj n'a pas son item de passage des levels { SendMessageToPC(oPC, "Vous ne pouvez passer au niveau " + IntToString(nLv) + " sans l'autorisation d'un MJ." );// on invite subtilement le joueur a contacter un md pour valider son level nXP = (( nLv * ( nLv - 1 )) / 2 * 1000 ) - 1; // calcule du nombre de xp pour le level non valide moins 1 SetXP(oPC, nXP);// on ramene le pj au level infrieur } } } ////////////////////////////// ////////////////////////////// //////////// |
Revenir en haut | |
Soros Acolyte Messages: 28 |
Merci beaucoup j'ai tout capté d'un coup!
|
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
A propos de cette phrase :
NWScript :
nXP = (( nLv * ( nLv - 1 )) / 2 * 1000 ) - 1; Je n'ai jamais compris comme sa marche : Par exemple le joueur est level 10 donc on doit faire ce calcule : = ((10*(10-1))/2*1000)-1 = ((10*(9))/2*1000)-1 = (90 / 2*1000)-1 = (90/2000)-1 = "je ne vais pas m'embete " -1 Bon c'est gentil sa mais je comprend pas du tout ce systeme... Pourquoi ne pas directement faire Level-1 ?? |
Revenir en haut | |
Ailesnoires Grand Chevalier Messages: 110 Localisation: Vendée |
il me semble que tu te trompe sur la fin
= ((10*(10-1))/2*1000)-1 = ((10*(9))/2*1000)-1 = (90 / 2*1000)-1 ======> (45*1000)-1=44999 pour les divisions et multiplications c'est dans l'ordre = (90/2000)-1=pas beaucoup |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
ah !
|
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Salut je voudrais savoir si se script la permet de garder tes exp que tu as gagner si tu monte de lvl ou s'il va te mettre au exp de ton prochaine lvl example!
Bob était bloquer au lvl 10 mais il a continuer a combattre puis a eu bcp d'exp! La il a eu sa pass de niveau car il a enfin fait du santa barbara ! Alors il monte lvl 11. C'est exp sont tu remis fix pour le lvl 11 ou il garde encore ses exp qu'il a gagner et aura seulement besoin d'un autre pass de niveau pour monté ?!?!?! Car j'aimerais qu'il garde ses EXP Ensuite se script la on le met ou ?!?! Voila merci! |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Heu il garde pas ses XPs, la ça donne pile assez pour avoir un level.
Si tu veux que il regagne ces XP, avant de faire le code, tu fais une tite fonction qui regarde ses XPs : int iXP = GetXP(oPC); Cette fonction est a mettre avant d'enlever. Ensuite tu utilise iXP pour donner l'xp qu'il avait AVANT. BK _________________ [http] |
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Oki Merci!
|
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Étant plutot débutant en script et ne désirant ne pas tout brisé!! J'aimerais savoir ou que je dois mettre le script des palliers a lvl dans le OnPlayerLvlUp du module du script suivant Merci grandement!
NWScript : /*
Put into: OnLevelup Event */ //:///////////////////////// //////////////////// //:: Created By: Stratovarius and DarkGod //:: Created On: 2003-07-16 //:///////////////////////// //////////////////// //Added hook into EvalPRCFeats event // Aaon Graywolf - Jan 6, 2004 //Added delay to EvalPRCFeats event to allow module setup to take priority // Aaon Graywolf - Jan 6, 2004 #include "prc_alterations" #include "prc_inc_domain" #include "inc_utility" void PrcFeats(object oPC) { EvalPRCFeats(oPC); if (GetLevelByClass(CLASS_TYPE_WEREWOLF, oPC) > 0) { ExecuteScript("prc_wwunpoly", oPC); } } void main() { object oPC = GetPCLevellingUp(); //if(DEBUG) DoDebug("prc_levelup running for '" + GetName(oPC) + "'"); object oSkin = GetPCSkin(oPC); ScrubPCSkin(oPC, oSkin); DeletePRCLocalInts(oSkin); // Gives people the proper spells from their bonus domains // This should run before EvalPRCFeats, because it sets a variable CheckBonusDomains(oPC); //All of the PRC feats have been hooked into EvalPRCFeats //The code is pretty similar, but much more modular, concise //And easy to maintain. // - Aaon Graywolf DelayCommand(0.1, PrcFeats(oPC)); // Check to see which special prc requirements (i.e. those that can't be done) // through the .2da's, the newly leveled up player meets. DelayCommand(0.5, ExecuteScript("prc_prereq", oPC)); // Delayed so that deleveling gets to happen before it. ExecuteScript("prc_enforce_feat", oPC); ExecuteScript("prc_enforce_psi", oPC); //Restore Power Points for Psionics ExecuteScript("prc_psi_ppoints", oPC); DelayCommand(1.0, FeatSpecialUsePerDay(oPC)); // These scripts fire events that should only happen on levelup ExecuteScript("prc_vassal_treas", oPC); // Execute scripts hooked to this event for the player triggering it ExecuteAllScriptsHookedToEvent(oPC, EVENT_ONPLAYERLEVELUP); } |
Revenir en haut | |
Flumby Chevalier Messages: 71 |
Citation : Put into: OnLevelup Event Oui tu le mets dans l'evénement onLevelUp_________________ Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel Preuve => http: |
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Mais je voulais surtout savoir si j'instaure se script intégral a la suite ? ou je dois modifier pour l'ajouter ?
|
Revenir en haut | |
Flumby Chevalier Messages: 71 |
je pense que tu peux le mettre a la suite, mise a part la ligne object oPC = GetPCLevellingUp();
je ne pense pas que tu es des variables avec le meme nom ou une fonction void PrcFeats(object oPC) déja existante. Par contre il te faut les 3 bibliotheques et tous les script qui sont demandé a etre éxécuté pour que ca fasse ce que c'est prevu pour faire. _________________ Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel Preuve => http: |
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Citation : Par contre il te faut les 3 bibliotheques et tous les script qui sont demandé a etre éxécuté pour que ca fasse ce que c'est prevu pour faire. La ma t'avouer que je suis completement perdu!! |
Revenir en haut | |
Flumby Chevalier Messages: 71 |
Il te faut les fichiers bibliotheque (les 3 includes) :
prc_alterations prc_inc_domain inc_utility Et les fichiers scripts suivant (toutes les lignes executescript) prc_wwunpoly prc_enforce_feat prc_enforce_psi prc_psi_ppoints prc_vassal_treas Tu dois les avoir la ou tu as récupérer ce script. _________________ Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel Preuve => http: |
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
oki tnx!
|
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum