Page 1 sur 1
DEFINE_PATCH_FUNCTION foiré
Posté : mar. 29 oct. 2024, 09:29
par deratiseur
j'essaie de créer un DEFINE_PATCH_FUNCTION pour simplifier une instruction répétée 120 fois :
Code : Tout sélectionner
DEFINE_PATCH_FUNCTION PX_INTERPLAN_SORTS STR_VAR parchemin = ~~
BEGIN
COPY_EXISTING ~pxagenob.sto~ ~override~ ADD_STORE_ITEM %parchemin% LAST #1 #0 #0 ~IDENTIFIED~ #5
END
Pour l'appeler comme ça : LPF PX_INTERPLAN_SORTS INT_VAR parchemin = pxf2ex2a END
Sauf que weidu bloque systématiquement sur le DEFINE_PATCH_FUNCTION :
[DERATS_MAGASIN_2/SETUP-DERATS_MAGASIN_2.TP2] PARSE ERROR at line 1941 column 8-20
Near Text: COPY_EXISTING
GLR parse error
Pourquoi ? Une fonction ne peut pas être une COPY ?
Re: DEFINE_PATCH_FUNCTION foiré
Posté : mar. 29 oct. 2024, 09:39
par Selphira
COPY est une instruction de type ACTION, et tu tentes de la lancer dans un contexte de PATCH.
Je connais 2 solutions :
Englober ton COPY_EXISTING dans une instruction INNER_ACTION
Code : Tout sélectionner
INNER_ACTION BEGIN
COPY_EXISTING ~pxagenob.sto~ ~override~ ADD_STORE_ITEM %parchemin% LAST #1 #0 #0 ~IDENTIFIED~ #5
END
Créer une méthode DIMORPHIC
Code : Tout sélectionner
DEFINE_DIMORPHIC_FUNCTIONPX_INTERPLAN_SORTS STR_VAR parchemin = ~~
BEGIN
COPY_EXISTING ~pxagenob.sto~ ~override~ ADD_STORE_ITEM %parchemin% LAST #1 #0 #0 ~IDENTIFIED~ #5
END
Re: DEFINE_PATCH_FUNCTION foiré
Posté : mar. 29 oct. 2024, 10:01
par deratiseur
OK, avec
Code : Tout sélectionner
DEFINE_DIMORPHIC_FUNCTION PX_INTERPLAN_SORTS STR_VAR parchemin = ~~
ça se compile.
Mais l'instruction
Refuse de fonctionner, bloque sur "ERROR: cannot convert pxf2ex2a or %pxf2ex2a% to an integer"
j'ai essayé en ajoutant/enlevant des % et des ~ mais je n'y arrive pas. Comment ai-je pu programmer des mods en étant autant bidon avec Weidu, ça me dépasse....
Re: DEFINE_PATCH_FUNCTION foiré
Posté : mar. 29 oct. 2024, 10:13
par Selphira
C'est normal, dans la définition de la fonction tu utilises STR_VAR tandis qu'à l'appel tu utilises INT_VAR, remplace le par STR_VAR et ça devrait aller.
Re: DEFINE_PATCH_FUNCTION foiré
Posté : mar. 29 oct. 2024, 10:49
par deratiseur
Ok, ça marche. Je te remercie. Que ferais sans toi ? (et sans JohnBob, FreddyGwendo, Zranoff et d'autres.... je suis dépendant des autres
)
Re: DEFINE_PATCH_FUNCTION foiré
Posté : mar. 29 oct. 2024, 11:36
par deratiseur
Heu non, en fait ça s'installe mais c'est complètement foiré. Tous les entrées dans le magasin ont comme nom d'objet PARCHEMI et le paramètre "timer" calé à 78 (ça doit être le patchage pour le N manquant^^). Où est-ce que ça foire ?
Testé, ça ne marche pas mieux en remplaçant
LPF PX_INTERPLAN_SORTS INT_VAR parchemin = pxf2ex2a END
par
LPF PX_INTERPLAN_SORTS INT_VAR parchemin = %pxf2ex2a% END
Re: DEFINE_PATCH_FUNCTION foiré
Posté : mer. 30 oct. 2024, 07:25
par deratiseur
Bon, oubliez ça, j'ai fais autrement (comme d'habitude). Sujet clot. merci encore Selphira.