JeuxOnLineForumsPlusConnectés : 645 (sites) | 1301 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Demande aide script quête RSS
   
Répondre
Partager Outils Rechercher
Solithorm [DK's]
Roi
 

Demande aide script quête

Je vais essayer d’être court, clair et précis :

Niveau : débutant
Connaissance en programmation ou rédaction de scripts : sur le tas
Envie de progresser : ENORME

Un module sans quête est difficilement envisageable. L’écriture de quêtes simples (1 perso + 1 objet a ramassé) est maîtrisée.

Dans la situation suivante par exemple :

Perso 1 donne la quête : récupérer un objet X, détenu par un perso 2.

Dialogue avec le perso 2 se déclenche seulement si quête a été donné, et donne alors l’objet X, que j’ai crée spécialement dans les objets personnalisés (il a donc un tag unique) et placer dans l’inventaire du perso 2.

Mon problème est que si l’on reparle de suite au perso 2 il redonne l’objet systématiquement et ce autant de fois qu’on lui parlera tant que la quête ne sera pas fini.

Je dois donc inclure une option qui vérifie que le perso 1 n’a pas déjà l’objet sur lui, afin que le perso 2 ne devienne un généreux distributeur.

Je sais où placer cette option mais ne sais pas comment l’écrire

Merci d’avance
Lien direct vers le message - Vieux
Avatar de Twist
Twist
Empereur
 
Avatar de Twist
 
A mon humble avis, tu devrais plutôt faire en sorte que le PNJ2 ne donne l'objet qu'une fois par joueur, en sauvegardant une variable. Car si tu mets une option pour vérifier si le joueur a l'objet dans son inventaire, il peut le poser au sol pour en demander un autre, puis un autre. Et éventuellement les filer à ses copains, pour que ceux-ci n'aient pas à aller voir ce fameux PNJ.

Evidemment, le joueur peut perdre cet objet (vol, ou mort). Envisage alors une option qui permette au joueur de le récupérer à nouveau, mais en payant le prix fort cette fois.

Ce qui donne une conversation pour le PNJ2 de ce genre, dans l'ordre :

Script de condition phrase 1 : le joueur a-t-il déjà eu l'objet (variable quête à 2). Si oui, la phrase 1 s'affiche et le PNJ lui vend l'objet X PO.

Script de condition phrase 2 : le joueur a-t-il déjà rencontré le PNJ1, qui lui demande cet objet (variable quête à 1) ? Si oui, la phrase 2 s'affiche et le PNJ donne l'objet en question. Script d'exécution : enregistre la variable quête à 2

Script de condition phrase 3 : aucun : Bonjour ! Il fait beau n'est-ce-pas ?

Sur la conversation du PNJ1. Acceptez-vous d'aller chercher tel objet ? Oui : script d'exécution variable quête à 1.

Si tu as réussi à faire une quête simple, tu réussiras également à faire cette étape. Ce n'est qu'une proposition.
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
tu la met dans le AppearIf d'un dialogue.
Code PHP:
Starting Conditional()
{
if (
GetItemPossessedBy(GetPCSpeaker(),"TAG_A_CHERCHER") == OBJECT_INVALID)
    {
    return 
TRUE
    
}
else return 
FALSE;

Ca devrait suffire

(l'editeur de dialogue le fait pas automatiquement ??)
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
Bonjour !

Tout à fait d'accord avec twist ^^

Pour les variables, tu devrais aller voir ce topic :

http://forums.jeuxonline.info/showth...hreadid=155741

(voir le post de mastokk, qui explique tout clairement ^^)


Il est dans les persistants, je te le met ici car je suis sympa () mais n'hesite pas a y faire un tour de temps en temps
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
A toi d'essayer un peu tout

et n'oublie pas que tu peut aller trifouiller dans le module intégré au jeu, ou il y a quantité de script interessants

voili voilu

@+
Lien direct vers le message - Vieux
Solithorm [DK's]
Roi
 
Merci merci, effectivement la solution de Twist me parait bien, cela me permetrra de bien me familiariser à la gymnastique des variables.

Autre chose, les valeurs 100 et 200 que l'on attribue à la variable vérifiant l'etat d'avancement d'une quete, sont elles des valeurs fixent definies par defaut ou peuvent elles etre changées ??


Merci
Lien direct vers le message - Vieux
Avatar de Twist
Twist
Empereur
 
Avatar de Twist
 
C'est à toi de la définir. Chaque fois que tu utilises un SetLocal pour enregistrer une valeur (dans ton cas SetLocalInt(GetPCSpeaker(),"nomdetaquete",valeur), cette dernière écrase l'ancienne, si elle existe.
De fait, il est assez simple de réaliser un quête linéaire, grâce à l'utilisation d'une seule variable, en la modifiant au fur et à mesure des avancées du joueur.
Lien direct vers le message - Vieux
BERNARD_JULIUS [[LH]]
Roi
 
Tu peux mettre ce que tu veux, comme 1 et 2 par exemple, mais l'avantage de mettre 100 et 200 c'est que tu peux rajouter des étapes comme tu veux sans avoir à modifier tout...
Lien direct vers le message - Vieux
Solithorm [DK's]
Roi
 
Suis comblé par la rapidité de vos réponses, qui confirme ce que je pensais.


encore merci
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Demande aide script quête
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 13h29.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite