@Bubb , first of all, thank you very much for this amazing development!! To give some context, I built a mod (for myself, several years ago) that reworks the entire magic system thanks to it (something I had always wanted to do).
Now, I am trying to migrate it from 2.5. to 2.6 (I know, but I had not had the time till now) and have some ideas and questions.
Ideas:
Could a hook for hide in shadows (similar to the one for thieving skills) be added so more classes/kits can hide in plain sight?
Would it be possible to increase the max visual range? (op262 won't go beyond a limit)
Could we have a function or something that let's us clear the fog of war (like farsight but we have a radius parameter so we can clear bigger areas if we want)?
Is there a way to cast spell on the minimap directly (again, like farsight)?
Questions (so far):
In my mod, I use functions like (the three versions: wizard, cleric and innate):
EEex_LearnInnateSpell, EEex_UnlearnInnateSpell, EEex_GetMaximumMemorizableInnateSpells, EEex_MemorizeInnateSpell, EEex_UnmemorizeInnateSpell and EEex_ProcessInnateMemorization
but I find difficult to replace the others (I know I am supposed to use CGameSprite:Function, but I do not know what to use as arguments to that method. How could I rebuild them?
I have a spell that unlocks doors and another that disarms traps, I am worried especially about the one that disarms traps (I use a snippet you provided):
function TKWI303(effectData, object)
local sourceID = EEex_ReadDword(effectData + 0x10C)
local objectID = EEex_GetActorIDShare(object)
local isSprite = EEex_IsSprite(objectID, true)
local isActive = EEex_IsTrapActive(objectID)
local isDetectable = (not EEex_IsTrapFlaggedNondetectable(objectID)) and EEex_GetTrapDetectDifficulty(objectID) ~= 100
local isDetected = EEex_IsTrapDetected(objectID)
local disarmDifficulty = EEex_GetTrapDisarmDifficulty(objectID)
local isDisarmable = disarmDifficulty ~= 100
local parameter1 = EEex_ReadDword(effectData + 0x18)
if isSprite then
TK_DisplayString(sourceID, "TK_STR", "Tis' but a scratch!", tk_feedback_strref)
return
end
if not isActive then
TK_DisplayString(sourceID, "TK_STR", "Object not trapped", tk_feedback_strref)
return
end
if not isDetectable then
TK_DisplayString(sourceID, "TK_STR", "Trap warded against scrying", tk_feedback_strref)
return
end
if not isDetected then
TK_DisplayString(sourceID, "TK_STR", "Trap concealed", tk_feedback_strref)
return
end
if not isDisarmable then
TK_DisplayString(sourceID, "TK_STR", "Trap warded against spells", tk_feedback_strref)
return
end
if parameter1 >= disarmDifficulty then
EEex_DisarmTrap(objectID)
TK_DisplayString(sourceID, "TK_STR", "Your spell successfully disarmed the trap!", tk_feedback_strref)
end
end
Most of the functions I use here, can be replicated using sprite methods or properties (e.g., share.m_objectType, share.m_trapActivated). What about EEex_DisarmTrap? It again makes use of EEex_Call and EEex_Label and I am not sure how to replicate it.
Comments
Now, I am trying to migrate it from 2.5. to 2.6 (I know, but I had not had the time till now) and have some ideas and questions.
It would be great if you could help me with this
Thank you again, I truly think this is awesome!