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 29/11/2024 03:41:06
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 |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Bonjour.
Bon voila, je suis entrain de créer une des fonctions pour mon Blacksmith (je le refais entièrement), mais je bloque sur un problème. NWScript :
void BS_AddProp(object oPC, itemproperty iProperty) { object oItem = BS_GetItem(oPC); //Caracteristique: int CaracNow = 12; int CaracMax = 6; int b = 1; while(b <= CaracMax) { int nCarac; if(b==1){nCarac = StringToInt("IP_CONST_ABILITY_STR");} else if(b==2){nCarac = StringToInt("IP_CONST_ABILITY_DEX");} else if(b==3){nCarac = StringToInt("IP_CONST_ABILITY_CON");} else if(b==4){nCarac = StringToInt("IP_CONST_ABILITY_WIS");} else if(b==5){nCarac = StringToInt("IP_CONST_ABILITY_CHA");} else if(b==6){nCarac = StringToInt("IP_CONST_ABILITY_INT");} int a = 1; while(a <= CaracNow) { if(IPGetItemHasProperty(oItem, ItemPropertyAbilityBonus(nCarac, a), -1)==TRUE) { RemoveItemProperty(oItem, ItemPropertyAbilityBonus(nCarac, a)); } a++; } b++; } IPSafeAddItemProperty(oItem, iProperty, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); } Bon, cette fonction sert à ajouter iProperty à la LocalObject de oPC (enfin ça c'est mon système, il marche très bien =)). Le problème, c'est qu'en faite, dans cette fonction, si l'on repère une propriété "égale" on la détruit pour la remplacer par une nouvelle. En exemple ici, mon Blacksmith peut ajouter les propriétés d'abilité (Force, Constitution, etc...). Dans la fonction, je regarde d'abord si il y a pas déjà des bonus aux caractéristiques ; Si il y a, on détruit le bonus Si il y a pas, bein on continue lol Simple problème : ca n'enleve pas le bonus. Exemple: j'ajoute +5 en force, dès que je recommence, et que je mets +3 en constitution, l'objet en question aura "+5 force, +3 constitution" or moi je veux qu'il est au bout du compte "+3 constitution" (donc que le bonus à la force soit enlever). Je suis sur que c'est la fonction RemoveEffect qui me fait ça. Par contre, moi je la trouve louche cette fonction, regardez, on est obligé de mettre par exemple, la fonction qui ajoute un bonus aux caracs (ItemPropertyAbilityBonus) et on doit TOUT voir ! Si il y a pas l'abilité force avec +1, +2, +3, etc... si il y a pas l'abilité constitution avec +1, +2, +3, etc... Est ce normal?? Merci si quelqu'un peut me dire qu'est ce qu'il ne va pas la dedans Sbizz Edit: Bah j'suis trop idiot ! Au moment ou j'post, j'me souviens qu'il y avait une fonction FirstProperty machin, alors j'ai cherché et j'ai trouvé ma réponse =) NWScript :
void BS_AddProp(object oPC, itemproperty iProperty) { object oItem = BS_GetItem(oPC); //Caracteristique: itemproperty ipFirst = GetFirstItemProperty(oItem); while(GetIsItemPropertyValid(ipFirst)) { if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_ABILITY_BONUS)==TRUE) { RemoveItemProperty(oItem, ipFirst); } ipFirst = GetNextItemProperty(oItem); } IPSafeAddItemProperty(oItem, iProperty, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); } Le script par contre sera 10 fois plus grand, puisque j'dois ajouter toutes les fonctions possiblent de mon BS Par contre, j'vois pas pourquoi il removait pas avant ... _________________ [http] |
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