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 30/01/2025 19:39:00
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
Coucou et oui moi aussi je builde un ch'ti module avec nwn2... (si je vous dit Dragon Noir ?...)
Voici mon souci : Je fais une conversation avec trois racines. La première se lance sans condition. La seconde se lance lorsque la variable int itoto est égale à 10 La troisième so lance lorsque la variable int itoto est égale à 15 La variable itoto est rataché à l'objet module GetModule(). Sous NWN premier du nom je n'ai jamais eu de problème oui mais voila. Lorsque ma varaible s'initialise au détour d'une conversation ou même en entrant dans un déclancheur, ça ne marche pas... Pour le test j'utilise le script : gc_local_int Avec comme paramètre dans le Rafraîchir : sVaraiable (String) : itoto sCheck (String) : =15 sTarget (String) : DNir (qui et le Tag de mon module...) ou est ce que je me plante ? voici le script qui initialise ma variable dans une conversation : NWScript :
// Demetra se joint au pj // npc_demetra_dni // int itoto = 10 void main() { object oModule = GetModule(); object oPC = GetPCSpeaker(); object oNPC1 = GetObjectByTag("npc_demetra_dni",0); int itoto; //if(GetLocalInt(oModule," ;itoto")<15) // { SetLocalInt(oModule,"itoto",15); // AddHenchman(oPC,oNPC1); // } } Voila soit le "SetLocalInt(oModule,"idemetrajoint",15);" ne marche pas. Soit c est la condition dans la conversation. Voici le script que j'ai mis dans le onenter d'un trigger et ça ne marche pas mieux : NWScript :
// Arrivee en foret // Demetra veux aller au chateau // npc_demetra_dni // int itoto= 15 void main() { object oModule = GetModule(); //object oNPC1 = GetObjectByTag("npc_demet ra_dni",0); SetLocalInt(oModule,"itoto",15); } Je dois être un peu rouiller en script ou alors il y a quelque chose qui m'échappe... Edit : DNir pour Dragon Noir - Interlude : Résistance. _________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
N'oublie pas de mettre tes racines de dialogue en sens inverse des conditions qui les lancent : si ta première racine se lance sans condition, alors le programme n'ira pas vérifier plus bas qu'une autre racine correspond mieux aux conditions souhaitées. Faut toujours mettre la racine qui se lance sans condition en dernier dans ton dialogue.
(désolé si je te rabache un truc que tu savais déjà, mais c'est le genre d'inattention qu'on a souvent ) _________________ » 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 | |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
Non c'est pas ça. J'ai bien fait gaffe à ça...
Et j'ai même testé dans les deux sens par précaution. Non je ne sais pas si ça vient de l'initalisation de la variable ou du test de la condition... _________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Citation : voici le script qui initialise ma variable dans une conversation :
Konrad> c'est bien d'initialiser tes variables , mais les contrôles tu sur les noeuds ou elles doivent être utilisées pour qu'elles soient reconnues ?
J'ai réussi a utiliser ce nouveau systéme , et j'ai pu le faire fonctionner sur mon module , faudrais que j'essaye ce soir d'adapter tes scripts pour trouver ou ça foire. L4intêret du nouveau systéme c'est qu'avec un seul script global de reconnaissance de variables , tu peut gérer toutes les situations. Par contre je ne me rapelle pas t'avoir vu poster ton script global de reconaissance de variables .... ! Tu peux le poster stp ? PS : Je n'ai pas réussi a réutiliser les methodes 'Bioware' de NWN1 pour les sélections de noeuds de dials , j'ai dû passer par les nouvelles methodes 'Obsidian NWN2'. _________________ " La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG " La véritable école du Commandement est la culture générale. " CdG " Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F " La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG " La fin de l'espoir est le commencement de la mort. " CdG |
Revenir en haut | |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
J'utilise le script standard obsidian "gc_local_int" et je passe les variables de condition en paramètre sur le neud correspondant.
Mais je crois que je vais retapper entrierement le script façon NWN1 pour débuger ça. NWScript :
// gc_local_int(string sVariable, string sCheck, string sTarget) /* This script checks a local int variable's value. Parameters: string sVariable = The name of the variable string sCheck = The operation to check on the value of the variable. Default is ==, but you can also specify <, >, or ! e.g. sCheck of "<50" returns TRUE if sVariable's value is <50 a sCheck of "9" or "=9" returns TRUE if sVariable's value is equal to 9 and a sCheck of "!0" returns TRUE if sVariable's value is not equal to 0. string sTarget = Tag or identifier of Target. If blank then use dialog OWNER. */ // FAB 10/4 // EPF 4/12/05 changing variable names and implementation, // adding != functionality, moving common things to ginc_var_check // ChazM 4/15 change implementation, added PrintString // BMA 4/27/05 new description, added GetTarget() // BMA 7/19/05 added object invalid printstring #include "ginc_var_ops" #include "ginc_param_const" int StartingConditional(string sVariable, string sCheck, string sTarget) { object oTarg = GetTarget(sTarget, TARGET_OBJECT_SELF); if (GetIsObjectValid(oTarg) == FALSE) PrintString("gc_local_int: " + sTarget + " is invalid"); int nValue = GetLocalInt(oTarg, sVariable); int iRet = CompareInts(nValue, sCheck); PrintString ("gc_local_int: nValue = " + IntToString(nValue) + ", sCheck = " + sCheck + " -- return val: " + IntToString(iRet)); return (iRet); } Enfin je trouve étrange que je suis le seul a avoir ce problème. Je suis le seul a faire des conversations qui évolue en fonction d'une variable ? _________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
moi j'utilise ça :
NWScript : /* Script global de " condition " pour les dialogues , permet de pouvoir */ #include "ginc_var_ops" // Will return 0 if no quest. int StartingConditional(string valeur_droit_passage , string valeur_sur_pj) { object oPC = GetPCSpeaker(); int int_valeur_sur_pj = GetLocalInt(oPC,valeur_sur_pj); return (CompareInts(int_valeur_sur_pj,valeur_droit_passage)); } _________________ " La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG " La véritable école du Commandement est la culture générale. " CdG " Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F " La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG " La fin de l'espoir est le commencement de la mort. " CdG |
Revenir en haut | |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
Je vais essayé avec ça. Merci !
_________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
NWScript :
Valeurs spéciales pour viser autre chose que le TAG : "$OBJECT_SELF" // OBJECT_SELF, celui qui execute le script "$OWNER" "$OWNED_CHAR" // GetOwnedCharacter, le personnage qui controle le hench s'il y a "$PC" // PCSpeaker, le PJ qui parle "$PC_LEADER" // Le leader de la faction du premier PJ(ne pas utiliser pour monde persistant) "$PC_NEAREST" // NearestPC (owned and alive) "$PC_SPEAKER" // PCSpeaker "$MODULE" // Le module "$LASTSPEAKER" Informations constituée après consultation de ginc_param_const. Je me suis fais mes propres fonctions personnelement. Ha oui et évite le tag du module voici les commentaires du GetObjectByTag : NWScript : // Get the nNth object with the specified tag. // - sTag // - nNth: the nth object with this tag may be requested // * Returns OBJECT_INVALID if the object cannot be found. // Note: The module cannot be retrieved by GetObjectByTag(), use GetModule() instead. object GetObjectByTag(string sTag, int nNth=0); |
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