Jump to content

How to read spell.ids?


jastey

Recommended Posts

You can also use the following set of WeiDU functions: ;)

 

RES_NUM_OF_SPELL_NAME: converts a spell.ids reference to resource name. This is an ACTION and PATCH macro and function.

  • SPRINT spell_name to the IDS symbolic reference of a spell.
  • RET spell_num to the IDS numerical reference of that spell.
  • RET spell_res to the resource name for the referenced spell.

RES_NAME_OF_SPELL_NUM: converts a spell.ids reference to resource name. This is an ACTION and PATCH macro and function.

  • SET spell_num to the IDS numerical reference of that spell.
  • RET spell_name to the IDS symbolic reference of a spell.
  • RET spell_res to the resource name for the referenced spell.

NAME_NUM_OF_SPELL_RES: converts a spell resource name to a spell.ids reference. This is an ACTION and PATCH macro and function.

  • SPRINT spell_res to the resource name for the referenced spell.
  • RET spell_num to the IDS numerical reference of that spell.
  • RET spell_name to the IDS symbolic reference of a spell.

Link to comment

A better question is, how would one use those in .tp2 code ?
As it's not always obvious, with all the LPF's in weidu, without an easy to read concrete example.

Example, completely for to a different thing.

 

ADD_SPELL_EFFECT: adds an extended effect to a spell. All variables except probability1 and insert_point are 0 by default. This is a PATCH macro and function.

SET opcode to opcode
SET target to target type
SET timing to timing type
SET parameter1 to first parameter
SET parameter2 to second parameter
SET power to power
SET resist_dispel to magic resistance/dispel type
SET duration to duration
SET probability1 to probability 1 (default 100)
SET probability2 to probability 2
SPRINT resource to resource (8 chars max)
SET dicenumber to number of dices to be thrown
SET dicesize to size of dices to be thrown
SET savingthrow to type of savingthrow to be allowed against the effect
SET savebonus to saving throw bonus
SET special to the special parameter (only valid for functions; not macros)
SET header to number of extended header (starting from 1) the effect should be added to (by default the effect is added to every header).
SET insert_point to the position of the effect. If this variable is 0 the effect will be inserted as the first effect of the extended header. If this variable is negative or greater than the number of effects, the effect will be inserted as the last effect. The effect is added as the last effect by default.

But add in this:

COPY_EXISTING ~spwi611.spl~ ~override~ //Protection From Magical Weapons
LPF ~ADD_SPELL_EFFECT~ INT_VAR opcode=215 target=1 timing=0 duration=36 parameter2=1 STR_VAR resource=sparmour END //additional continuous animation

And you can see how simple it's usage actually is.

 

Link to comment

I guess you want to alter SPIN678.SPL.

 

If I am right, here is a piece of code taken from one of my kits :

LAF ~RES_NUM_OF_SPELL_NAME~ STR_VAR spell_name = "ANOMEN_TITLE" RET spell_num spell_res END

which returns spell_num = 3678 and spell_res = SPIN678.

Then :

COPY_EXISTING ~%spell_res%.spl~    ~override/GWCLSoeu.spl~
    LPF ALTER_EFFECT INT_VAR match_opcode = 103 opcode = 290 parameter1 = RESOLVE_STR_REF (@7720006) parameter2 = 1 END    // ~Soeur de Lurue~
    LPF DELETE_EFFECT INT_VAR match_opcode = 57 END
    LPF DELETE_EFFECT INT_VAR match_opcode = 49 END
BUT_ONLY

which is launched as soon as the unicorn rider finds a unicorn as a companion : she becomes a Sister of Lurue. ;)

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...