Page 1 sur 1

Entered(), pourquoi ça ne marche pas ?

Posté : ven. 21 avr. 2023, 21:44
par deratiseur
Je voudrais crée une rencontre aléatoire, et pour l'instant je teste un script associé à ma zone qui fait :

Code : Tout sélectionner

IF
	Global("pxl2clientkriol","GLOBAL",0)
	RandomNum(10,1)
THEN
	RESPONSE #100
	SetGlobal("pxl2clientkriol","GLOBAL",1)
	CreateCreature("pxl2ckri",[187.297],3)
END
ça marche mais ce n'est pas du tout aléatoire parce-que le script tourne en boucle, et au bout de 3-4 secondes il fini toujours par faire 1 et la créature apparait.

Si je rajoute

Code : Tout sélectionner

IF
	Entered([ANYONE])
	Global("pxl2clientkriol","GLOBAL",0)
	RandomNum(10,1)
THEN
	RESPONSE #100
	SetGlobal("pxl2clientkriol","GLOBAL",1)
	CreateCreature("pxl2ckri",[187.297],3)
END
Ca ne marche plus.

Alors j'ai essayé :

Code : Tout sélectionner

IF
	Entered([ANYONE])
THEN
	RESPONSE #100
	CreateCreature("pxl2ckri",[187.297],3)
END
Et ça ne crée pas la créature. Pourquoi ? Qu'est ce qui foire avec Entered ? (j'ai essayé aussi avec Entered(Protagonist))

Re: Entered(), pourquoi ça ne marche pas ?

Posté : ven. 21 avr. 2023, 21:59
par Le Marquis
Je n'y connais rien au modding donc je te fais une suggestion idiote : dans ta première version qui fonctionne, tu ne pourrais pas rajouter un timer qui fasse que le script ne soit lu qu'une fois par minute ou quelque chose du genre ?

Re: Entered(), pourquoi ça ne marche pas ?

Posté : ven. 21 avr. 2023, 22:45
par rivvers
Il me semble que Entered() n'est utilisable pour les zones délimitées, notamment les pièges.

Re: Entered(), pourquoi ça ne marche pas ?

Posté : sam. 22 avr. 2023, 09:29
par deratiseur
Ok, j'ai checké tous les entered disponibles dans les script de BG2 certains renvoient à un script de zone qui n'est associé à aucune zone, d'autres renvoi à un script de zone mais en fait un proximity trigger de cette zone donc Rivvers est dans le vrai. l'IEDCP mériterait d'être mis à jour. Bon, je vais faire autrement.

Alors question subsidiaire : si j'écris

Code : Tout sélectionner

IF
	GlobalGT("pxl2clientspawn","GLOBAL",4)
THEN
	RESPONSE #10
	SetGlobal("pxl2clientspawn","GLOBAL",0)
	CreateCreature("pxl2ckri",[187.297],3)
	RESPONSE #90
	SetGlobal("pxl2clientspawn","GLOBAL",0)
END
le "pxl2clientspawn" étant incrémenté par l'utilisation du chaudron ou la discussion avec Agenor. Ça fait bien 10% de chance de spawner le client (10/100 total) ou le 10/90 c'est pas comme ça que ça marche, c'est plus complexe ?

(Si ça marche comme ça, je devrait pouvoir faire suivant le nombre de clients 1/1/1/1/1/1/1/93.)

Edit :heu, non je peux pas faire comme ça puisqu'il il aura des clients "récurrents" et d'autres "one time". Arg quel casse tête !

Re: Entered(), pourquoi ça ne marche pas ?

Posté : sam. 22 avr. 2023, 11:08
par rivvers
Du coup je ne sais de quoi tu as exactement besoin mais pour la question subsidiaire :
C'est comme ça que ça marche mais c'est aussi plus fin : le #X est un ratio, pas un pourcentage.

Par exemple, si tu veux du 33,333%, tu peux mettre du 1/1/1, ou même du 42/42/42