Demande aide script quête

Répondre
Partager Rechercher
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
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.
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 ??)
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
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.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés