La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 03:39:38


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 10/06/2006 19:23:31 Sujet du message : [résolu] Script de guilde

Salut!

Voila, je fais un script pour faire des guildes, créer sa propre guilde, mais mon probleme est que on dirait que le script de fin (pour avoir les informations total) ne marche pas. Pourtant lorsque le joueur dit le nom de la guilde, etc... tout s'affiche. Voici donc les scripts en question :

Celui la est place dans le Action d'un dialogue, la toute dernière phrase (pour avoir toutes les informations (nom de guilde, nombre de joueur max, etc...)) :

NWScript :
#include "nw_i0_plot"
#include "generale"
void main()
{
object oPC = GetPCSpeaker();
int NbrMax = GetLocalInt(OBJECT_SELF, "NbrMax");
int NbrRang = GetLocalInt(OBJECT_SELF, "NbrRang");
int iGold = (20*NbrMax)+NbrRang;
int iGuilde = GetCampaignInt(GetModuleName(), "NbrGuilde");
if(iGuilde = 0)
{
iGuilde = 1;
}
TakeXPGP(oPC, iGold);
SetCampaignString(GetModuleName(), "GuildeN_"+IntToString(iGuilde), GetLocalString(OBJECT_SELF, "GName"));
SetCampaignInt(GetModuleName(), "GuildeJ_"+IntToString(iGuilde), NbrMax);
SetCampaignInt(GetModuleName(), "GuildeR_"+IntToString(iGuilde), NbrRang);
SetCampaignString(GetModuleName(), "GuildeD_"+IntToString(iGuilde), GetLocalString(OBJECT_SELF, "Description"));
SetCampaignString(GetModuleName(), "GuildeC_"+IntToString(iGuilde), GetPCPlayerName(oPC));
SetCampaignInt(GetPCPlayerName(oPC), "Guilde", iGuilde);
SetCampaignInt(GetModuleName(), "NbrGuilde", iGuilde+1);
SetLocalInt(OBJECT_SELF, "Ecoute", 0);
SetLocalInt(OBJECT_SELF, "GName1", 0);
SetLocalInt(OBJECT_SELF, "NbrMax1", 0);
SetLocalInt(OBJECT_SELF, "NbrRang1", 0);
SetLocalInt(OBJECT_SELF, "Description1", 0);
SetLocalInt(OBJECT_SELF, "NbrMax", 0);
SetLocalInt(OBJECT_SELF, "NbrRang", 0);
SetLocalString(OBJECT_SELF, "Temp", "---");
SetLocalString(OBJECT_SELF, "GName", "---");
SetLocalString(OBJECT_SELF, "Description", "---");
}
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.


et celui la c'est quand on fait competence artisanal, c'est pour savoir les informations, quand un joueur est dans la guilde (donc les même informations) :

NWScript :
void main()
{
object oPC = GetPCSpeaker();
int iGuildePC = GetCampaignInt(GetPCPlayerName(oPC), "Guilde");
string Name = GetCampaignString(GetModuleName(), "GuildeN_"+IntToString(iGuildePC));
int iNbrMax = GetCampaignInt(GetModuleName(), "GuildeJ_"+IntToString(iGuildePC));
int iNbrPoint = GetCampaignInt(GetModuleName(), "GuildeP_"+IntToString(iGuildePC));
string Description = GetCampaignString(GetModuleName(), "GuildeD_"+IntToString(iGuildePC));
SetCustomToken(6009, Name);
SetCustomToken(6010, "--");
SetCustomToken(6011, "--");
SetCustomToken(6012, "--");
SetCustomToken(6013, IntToString(iNbrPoint));
SetCustomToken(6014, IntToString(0)+"/"+IntToString(iNbrMax));
SetCustomToken(6015, Description);

}
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.


Voila merci Smile

Black
_________________
[http]
Dernière édition par Black Knight le 12/06/2006 07:25:56; édité 5 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 11/06/2006 11:58:35 Sujet du message :

Ha! j'ai trouvé, j'ai copier l'annuler au mauvaise endroit ce qui fesait que j'avais aucun info sur la guilde!

Black
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 11/06/2006 19:14:59 Sujet du message :

Bon enfaite non, j'ai encore un bug avec ce script ...

NWScript :
#include "generale"
void main()
{
object oPC = GetPCSpeaker();
int NbrMax = GetLocalInt(OBJECT_SELF, "NbrMax");
int NbrRang = GetLocalInt(OBJECT_SELF, "NbrRang");
int iGold = (20*NbrMax)+NbrRang;
int iGuilde = GetCampaignInt("Module", "NbrGuilde", oPC);
if(iGuilde = 0)
{
iGuilde = 1;
}
TakeXPGP(oPC, iGold);
SetCampaignString("GuildeModule"+IntToString(iGuilde), "GuildeN_"+IntToString(iGuilde), GetLocalString(OBJECT_SELF, "GName"), oPC);
SetCampaignInt("GuildeModule"+IntToString(iGuilde), "GuildeJ_"+IntToString(iGuilde), NbrMax, oPC);
SetCampaignInt("GuildeModule"+IntToString(iGuilde), "GuildeR_"+IntToString(iGuilde), NbrRang, oPC);
SetCampaignString("GuildeModule"+IntToString(iGuilde), "GuildeD_"+IntToString(iGuilde), GetLocalString(OBJECT_SELF, "Description"), oPC);
SetCampaignString("GuildeModule"+IntToString(iGuilde), "GuildeC_"+IntToString(iGuilde), GetPCPlayerName(oPC), oPC);
SetCampaignInt(GetPCPlayerName(oPC), "Guilde", iGuilde, oPC);
SetCampaignInt(GetPCPlayerName(oPC), "HaveGuilde", 1, oPC);
SetCampaignInt("Module", "NbrGuilde", iGuilde+1, oPC);
ActionWait(0.5);
SendMessageToPC(oPC, IntToString(iGuilde));
}
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.


Pour m'y retrouver dans tout ce bordel, je fais en sorte que les guildes ce mélangent pas, donc je fais un système avec les campaigns qui repère à combien de guilde sont créées pour éviter d'écraser une autre guilde, enfin je me comprends là, c'pas ça le probleme Razz. Bref remarqué ceci :

NWScript :
int iGuilde = GetCampaignInt("Module", "NbrGuilde", oPC);
if(iGuilde = 0)
{
iGuilde = 1;
}
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.


Je ne sais pas si mon PC veut que je me suicide mais apparament la ça marche pas! iGuilde est toujours orienté vers 0, quoi qu'il en soit. Ensuite regardez cette autre phrase, enfin fonction :

NWScript :
SetCampaignInt("Module", "NbrGuilde", iGuilde+1, oPC);
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.


Ici je rajoute +1 à iGuilde, donc normalement au tout début on est à iGuilde = 1, et à la fin du script on se retrouve à 2 normalement. Regardez cette phrase-ci maintenant :

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.


J'ai voulu verifier si iGuilde marché, et non, à chaque fois il me dit "0", normalement il doit me dire "2" (car SendMessageToPC est placé aprés le iGuilde+1). Bon alors je cherche à résoudre ce probleme qui pour moi est une purré de galère pour être polit, car j'ai essayé encore un autre truc! C'est de faire ça :

NWScript :
iGuilde = 1;
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.


Et la SendMessageToPC me dit "1", faut vraiment qu'on m'explique ce bordel! Je veux bien faire avec les GetLocalInt, mais j'ai peur d'avoir quelques problemes au niveau des autres guildes qui seront déjà créé (la Local peut se remettre a 0 pour un reboot, ou autre chose, ce n'est pas totalement enregistré, est donc va écraser les guildes 1-2-3-etc.. ou je me trompe?). Bref là un peu d'aide est demandé, pendant ce temps je vais faire les invitations lol. Merci de votre aide, je repondrais à toutes les questions, pourvu qu'on trouve la solution!
En passant, est-ce que au moins, on peut analysé une CampaignInt? car si je fais ça avec une variable, je suis sur que ça marche, mais la apparament non...

Black
_________________
[http]
Dernière édition par Black Knight le 11/06/2006 19:35:53; édité 2 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 11/06/2006 19:18:16 Sujet du message :

NWScript :
iGuilde+1
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 jamais changé la valeur de iGuilde...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 11/06/2006 19:34:40 Sujet du message :

Même si je le mets et qu'il marcherais le SendMessageToPC devrais donc me dire "2" ou minimum "1", mais non! il dit "0", donc en gros ça change pas grand chose, et si jamais on a regler le probleme, est ce que ça ça ajouterais +1 :

NWScript :

iGuilde += 1;
SetCampaignInt("Module", "NbrGuilde", iGuilde, oPC);
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.

_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 11/06/2006 19:55:43 Sujet du message :

là oui.

et il manque un "=" dans
NWScript :
if(iGuilde = 0)
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.
, donc ça assigne 0 à iGuilde et renvoit FALSE (puisque 0 = FALSE).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 12/06/2006 07:25:33 Sujet du message :

Exact, belle erreur de ma part... grand merci à toi! ça marche enfin, et les chefs de guilde peuvent invité maintenant les joueurs Very Happy

Black
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 71.884ms