Signup Now
Results 1 to 5 of 5
  1. #1
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,424
    Reputation
    119
    Rep Power
    23

    Spells and Runes Attack (Runes, Waves, Strikes) Mage,EK,RP

    --==[[English]]==--

    I've done this persistent this week and I'm constantly testing and trying to improve it.

    In the tests I performed I got better performance this way ...

    1- Mage> Targeting> Reach or Away in Line if you use Waves, distance 3 or 4
    2- As I do not play in pvp world I'm not sure it will be safe. I've put specs to work on the 'pvp' worlds safely, but nothing is perfect.
    3- Order of the launch of the spells, if you want to change some order of magic in specific you will have to modify the code after line 106

    ==Mage: UE > Rune Area > Simple Rune (example: SD) > Wave 1 > Wave 2 > Wave 3 > Max Strike > Strong Strike > Normal Strike > Facc Strike
    ==EK: Utito > Exori Min > Exori Great > Exori > Exori Great Ico > Exori Hur > Exori Ico
    ==RP: Exevo Mas San> Rune Area> Exori San> Exori Gran Con> Exori Con

    I personally tested on mages and paladins and knight only by the bot console.

    At the moment I'm looking to lower the code to make it smaller.

    In the next few days I will try to record a video of mage to have an example

    Client 10 x Client 11 ==> (Mage:Targeting Keep Away or Away in Line) In client 10 when using potion the character has a "step back", because of this problem I noticed that some waves went wrong and in client 11 there is no such problem.


    --==[[Portuguese]]==--

    Eu fiz esse persistente nesta semana e estou constantemente testando e tentando melhora-lo.

    Nos testes que realizei obtive melhor desempenho desse modo...

    1- Mage > Targeting > Reach or Away in Line se for usar Waves, distance 3 or 4
    2- Como eu não jogo em mundo pvp não tenho certeza estará seguro. Eu coloquei especificações para funcionar nos mundos pvp com segurança, mas nada é perfeito.
    3- Ordem do lançamento das magias, caso queira alterar alguma ordem de magia em especifico terá que modicar o código depois da linha 106

    -Mage: UE > Rune Area, Simple Rune (exemplo: SD) > Wave 1 > Wave 2 > Wave 3 > Max Strike > Strong Strike > Normal Strike > Facc Strike
    -EK: Utito > Exori Min > Exori Gran > Exori > Exori Gran Ico > Exori Hur > Exori Ico
    -RP: Exevo Mas San > Rune Area > Exori San > Exori Gran Con > Exori Con

    Eu testei pessoalmente em 'mages e paladins' e 'knight' apenas pelo console do bot.

    No momento estou procurando diminuir o código para deixar ele menor.

    Nos próximos dias vou tentar gravar um video de mage para ter um exemplo

    Client 10 x Client 11 ==> (Mage:Targeting Keep Away or Away in Line) No client 10 ao usar potion o personagem possui um "step back" por causa desse problema eu notei que algumas waves sairam errado e no client 11 não existe esse problema.


    --==[[Persistent]]==--

    --Spells and Runes Attacks (Runes and Waves, Strikes) Version 1.0.0
    auto(100)

    --Settings General
    local UseSpells = true
    local monstersArea = {'monster1', 'monster2'} --UE, RuneArea, Waves, Exori Min, Exori Gran, Exori, Exevo Mas San
    local monsters = {'monster1', 'monster2'} --Rune Single, Strikes, Exori Gran Ico, Exori Hur, Exori Ico, Exori San, Exori Con
    local Sections = {'Hunt'} --for example...{'Hunt'}....{'Floor 1', 'Floor 2'}
    local MP = 15 --percentage MP cast UE, RuneArea, Waves
    --PVP
    local pvp = false --check pvp
    local IgnorePlayers = true --waves/exori min (ignore players = true ... no ignore players = false)
    local pvpDistance = 10 --check players around, if checked pvp
    local SafeListPvp = {'char 1', 'char 2'}
    --Rune
    --Rune Area
    local UseRune = false
    local runename = 'avalanche rune'
    local monstersRune = 3
    --Sinple Rune
    local UseSimpleRune = false
    local runenamee = 'sudden death rune'
    local monstersRunee = 1 --monsters around
    local monstersHP = 20 --(less) percentage hp monsters
    --==Mage
    --UE
    local UseUe = false
    local UeType = 'exevo gran mas frigo'
    local monstersUe = 6
    --Waves
    --Wave 1
    local UseWave1 = true
    local WaveType1 = 'exevo gran frigo hur'
    local monstersWave1 = 1
    --Wave 2
    local UseWave2 = true
    local WaveType2 = 'exevo tera hur'
    local monstersWave2 = 1
    --Wave 3
    local UseWave3 = true
    local WaveType3 = 'exevo frigo hur'
    local monstersWave3 = 1
    --Strikes
    --Max Strike
    local UseMax = true
    local MaxType = 'exori max frigo'
    local monstersMax = 1
    --Strong Strike
    local UseStrong = true
    local StrongType = 'exori gran frigo'
    local monstersStrong = 1
    --Normal Strike
    local UseNormal = true
    local NormalType = 'exori frigo'
    local monstersNormal = 1
    --Facc Strike
    local UseFacc = false
    local FaccType = 'exori min flam'
    local monstersFacc = 1
    --==EK
    --Utito
    local UseUtito = true
    local monstersUtito = 3
    --Exori Min
    local UseExoriMin = true
    local monstersExoriMin = 3
    --Exori Gran
    local UseExoriGran = true
    local monstersExoriGran = 3
    --Exori
    local UseExori = true
    local monstersExori = 3
    --Exori Gran Ico
    local UseExoriGranIco = true
    local monstersExoriGranIco = 1
    --Exori Hur
    local UseExoriHur = true
    local monstersExoriHur = 1
    --Exori Ico
    local UseExoriIco = true
    local monstersExoriIco = 1
    --==RP
    --Exevo Mas San
    local UseMasSan = true
    local monstersMasSan = 3
    --Exori San
    local UseSan = true
    local monstersSan = 1
    --Exori Gran Con
    local UseGranCon = true
    local monstersGranCon = 1
    --Exori Con
    local UseCon = true
    local monstersCon = 1

    --================================================== ============================
    --================================================== ============================
    local AttackRune = getarearunetile(unpack(monstersArea))
    local WaveAround = {'beambig', 'beamsmall', 'waveverysmall', 'wavemedium', 'wavesmall', 'front', 'strike'}
    local ExoriMinn = 'exori min'

    if $connected then
    if UseSpells then
    if table.find(Sections, $wptsection) then
    if ($lastprojectile.tox == $attacked.posx) and ($lastprojectile.toy == $attacked.posy) and (math.abs($lastprojectile.fromx - $posx) <= 1) and (math.abs($lastprojectile.fromy - $posy) <= 1) then
    if $attacked.isshootable then
    if table.find({'D', 'S'}, $vocshort) then
    if $premium and UseUe and cancastspell(UeType) and maroundspell(UeType, '6x6', unpack(monstersArea)) >= monstersUe and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    castspell(UeType)
    wait(300,500)
    elseif UseRune and (itemcount(runename) > 0) and cancastspell(runename) and ($level >= spellinfo(runename).level) and (AttackRune.amount >= monstersRune) and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    useitemon(runename, 0, AttackRune.tile)
    wait(300,500)
    elseif UseSimpleRune and (itemcount(runenamee) > 0) and cancastspell(runenamee) and ($level >= spellinfo(runenamee).level) and (maroundreachable(10, unpack(monsters)) >= monstersRunee) and (table.find(monsters, $attacked.name) and ($attacked.hppc <= monstersHP)) then
    useoncreature(runenamee, $attacked)
    wait(300,500)
    elseif UseWave1 and cancastspell(WaveType1) and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and (maroundspell(WaveType1, table.find(WaveAround, WaveType1.castarea:lower()) , unpack(monstersArea)) >= monstersWave1) then
    pausewalking(1000)
    castspellarea(WaveType1, monstersWave1, IgnorePlayers)
    pausewalking(0)
    wait(300,500)
    elseif UseWave2 and cancastspell(WaveType2) and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and (maroundspell(WaveType2, table.find(WaveAround, WaveType2.castarea:lower()) , unpack(monstersArea)) >= monstersWave2) then
    pausewalking(1000)
    castspellarea(WaveType2, monstersWave2, IgnorePlayers)
    pausewalking(0)
    wait(300,500)
    elseif UseWave3 and cancastspell(WaveType3) and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and (maroundspell(WaveType3, table.find(WaveAround, WaveType3.castarea:lower()) , unpack(monstersArea)) >= monstersWave3) then
    pausewalking(1000)
    castspellarea(WaveType3, monstersWave3, IgnorePlayers)
    pausewalking(0)
    wait(300,500)
    elseif table.find(monsters, $attacked.name) then
    if $premium and UseMax and cancastspell(MaxType) and ($level >= spellinfo(MaxType).level) and ($attacked.dist <= 3) and maroundreachable(10, unpack(monsters)) >= monstersMax then
    castspell(MaxType)
    wait(300,500)
    elseif $premium and UseStrong and cancastspell(StrongType) and ($level >= spellinfo(StrongType).level) and ($attacked.dist <= 3) and maroundreachable(10, unpack(monsters)) >= monstersStrong then
    castspell(StrongType)
    wait(300,500)
    elseif $premium and UseNormal and cancastspell(NormalType) and ($level >= spellinfo(NormalType).level) and ($attacked.dist <= 3) and maroundreachable(10, unpack(monsters)) >= monstersNormal then
    castspell(NormalType)
    wait(300,500)
    elseif UseFacc and cancastspell(FaccType) and ($level >= spellinfo(FaccType).level) and ($attacked.dist <= 3) and maroundreachable(10, unpack(monsters)) >= monstersFacc then
    castspell(FaccType)
    wait(300,500)
    end
    end
    elseif $vocshort == 'K' then
    if $premium and UseUtito and cancastspell('utito tempo') and ($level >= spellinfo('utito tempo').level) and maroundreachable(10, unpack(monsters)) >= monstersUtito then
    castspell('utito tempo')
    wait(300,500)
    elseif $premium and UseExoriMin and cancastspell('exori min') and ($level >= spellinfo('exori min').level) and (maroundspell('exori min', table.find(WaveAround, ExoriMinn.castarea:lower()) , unpack(monstersArea)) >= monstersExoriMin) and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    pausewalking(1000)
    castspellarea('exori min', monstersExoriMin, IgnorePlayers)
    pausewalking(0)
    wait(300,500)
    elseif $premium and UseExoriGran and cancastspell('exori gran') and ($level >= spellinfo('exori gran').level) and maroundspell('exori gran', '1x1', unpack(monstersArea)) >= monstersExoriGran and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    castspell('exori gran')
    wait(300,500)
    elseif $premium and UseExori and cancastspell('exori') and ($level >= spellinfo('exori').level) and maroundspell('exori', '1x1', unpack(monstersArea)) >= monstersExori and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    castspell('exori')
    wait(300,500)
    elseif table.find(monsters, $attacked.name) then
    if $premium and UseExoriGranIco and cancastspell('exori gran ico') and ($level >= spellinfo('exori gran ico').level) and ($attacked.dist <= 1) and maroundreachable(10, unpack(monsters)) >= monstersExoriGranIco then
    castspell('exori gran ico')
    wait(300,500)
    elseif $premium and UseExoriHur and cancastspell('exori hur') and ($level >= spellinfo('exori hur').level) and ($attacked.dist <= 3) and maroundreachable(10, unpack(monsters)) >= monstersExoriHur then
    castspell('exori hur')
    wait(300,500)
    elseif $premium and UseExoriIco and cancastspell('exori ico') and ($level >= spellinfo('exori ico').level) and ($attacked.dist <= 1) and maroundreachable(10, unpack(monsters)) >= monstersExoriIco then
    castspell('exori ico')
    wait(300,500)
    end
    end
    elseif $vocshort == 'P' then
    if $premium and UseMasSan and cancastspell('exevo mas san') and ($level >= spellinfo('exevo mas san').level) and maroundspell('exevo mas san', '3x3', unpack(monstersArea)) >= monstersMasSan and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    castspell('exevo mas san')
    wait(300,500)
    elseif UseRune and (itemcount(runename) > 0) and cancastspell(runename) and ($level >= spellinfo(runename).level) and (AttackRune.amount >= monstersRune) and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    useitemon(runename, 0, AttackRune.tile)
    wait(300,500)
    elseif table.find(monsters, $attacked.name) then
    if $premium and UseSan and cancastspell('exori san') and ($level >= spellinfo('exori san').level) and ($attacked.dist <= 3) and (maroundreachable(10, unpack(monsters)) >= monstersSan) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) then
    castspell('exori san')
    wait(300,500)
    elseif $premium and UseGranCon and cancastspell('exori gran con') and ($level >= spellinfo('exori gran con').level) and ($attacked.dist >= 1) and maroundreachable(10, unpack(monsters)) >= monstersGranCon then
    castspell('exori gran con')
    wait(300,500)
    elseif $premium and UseCon and cancastspell('exori con') and ($level >= spellinfo('exori con').level) and ($attacked.dist >= 1) and maroundreachable(10, unpack(monsters)) >= monstersCon then
    castspell('exori con')
    wait(300,500)
    end
    end
    end
    end
    end
    end
    end
    end


    --==[[Example]]==--

    I recorded this video when I was building the persistent and testing the changes, I'll try to make another video in the future.

    ================================================== =========================================

    Eu gravei esse video quando estava construindo o persistente e testando as mudanças, tentarei fazer outro video futuramente.


  2. #2
    Free User
    Join Date
    Jul 2014
    Posts
    5
    Reputation
    10
    Rep Power
    0
    Gonna test it today with my mage script @Cisco ... but could u help me with a action (on a waypoint)
    Like if x(amount) of creatures on screen, return 3 waypoints?
    That's the way that i'm planning to make my character keep running from creatures, and still using avalanche on them...

  3. #3
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,424
    Reputation
    119
    Rep Power
    23
    Quote Originally Posted by Revolltz View Post
    Gonna test it today with my mage script @Cisco ... but could u help me with a action (on a waypoint)
    Like if x(amount) of creatures on screen, return 3 waypoints?
    That's the way that i'm planning to make my character keep running from creatures, and still using avalanche on them...
    That would be a Lure.
    If the targeting is activated it will not return to the waypoints you want, it will first kill and then return to the waypoints.
    Anyway the persistent would be this way.

    auto(800)

    local Use = true
    local HuntSections = {'Hunt'} --{'Hunt'} or {'Floor 1', 'Floor 2'}
    local Monsters = {'name1'. 'name2'}
    local MonstersNumber = 3
    local WaypointsReturn = 3

    if $connected then
    if Use then
    if table.find(HuntSections, $wptsection) then
    if maroundreachable(10, unpack(Monsters)) >= MonstersNumber then
    gotolabel($wptid-WaypointsReturn, $wptsection)
    end
    end
    end
    end


    =========================

    You could do it that way too...

    Make waypoints for your hunt normally, but put those names just like the print.



    Put this persistent Cavebot.

    local (800)

    local UseLure = true
    local HuntSections = {'Hunt'} --{'Hunt'} or {'Floor 1', 'Floor 2'}
    local Monsters = {'name1'. 'name2'}
    local MonstersNumber = 3
    --LurePositions (position Cavebot)
    local PositionLure1 = 11111, 22222, 3 --Label Lure 1
    local PositionLure2 = 22222, 33333, 4 --Label Lure 2
    local PositionLure3 = 33333, 44444, 5 --Label Lure 3

    if $connected then
    if UseLure then
    if table.find(HuntSections, $wptsection) then
    if maroundreachable(10, unpack(Monsters)) >= MonstersNumber then
    if $lastlabel == 'Lure 1' then
    setlurelocation(PositionLure1)
    elseif $lastlabel == 'Lure 2' then
    setlurelocation(PositionLure2)
    elseif $lastlabel == 'Lure 3' then
    setlurelocation(PositionLure3)
    end
    end
    end
    end
    end


    Targeting > Settings > Profile's Priorities > Lure (100)

  4. #4
    Free User
    Join Date
    Jul 2014
    Posts
    5
    Reputation
    10
    Rep Power
    0
    Quote Originally Posted by Cisco View Post
    That would be a Lure.
    If the targeting is activated it will not return to the waypoints you want, it will first kill and then return to the waypoints.
    Anyway the persistent would be this way.

    auto(800)

    local Use = true
    local HuntSections = {'Hunt'} --{'Hunt'} or {'Floor 1', 'Floor 2'}
    local Monsters = {'name1'. 'name2'}
    local MonstersNumber = 3
    local WaypointsReturn = 3

    if $connected then
    if Use then
    if table.find(HuntSections, $wptsection) then
    if maroundreachable(10, unpack(Monsters)) >= MonstersNumber then
    gotolabel($wptid-WaypointsReturn, $wptsection)
    end
    end
    end
    end


    =========================

    You could do it that way too...

    Make waypoints for your hunt normally, but put those names just like the print.



    Put this persistent Cavebot.

    local (800)

    local UseLure = true
    local HuntSections = {'Hunt'} --{'Hunt'} or {'Floor 1', 'Floor 2'}
    local Monsters = {'name1'. 'name2'}
    local MonstersNumber = 3
    --LurePositions (position Cavebot)
    local PositionLure1 = 11111, 22222, 3 --Label Lure 1
    local PositionLure2 = 22222, 33333, 4 --Label Lure 2
    local PositionLure3 = 33333, 44444, 5 --Label Lure 3

    if $connected then
    if UseLure then
    if table.find(HuntSections, $wptsection) then
    if maroundreachable(10, unpack(Monsters)) >= MonstersNumber then
    if $lastlabel == 'Lure 1' then
    setlurelocation(PositionLure1)
    elseif $lastlabel == 'Lure 2' then
    setlurelocation(PositionLure2)
    elseif $lastlabel == 'Lure 3' then
    setlurelocation(PositionLure3)
    end
    end
    end
    end
    end


    Targeting > Settings > Profile's Priorities > Lure (100)
    Thanks a lot! Gonna test it tonight, going to finish my oramond west "invasion" script for mages, then i tell you how it worked!

  5. #5
    Free User
    Join Date
    Dec 2013
    Posts
    54
    Reputation
    10
    Rep Power
    21
    This script wont use any runes at all for me, anyone else got problems?


    Edit: playing an OT with lower cooldown on the UE if that matters, and on this OT im able to use avalanche rune even though I got cooldown on the UE.
    Last edited by Filleman; 12-22-2017 at 10:09 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
  •