Comment ne téléporter que les PJ présents dans une map d'intérieur ?
Posté : mar. 16 oct. 2018, 16:26
Je suis en train de bosser sur une map "parallèle" à une version existante d'une map originale d'IWD2 (Targos, AR1100). Il s'agira d'une version avec des bâtiments restaurés : nouvelles portes, nouvelles anims... plutôt que de tout "coller" via des DOORS ou des anims sur une map déjà passablement chargée, j'ai préféré en faire une seconde. Selon l'avancement dans le jeu on sera donc balancé vers l'une où l'autre de ces maps d'extérieur. Le truc c'est que je voulais conserver les maps d'intérieurs (bâtiments) existantes. Du coup, lorsqu'on sort des bâtiments, il a été nécessaire de faire un script, attaché à la Travel zone, pour renvoyer les PJ dans la bonne map de Targos.
J'ai dans un premier temps voulu utiliser
mais sous outre que ce n'est pas sélectif (comment savoir quels PJs sont entrés dans le bâtiment et quels PJ sont restés dehors ?), je n'arrive pas redonner le focus aux PJs.
Je suis donc passé par une cutscene découpée en deux temps :
Le script attaché à la Travel Zone de la map d'intérieur :
Et la CutScene (LUA1150a.bcs) :
Ça marche nickel... sauf qu'évidemment les 6 PJ sont transportés. Je n'arrive pas à faire en sorte que seuls les PJs présents dans la map d'intérieur (AR1107 dans mon test) soit sélectionnés et téléportés.
J'ai essayé avec les trigger CurrentAreaIs(player1,1107), Range, NearLocation... mais aveupas...
Si vous avez une idée...
J'ai dans un premier temps voulu utiliser
Code : Tout sélectionner
IF
Clicked([PC])
Global("AR1150_active","GLOBAL",1)
THEN
RESPONSE #100
MoveGlobal("AR1150",Player1,[430.1080])
MoveGlobal("AR1150",Player2,[430.1080])
...
Je suis donc passé par une cutscene découpée en deux temps :
Le script attaché à la Travel Zone de la map d'intérieur :
Code : Tout sélectionner
IF
Clicked([PC])
Global("AR1150_active","GLOBAL",1)
THEN
RESPONSE #100
CutSceneId(Myself)
StartCutSceneMode()
ClearActions(Player1)
ClearActions(Player2)
ClearActions(Player3)
ClearActions(Player4)
ClearActions(Player5)
ClearActions(Player6)
MultiPlayerSync()
EndCutSceneMode()
StartCutScene("LUA1150a")
END
Code : Tout sélectionner
IF
True()
THEN
RESPONSE #100
CutSceneId(Player1)
LeaveAreaLUA("AR1150","",[430.1080],12)
END
IF
True()
THEN
RESPONSE #100
CutSceneId(Player2)
LeaveAreaLUA("AR1150","",[430.1080],12)
END
...
J'ai essayé avec les trigger CurrentAreaIs(player1,1107), Range, NearLocation... mais aveupas...
Si vous avez une idée...