Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Exori completo

Ir para baixo

Exori completo Empty Exori completo

Mensagem por Sir. Felipe Ter Jun 25, 2013 6:41 pm

Código:
-- [[ INIT START ]] --

    local CONFIG = {

        CREATURES = {"Sea Serpent", "Young Sea Serpent"},

        

        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.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:Condition(), 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:Condition(), 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 
Sir. Felipe
Sir. Felipe
Admin

Mensagens : 193
Data de inscrição : 10/06/2013

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos