Page 1 sur 1

Commande ADD_SPELL : il manque un truc

Posté : dim. 03 oct. 2021, 12:14
par deratiseur
SI j'utilise la commande ADD_SPELL pour rajouter un sort au SPELL.IDS et qu'il n'y a pas de place (comme pour les sorts de niveau 9), le sort n'est tout simplement pas installé.

Par exemple :

Code : Tout sélectionner

ADD_SPELL ~Derats_Magasin_2/Sorts/pxl2assa.spl~ 2 9 WIZARD_PX_ENERGY_ASSAULT    SPRINT current_spell_res "%DEST_RES%"    SAY NAME1 @6091    SAY UNIDENTIFIED_DESC @6092
COPY ~Derats_Magasin_2/Objets/parcho.itm~ ~override/pxl2assa.itm~    SAY NAME2 @6091    SAY DESC @6092    LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 1 price = 10000 STR_VAR spell = EVAL ~%current_spell_res%~ END
S'il n'y a a plus d'emplacement de sorts de niveau 9, j'ai un message d'erreur et le sort n'est pas installé. Le parchemin est crée mais il a comme références SPWI901, à tous les coups.

Il faudrait que cette fonction ADD_SPELL soit plus complète : plus de place en SPWI9xx ? Et bien il installe le sort "pxl2assa".spl et calibre le parchemin sur cette référence.

A moins qu'il y ait une instruction weidu pour forcer ce comportement ?

Posté : dim. 03 oct. 2021, 16:16
par Freddy_Gwendo
Pour info, c'est bien ce message qu'il t'envoie : "Couldn't add %tb#identifier% to spell.ids as no slots remain" ?

Si oui, c'est cette commande qui le gère :

Code : Tout sélectionner

ACTION_IF (tb#newcode < 0)
Dans ce cas, on peut essayer quelque chose. Mais ATTENTION, c'est juste une piste de travail, parce que je ne l'ai pas testée. ;)

Code : Tout sélectionner

ADD_SPELL ~Derats_Magasin_2/Sorts/pxl2assa.spl~ 2 9 WIZARD_PX_ENERGY_ASSAULT    SPRINT current_spell_res "%DEST_RES%"    SAY NAME1 @6091    SAY UNIDENTIFIED_DESC @6092

ACTION_IF (tb#newcode < 0) BEGIN
    COPY ~Derats_Magasin_2/Sorts/pxl2assa.spl~ ~override~    SAY NAME1 @6091    SAY UNIDENTIFIED_DESC @6092
    COPY ~Derats_Magasin_2/Objets/parcho.itm~ ~override/pxl2assa.itm~    SAY NAME2 @6091    SAY DESC @6092    LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 1 price = 10000 STR_VAR spell = EVAL ~%SOURCE_RES%~ END
END ELSE BEGIN
    COPY ~Derats_Magasin_2/Objets/parcho.itm~ ~override/pxl2assa.itm~    SAY NAME2 @6091    SAY DESC @6092    LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 1 price = 10000 STR_VAR spell = EVAL ~%current_spell_res%~ END
END
Édit: comme la variable %tb#newcode% est calculée par une MACRO, il est possible qu'elle ne soit pas conservée. Si c'est le cas, il faudra que je la modifie pour créer un clone de la fonction ADD_SPELL qui te permettra de faire ce que tu veux.

Posté : dim. 03 oct. 2021, 20:53
par deratiseur
Je te remercie, ça marche. Par contre j'ai remplacé

Code : Tout sélectionner

COPY ~Derats_Magasin_2/Objets/parcho.itm~ ~override/pxl2assa.itm~    SAY NAME2 @6091    SAY DESC @6092    LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 1 price = 10000 STR_VAR spell = EVAL ~%SOURCE_RES%~ END
par

Code : Tout sélectionner

COPY ~Derats_Magasin_2/Objets/parcho.itm~ ~override/pxl2assa.itm~    SAY NAME2 @6091    SAY DESC @6092    LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 1 price = 10000 STR_VAR spell = pxl2assa END
Me reste plus qu'à choisir quels sont les 3 sorts de niveau 9 auquel je vais appliquer ce traitement. Il seront installés pour le sorcier si aucun autre module de sorts ne squatte les slots, sinon il seront installé quand même pour les magiciens, c'est ce que je voulais, merci beaucoup :)

Posté : dim. 03 oct. 2021, 20:58
par Freddy_Gwendo
Tu as bien fait parce que c'était %DEST_RES% à la place de %SOURCE_RES%, sinon ça copiait "parcho". :$

Ceci dit, je vais ajouter le clone de la fonction ADD_SPELL sur ma todo list parce que ça peut être utile. ;)

Posté : dim. 03 oct. 2021, 21:10
par deratiseur
En fait je trouve un autre problème : il installe le premier sort en SPWI901 mais il refuse d'installer les 2 autres (il dit "plus de place") alors que j'ai vérifié il reste SPWI904 et SPWI906 de libre. WTF ?

Posté : sam. 09 oct. 2021, 22:01
par deratiseur
Résolu : ça s'installe sans problème sur une installation "fraiche" (nouvelle sans aucun bidouillage) de BG2.

Posté : sam. 09 oct. 2021, 22:41
par Freddy_Gwendo
Bonne nouvelle !

Parce que, de mon côté, j'ai fait quelques tests avec des sorts bidons sur oBG2 et BG2:EE, et ça fonctionnait. Du coup, je ne comprenais pas ton bug...