Page 1 sur 1

[Weidu] Vérifier la présence d'une carte avant LAUNCH_PATCH_FUNCTION

Posté : dim. 23 juin 2019, 10:40
par Faust
Salut,

Comment faire vérifier la présence d'une carte dans l'override avant de copier l'originale et/ou de la modifier? Weidu ne semble pas apprécier le code suivant:

Code : Tout sélectionner

ACTION_IF FILE_EXISTS ~override/AR0406.are~ THEN BEGIN
LAUNCH_PATCH_FUNCTION fj_are_structure
INT_VAR
fj_loc_x = 1135
fj_loc_y = 1482
fj_orientation = 0
STR_VAR
fj_structure_type ="actor"
fj_name ="Damant"
fj_cre_resref ="D[a]mant"
fj_dlg_resref ="D[a]mant"
END


LAUNCH_PATCH_FUNCTION fj_are_structure
INT_VAR
fj_loc_x = 2512
fj_loc_y = 303
fj_orientation = 4
STR_VAR
fj_structure_type ="actor"
fj_name ="Kasumi~"
fj_cre_resref ="K[A]SUMI"
fj_dlg_resref ="K[A]SUMI"
BUT_ONLY_IF_IT_CHANGES 
END ELSE BEGIN


COPY_EXISTING ~AR0406.are~ ~override/AR0406.are~


LAUNCH_PATCH_FUNCTION fj_are_structure
INT_VAR
fj_loc_x = 1135
fj_loc_y = 1482
fj_orientation = 0
STR_VAR
fj_structure_type ="actor"
fj_name ="Damant"
fj_cre_resref ="D[a]mant"
fj_dlg_resref ="D[a]mant"
END


LAUNCH_PATCH_FUNCTION fj_are_structure
INT_VAR
fj_loc_x = 2512
fj_loc_y = 303
fj_orientation = 4
STR_VAR
fj_structure_type ="actor"
fj_name ="Kasumi~"
fj_cre_resref ="K[A]SUMI"
fj_dlg_resref ="K[A]SUMI"
BUT_ONLY_IF_IT_CHANGES 
END
Le message d'erreur suivant apparait:
► Afficher le texte

Posté : dim. 23 juin 2019, 10:52
par Freddy_Gwendo
Tu lances une PATCH function dans un bloc action. Ça ne peut pas marcher.

Code : Tout sélectionner

ACTION_IF FILE_EXISTS ~override/AR0406.are~ BEGIN

  COPY_EXISTING ~AR0406.are~ ~override/AR0406.are~

    LAUNCH_PATCH_FUNCTION fj_are_structure INT_VAR fj_loc_x = 1135 fj_loc_y = 1482 fj_orientation = 0 STR_VAR fj_structure_type ="actor" fj_name ="Damant" fj_cre_resref ="D[a]mant" fj_dlg_resref ="D[a]mant" END

    LAUNCH_PATCH_FUNCTION fj_are_structure INT_VAR fj_loc_x = 2512 fj_loc_y = 303 fj_orientation = 4 STR_VAR fj_structure_type ="actor" fj_name ="Kasumi~" fj_cre_resref ="K[A]SUMI" fj_dlg_resref ="K[A]SUMI" END
  BUT_ONLY

END ELSE BEGIN

...


Posté : dim. 23 juin 2019, 10:56
par Faust
Freddy_Gwendo a écrit :Tu lances une PATCH function dans un bloc action. Ça ne peut pas marcher.

Code : Tout sélectionner

ACTION_IF FILE_EXISTS ~override/AR0406.are~ BEGIN

  COPY_EXISTING ~AR0406.are~ ~override/AR0406.are~

    LAUNCH_PATCH_FUNCTION fj_are_structure INT_VAR fj_loc_x = 1135 fj_loc_y = 1482 fj_orientation = 0 STR_VAR fj_structure_type ="actor" fj_name ="Damant" fj_cre_resref ="D[a]mant" fj_dlg_resref ="D[a]mant" END

    LAUNCH_PATCH_FUNCTION fj_are_structure INT_VAR fj_loc_x = 2512 fj_loc_y = 303 fj_orientation = 4 STR_VAR fj_structure_type ="actor" fj_name ="Kasumi~" fj_cre_resref ="K[A]SUMI" fj_dlg_resref ="K[A]SUMI" END
  BUT_ONLY

END ELSE BEGIN

...

Est-ce que tu aurais une idée de comment faire? :$

Posté : dim. 23 juin 2019, 10:58
par Freddy_Gwendo
Essaie le code que je t'ai donné: j'ai rajouté le COPY_EXISTING après l'ACTION_IF. ;)

Et je viens de m'apercevoir que tu as oublié un END final dans ton code (peut-être un mauvais copie-coller).

Ceci dit, je ne comprends pas pourquoi tu testes la présence du fichier dans l'override puisque tu le patches de la même manière.

Posté : dim. 23 juin 2019, 11:18
par Faust
Freddy_Gwendo a écrit :Essaie le code que je t'ai donné: j'ai rajouté le COPY_EXISTING après l'ACTION_IF. ;)

Et je viens de m'apercevoir que tu as oublié un END final dans ton code (peut-être un mauvais copie-coller).

Ceci dit, je ne comprends pas pourquoi tu testes la présence du fichier dans l'override puisque tu le patches de la même manière.
Merci Freddy!
► Afficher le texte

Posté : dim. 23 juin 2019, 11:52
par Faust
On a du mal se comprendre, ce que tu as ajouté copie juste le fichier du jeu tandis que je veux patcher le fichier déjà présent dans l'override, j'ai deux possibilités: copier dans l'override un fichier qui n'y est pas, et le patcher, ou patcher un fichier qu'y est déjà; je ne veux pas écraser les modifications du fichiers dans l'override qui ont été apportées par un autre mod, juste le patcher. Comme il s'agit d'un fichier ARE, je suis un peu bloqué.

Une idée?

Posté : dim. 23 juin 2019, 12:12
par Freddy_Gwendo
COPY_EXISTING copie le fichier existant dans l'ordre suivant : override, puis bif s'il ne se trouve pas dans l'override.

Posté : dim. 23 juin 2019, 12:25
par Faust
Freddy_Gwendo a écrit :COPY_EXISTING copie le fichier existant dans l'ordre suivant : override, puis bif s'il ne se trouve pas dans l'override.
D'accord! Merci pour tes lumières Freddy, je comprends mieux ta précédente question! Donc pas besoin du ACTION_IF FILE_EXISTS ~override/AR0406.are~ BEGIN, dans tout les cas j'ai besoin de patcher le fichier ARE, je peux directement mettre COPY_EXISTING ~AR0406.are~ ~override/AR0406.are~?

Je viens de comprendre la différence,
COPY_EXISTING est utilisé pour un fichier du jeu tandis que COPY est utilisé pour un fichier d'un mod