Salut Armand, bienvenue dans cette section !
La solution de Rigel est un bon début mais il pose problème car les deux blocs peuvent devenir successivement vrais ce qui aura pour conséquence de créer deux fois #VMonk2.
Le mieux est de regrouper TimeGT("18") et TimeLT("5") dans un seul bloc de script et de placer un OR(2) au dessus comme suit :
- Code:
-
IF
OR(2)
TimeGT("18")
TimeLT("5")
THEN
RESPONSE #100
Wait(1)
CreateCreature("#VMonk2",[1441.1458],12)
END
Le OR a pour rôle de rendre le bloc de script effectif si :
- soit il est plus de 18h,
- soit il est moins de 5h.
Ensuite il y a un gros défaut dans ce bloc de script : il n'y a pas assez de conditions de déclenchement, et surtout il n'y a pas de conditions qui vont venir bloquer ce script : il suffit qu'il soit plus de 18h ou moins de 5h pour que ce bloc se répète indéfiniment dans le temps et donc créé une quantité infinie de #VMonk2. Il faut donc placer une variable en IF et l'augmenter d'un point en THEN pour que les conditions de déclenchement de scripts ne soient plus vraies.
Je te propose le bloc suivant :
- Code:
-
IF
OR(2)
TimeGT("18")
TimeLT("5")
Global("#VMonk2Exists","GLOBAL",0)
THEN
RESPONSE #100
Wait(1)
CreateCreature("#VMonk2",[1441.1458],12)
SetGlobal("#VMonk2Exists","GLOBAL",1)
END
Ainsi, quand #VMonk2 sera créé, la variable #VMonk2Exists ne sera plus à 0 mais à 1, donc le bloc ne s'exécutera qu'une seule fois.
Pour finir, la commande permettant de faire apparaître une créature à côté d'une autre créature est la commande CreateCreatureObject("NomdelaCréature","CréatureCiblée").
Dans ton cas la créature créée est #VMonk2 et la créature cible est Player1 donc ça donnera en définitive :
- Code:
-
IF
OR(2)
TimeGT("18")
TimeLT("5")
Global("#VMonk2Exists","GLOBAL",0)
THEN
RESPONSE #100
Wait(1)
CreateCreatureObject("#VMonk2",Player1)
SetGlobal("#VMonk2Exists","GLOBAL",1)
END
Voilà, avec ce script, ton moine apparaître une fois entre 18h et 5h à côté de Charname.
Concernant le dialogue, juste quelques rappels :
- les fichiers .d ne déclenchent pas les dialogues, ces fichiers contiennent la façon dont sont codés les dialogues, la façon dont les répliques et les réponses s'enchaînent, ni plus ni moins.
- le déclenchement des dialogues se fait avec la commande StartDialogueNoSet() dans un fichier SCRIPT ou bien en cliquant sur le PNJ si le dialogue doit être déclenché par le joueur.
Donc il faudra que quelque part dans tes scripts, tu places un bloc qui déclenchera le dialogue entre tes personnages. Si j'ai bien compris, c'est #VMonk1 qui débute le dialogue avec #VMonk2 donc dans les scripts de #VMonk1, il faudra faire un bloc comprenant un StartDialogueNoSet("#VMonk2").
Pour finir, il faut que tu mettes dans le #VMonk2.d :
BEGIN ~#VMonk2~
pour que ton mod s'installe correctement et puisse coder et installer le dialogue.