I need an action to exori / exori gran / exori ico / exori hur because the action that I am not using this 100%, it stops working after a while.
remembering that she is not working 100% in IBOT+.

my action is:

Lua Code:
-- [[ INIT START ]] -- 
    local CONFIG = { 
        CREATURES = {'Wyrm','Energy Elemental'}, 
 
        PLAYERS = { 
            ENABLED = PvP_Server, 
            DISTANCE = 14, 
            FLOOR_DIFFERENCE = 1, 
            SAFE_LIST = {"Bubble", "Eternal Oblivion"}, 
        }, 
 
        SPELLS = { 
            --{NAME = "groundshaker", AMOUNT = 6}, 
            {NAME = "fierce berserk", AMOUNT = UseExoriGran}, 
            {NAME = "berserk", AMOUNT = UseExori}, 
            {NAME = "front sweep", AMOUNT = UseExoriMin}, 
          --{NAME = "annihilation", HP_PC = 45}, 
            {NAME = "brutal strike", HP_PC = UseIcoPc}, 
            {NAME = "whirlwind throw", HP_PC = UseHurPc}, 
        }, 
    } 
 
    -- [[ DO NOT CHANGE ANYTHING BELOW THIS LINE. ]] -- 
 
    SPELLS_CONFIG = SPELLS_CONFIG or {} 
    LAST_FLOOR = LAST_FLOOR or Self.PositionZ() 
    ATTACK_EXHAUST = ATTACK_EXHAUST or 0 
 
    table.lower(CONFIG.CREATURES) 
 
    local RESET_SPELLS_CONFIG = #CONFIG.SPELLS ~= #SPELLS_CONFIG 
 
    if (not RESET_SPELLS_CONFIG) then 
        for INDEX, SPELL_ENTRY in ipairs(CONFIG.SPELLS) do 
            if (SPELL_ENTRY.NAME ~= SPELLS_CONFIG[INDEX].NAME or ((SPELL_ENTRY.AMOUNT and SPELL_ENTRY.AMOUNT ~= SPELLS_CONFIG[INDEX].AMOUNT) or (SPELL_ENTRY.HP_PC and SPELL_ENTRY.HP_PC ~= SPELLS_CONFIG[INDEX].HP_PC))) then 
                RESET_SPELLS_CONFIG = true 
                break 
            end 
        end 
    end 
 
    if (RESET_SPELLS_CONFIG) then 
        SPELLS_CONFIG = {} 
 
        local CURRENT_INDEX = 1 
 
        while (#CONFIG.SPELLS >= CURRENT_INDEX) do 
            CONFIG.SPELLS[CURRENT_INDEX].INFO = Spell.GetByWordsOrName(CONFIG.SPELLS[CURRENT_INDEX].NAME) 
 
            if (not CONFIG.SPELLS[CURRENT_INDEX].INFO:isValid()) then 
                table.remove(CONFIG.SPELLS, CURRENT_INDEX) 
            else 
                if (#CONFIG.SPELLS[CURRENT_INDEX].INFO:Condition() > 0 and table.find({"BIG_BEAM", "BIG_WAVE", "FRONT", "SMALL_BEAM", "SMALL_WAVE", "STRIKE"}, CONFIG.SPELLS[CURRENT_INDEX].INFO:Condition())) then 
                    CONFIG.SPELLS[CURRENT_INDEX].NEED_DIRECTION = true 
                else 
                    CONFIG.SPELLS[CURRENT_INDEX].NEED_DIRECTION = false 
                end 
 
                CURRENT_INDEX = CURRENT_INDEX + 1 
            end 
        end 
    end 
-- [[ INIT END ]] -- 
 
if (Self.PositionZ() ~= LAST_FLOOR) then 
    LAST_FLOOR, ATTACK_EXHAUST = Self.PositionZ(), System.TimeMilliseconds() + 2000 
    return 
end 
 
if (System.TimeMilliseconds() > ATTACK_EXHAUST) then 
    for _, SPELL_ENTRY in ipairs(CONFIG.SPELLS) do 
        if (SPELL_ENTRY.INFO:isAbleToCast(nil, false)) then 
            local ATTACKED = Creature.GetAttacked() 
 
            if (SPELL_ENTRY.AMOUNT and (not CONFIG.PLAYERS.ENABLED or Self.PlayersAroundFloor(CONFIG.PLAYERS.DISTANCE, CONFIG.PLAYERS.FLOOR_DIFFERENCE, unpack(CONFIG.PLAYERS.SAFE_LIST)) == 0)) then 
                local HIGHEST_AMOUNT, BEST_DIRECTION = 0, Self.LookDirection() 
 
                if (SPELL_ENTRY.NEED_DIRECTION) then 
                    for DIRECTION, CREATURES_AMOUNT in pairs({[DIRECTION_NORTH] = 0, [DIRECTION_EAST] = 0, [DIRECTION_SOUTH] = 0, [DIRECTION_WEST] = 0}) do 
                        CREATURES_AMOUNT = Self.MonstersAroundSpell(SPELL_ENTRY.INFO:Conditio  n(), DIRECTION, unpack(CONFIG.CREATURES)) 
 
                        if (CREATURES_AMOUNT > HIGHEST_AMOUNT or (CREATURES_AMOUNT >= HIGHEST_AMOUNT and DIRECTION == Self.LookDirection())) then 
                            HIGHEST_AMOUNT, BEST_DIRECTION = CREATURES_AMOUNT, DIRECTION 
                        end 
                    end 
                else 
                    HIGHEST_AMOUNT, BEST_DIRECTION = Self.MonstersAroundSpell(SPELL_ENTRY.INFO:Conditio  n(), Self.LookDirection(), unpack(CONFIG.CREATURES)), Self.LookDirection() 
                end 
 
                if (HIGHEST_AMOUNT >= SPELL_ENTRY.AMOUNT) then 
                    while (Self.LookDirection() ~= BEST_DIRECTION) do 
                        Self.Turn(BEST_DIRECTION) 
                        System.Wait(25, 75) 
                    end 
 
                    if (SPELL_ENTRY.INFO:CastSpell()) then 
                        System.Wait(Self.CoolDown(SPELL_GROUP_ATTACK)) 
                    end 
                end 
            elseif (SPELL_ENTRY.HP_PC and SPELL_ENTRY.INFO:isAbleToCast(ATTACKED, false) and table.find(CONFIG.CREATURES, ATTACKED:Name():lower()) and SPELL_ENTRY.HP_PC >= ATTACKED:HealthPercent()) then 
                if (SPELL_ENTRY.INFO:CastSpell(ATTACKED)) then 
                    System.Wait(Self.CoolDown(SPELL_GROUP_ATTACK)) 
                end 
            end 
        end 
    end 
end