Freddy_Gwendo a écrit :Ouaip !
Je n'ai pas testé (écrit au vol), mais ceci devrait fonctionner :
Code : Tout sélectionner
COPY_EXISTING ~AR1203.are~ ~override~
READ_ASCII 0x94 old_script (8)
PATCH_IF ("%oldscript%" STRING_EQUAL "") OR ("%old%_script"~ STRING_COMPARE_CASE "none" = 0) BEGIN // Si la carte n'a pas de script
WRITE_ASCII 0x94 AR1203 #8
// On assigne le script AR1203 à la carte
INNER_ACTION BEGIN
COMPILE ~%MOD_FOLDER%/Tonrépertoire/tonscript.baf~ ~override/AR1203.bcs~
// On compile ton script sous le nom AR1203
END
END ELSE BEGIN
// Si la carte possède un script
INNER_ACTION BEGIN
EXTEND_TOP ou EXTEND_BOTTOM ~%old_script%.bcs~ ~%MOD_FOLDER%/Tonrépertoire/tonscript.baf~
// On ajoute ton bout de script à l'existant
END
END
BUT_ONLY
Hello Freddy,
après quelques ajustement, et installation avec ce code, il semblerait que le script ne se rattache pas au fichier AR1203.are. Aucune idée si le blocage se fait à la lecture de l'ancien script ou au moment de patcher le fichier, le "%old%_script%"~ me faisait un message d'erreur à cause du "~"
COPY_EXISTING ~AR1203.are~ ~override~
READ_ASCII 0x0094 old_script (8)
PATCH_IF ("%oldscript%" STRING_EQUAL "") OR ("%old%_script%" STRING_COMPARE_CASE "None" = 0) BEGIN
// Si la carte n'a pas de script
WRITE_ASCII 0x0094 ~AR1203~
// On assigne le script AR1203 à la carte
INNER_ACTION BEGIN
COMPILE ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~ ~override/AR1203.bcs~
// On compile ton script sous le nom AR1203
END
END ELSE BEGIN
// Si la carte possède un script
INNER_ACTION BEGIN
EXTEND_BOTTOM ~AR1203.bcs~ ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~
// On ajoute ton bout de script à l'existant
END
END
BUT_ONLY
Le fichier joint ar1203.jpg n’est plus disponible.
Cela dit l'expression suivante fonctionne bien:
EXTEND_BOTTOM ~AR1203.bcs~ ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~
COPY_EXISTING ~AR1203.are~ ~override~
WRITE_ASCII 0x0094 ~AR1203~
BUT_ONLY
Simplement pour des raisons de compatibilité je ne voudrais pas écraser le fichier ou altérer de manière inadéquate ces deux fichiers
EDIT 1: Il semblerait qu'en modifiant de cette manière cela fonctionne:
COPY_EXISTING ~AR1203.are~ ~override~
READ_ASCII 0x0094 old_script (8)
PATCH_IF ("%oldscript%" STRING_EQUAL "") OR ("%old%_script%" STRING_COMPARE_CASE "none" = 0) BEGIN // Si la carte n'a pas de script
WRITE_ASCII 0x0094 ~AR1203~ // On assigne le script AR1203 à la carte
INNER_ACTION BEGIN
COMPILE ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~ ~override/AR1203.bcs~ // On compile ton script sous le nom AR1203
END
END ELSE BEGIN // Si la carte possède un script
WRITE_ASCII 0x0094 ~AR1203~
INNER_ACTION BEGIN
EXTEND_BOTTOM ~AR1203.bcs~ ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~ // On ajoute ton bout de script à l'existant
END
END
BUT_ONLY
Mais on revient au problème de modifier le script attaché à la carte s'il elle en possédait déjà un, comme si dans la première partie de l'expression le nom du script n'était pas vérifié.
EDIT 2 : Cela semble fonctionner en modifiant les éléments suivants
COPY_EXISTING ~AR1203.are~ ~override~
READ_ASCII 0x0094 old_script (8)
PATCH_IF ("%oldscript%" STRING_EQUAL "") OR ("%old%_script%" STRING_COMPARE_CASE "none"
= 0) BEGIN // Si la carte n'a pas de script
WRITE_ASCII 0x0094 ~AR1203~ // On assigne le script AR1203 à la carte
INNER_ACTION BEGIN
COMPILE ~El[r]in_Dragosh/Scripts/
AR1203.BAF~ ~override/AR1203.bcs~ // On compile ton script sous le nom AR1203
END
END ELSE BEGIN // Si la carte possède un script
WRITE_ASCII 0x0094 ~AR1203~
INNER_ACTION BEGIN
EXTEND_BOTTOM ~AR1203.bcs~ ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~ // On ajoute ton bout de script à l'existant
END
END
BUT_ONLY
Ce qui est étrange c'est que Weidu transformait bien mon fichier [EL]1203.BAF en AR1203.bcs dans le dossier override mais ne le fait plus après cette modification.
EDIT 3: J'ai remplacé la ligne suivante
COPY_EXISTING ~AR1203.are~ ~override~
READ_ASCII 0x0094 old_script (8)
PATCH_IF ("%oldscript%" STRING_EQUAL "") OR ("%old%_script%" STRING_COMPARE_CASE "none"
= 0) BEGIN // Si la carte n'a pas de script
WRITE_ASCII 0x0094 ~AR1203~ // On assigne le script AR1203 à la carte
INNER_ACTION BEGIN
COMPILE ~El[r]in_Dragosh/Scripts/AR1203.BAF~ ~override/AR1203.bcs~ // On compile ton script sous le nom AR1203
EXTEND_BOTTOM ~AR1203.bcs~ ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~ // On ajoute ton bout de script à l'existant/ créé le fichier s'il n'existe pas
END
END ELSE BEGIN // Si la carte possède un script
INNER_ACTION BEGIN
EXTEND_BOTTOM ~AR1203.bcs~ ~El[r]in_Dragosh/Scripts/[EL]1203.BAF~ // On ajoute ton bout de script à l'existant/ créé le fichier s'il n'existe pas
END
END
BUT_ONLY