Page 1 sur 1

[SCRIPT] Apparition d'une trappe et synchronisation de la chute

Posté : dim. 22 janv. 2017, 19:00
par Cocrane
J'ai crée une trappe où le sol se dérobe sous les pieds du pnj. On descend d'un niveau et on se fait mal à la réception. ^^ (la suite étant de pouvoir utiliser la corde).

Globalement ça marche bien:
- la door trappe apparait à l'écran.
- le PNJ tombe (change de carte)
- le pnj est couché au sol et se fait mal.


Il reste deux points qui me gène:
- si plusieurs PNJ passent sur la même trappe presque en même temps, un seul tombe et l'autre continue sa route.
- parfois, il y a un décalage de temps entre l'apparition de la trappe et la chute (en gros 1 à 2 sec). Du coup, le PNJ qui se déplaçait n'est plus sur la trappe lorsqu'il disparait. Ca fait moche. ^^

Cocrane

Posté : dim. 22 janv. 2017, 19:21
par Freddy_Gwendo
Sans ton script, ça va être coton de te répondre. ;)

Posté : dim. 22 janv. 2017, 22:39
par Cocrane
IF
Entered([0])
THEN
RESPONSE #100

// Apparition du trou
CloseDoor("TROU_1")

// Piège déclenché
SetGlobal("Chute_trou_1","GLOBAL",1)

//ClearActions(LastTrigger)

// Chûte de la créature
ActionOverride(LastTrigger,LeaveAreaLUA("COM018","",[418.545],10))
END


Voilà pour le coton. ^^

Cocrane

Posté : jeu. 26 janv. 2017, 21:47
par Freddy_Gwendo
Essaie ceci :

Code : Tout sélectionner

IF
  ...
THEN
  RESPONSE #100
    SetInterrupt(FALSE)

    ....

    SetInterrupt(TRUE)
END
Sinon, tu peux toujours ajouter des Wait(n) entre plusieurs actions.


Par ailleurs, as-tu coché la case rendant le piège réutilisable dans le fichier .ARE ?

Posté : lun. 03 avr. 2017, 18:18
par Cocrane
Pas encore testé avec l'interruption.

Pas de RESET car le trou reste présent une fois activé.


Question:
Comment expliquer qu'une créature ennemie de type élémentaire passe sur le trou mais ne tombe pas?
C'est stylé pour un élémental d'air mais pas une élémental de terre c'est plus dure à justifier. :-)

A noter, je n'ai pas encore testé avec un ennemie autre.

Je pense qu'on est sur le même problème que sur mon trigger de porte. Entered n'est pas adapté pour des créatures autre que le groupe.

Cocrane

Posté : sam. 21 oct. 2017, 17:06
par Cocrane
Je relance le sujet.

Si c'est une créature du groupe, le code agit et elle déplacée dans l'autre carte.

Si on est en plein combat, la créature ennemie avance sur le trou (on peut même la laisser sur la trappe), le code se déclenche (j'ai un mi un témoin) mais le déplacement ne se produit pas.
IF
//Entered([0])
IsOVerMe([0])
THEN
RESPONSE #100

SetInterrupt(FALSE)
// Chûte de la créature
ActionOverride(LastTrigger,LeaveAreaLUA("COM020","",[131.665],10))

// Apparition du trou
CloseDoor("TROU_1")
SetInterrupt(TRUE)

// Piège déclenché
SetGlobal("Chute_trou_1","GLOBAL",1)


// témoin
CreateCreature("COSTATL",[574.685],6)
END

De ce que je comprends, LastTrigger n'a pas l'air de fonctionner avec ce code. "ActionOverride(LastTrigger,LeaveAreaLUA("COM020","",[131.665],10)) "

Ce problème est il connu?


Je vais adapter un de mes sorts. A priori, j'ai bon espoir.

Je viens de tester et c'est le même résultat. J'ai l'impression qu'il faut le nom en dur de la créature.

A voir en testant avec un RANGE(nom d'une créature potentiellement présente,1) mais ça ne me semble pas fiable...


Cocrane