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:28:30


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
jaheira
Novice
Inscrit le: 22 Avr 2005
Messages: 9
Répondre en citant
Posté le : 22/04/2005 16:56:21 Sujet du message : Besoin d'aide pour faire fonctionner un script...

Salut à tous!

Ceci est mon premier message sur ce forum et j'aurais besoin d'aide pour faire un scipt...

J'ai essayé d'en créer un moi-même mais je n'ai pas encore réussi à faire fonctionner un script... Mad même les plus simple comme "donner de l'expérience à un perso lorsqu'il parle à un pnj..." pouvez-vous m'aider svp?

Comment commencer un script?

[nwscript][/nwscript]
void main()
{

}


Merci d'avance de toutes vos réponses!

Je suis désespéré Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 22/04/2005 18:28:00 Sujet du message :

Ca dépend, à quel moment doit-on donner l'expérience ? à la fin d'un dialogue ? à l'entrée d'une zone ?

Je propose les deux solutions, ça sera à toi de voir.

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.


On le met dans le OnEnter d'une zone (dans ses propriétés y'a un onglet évènement)

Si c'est après un dialogue tu met alors
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.


Tu met ce script dans l'onglet "conséquence" de la parole de PNJ qui lui dit qu'il lui donne de l'xp par exemple.

Bien entendu dans ses exemples il donne 1000, tu peux le modifier comme tu veux.
Si tu veux aussi donner de l'or tu ajoutes ça juste avant l'accolade qui ferme le script.

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.




De façon plus générale un script se déroule comme ça (les scripts basiques)


NWScript :
void main(){



object oPC=GetEnteringObject();




/*ensuite on fait des actions puis on femre le script*/
GiveXPToCreature(oPC, 1000);

}
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'espere que cela te sera utile.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 22/04/2005 18:48:50 Sujet du message :

Haaaaa! Voleuse! Bougresse! C'est une honte! lol!
C'est mon nickname ça!
Bon je te pardonne, car Jaheira c'est le nickname des meilleures!


Stan a écrit :
Ca dépend, à quel moment doit-on donner l'expérience ? à la fin d'un dialogue ? à l'entrée d'une zone ?
Et bien je crois que ça a été dit dans son premier post: dans un dialogue.
Bref, vu que tu es apparement novice dans le scriptage, il faut que tu commence avec un outil très utile: l'assistant de script.
Comment faire? C'est simple: dans ton éditeur de dialogue, tu clique sur l'onglet "action conséquente" sur la phrase de ton choix. Ensuite, tu pourras cliquer sur une petite icône ( en forme de chapeau pointu rouge ). C'est l'assitant ça!

Avec ça tu pourras scripter en un clin d'oeil sans avoir besoin de connaissance. Des scripts pour donner ou enlever de l'or ou de l'XP, faire attaquer un PNJ, ouvrir un magasin, donner ou recevoir un objet...

Voilà! Bon courrage!
_________________
La nature reprendra ses droits ici, aprés notre passage.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 22/04/2005 19:28:06 Sujet du message :

Oui d'ailleurs pendant un moment j'ai pensé au module de Baldur's Gate.

*Mince comment elle a pu faire ça si elle sait pas scripter.*

Puis j'ai remarqué qu'il manquait le 007 Very Happy


Pour le reste tant pis j'ai donné les deux scripts et même une explication qui lui servira à rien Very Happy



PS : Jaheira 007 c'est pas le lieu mais ton module il est terrible Shocked
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
jaheira
Novice
Inscrit le: 22 Avr 2005
Messages: 9
Répondre en citant
Posté le : 22/04/2005 19:54:30 Sujet du message :

Merci de toutes vos réponses!

Il y a un commencement à tout Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
jaheira
Novice
Inscrit le: 22 Avr 2005
Messages: 9
Répondre en citant
Posté le : 22/04/2005 19:59:04 Sujet du message :

Heum j'ai une autre question...

Le scripte que vous m'avez donnez marche à merveille!
Mais j'ai une autre question...

Lorsque mon perso recois le 1000 d'expérience, le dialogue prend fin mais quand je reclique sur le pnj, c'est le même dialogue et donc je peux lui parler à volonté pour recevoir autant d'xp que je veux... Comment régler ce problème?

Merci d'avance de toutes vos réponses!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 22/04/2005 20:29:29 Sujet du message :

Ca dépend ce que le dialogue doit faire, si c'est simplement pour donner un level au PJ, alors on va utiliser une méthode qui regarderait le niveau du joueur, s'il a déjà le niveau requis, il ne gagnerait rien.

Maintenant si c'est pour une fin de quête, on stockera ue donnée sur le joueur pour qu'il ne puisse plus récuperer l'xp.


Donc peux tu expliquer un peu mieux à quoi sert le PNJ qui donne l'experience ? à quel moment il la donne ? pourquoi ? à qui ? Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
jaheira
Novice
Inscrit le: 22 Avr 2005
Messages: 9
Répondre en citant
Posté le : 22/04/2005 20:48:15 Sujet du message :


Citation :
Maintenant si c'est pour une fin de quête, on stockera ue donnée sur le joueur pour qu'il ne puisse plus récuperer l'xp.


Donc peux tu expliquer un peu mieux à quoi sert le PNJ qui donne l'experience ? à quel moment il la donne ? pourquoi ? à qui ? Very Happy
Ce n'est qu'un pnj pour me pratiquer avec les scripts. D'après moi, il donnerais l'expérience après une quête, au pj qu'il la donnerait Razz

Merci d'avance de vos réponses!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 22/04/2005 22:49:12 Sujet du message :

Une variable locale ne permettrait de faire cette quête qu'une fois par reboot du module.

NWScript :

void main(){
object oPC=GetPCSpeaker();

if (GetLocalInt(oPC,"quete1")!=1)
{
GiveXPToCreature(oPC, 1000);
SetLocalInt(oPC,"quete1",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.


En gros on stock sur le PJ une variable qui s'apelle quete1 et à l'intérieur on met 1.Si la prochaine fois il revient il aura cette variable à 1 donc la condition sera fausse et on ne lui donnera pas d'xp.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
jaheira
Novice
Inscrit le: 22 Avr 2005
Messages: 9
Répondre en citant
Posté le : 25/04/2005 03:23:01 Sujet du message :

D'où vien la variable "quete1"?

Merci encore de votre aide
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sam Lam
Grand Chevalier
Inscrit le: 31 Mar 2005
Messages: 126
Répondre en citant
Posté le : 25/04/2005 06:29:53 Sujet du message :

Oui, il faut peut-être la déclarer quelque part avant de l'utiliser, cette variable (j'ai jamais scripté en NWscript, mais ça ressemble furieusement à du C, et le C il aime pas les variables non déclarées). Toujours est-il que la variable "quete1" est une variable créée pour garder la trace de l'historique de la quête n°1. En gros, au moment où le PJ entame la quête, cette variable est à 0. Une fois qu'il la termine, il reçoit l'XP et la variable passe à 1. S'il revient parler au PNJ pour lui redire qu'il a fini la quête, le PNJ ne se fait pas avoir: il a déjà donné la récompense.
_________________
Nécromancien du Forum Niv.3 dès le premier post.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 25/04/2005 13:36:50 Sujet du message :

C'est le nom que je lui ai donné, tu peux l'apeller Trucmuche si tu préfères.

Pour Sam non il ne faut pas "déclarer" les variables locales.C'est juste que si elle est vide il va :
Citation :
On error the function will return 0.
Donc si c'est la premiere fois, il va dire 0 différent de 1, je donne l'xp, je met 1 dans la variable locale.

Et quand le PJ revient il trouve que 1 n'est pas différent de 1 donc il ne donne plus de récompense.
 
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 33.794ms