Skip to content

[MOD] EEex (v0.10.2-alpha)

1444546474850»

Comments

  • TenhkuxTenhkux Member Posts: 1
    @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.
    1. 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)?
    2. 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
        
        I understand that
        EEex_ProcessInnateMemorization
        
        could be replaced with
        (EEex_Utility_IterateCPtrList(CGameSprite.m_memorizedSpellsInnate function(spell)...
        
        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.

    It would be great if you could help me with this

    Thank you again, I truly think this is awesome!
Sign In or Register to comment.