Page 1 sur 1

[SCRIPT] Pourquoi le script d'une carte continue-t-il à tourner dans une autre zone ?

Posté : lun. 08 juin 2015, 22:02
par Cocrane
Voici un cas concret pour expliquer mon problème.

Charname traverse une AREA 1. Le script AREA 1 tourne et la condition n'est pas remplie.

Charname accède a une 2nd zone AREA 2. Le script AREA 2 tourne à son tour.

Les choix de Charname dans AREA 2 font que les conditions du script de AREA 1 sont remplies et je constate que l'effet se déclenche aussitôt dans AREA 2.

Je prends conscience alors que lorsque j'ai quitté l'AREA 1 les scripts ont continué à tourner en boucle alors que je pensais qu'ils s'étaient arrêtés. Pour moi, le script se mettait à tourner à nouveau si Charname retournait dans l'AREA 1 pas avant.


D'où ma question: est il possible de faire tourner le script de l'AREA 1 uniquement lorsque l'on est dedans ?

J'ai du mal à imaginer que ça puisse fonctionner autrement.

Posté : lun. 08 juin 2015, 23:04
par Isaya
Le script des "master area" (MASTAREA.2DA) tourne tant que tu ne vas pas dans une nouvelle "master area" : par exemple les zones principales de BG, chaque niveau d'un souterrain (en général). Dans les zones secondaires, par exemple une simple maison d'une ville, le script de la "master area" continue de tourner. Voici une discussion (en anglais) qui en parle.

Pour annuler l'autre script, il faudrait en principe que ta zone 2 soit déclarée en tant que "master area". Mais parfois il y a des pièges à éviter (cf la discussion et une alerte sur le fait de ne pas repartir de sauvegarde où le lieu a déjà été visité).

Ou peut-être que tu utilises le trigger InMyArea avec un personnage de la zone 1 en indiquant Player1 comme personne à surveiller.

Posté : mar. 09 juin 2015, 22:27
par Cocrane
Isaya,
je comprends mieux d'où vient ce phénonème suite à ton explication.


J'ai cherché un test supplémentaire permettant à mon script de se déclencher uniquement si le Charname est présent sur la carte n°1.

J'ai donc ajouté ce code: AreaCheckObject("AR7400",PROTAGONIST)

Et ça marche. ^^