Open the c0000.hks of the mod you want to merge with this mod in your favorite text editor.

Look for:
------------------------------------------
-- Core: Functions
------------------------------------------

Add the following right above that:
------------------------------------------
-- Solid Multi Jump
------------------------------------------
Solid_MultiJumpFrameCount = 0
Solid_MultiJumpCount = 0
Solid_MultiJumpDisableHold = 0

function SolidMultiJump()
    if env(ActionDuration, ACTION_ARM_CHANGE_STYLE) > 0 then
        Solid_MultiJumpDisableHold = Solid_MultiJumpDisableHold + 1
        else
        Solid_MultiJumpDisableHold = 0
    end
    
    if env(IsLanding) == FALSE and env(IsSummoningRide) == FALSE then
        Solid_MultiJumpFrameCount = Solid_MultiJumpFrameCount + 1
        if Solid_MultiJumpFrameCount > 10 and env(ActionDuration,
ACTION_ARM_CHANGE_STYLE) > 0 and Solid_MultiJumpCount < 4 and
Solid_MultiJumpDisableHold < 2 then
            Solid_MultiJumpCount = Solid_MultiJumpCount +1
            ExecSolidMultiJump()
        end
    end
    
    if env(IsLanding) == TRUE then
        Solid_MultiJumpFrameCount = 0
        Solid_MultiJumpCount = 0
    end
end

function ExecSolidMultiJump()
    if env(GetStamina) <= 0 and env(Unknown700) == FALSE then
        ResetRequest()
        return FALSE
    end

    if env(GetSpEffectID, 102360) == FALSE then
        AddStamina(STAMINA_REDUCE_JUMP)
    end
    SetWeightIndex()

    -- Jump: Overweight
    if GetVariable("EvasionWeightIndex") == EVASION_WEIGHT_INDEX_OVERWEIGHT and env(Unknown700) == FALSE then
        local jumpangle = env(GetJumpAngle) * 0.009999999776482582

        if jumpangle > -45 and jumpangle < 45 then
            SetVariable("JumpOverweightIndex", 0)
        elseif jumpangle >= 0 and jumpangle <= 100 then
            SetVariable("JumpOverweightIndex", 3)
        elseif jumpangle >= -100 and jumpangle <= 0 then
            SetVariable("JumpOverweightIndex", 2)
        else
            SetVariable("JumpOverweightIndex", 1)
        end

        act(Unknown2025, env(Unknown404))
        SetAIActionState()
        ExecEventAllBody("W_Jump_Overweight")

        return TRUE
    end
    
    local style = c_Style
    
    if style == HAND_RIGHT then
        SetVariable("JumpAttack_HandCondition", 0)
    elseif style == HAND_RIGHT_BOTH then
        SetVariable("JumpAttack_HandCondition", 1)
    elseif style == HAND_LEFT_BOTH then
        if GetEquipType(HAND_LEFT, WEAPON_CATEGORY_CROSSBOW) == TRUE then
            SetVariable("JumpAttack_HandCondition", 4)
        else
            SetVariable("JumpAttack_HandCondition", 1)
        end
    end

    SetVariable("JumpAttackForm", 0)
    SetVariable("JumpUseMotion_Bool", false)
    SetVariable("JumpMotion_Override", 0.009999999776482582)
    SetVariable("JumpAttack_Land", 0)
    SetVariable("SwingPose", 0)
    IS_ATTACKED_JUMPMAGIC = FALSE

    if GetVariable("IsEnableToggleDashTest") == 2 then
        SetVariable("ToggleDash", 0)
    end
    
    local JumpMoveLevel = 0
    
    if GetVariable("LocomotionState") == 1 and GetVariable("MoveSpeedIndex") == 2 then
        JumpMoveLevel = 2
    elseif GetVariable("MoveSpeedLevel") >= 0.6000000238418579 then
        JumpMoveLevel = 1
    end
    
    -- Ironjar Aromatic
    if env(GetSpEffectID, 503520) == TRUE then
        JumpMoveLevel = 0
    -- Unknown
    elseif env(GetSpEffectID, 5520) == TRUE then
        JumpMoveLevel = 0
    -- Slug: Slow
    elseif env(GetSpEffectID, 425) == TRUE then
        JumpMoveLevel = 0
    -- Sanguine Noble: Slow
    elseif env(GetSpEffectID, 4101) == TRUE then
        JumpMoveLevel = 0
    -- Sanguine Noble: Slow
    elseif env(GetSpEffectID, 4100) == TRUE then
        JumpMoveLevel = 0
    end
    
    if JumpMoveLevel == 2 then
        if env(Unknown700) == TRUE then
            act(Unknown4001)
        end
        
        act(Unknown2025,env(Unknown404))
        SetAIActionState()
        ExecEvent("W_Jump_D")
        
        return TRUE
    elseif JumpMoveLevel == 1 then
        if GetVariable("IsLockon") == FALSE and env(IsPrecisionShoot) == FALSE and env(IsCOMPlayer) == FALSE then
            SetVariable("JumpDirection", 0)
            SetVariable("JumpAngle", 0)
        else
            local jumpangle = env(GetJumpAngle) * 0.009999999776482582
            local adjusted_jump_angle = nil
            
            if jumpangle > -45 and jumpangle < 45 then
                adjusted_jump_angle = jumpangle
                SetVariable("JumpDirection", 0)
                SetVariable("JumpAngle", 0)
            elseif jumpangle >= 0 and jumpangle <= 100 then
                adjusted_jump_angle = jumpangle - 90
                SetVariable("JumpDirection", 3)
                SetVariable("JumpAngle", 90)
            elseif jumpangle >= -100 and jumpangle <= 0 then
                adjusted_jump_angle = jumpangle + 90
                SetVariable("JumpDirection", 2)
                SetVariable("JumpAngle", -90)
            else
                adjusted_jump_angle = jumpangle - 180
                SetVariable("JumpDirection", 1)
                SetVariable("JumpAngle", 180)
            end
            
            if GetVariable("IsLockon") == true then
                act(TurnToLockonTargetImmediately, adjusted_jump_angle)
            else
                act(Unknown2029, adjusted_jump_angle)
            end
        end
        
        SetVariable("IsEnableDirectionJumpTAE", true)
        
        if env(Unknown700) == TRUE then
            act(Unknown4001)
        end
        
        act(Unknown2025,env(Unknown404))
        SetAIActionState()
        ExecEvent("W_Jump_F")
        
        return TRUE
    end
    
    SetVariable("JumpReachSelector", 0)
    
    if env(Unknown700) == TRUE then
        act(Unknown4001)
    end
    
    act(Unknown2025,env(Unknown404))
    SetAIActionState()
    ExecEvent("W_Jump_N")
    
    return TRUE
end

Now look for:
-------------------------------
-- Main Update
-------------------------------
function Update()
    GetConstVariable()
    SetStyleSpecialEffect()
    act(SwitchMotion, FALSE)

And add "SolidMultiJump()" like the example:
-------------------------------
-- Main Update
-------------------------------
function Update()
    GetConstVariable()
    SetStyleSpecialEffect()
    SolidMultiJump()
    act(SwitchMotion, FALSE)

Article information

Added on

Edited on

Written by

MojoW

0 comments