Login: Pass:
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 8/05/2009 10:41 Sujet du message: pb de quéte
Voilà je cherche a créer une quête toute simple, il s'agit de tuer 10 lapins hostils. Et je voudrais aussi que cette quête soit donnée par un NPC ; et que quand le PC retourne voir le NPC celui-ci lui donne xp et tunes...

PS : sa va faire beaucoup de chose de demander mais j'aimerais que la conversation soit unique.

Merci.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 8/05/2009 12:28 Sujet du message:
Tu sais écrire un dialogue déjà?
Parce que je me vois très mal t'expliquer comment le faire via un forum. Après le script ça c'est pas un problème, mais il servira à rien si tu ne sais pas gérer les dialogues.

Commence par lire ça:
http://www.neverwinternights2.fr/modules/wfdownloads/singlefile.php?cid=29&lid=48
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 8/05/2009 13:23 Sujet du message:
Merci de bien vouloir m'aider mais je sais dejat comment écrir un dialogue.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 8/05/2009 13:40 Sujet du message:
Code:
#include "nw_i0_tool"
void main(int nGold, int nXP, string sObjetTag, int nStackObjet)
{
object oPC=GetPCSpeaker();
if (HasItem(oPC, sObjetTag) && GetItemStackSize(GetObjectByTag(sObjetTag)))
   {
   //Récompenses
   GiveGoldToCreature(oPC, nGold );
   GiveXPToCreature( oPC, nXP);
   // Enlever des objets de l’inventaire du joueur
    object oItemToTake;
    oItemToTake = GetItemPossessedBy(oPC, sObjetTag);
    DestroyObject(oItemToTake);
    }
}


Non testé
Ca ne gère pas les groupes
Attention l'item doit être un empilable (Par défaut le nombre maximum d'objet par pile est 10 donc ça tombe bien)
Le script est paramétrable.


Je le modifierai si besoin.


Edit:
Et le conditionnel:

Code:
#include "nw_i0_tool"

int StartingConditional(string sObjetTag, int nStackObjet)
{
object oPC=GetPCSpeaker();
if (HasItem(oPC, sObjetTag) && GetItemStackSize(GetObjectByTag(sObjetTag)))
   return TRUE;
return FALSE;
}
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 8/05/2009 13:51 Sujet du message:
Ok merci je vais tester sa...
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 8/05/2009 15:05 Sujet du message:
Pfff je gallaire vraiment... Confused

J'ai réussit à faire une entrée de journal avec "ga_journal" puis j'y est rentrer tout les stats ( tag, ID, etc ). Puis j'ai mis ton script "fait maison" j'y ai mis tous les stats (encor une fois).
Et puis j'execute mon module :
- Le NPC me donne bien la quête (dans le journal celle-ci n' a aucune description Evil or Very Mad alor que j'en ai mis une ).
- J'ai esseiller tout et n'importe quoi pour que la conversation soit à usage unique.... rien qui marche Rolling Eyes . Alor pour la récompence de quête c'est mort... Crying or Very sad
- Et puis sa commence à me mettre en rogne sérieu ! Shocked

Alor si tu pouvais m'orienter vers un tuto ce me plus util je pence (j'en ai dejat chercher mais aucun n'était vraiment pointue).

PS : le fichier à télécharger du lien que tu m'a envoyé est endomagé.

Faut me comprendre je suis débutant, depuit 3 jours... Cool
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 8/05/2009 15:52 Sujet du message:
Citation
Le NPC me donne bien la quête (dans le journal celle-ci n' a aucune description Evil or Very Mad alor que j'en ai mis une ).


Je n'ai jamais vraiment regardé les entrée de journal donc je ne peux aps vraiment d'aider, du moins pas sans y passer un temps que je n'ai pas.

Citation
J'ai esseiller tout et n'importe quoi pour que la conversation soit à usage unique.... rien qui marche Rolling Eyes . Alor pour la récompence de quête c'est mort...


Tu veux que la conversation ne soit plus accessible une fois la quête validée?

Citation
Faut me comprendre je suis débutant, depuit 3 jours...


Grosso modo il te reste donc 5 mois et 27 jours pour bien maîtriser l'éditeur donc.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 8/05/2009 15:58 Sujet du message:
Ouai c'est sa ! Je veut juste que la conversation ne soit plus dispo une foie la quête validée.

Pour ton histoire de 6 mois pour métriser l'éditeur j'ai pas compri... Razz

Merci quand même d'avoir esseiller de m'aider. J'aisserai de te rendre la pareil, mais j'en doute ! Smile
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 8/05/2009 16:05 Sujet du message:
Prépare une phrase alternative du dialogue que tu mets en premier, un truc du genre "Merci de m'avoir aidé".

Rajoute dans le script d'action: (a coté des récompenses)
Code:

SetLocalInt(oPC, "iPouleValid", TRUE);


Et fais un autre script conditionnel sur la phrase unique (la première de la liste) et mes y ça:

Code:
int StartingConditional(string sObjetTag, int nStackObjet)
{
object oPC=GetPCSpeaker();
if (GetLocalInt(oPC, "iPouleValid) == TRUE)
   return TRUE;
return FALSE;
}
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 8/05/2009 16:10 Sujet du message:
Par contre si c'est pour un module persistant, la quête sera dispo de nouveau après un reboot du module. Si c'est pour un module solo ça va.

Sur un serveur les variable local sur PJ sont écrasées par un reboot, sur un module solo elles sont conservées dans les fichiers de sauvegardes.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 8/05/2009 16:46 Sujet du message:
Heum... Confused

Bon, j'ai fait tout comme tu ma dit ( métre une phrase en 1er du genre : "merci mon chien." ) y metre une condition, en locurance la tienne.
J'ai rempli tous les stats de la condition ( le tag des lapins "c_rabbit" et le nombre de lapins a tuer.).
Après avoir massacrer tout un élevage de lapins ( largement plus de 10...) le NPC n'affiche pas la fameuse phrase de remerciment... mais relance le dialogue !

[/img]
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 8/05/2009 19:59 Sujet du message:
Je test mon script cette nuit.
Je mettrai une version corrigée s'il y a un problème.

Rendez vous demain donc.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 9/05/2009 10:47 Sujet du message:
Cool merci c'est sympa de bien vouloir m'aider. Very Happy
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Kylban



Inscrit le: 04 Oct 2008
Messages: 73
Message Posté le: 9/05/2009 11:38 Sujet du message:
Bon j'avais fais deux erreurs de scripts (dans le dernier) mais bon c'est le principe des objets empilables qui est pas réalisable en fait.

Donc déjà commence par repasser à des objet normaux (qui ont un stack max à 1 pour prendre une case par objet).

Premier script: condition de la phrase unique "Merci de m'avoir aidé"

Code:

int StartingConditional()
{
object oPC=GetPCSpeaker();
if (GetLocalInt(oPC, "iPouletValid") == TRUE)
   return TRUE;
return FALSE;
}



Deuxième script: Condition de la réponse "J'ai vos poulets"
Code:

int StartingConditional(string sObjetTag, int nStackObjet)
{
object oPC=GetPCSpeaker();
object oItem=GetFirstItemInInventory(oPC);
int iCompteur=0;
while (GetIsObjectValid(oItem))
   {
   if (GetTag(oItem) == sObjetTag)
      iCompteur++;
   oItem=GetNextItemInInventory(oPC);
   }
if (iCompteur >= nStackObjet)
   return TRUE;
return FALSE;
}



Troisième script: action conséquente de "J'ai vos poulets" (script de réocmpenses)

Code:

#include "nw_i0_tool"
void main(int nGold, int nXP, string sObjetTag, int nStackObjet)
{
object oPC=GetPCSpeaker();
object oItem=GetFirstItemInInventory(oPC);
int iCompteur=0;
while (GetIsObjectValid(oItem))
   {
   if (GetTag(oItem) == sObjetTag)
      iCompteur++;
   oItem=GetNextItemInInventory(oPC);
   }
if (iCompteur >= nStackObjet)
   {
   //Récompenses
   GiveGoldToCreature(oPC, nGold );
   GiveXPToCreature( oPC, nXP);
   SetLocalInt(oPC, "iPouletValid", TRUE);
   // Enlever des objets de l’inventaire du joueur
    oItem=GetFirstItemInInventory(oPC);
   iCompteur=0;
   while (iCompteur!=nStackObjet)
      {
      if (GetTag(oItem) == sObjetTag)
         {
         iCompteur++;
         DestroyObject(oItem);
         }
      oItem=GetNextItemInInventory(oPC);
      }
    }
}
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
poignard



Inscrit le: 06 Mai 2009
Messages: 18
Message Posté le: 9/05/2009 12:13 Sujet du message:
Excuse moi mais je ne vois pas l'utilité du segond script (pour la phrase "j'aie vos poulets") alor qu'il y en a un juste avant (pour la phrase du NPC "merci de m'avoir aider") qui pour moi, je pense cela mais je n'y conner rien Rolling Eyes ,sert à la méme chose que le segond....
Mais bon je vais esseiller comme tu me là suggérer et ensuite je vais aussi esseiller de racourcir.

Merci encor de ton aide.

PS : pourais-tu m'éclairer sur l'utilité (que je ne comprend point) du segond script stp ?
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Adresse AIM Yahoo Messenger MSN Messenger
Montrer les messages depuis:   

Page 1 sur 3
Sauter vers:  

 

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

Traduction par : phpBB-fr.com
Powered by phpBB © 2001, 2007 phpBB Group