![]() |
The Black Wyrm's Lair Terms of Use |
![]() ![]() ![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Master of energies ![]() Council Member Posts: 3325 Joined: 9-July 04 From: Magyarország ![]() |
drake127 has drawn my attention to the fact that some of the spellcasting script actions (SpellRES, ForceSpellRES etc.) work in BG1:TotSC, and that there are several "hidden" script actions which aren't in action.ids but would work in the game.
He has done a research which proved that many of these script actions work perfecly in BG1 TotSC. Based on his results, I have done additional testing on 8 scripting commands chosen from his list. These were: 31 SpellRES(S:ResRef*,O:Target*) 95 SpellPointRES(S:ResRef*,P:Target*) 113 ForceSpellRES(S:ResRef*,O:Target) 114 ForceSpellPointRES(S:ResRef*,P:Target) 160 ApplySpellRES(S:ResRef*,O:Target) 181 ReallyForceSpellRES(S:ResRef*,O:Target) 191 SpellNoDecRES(S:ResRef*,O:Target*) 192 SpellPointNoDecRES(S:ResRef*,P:Target*) The summary of my experience: After properly added to ACTION.IDS, these actions can be used in scripts which can then be compiled by using WeiDU. When casting your spells with custom filenames (such as BBSW01.SPL), you have to be careful in case of SpellRES and SpellPointRES: they won't work if the filename is more than seven character long (the original SPL filenames of the game are exactly 7 characters long, by the way). So BB00SW01.SPL will not work but BB00S01.SPL or BB01.SPL will (they don't have to follow the SPWIxxx/SPPRxxx/etc. convention). I've encountered only one difference between drake127's and my results: SpellNoDecRES worked properly for me, memorized spells were kept in the caster's memory, they weren't removed. -------------------- Mental harmony dispels the darkness.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Master of energies ![]() Council Member Posts: 3325 Joined: 9-July 04 From: Magyarország ![]() |
Okay here are the descriptions.
31 SpellRES(S:ResRef*,O:Target*) 95 SpellPointRES(S:ResRef*,P:Target*) 113 ForceSpellRES(S:ResRef*,O:Target) 114 ForceSpellPointRES(S:ResRef*,P:Target) 160 ApplySpellRES(S:ResRef*,O:Target) 181 ReallyForceSpellRES(S:ResRef*,O:Target) 191 SpellNoDecRES(S:ResRef*,O:Target*) 192 SpellPointNoDecRES(S:ResRef*,P:Target*) 31 SpellRES(S:ResRef*,O:Target*) Casts a spell on target O object. S is always a maximum 7-character long SPL filename written with upper case, without the SPL extension. Additionally, the filename cannot consist only of numbers. The spell must be memorized by the caster. It is interruptible during casting. The spellcaster must meet the level requirements of the spell. Warning: according to tests, it doesn't work reliably. 95 SpellPointRES(S:ResRef*,P:Target*) Casts a spell on target P[x.y] point. S is always a maximum 7-character long SPL filename written with upper case, without the SPL extension. Additionally, the filename cannot consist only of numbers. The spell must be memorized by the caster. It is interruptible during casting. The spellcaster must meet the level requirements of the spell. 113 ForceSpellRES(S:ResRef*,O:Target) Forces the object running the script to cast the spell specified by the S parameter. O is the spell's target object, S is always a SPL filename written with upper case, without the SPL extension. The spell cannot be interrupted and the caster does not need to have the spell memorized or even have the spell. 114 ForceSpellPointRES(S:ResRef*,P:Target) Forces the object running the script to cast the spell specified by the S parameter. P is the spell's target [x.y] point, S is always a SPL filename written with upper case, without the SPL extension. The spell cannot be interrupted and the caster does not need to have the spell memorized or even have the spell. 160 ApplySpellRES(S:ResRef*,O:Target) Instantly casts the spell on target O object. S is always a SPL filename written with upper case, without the SPL extension. Does not play the casting animations. The spell cannot be interrupted and area effect spells that target multiple objects will only affect the specified target object. 181 ReallyForceSpellRES(S:ResRef*,O:Target) Forces the object running the script to cast the spell specified by the S parameter. The casting time is 0, the spell is cast instantly. O is the spell's target object, S is always a SPL filename written with upper case, without the SPL extension. The spell cannot be interrupted and the object does not need to have the spell memorized or even have the spell. 191 SpellNoDecRES(S:ResRef*,O:Target*) Casts a spell on target O object. S is always a SPL filename written with upper case, without the SPL extension. The spell must be memorized by the caster, and it won't be removed from the caster's memory if cast via this action. It is interruptible during casting. The spellcaster must meet the level requirements of the spell. 192 SpellPointNoDecRES(S:ResRef*,P:Target*) Casts a spell on target P[x.y] point. S is always a SPL filename written with upper case, without the SPL extension. The spell must be memorized by the caster. SpellPointNoDecRES shouldn't remove the spell from the caster's memory but according to tests this part does NOT work (the spell is cast but is also removed from memorized spells.) It is interruptible during casting. The spellcaster must meet the level requirements of the spell. NOTES: SpellRES does not always work reliably. In case of SpellRES() and SpellPointRES(), the ResRef parameter, which is a filename, must be up to 7 characters long (just like all of the original game's spell files); if it's longer than 7 characters, the spell will not be cast, the command will not work. However, it does not have to follow the SPWIxxx (SPPRxxx etc.) file naming convention. In case of SpellPointNoDecRES(), according to tests the spell is still removed from the caster's memory (from the memorized spells), it is probably a bug. So it works as if it were SpellPointRES (but unlike in case of that spell, here 8-character long filenames are accepted). -------------------- Mental harmony dispels the darkness.
|
|
|
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 29th August 2025 - 06:23 PM |