Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

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

Regroupe tous les sujets sur les commandes, les fonctions, les routines, les modifications des fichiers systèmes (ids, 2da...)...
Répondre
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne

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

.

Message 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
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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

...

CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message 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? :$
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message 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
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message 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?
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message 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
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Répondre

Retourner vers « Programmation WeiDU »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité