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 28/11/2024 19:42:29
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.
C'est encore moi, et j'demande encore de l'aide, j'en suis désolé Mais c'est pour le bonheure de tous (enfin de moi principalement ) Voici une fonction que j'ai faite pour mon blacksmith: NWScript :
void BS_AddProp(object oPC, itemproperty iProperty) { object oItem = BS_GetItem(oPC); itemproperty ipFirst = GetFirstItemProperty(oItem); while(GetIsItemPropertyValid(ipFirst) && iReturn == TRUE) { if(BS_GetBonusType(oPC) == 1) { if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_ABILITY_BONUS)==TRUE) { RemoveItemProperty(oItem, ipFirst); } } else if(BS_GetBonusType(oPC) == 2) { if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS)==TRUE) { RemoveItemProperty(oItem, ipFirst); } } else if(BS_GetBonusType(oPC) == 3) { if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_ON_HIT_PROPERTIES)==TRUE) { RemoveItemProperty(oItem, ipFirst); } } else if(BS_GetBonusType(oPC) == 4) { if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_SKILL_BONUS)==TRUE){RemoveItemProperty(oItem, ipFirst);} else if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N)==TRUE){RemoveItemProperty(oItem, ipFirst);} else if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_SAVING_THROW_BONUS)==TRUE){RemoveItemProperty(oItem, ipFirst);} else if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC)==TRUE){RemoveItemProperty(oItem, ipFirst);} else if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_DARKVISION)==TRUE){RemoveItemProperty(oItem, ipFirst);} else if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_HASTE)==TRUE){RemoveItemProperty(oItem, ipFirst);} } ipFirst = GetNextItemProperty(oItem); } IPSafeAddItemProperty(oItem, iProperty, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); } Petite légende: BS_GetBonusType(oPC) == Dès que j'arrive a un bonus qui a plusieurs choix (exemple: caracteristique, vous avez force, constitution, etc...) je mets une LocalInt et je la retrouve avec cette fonction. (C'est juste pour eviter à ce que l'item ait plusieurs bonus de même "catégorie" si vous preferez) BS_GetItem(oPC) == C'est l'item qui est entrain d'être créer et qui se trouve dans un endroit impossible pour les joueurs (donc en sécurité). C'est lui qui recevra les bonus, et il sera copié dans l'inventaire du joueur à la fin, puis détruit. Bon voila, j'ai un problème. Ce script marche à la perfection, mais trop ! lol ! Je vais avoir du mal à vous expliquez, donc je vous fait un exemple: J'ajoute un bonus de +1 en force. (Je me suis trompé, alors je change) J'ajoute un bonus de +5 en constitution (+1 en force est supprimé, +5 en constitution est ajouté) J'ajoute rapidité (rapidité fait partie d'une catégorie "Autres Bonus" qui a pour "repere" BS_GetBonusType(oPC) == 4) (l'item n'a pas le droit d'avoir plusieurs autres bonus) (je veux pas rapidité, mais Darkvision (Darkvision fait partie des autres bonus)) J'ajoute Darkvision (normalement, ici, rapidité est supprimé !) Je m'arrête ici. Le bug vient quand on arrive donc a l'ajout de "Darkvision". Enfaite au lieu de supprimer QUE rapidité, il supprime TOUT et met Darkvision. Donc l'item se retrouve que avec 1 bonus, et c'est pas le but que je voulais. Au debut, je me suis dit .. le while s'arrête pas ou un truc du genre, alors j'ai mit un truc comme if(iReturn == FALSE) on stop le while, et par la suite j'ai remarqué que a ce moment la, il enlevait le premier bonus de l'item ! Donc apparament, le script comprend pas ce que je lui demande ! Mais je vois pas d'ou vient mon erreur ... puisque il supprime bien ce que je veux, etc... mais quand il s'agit de remodifier un bonus déjà mit, et que l'item a d'autre bonus, et bein la, ça bug... Merci de votre aide =) _________________ [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