
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 30/04/2025 23:00:27
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 |
Tuyen Demi-dieu ![]() Messages: 460 Localisation: Chez moi |
Bonjour, désolé pour le titre bizaroide, mais c'était ce qui me paraissait le plus pertinent à mon problème!
Je m'explique : Je voudrais que tous les trois niveaux, mon PJ change de peaux (pas la couleur de peau, mais bien un item de type 'peau de bête' que le PJ porte mais que le joueur qui le contrôle ne voit jamais dans l'inventaire) Ce type de bidouille permet d'attribuer des améliorations permanentes au PJ (ex: constitution +1, sauvegarde +2, etc...) J'arrive à le faire équiper de la première peau quand il commence la partie. Ca c'est OK. Mais ensuite je veux qu'au fur et à mesure qu'il gagne de l'expérience, il change son ancienne peau pour une autre. Pourquoi ne pas changer directement les propriétés de la peau me direz vous. Ben j'ai mes raisons (une histoire de transe mais j'entre pas dans les détails parce que c'est pas là que ca beugge et ca fait rien qu'embrouiller! lol!). Bref! En fait je voudrais changer le tag de la peau et rien de plus! Bon mon script marche une fois sur deux... c'est ce qui est le plus intriguant! lol! Je vous le poste : NWScript :
// sous fonction qui renvoie le niveau actuel du PC int LevelOfCreature (object oCreature) { int iLevel1 = GetLevelByPosition (1, oCreature); int iLevel2 = GetLevelByPosition (2, oCreature); int iLevel3 = GetLevelByPosition (3, oCreature); return (iLevel1 + iLevel2 + iLevel3); } void main() { object oPC = GetPCLevellingUp (); // tous les 3 niveaux, le PC change de peau if (LevelOfCreature(oPC)%3==0) { // variable qui nous indique quelle peau porte le PJ actuellement int iTranse = (GetLocalInt (oPC, "transe_niv")) + 1; // ancienne peau object oAncien = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC); // nouvelle peau object oNouveau = CreateItemOnObject ("transe_" + IntToString(iTranse), oPC, 1); // on recopie les proprietes de l'ancienne peau dans la nouvelle itemproperty itAncien = GetFirstItemProperty (oAncien); while (GetIsItemPropertyValid (itAncien) != FALSE) { AddItemProperty (DURATION_TYPE_PERMANENT, itAncien, oNouveau); itAncien = GetNextItemProperty (oAncien); if (GetIsItemPropertyValid(itAncien)==FALSE) break; } //test SpeakString ("transe_" + IntToString(iTranse) , TALKVOLUME_TALK); // on met a jour la variable indiquant quelle peau on porte DelayCommand(0.2, SetLocalInt (oPC, "transe_niv", iTranse)); // on enleve l'ancien, on met le nouveau DestroyObject (oAncien, 0.2); DelayCommand(0.5, AssignCommand(oPC, ActionEquipItem(oNouveau, INVENTORY_SLOT_CARMOUR))); } } Et voila! Ce script ne marche évidemment pas, et quand il beugge, il fait planter tout le jeu! snif! Merci de vos suggestions! |
Revenir en haut | ![]() ![]() ![]() ![]() |
Heldar Seigneur ![]() Messages: 169 Localisation: France |
je suis désolée de te faire un faux espoir de réponse parcequ'en fait j'ajoute une question à ton attention: peux-tu me donner le script que tu as utiliser pour donner la peau à ton PJ?
_________________ Heldar qui tue tous les monstres du soir. |
Revenir en haut | ![]() ![]() ![]() |
Tuyen Demi-dieu ![]() Messages: 460 Localisation: Chez moi |
Je l'ai posté dans un autre sujet
|
Revenir en haut | ![]() ![]() ![]() ![]() |


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