Results 1 to 2 of 2

Thread: Exori, exori min exori gran even if player on screen.

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

    Exori, exori min exori gran even if player on screen.

    Hi, how can I make this action use the spells even if there is a player on screen? I know I can just write his name on the safelist but sometimes new player comes to the spawn when Im afking.

    -- [[ 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.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

  2. #2
    Normal User K_ingen's Avatar
    Join Date
    May 2012
    Location
    Sweden
    Posts
    95
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Reputation
    11
    Rep Power
    5
    Lua Code:
    -- [[ INIT START ]] --
    local CONFIG = {
    CREATURES = {"Sea Serpent", "Young Sea Serpent"},
     
    PLAYERS = {
    ENABLED = false, --EDIT THIS.
    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


    6th line.
    Last edited by GabrielTOTS; 11-08-2013 at 11:58 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
  •