LEGENDES
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Vers l'Infinity et Baldur's Gate
 
AccueilAccueil  PortailPortail  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
Le deal à ne pas rater :
Jeux, jouets et Lego : le deuxième à -50% (large sélection)
Voir le deal

 

 Les variables

Aller en bas 
3 participants
AuteurMessage
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Les variables   Les variables Icon_minitime1Jeu 19 Juin 2008 - 20:12

Coucou,
voilà, je vais commencer avec mes question. Je préviens desuite, je n'ai pas lu plus loins que le chapitre 7 partie 2 car je commence déjà à galérer. donc je ne veux pas m'embrouller en allant trop loin.
Je commence à ne pas comprendre l'utilité des variables dans certain des exemples de Rimbaud
Par exemple:

IF ~~ THEN BEGIN Presentation
SAY @9
IF ~~ THEN DO ~ SetGlobal("#TBellaJansen","GLOBAL",3)
JoinParty()~ EXIT // Rentre dans party
END


Ce que je comprend ici le plus simplifié possible pour être clair:

[Si commence le label présentation
dire @9
alors la global #TBellaJansen passe à 3
Bella se joint au groupe - Sortie
Fin


Alors si j'ai bien compris voici mes questions:
En quoi est-il utilie de faire changer la valeur de la variable #TbellaJansen à 3.
N'est-il pas possible de formuler ceci sans la variable? Je veux dire de cette manière:

IF ~~ THEN BEGIN Presentation
SAY @9
IF ~~ THEN DO ~JointParty()~ EXIT
END

à première vue j'ai l'impression que toutes les infos nécessaires à Weidu pour faire entrer le NPC dans le groupe sont données. non?
Si je ne suis pas clair dans mes question dites le moi j'essayerai de re formuler.

Merci d'avance
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Jeu 19 Juin 2008 - 20:36

Ah oui en effet ceci est bien possible. Merci Richelieu. Sur le coup je m'étais dit que peut être le changement de variable pouvait faire changer par un script le cercle du personnage (vert pour amis rouge pour hostile etc..)

Ah en attente d'une confirmation de "pro" j'ai une autre question histoire de ne pas re creer un sujet.

Ce que j'aimerai faire c'est un mod test avec un npc qui dit 1 ou 2 phrase et qui se fait recruter directe. j'ai survolé la suite du tuto et il me semble que Rimbaud n'a pas encore expliqué comment définir la position l'initiale du pnj dans le jeu (sa position comme par exemple Minsc dans sa cage, ou Kim chez Bloodscalp)
Enfin je sens que ce truc doit être expliqué dans les scripts. non? :p
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Jeu 19 Juin 2008 - 21:22

LES VARIABLES

S'il y a bien quelque chose à retenir au sujet d'une variable, c'est qu'il faut toujours, autant que faire se peut, en changer la valeur dès qu'un évènement est survenu (dialogue terminé, item donné, cutscene enclenchée ect). Ce doit être systématique et au reste, j'avoue ne pas comprendre la réticence à jalonner de variables les blocs de codes puisque non seulement, ça permet de se familiariser avec cet aspect de WeiDU (qui sera votre lot quotidien) mais en plus, ça ne mange pas de pain et ne nuit pas au jeu.
Si vous ne changez pas la valeur d'une variable, celle-ci restera donc vérifiée et vous risquez d'avoir quelques problèmes, notamment si vous jonglez aves les apparitions successives de mêmes personnages sur une même map (je l'ai moi-même vécu, autant dire que ça vaccine).

Je souligne au passage l'erreur dans la syntaxe du bloc que tu as recopié, Gaurox:

IF ~~ THEN BEGIN Presentation
SAY @9
IF ~~ THEN DO ~JointParty()~ EXIT
END

Avec une syntaxe pareille, la compilation par WeiDU sera impossible. Wink

Je terminerai en ce qui concerne les variables par les propos de Richelieu :

"Le temps passe, ta variable est à 2 ...

Si Variable2 (+d'autres conditions) > Premier dialogue de Romance "

Traditionnellement, la romance obéit au système de variables suivant (exemple tiré du mod Severian):

Global("#SeverRomanceActive","GLOBAL",1) = Romance en cours
Global("#SeverRomanceActive","GLOBAL",2) = Romance confirmée
Global("#SeverRomanceActive","GLOBAL",3) = Romance échouée

Si votre joueur est perdu dans sa romance et qu'il désire savoir s'il a échoué ou réussi, et qu'il entre la variable Global("#SeverRomanceActive","GLOBAL") dans la CLUAConsole, la valeur donnée lui permettra de savoir si la romance est toujours active (1 ou 2) ou échouée (à 3).

Les dialogues de romance quant à eux peuvent être lancés par la variable (toujours mod Severian):

Global("#SeverLoveTlk","LOCALS",X)

(le X équivaut à une valeur indéterminée car il ne s'agit que d'un exemple)


Cette romance est assortie d'un timer temps réel (par exemple : 45 minutes passées dans la vraie vie déclencheront un dialogue) et c'est un script assez délicat qui fera l'objet d'une Annexe.
En attendant, j'écrirai dans les prochains jours le Chapitre 9 qui concerne la compilation et sans quoi il est impossible d'achever ne serait-ce qu'un embryon de mod.



SCRIPT D'IMPLANTATION


Concernant ta deuxième question, Gaurox, en effet le procédé qui permet de déterminer la position initiale d'un PNJ est de nature script c'est-à-dire un fichier .baf, détaillé ici:

https://weiducommando.forumgaming.fr/outils-et-tutoriaux-f13/tutorial-creation-d-un-pnj-chapitre-8-t60.htm

Richelieu a donné un exemple parfait de script d'implantation de personnage. Quelques précisions cependant concernant ce passage:

SetGlobal("FSFranzSchaede","GLOBAL",1)
SetGlobal("FSFranzExists","AR0700",1)

Je préconise l'emploi simultané de deux variables car la première sert à la gestion des dialogues ; la seconde ne doit plus être touchée de tout le jeu.

Si vous désirez virer votre personnage du jeu, dans ce cas il suffit de créer par exemple une variable ("PNJDepart","GLOBAL",1) qui vous servira pour vos adieux au PNJ, puis à son retour dans votre groupe.

C'est là une méthode personnelle mais elle me semble adaptée.

Pour la CLUAConsole, le Debug Mode=1 doit se placer juste en dessous du Program Options, mais ceci est déjà expliqué dans le Chapitre 1 du tutorial.
Revenir en haut Aller en bas
Pépé Malin
Pépé Pizza
Pépé Pizza
Pépé Malin


Nombre de messages : 333
Age : 36
Date d'inscription : 29/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Ven 20 Juin 2008 - 0:05

Rimbaud a écrit:
LES VARIABLES

S'il y a bien quelque chose à retenir au sujet d'une variable, c'est qu'il faut toujours, autant que faire se peut, en changer la valeur dès qu'un évènement est survenu (dialogue terminé, item donné, cutscene enclenchée ect). Ce doit être systématique et au reste, j'avoue ne pas comprendre la réticence à jalonner de variables les blocs de codes puisque non seulement, ça permet de se familiariser avec cet aspect de WeiDU (qui sera votre lot quotidien) mais en plus, ça ne mange pas de pain et ne nuit pas au jeu.
Si vous ne changez pas la valeur d'une variable, celle-ci restera donc vérifiée et vous risquez d'avoir quelques problèmes, notamment si vous jonglez aves les apparitions successives de mêmes personnages sur une même map (je l'ai moi-même vécu, autant dire que ça vaccine).


Je tiens à insister également lourdement sur ce point. Faire augmenter une variable à chaque nouvelle étape est INDISPENSABLE, quelle que soit l'évolution ultérieure de cette variable par la suite.
Cette simple précaution appliquée systématiquement permettra d'éviter de très nombreux problèmes. Ca peut aller de trucs tout cons comme la simple répétition de dialogues, ou répétition d'apparition d'une créature qui se repèrent tout de suite à des trucs plus complexes et beaucoup plus chiants.
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 21:35

Merci beaucoup pour vos réponses. Même si je n'y avais pas répondu je les avais lu avec beaucoup d'intérêt.

J'ai repris la lecture des Chapitres et il y a un endroit qui me laisse perplexe. Il s'agit de la syntaxe de ce bloc:

IF ~~ THEN BEGIN PasQuestion
SAY @3
IF ~~ THEN REPLY @300 DO ~ LeaveParty()
EscapeArea()~ EXIT
END


Je me demandais si les retour à la ligne étaient interprétés par Weidu ou s'ils lui sont invisibles.
Je veux dire dans ce cas là est-il possible d'écrire par exemple

IF ~~ THEN BEGIN PasQuestion
SAY @3
IF ~~ THEN REPLY @300 DO ~ LeaveParty() EscapeArea()~ EXIT
END


Ou encore est-il possible de placer le EXIT à la ligne?

Mes questions peuvent peut être paraitre inutiles mais je veux absolument tout comprendre de la base même de la syntaxe.

PS: je viens de penser à autre chose. Si je veux que l'issue d'un dialogue rende mon interlocuteur (PNJ quelconque du mod) apeuré (cercle jaune) comment faire...
j'ai regardé sur Cette Page mais je n'ai pas trouvé ne sachant trop quoi chercher (fear ou scared n'ont rien donné)

Merci d'avance
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 21:42

Aucune question n'est inutile, si elles peuvent faire avancer le schmilblick.

Concernant tes préoccupations sur la syntaxe, tu peux agencer comme tu veux (la présentation choisie dans les tutoriaux est purement personnelle) du moment que tu respectes les espaces (les majuscules?) et que tu n'omettes aucun ~.

Concernant ton autre demande, je ne suis pas certaine car je ne l'ai jamais testé, mais tu peux essayer l'Action Panic(), de la façon suivante :

IF ~~ THEN BEGIN Label
SAY @
IF ~~ THEN REPLY @ DO ~Panic()~ EXIT
END

Il est marqué dans l'IESDP que cette action a pour effet de rendre fou de panique le PNJ (donc logiquement, un cercle jaune) et que ce dernier va se mettre à marcher de façon aléatoire sur la map. C'est bien ce que tu veux?

P.S : Cependant cette Action est donné en exemple dans un script et non un .d donc je suis doublement sceptique. Il faut vraiment le tester pour être sûr.


Dernière édition par Rimbaud le Sam 21 Juin 2008 - 22:44, édité 1 fois
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 21:50

Merci Rimbaud pour ta réponse très rapide Smile
Aussi, Panic() est exactement l'action que je cherchais!

Concernant la syntaxe, si je comprend bien les espaces sont importants, les retours à la ligne servent uniquement à la présentation?
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 21:53

Oui, tu peux tout écrire sur une ligne si tu veux, le seul problème, c'est que ce sera illisible. Il faut s'efforcer d'optimiser sa méthode de travail de façon à ce que lorsque tu reliras ton code, tu puisses le décrypter immédiatement, sinon autant se tirer une balle dans le pied...

Concernant le Panic(), ça m'en a tout l'air, mais comme j'ai dit, il faut tester. Au reste, signale-nous le résultat afin qu'on puisse par la suite faire une compilation de tous les problèmes rencontrés, et résolus, dans un topic spécial. ça servira pour tout le monde.

P.S : le Chapitre 9 du tutorial arrivera lundi.
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 21:59

Pas de problème de toute façon, mon objectif est de créer un PNJ "test" qui n'aura qu'un dialogue ayant comme issue l'intégration du pnj au groupe, l'EscapeArea, ou la panique.

Attention je viens de me poser une question sur le chapitre 7.3. Je fini de le lire voir si la réponse n'est pas plus loin et je reviens editer ce message pour la poser Razz
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 21:59

Je prends note de ton EDIT et comme je l'ai dit, Chapitre 9 sans faute, lundi. Very Happy

EDIT : t'as qu'à poster à la suite, j'en ai rien à foutre de ton double-post! Very Happy


Dernière édition par Rimbaud le Dim 29 Juin 2008 - 7:20, édité 1 fois
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 22:26

Bon bon... j'ai bien compris l'exemple du point:
3/ LES INTERVENTIONS DE MEMBRES : LA CHAIN


Mais je n'arrive pas à me servir de ton exemple pour faire quelque chose d'encore plus simple pourtant Mad (ça fait un petit moment que j'essaye)

Sans vouloir abuser de ta patience, pourrais-tu me donner un exemple pour un banal dialogue de 3 répliques comme celui ci:

@1 Bonjour, je suis Joe, aventurier. Que diriez vous d'une fine lame pour vous porter main forte? // joe
@2 Je serai d'avis d'accepter son aide, <CHARNAME>, il à l'air courageux // Minsc
@100 Bien tu peux te joindre à nous. // charname


Dans ton exemple l'intervention d'un membre arrive plus tard, et il y a des dialogues normaux à la fin. Ici je ne comprend pas comment commencer le 1er bloc, ni comment faire le dernier.

PS: Oui, j'ai hâte de voir le chap 9, surtout s'il permet de tester son petit mod ^^
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 22:32

En fait, la CHAIN est surtout valable si tu as une multitude de personnages qui ramènent leur fraise dans ta conversation.

En l'occurence ici, il n'y a que Joe, Minsc et Charname, donc je te propose d'utiliser un APPEND, c'est-à-dire:


(.d de Joe la Frite)

IF ~~THEN BEGIN Label1
SAY @
IF ~~ THEN EXTERN MINSCJ Label2
END

APPEND MINSCJ

IF ~~ THEN BEGIN Label2
SAY @
IF ~~ THEN REPLY @ EXIT
END

END


--> MINSCJ correspond au fichier contenant tous les dialogues de Minsc In Party

P.S : j'ai de la patience à revendre lorsqu'il s'agit d'aider quelqu'un dans la mémerde. Cool
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 22:37

Ah effectivement, je me prenais la tête avec le CHAIN ^^'
C'est parfait!
ah oui, si Minsc ne fait pas partie du groupe. La discutions va bien passer de @1 à @3?
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 22:40

Gosh, comme d'habitude j'omets toujours ce détail important. Voici le bloc complet:

IF ~~THEN BEGIN Label1
SAY @
IF ~InParty("Minsc")~ THEN EXTERN MINSCJ Label2
IF ~!Inparty("Minsc")~ THEN REPLY @ EXIT
END

APPEND MINSCJ

IF ~~ THEN BEGIN Label2
SAY @
IF ~~ THEN REPLY @ EXIT
END

END


>> Le ! placé devant un trigger signifie son contraire
>> Le APPEND doit toujours rester en fin de fichier .d
Revenir en haut Aller en bas
-Gaurox-
Hors de la Fosse aux Driders



Nombre de messages : 28
Date d'inscription : 16/06/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 22:43

Ah ça change tout. Donc je suppose que ! signifie "l'inverse de" ?
Merci pour ton aide Smile

EDIT: oula j'avais pas vue les 2 dernières lignes de ton post. La fatigue.


Dernière édition par -Gaurox- le Sam 21 Juin 2008 - 22:44, édité 1 fois
Revenir en haut Aller en bas
Administration Générale
Fils de Weimer
Administration Générale


Nombre de messages : 666
Date d'inscription : 28/05/2008

Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1Sam 21 Juin 2008 - 22:44

En effet, le ! signifie exactement cela. Par exemple:

!InMyArea
!SeeUntel

Ect

Bon courage Wink
Revenir en haut Aller en bas
Contenu sponsorisé





Les variables Empty
MessageSujet: Re: Les variables   Les variables Icon_minitime1

Revenir en haut Aller en bas
 
Les variables
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» coder plusieurs variables - un fichier .d

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
LEGENDES :: LE MONDE DU MODDING :: Maîtrise :: Apprentissage-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser