Page 1 sur 1

Vérifier si un sort existe lors de l'installation

Posté : mer. 29 mars 2023, 17:44
par deratiseur
Je voudrais savoir s'il y a un moyen avec Weidu de vérifier si CLERIC_CURE_MODERATE_WOUNDS (tiré de SPELL.IDS) existe, condition pour installer ou non un composant.

Re: Vérifier si un sort exite lors de l'installation

Posté : mer. 29 mars 2023, 18:20
par Selphira
Quelque chose comme ceci peut-être ?

Code : Tout sélectionner

OUTER_SET spellId = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CURE_MODERATE_WOUNDS~)) - 1000)

ACTION_IF ((spellId > 0) AND (FILE_EXISTS_IN_GAME ~sppr%spellId%.spl~)) THEN BEGIN
   // ...
END
Après, cela n'empêchera pas de choisir le composant, mais tu peux toujours lancer un ABORT pour annuler l'installation du composant.

Re: Vérifier si un sort exite lors de l'installation

Posté : mer. 29 mars 2023, 20:28
par deratiseur
Ok, ça marche. Merci, c'est niquel. Avec ça je vais pouvoir préparer 2 scripts, un incluant le sort et l'autre ne l'incluant pas.

Re: Vérifier si un sort existe lors de l'installation

Posté : dim. 21 janv. 2024, 10:46
par deratiseur
Re reviens pour compléter le biniou.

Comment je fais si je veux utiliser cette référence pour patcher un sort ? Dans ce genre :

Code : Tout sélectionner

OUTER_SET spellId = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_DESTRUCTION~)) - 1000)
ACTION_IF ((spellId > 0) AND (FILE_EXISTS_IN_GAME ~sppr%spellId%.spl~)) THEN BEGIN
COPY_EXISTING	~pxdvie0.spl~	~override~	LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 172 target = 1  STR_VAR resource = sppr%spellId%.spl END
END

Re: Vérifier si un sort existe lors de l'installation

Posté : dim. 21 janv. 2024, 12:09
par Selphira
Je vois que tu utilises ADD_ITEM_EQEFFECT alors que tu veux patcher un sortilège, ne devrais-tu pas utiliser ADD_SPELL_EFFECT à la place ?

Re: Vérifier si un sort existe lors de l'installation

Posté : dim. 21 janv. 2024, 12:37
par deratiseur
Nah. j'utilise ADD_ITEM_EQEFFECT pour que ça s'inscrive dans le "casting features" du sort. C'est un sort relancé à chaque niveau du kit qui supprime certains sorts (obligatoire pour un kit de clerc parce qu'il regagne ses sorts à chaque niveaux), et il faut que ce soit là car si les effets de suppression sont dans les "extended effects", ça bugue parfois.
Vu sur le prêcheur des flammes il y a quelques année, qui me posait quelques soucis avant que je découvre ça sur un message dans un forum. Passer les effets de suppression dans le "casting features" à résolu les soucis.

Note, j'ai essayé le code que j'ai indiqué sur IWD pour ajouter CLERIC_STALKER (SPPR737). Et ça m'a rajouté à la place la ligne CLERIC_MIST_OF_ELDATH (sppr736)
EDIT : correction , j'ai essayé le code que j'ai indiqué sur IWD pour ajouter CLERIC_STALKER (SPPR737). Et ça m'a rajouté comme référence SPPR (sans rien derrière) (vu sur DLTECEP)

Re: Vérifier si un sort existe lors de l'installation

Posté : dim. 21 janv. 2024, 16:50
par Selphira
Ok. Je te suggère ce code.
J'ai tout de même remplacé ADD_ITEM_EQEFFECT par ADD_SPELL_CFEFFECT (et non pas ADD_SPELL_EFFECT) afin de bien mettre l'effet dans les "casting features".

Code : Tout sélectionner

OUTER_SET spell_num = IDS_OF_SYMBOL (~spell~ ~CLERIC_DESTRUCTION~)
ACTION_IF (spell_num >= 0) THEN BEGIN
   LAF RES_NAME_OF_SPELL_NUM INT_VAR spell_num RET spell_res END
   ACTION_IF FILE_EXISTS_IN_GAME "%spell_res%.spl" BEGIN
      COPY_EXISTING	~pxdvie0.spl~	~override~	LPF ADD_SPELL_CFEFFECT INT_VAR opcode = 172 target = 1  STR_VAR resource = %spell_res%.spl END
   END
END

Re: Vérifier si un sort existe lors de l'installation

Posté : dim. 21 janv. 2024, 18:40
par deratiseur
Merci, encore une fois :)
Ça marche (sans le .spl ^^).
Avec ça je vais pouvoir renforcer mon mod, pour être sur qu'il n’oublie rien même après l'installation dans BG(2)EE des mods qui rajoutent les sort de IWDEE ou qui changent le niveau de certains sorts ( par exemple spell revision fait passer "Convocation d'elemental de terre" au niveau 6)