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 19:36:42


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
ptolemee
Ecuyer
Inscrit le: 28 Oct 2003
Messages: 42
Répondre en citant
Posté le : 04/03/2004 12:50:36 Sujet du message : une quête avec compteur de monstres tués ?

Bonjour,

voilà je cherche à réaliser un script qui verifierait qu'un certain nombre de monstres ont bien été tué avant que la quête ne soit validé.

ex : un NPC demande de tuer tous les loups qui vivent dans une caverne et une fois terminée, le PJ est averti par un message et il peut retourner voir le NPC. (le PJ ne connaît pas à l'avance le nombre de monstres bien sûr)

merci pour vos infos

Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 04/03/2004 14:23:22 Sujet du message :

Hum, hum...

Cela semble envisageable...

Dans chaque "OnDeath" des loups tu rajoutes:

NWScript :
SetLocalInt(GetModule(),"ShamCount",GetLocalInt(GetModule(),"ShamCount") + 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 dans le "Conditions d'exécution" du dialogue du donneur de quête

NWScript :

int StartingConditional()
{
int nDone = (GetLocalInt(GetModule(), "ShamCount") == 10 );
return nDone;
}
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.

_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
ptolemee
Ecuyer
Inscrit le: 28 Oct 2003
Messages: 42
Répondre en citant
Posté le : 04/03/2004 17:37:38 Sujet du message :

Merci, je regarde cela et je te tiens au courant.

Par contre comment le PJ est-il averti de la réussite ? En gros une fois qu'il les a tous tués ?

Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
ptolemee
Ecuyer
Inscrit le: 28 Oct 2003
Messages: 42
Répondre en citant
Posté le : 04/03/2004 17:51:03 Sujet du message :

bon il me met une erreur de script

NWScript :

void main()
{
int StartingConditional()
{
int nDone = (GetLocalInt(GetModule(), "ShamCount") == 10 );
return nDone;
}
}
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.


cela vient de quoi ?

ps : pourrais tu m'expliquer ta ligne de code aussi que je comprenne bien ce que je tape. Merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 04/03/2004 18:24:40 Sujet du message :

Faut que t'enlève le :
Code :
void main()
{

et le dernier :
Code :
}



Pour avertir le joueur, il faut que tu crées une entrée journal (Outils -> Editeur de journal) et que tu rajoute dans le script Ondead un :
AddJournalQuestEntry(le nom de l'entree journal entre guillement, le numero de ta quete dans la journal); avec une condition pour quelle s'active lorsque les 10 sont morts.

Aller, je vais pas te laisser comme ça, je t'aide :

NWScript :
SetLocalInt(GetModule(),"ShamCount",GetLocalInt(GetModule(),"ShamCount") + 1);
if (GetLocalInt(GetModule(), "ShamCount") == 10)
AddJournalQuestEntry(le nom de l'entree journal entre guillement, le numero de ta quete dans la journal);
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://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
ptolemee
Ecuyer
Inscrit le: 28 Oct 2003
Messages: 42
Répondre en citant
Posté le : 05/03/2004 09:28:15 Sujet du message :

ok,

merci pour tes conseils

NWScript :

void main()
{
SetLocalInt(GetModule(),"ShamCount",GetLocalInt(GetModule(),"ShamCount") + 1);
if (GetLocalInt(GetModule(), "ShamCount") == 1)
AddJournalQuestEntry("test", "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.


Il refuse de me compiler cela, aurais-tu une idée ?

merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 05/03/2004 10:58:11 Sujet du message :

Hum, hum...

L'erreur vient d'un oubli dans la fonction de quête:

Il faut désigner qui doit voir sa quête réactualisée...

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.


Si GetLastKiller() ne fonctionne pas tu peux essayer GetFirstPC()
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
k0rvet
Ecuyer
Inscrit le: 24 Nov 2003
Messages: 67
Répondre en citant
Posté le : 05/03/2004 12:14:11 Sujet du message :


ptolemee a écrit :
ok,

merci pour tes conseils

NWScript :

void main()
{
SetLocalInt(GetModule(),"ShamCount",GetLocalInt(GetModule(),"ShamCount") + 1);
if (GetLocalInt(GetModule(), "ShamCount") == 1)
AddJournalQuestEntry("test", "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.


Il refuse de me compiler cela, aurais-tu une idée ?

merci
Il n'y a pas non plus de ; a la fin de la ligne de mise à jour de quete.
_________________
Moi j'dis ca, mais bon j'dis rien hein?
..:: Les Chroniques de la Terre du Milieu ::..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
ptolemee
Ecuyer
Inscrit le: 28 Oct 2003
Messages: 42
Répondre en citant
Posté le : 05/03/2004 14:17:58 Sujet du message :

Merci Longbow,

maintenant tout fonctionne à souhait.

Par contre pour info, il ne semble pas nécessaire de mettre ton premier script sur le "on execution" du dialogue. Cela fonctionne très bien sans.

Sinon pourrais-tu m'expliquer un peu le rôle de la fonction getmodule dans le script que tu as fait. Merci

Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Konrad
Grand Maître Chanteur du Conseil
Inscrit le: 30 Sep 2002
Messages: 1258
Localisation: Empire d'Halöven
Répondre en citant
Posté le : 05/03/2004 15:21:40 Sujet du message :

cela permet d'affecté la variable "ShamCount" au module.
Tu peux affecté une variable à un module ou à un joueur.

Quel interet ?

Et bien dans ton cas préci, la quête est terminée et ne peux plus être faite puisque tous les loups sont morts. Cela concerne donc tous les joueurs présents dans le module. Donc, la variable est affectée au module.

Dans le cas d'une quête qui ne concernerait qu'un personnage, tu pourrais affecté la variable au personnage qui parle (Getspeaker()) qui tue le loup (Getlastkiller()) ou qui est un joueur (GetfirstPC())

Bon je ne suis pas très sur des fonction si dessu mais j'espère que c'est plus clair. Embarassed
_________________
Le site du Module Dragon Noir
Le groupe du Module L5A - L'ombre et la Lumière
Crimson Skies
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
ptolemee
Ecuyer
Inscrit le: 28 Oct 2003
Messages: 42
Répondre en citant
Posté le : 05/03/2004 15:48:23 Sujet du message :

Oui, merci beaucoup Konrad.

Razz
 
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 39.547ms