Results 1 to 3 of 3

Thread: Safe exori problem

  1. #1
    Normal User
    Join Date
    Apr 2012
    Posts
    31
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Reputation
    10
    Rep Power
    5

    Safe exori problem

    I got this safe exori script
    Lua Code:
    -- [[ INIT START ]] --
        local CONFIG = {
        CREATURES = {"Mutated Rat", "Mutated Human", "Mercury Blob", "Acid Blob", "Death Blob", "Slime"},
     
            PLAYERS = {
                ENABLED = true,
                DISTANCE = 14,
                FLOOR_DIFFERENCE = 1,
                SAFE_LIST = {"Bubble", "Eternal Oblivion"},
            },
     
            SPELLS = {
                --{NAME = "groundshaker", AMOUNT = 6},
                --{NAME = "fierce berserk", AMOUNT = 4},
                {NAME = "berserk", AMOUNT = 3},
                --{NAME = "front sweep", AMOUNT = 2},
                --{NAME = "annihilation", HP_PC = 45},
                --{NAME = "brutal strike", HP_PC = 10},
                --{NAME = "whirlwind throw", HP_PC = 10},
            },
        }
     
        -- [[ 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.PlayersAroundFloorIgnore(CONFIG.PLAYERS.DISTA  NCE, 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


    It works, but there is a problem, that it only use exori when there are 3 creatures of the same kind like 3 mutated humans.
    It doesn't work when there is 2 slimes and one mutated human.
    Can someone solve this problem?
    Last edited by Eli; 11-28-2013 at 04:51 PM.

  2. #2
    iScripter Eli's Avatar
    Join Date
    Mar 2012
    Posts
    3,764
    Mentioned
    492 Post(s)
    Tagged
    2 Thread(s)
    Quoted
    955 Post(s)
    Reputation
    586
    Rep Power
    10
    Check now, I edited it a bit.

  3. #3
    Normal User
    Join Date
    Apr 2012
    Posts
    31
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Reputation
    10
    Rep Power
    5
    Now it seems like it doesn't work at all
    #edit
    It definitely doesn't work
    #edit2
    I don't know why, but after pasted previous script it started to work
    But thanks for your time.
    Last edited by Marszal12345; 11-28-2013 at 05:30 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •