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 23/11/2024 16:10:43
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 |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Salut à tous
J'ai besoin de lancer un dialogue au passage de level d'un joueur suivant certaines conditions, soit : - le personnage est de sexe feminin - la classe qu'elle vient de passer est ensorceleur ou barde J'ai fait ce qui me semblait logique, à savoir, dans un include : NWScript :
void EnsorceleusesNoob() { object oPC = GetPCLevellingUp(); object oItem = GetItemPossessedBy(oPC, "item_quete"); int bBard = FALSE; int bSorc = FALSE; if(GetClassByPosition(1, oPC)== CLASS_TYPE_SORCERER || GetClassByPosition(2, oPC)== CLASS_TYPE_SORCERER || GetClassByPosition(3, oPC)== CLASS_TYPE_SORCERER) { bSorc = TRUE; } if(GetClassByPosition(1, oPC)== CLASS_TYPE_BARD || GetClassByPosition(2, oPC)== CLASS_TYPE_BARD || GetClassByPosition(3, oPC)== CLASS_TYPE_BARD) { bBard = TRUE; } if(GetLocalInt(oItem, "ensorceleuse_regle") ==0) { if(bBard && GetGender(oPC) == GENDER_FEMALE) { BeginConversation("spells_regles", oPC); } else if(bSorc && GetGender(oPC) == GENDER_FEMALE) { BeginConversation("spells_regles", oPC); } } } Et j'ai appelé la fonction ici dans le onplayerlevelup NWScript :
void main() { object oPC = GetPCLevellingUp(); object oBon = GetFirstItemInInventory(oPC); object oItem = GetItemPossessedBy(oPC, "item_quete"); string sPC = GetName (oPC); int iLevel = GetHitDice(oPC); int iTest = 0 ; int iStopXP = ((iLevel * (iLevel - 1)) / 2) * 1000 -1; location iLoc = GetLocation(oPC); string sLevel = IntToString(iLevel); string sAreaName = GetName(GetArea(oPC)); // autorisation pour lvl if (( iLevel == 8 || iLevel == 10 || iLevel == 15 || iLevel == 20 || iLevel == 25 || iLevel == 30 ) && ( GetItemPossessedBy(oPC, "Passniveau" + IntToString(iLevel)+ "NODROP") == OBJECT_INVALID )) { SetXP(oPC,iStopXP); SendMessageToPC(oPC,"Il vous manque l'autorisation pour passer ce niveau."); } EnsorceleusesNoob(); string sResbon; FloatingTextStringOnCreature("test5", oPC); while(oBon != OBJECT_INVALID) { sResbon = GetResRef(oBon); if(GetStringLeft(sResbon, 7) == "Passniveau") { if(StringToInt(GetStringRight(sResbon, GetStringLength(sResbon)-7)) <= iLevel) DestroyObject(oBon); } oBon = GetNextItemInInventory(oPC); } SetLocalLocation(oPC, "lLocation", iLoc); ExportSingleCharacter(oPC); } Et bien sûr... Ca ne marche pas. J'ai essayé de mettre un floating text string "test" à différent endroits, ça marche tout dans le script, mais aucun dans l'include. Si j'essaie de copier le bout de script utilise de l'include dans le onplayerlevelup, nwn plante après le passage de niveau (testé 7 fois). Je n'ai vraiment aucune idée de pourquoi ça fait ça. Vous y voyez plus clair que moi ? Merci ++ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Salut,
ça plante que quand les conditions sont validées ou dans tout les cas ? Sinon en survolant j'ai vu ça, les Resref c'est sans majuscules il me semble, et en plus Passniveau il colle pas avec le test des 7 premiers caractères de la chaîne, c'est trop long... NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. Essaie plutôt de renvoyer ce que donne tes opérations sur les strings, car tu renvoie surement des trucs que tu veux pas. Sinon petit détail, pour le test du niveau du joueur, tu peut faire une petite fonction, c'est beaucoup plus clair et facile a modifier, et vu le peux d'appel dessus en terme puissance ça va ^^, quelque chose dans ce genre : NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. A+ je regarderais ça un peut mieu ce week-end _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Salut Ivellios
Lol ok, mais cette partie du script fonctionne très bien. C'est vraiment le moment où EnsorceleusesNoob() est lancé qui plante. Merci ^^ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Il me semble bien que les tags sont sensibles à la casse, à vérifier.
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
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