Signup Now
Page 1 of 2 12 LastLast
Results 1 to 10 of 18
  1. #1
    Free User Bollo's Avatar
    Join Date
    Oct 2016
    Location
    Sweden
    Posts
    78
    Reputation
    23
    Rep Power
    18

    Advanced Paladin Shooter

    Hello,

    I've found several "Advanced Paladin Shooters", but they all seem to be about being PvP-Safe with Paladin spells.

    I'm looking for a script that is basically the same, but which also takes into account whether the ammo has been fired or not (as with the "Sync with spells"-option in WB).

    Paladins looses way too much damage if this is not taken into account.

    Im sure there must be some script like this somewhere?

    Regards
    Bollo
    http://i.imgur.com/ZGf30Pt.jpg

    Paid Scripts thread is now live!

  2. #2
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,423
    Reputation
    119
    Rep Power
    25
    Quote Originally Posted by Bollo View Post
    Hello,

    I've found several "Advanced Paladin Shooters", but they all seem to be about being PvP-Safe with Paladin spells.

    I'm looking for a script that is basically the same, but which also takes into account whether the ammo has been fired or not (as with the "Sync with spells"-option in WB).

    Paladins looses way too much damage if this is not taken into account.

    Im sure there must be some script like this somewhere?

    Regards
    Bollo
    I finished doing this persistent today. It might work for you. I use it daily.

    Order of preference of the use of spells ==> MaSan(exevo mas san) ---> GranCon(exori gran con) ---> Con(exori con), if radius >= 5 ---> San(exori san), if radius <= 4

    I intend in the future to add the option to launch rune.

    The pvp option has never tested, since I never played in pvp, so I do not know if it will work.

    --Attack Pally
    auto(100)

    local monsters = {'name 1', 'name 2'} --if wind 10 ==> {'Name'} or {'name'}.....if wind 11, only {'name'}
    local HuntSections = {"Hunt"} --for example...{'Hunt'}....{'Floor 1', 'Floor 2'}
    local pvp = false --check pvp
    local MasSan = true --exevo mas san
    local numberMonsters = 3 --monsters for mas san
    local GranCon = true --exori gran con
    local Con = true --exori con
    local San = true --exori san
    --Option
    local LancerBeetle = false

    ----------------------------------------
    if $connected then
    if table.find(HuntSections, $wptsection) then
    if MasSan and cancastspell('exevo mas san') and $level >= 50 and maroundspell('exevo mas san', '3x3', unpack(monsters)) >= numberMonsters and $mp >= 1300 and (paround(7) == 0 or not pvp) and $attacked.isshootable then
    pausewalking(300)
    cast('exevo mas san')
    wait(300)
    elseif table.find(monsters, $attacked.name) and $attacked.isshootable then
    if GranCon and cancastspell('exori gran con') and $level >= 90 or ($attacked.dist >= 1 and (paround(3) > 0 and pvp)) then
    cast('exori gran con')
    wait(300)
    elseif Con and cancastspell('exori con') and $level >= 23 and $attacked.dist >= 5 or ($attacked.dist >= 1 and (paround(3) > 0 and pvp)) then
    cast('exori con')
    wait(300)
    elseif San and cancastspell('exori san') and $level >= 40 then
    cast('exori san')
    wait(300)
    end
    end
    end
    if LancerBeetle then
    if maround(5, 'Lancer Beetle') >= 4 and cancastspell('exevo mas san') and maroundspell('exevo mas san', 'any', 'Lancer Beetle') >= 4 and (paround(7) == 0 or not pvp) then
    pausewalking(300)
    cast('exevo mas san')
    wait(300)
    end
    end
    end

  3. #3
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,423
    Reputation
    119
    Rep Power
    25
    @Bollo

    Added Rune, I haven't tested it yet.

    Order of preference of the use of spells ==> MaSan(exevo mas san) ---> Rune ---> GranCon(exori gran con) ---> Con(exori con), if radius >= 5 ---> San(exori san), if radius <= 4

    --Attack Pally
    auto(100)

    local monsters = {'name 1', 'name 2'} --if wind 10 ==> {'Name'} or {'name'}.....if wind 11, only {'name'}
    local HuntSections = {"Hunt"} --for example...{'Hunt'}....{'Floor 1', 'Floor 2'}
    local pvp = false --check pvp
    local MasSan = true --exevo mas san
    local Rune = false --check use rune
    local RuneType = 'avalanche rune'
    local numberMonsters = 3 --monsters for mas san or rune
    local GranCon = true --exori gran con
    local Con = true --exori con
    local San = true --exori san
    --Option
    local LancerBeetle = false
    local RuneLancerBeetle = false

    ----------------------------------------
    local AttackRune = getarearunetile(not pvp, unpack(monsters))

    if $connected then
    if table.find(HuntSections, $wptsection) then
    if MasSan and cancastspell('exevo mas san') and $level >= 50 and maroundspell('exevo mas san', '3x3', unpack(monsters)) >= numberMonsters and $mp >= 1300 and (paround(7) == 0 or not pvp) and $attacked.isshootable then
    pausewalking(300)
    cast('exevo mas san')
    wait(300)
    elseif Rune and itemcount(RuneType) > 0 and cancastspell(RuneType) and AttackRune.amount >= numberMonsters and $mp > 1300 and (paround(10) == 0 or not pvp) and $attacked.isshootable then
    pausewalking(300)
    useitemon(RuneType, 0, AttackRune.tile)
    wait(300)
    elseif table.find(monsters, $attacked.name) and $attacked.isshootable then
    if GranCon and cancastspell('exori gran con') and $level >= 90 or ($attacked.dist >= 1 and (paround(3) > 0 and pvp)) then
    cast('exori gran con')
    wait(300)
    elseif Con and cancastspell('exori con') and $level >= 23 and $attacked.dist >= 5 or ($attacked.dist >= 1 and (paround(3) > 0 and pvp)) then
    cast('exori con')
    wait(300)
    elseif San and cancastspell('exori san') and $level >= 40 then
    cast('exori san')
    wait(300)
    end
    end
    end
    if LancerBeetle then
    if maround(5, 'Lancer Beetle') >= 4 then
    if MasSan and cancastspell('exevo mas san') and maroundspell('exevo mas san', 'any', 'Lancer Beetle') >= 4 and (paround(7) == 0 or not pvp) and $attacked.isshootable then
    pausewalking(300)
    cast('exevo mas san')
    wait(300)
    elseif RuneLancerBeetle and itemcount(RuneType) > 0 and cancastspell(RuneType) and AttackRune.amount >= numberMonsters and (paround(10) == 0 or not pvp) and $attacked.isshootable then
    pausewalking(300)
    useitemon(RuneType, 0, AttackRune.tile)
    wait(300)
    end
    end
    end
    end

  4. #4
    Moderator Josh's Avatar
    Join Date
    Dec 2013
    Posts
    1,391
    Reputation
    183
    Rep Power
    27
    Quote Originally Posted by Bollo View Post
    Hello,

    I've found several "Advanced Paladin Shooters", but they all seem to be about being PvP-Safe with Paladin spells.

    I'm looking for a script that is basically the same, but which also takes into account whether the ammo has been fired or not (as with the "Sync with spells"-option in WB).

    Paladins looses way too much damage if this is not taken into account.

    Im sure there must be some script like this somewhere?

    Regards
    Bollo
    I'm not sure that there is but I feel like @Cisco is about to implement one!

    Basically what you need to do is to check for new projectiles using this iterator, if you loop at say 100ms then when you find a new projectile of the right type shoot a spell and wait 200 or so ms, it should do the trick.
    Interested in software development and/or programming for Tibia?
    Check out the new Tibia Programming Forums (TibiaPF) by clicking the image below.

    Looking for a bot for the MMORPG, Medivia?
    Check out MediviaBotter, a powerful, injected bot by clicking the link below.


  5. #5
    Wind Tester
    Join Date
    Dec 2013
    Location
    Warsaw, Poland
    Posts
    2,568
    Reputation
    149
    Rep Power
    30
    Just set spells in targeting instead of casting them by action

  6. #6
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,423
    Reputation
    119
    Rep Power
    25
    Quote Originally Posted by XtrmJosh View Post
    I'm not sure that there is but I feel like @Cisco is about to implement one!

    Basically what you need to do is to check for new projectiles using this iterator, if you loop at say 100ms then when you find a new projectile of the right type shoot a spell and wait 200 or so ms, it should do the trick.
    I thought of doing it this way...

    --Attack Pally
    auto(200)
    ...blablabla

    foreach newprojectile p do
    if p.type == 32 and (p.tox == $posx) and (p.toy == $posy) and (p.fromx == $posx) and (p.fromy == $posy) then
    ...blablabla


    The documentation says 32 is sudden death rune, where will I get the other numbers?


    The Imba option seems tempting too.

  7. #7
    Free User Bollo's Avatar
    Join Date
    Oct 2016
    Location
    Sweden
    Posts
    78
    Reputation
    23
    Rep Power
    18
    Quote Originally Posted by Imba View Post
    Just set spells in targeting instead of casting them by action
    Well yes thats the obvious choice and what Im doing atm, but I want to optimize paladins to the max as with any other vocation, hence the request.
    http://i.imgur.com/ZGf30Pt.jpg

    Paid Scripts thread is now live!

  8. #8
    Moderator Josh's Avatar
    Join Date
    Dec 2013
    Posts
    1,391
    Reputation
    183
    Rep Power
    27
    Quote Originally Posted by Cisco View Post
    I thought of doing it this way...

    --Attack Pally
    auto(200)
    ...blablabla

    foreach newprojectile p do
    if p.type == 32 and (p.tox == $posx) and (p.toy == $posy) and (p.fromx == $posx) and (p.fromy == $posy) then
    ...blablabla


    The documentation says 32 is sudden death rune, where will I get the other numbers?


    The Imba option seems tempting too.
    Best way would be to see if you can work them out, just have a persistent running to print them to console and shoot an arrow, see what occurs... It should be pretty clear as long as it's only you and 1 target which isn't shooting projectiles
    Interested in software development and/or programming for Tibia?
    Check out the new Tibia Programming Forums (TibiaPF) by clicking the image below.

    Looking for a bot for the MMORPG, Medivia?
    Check out MediviaBotter, a powerful, injected bot by clicking the link below.


  9. #9
    Wind Tester
    Join Date
    Dec 2013
    Location
    Warsaw, Poland
    Posts
    2,568
    Reputation
    149
    Rep Power
    30
    Quote Originally Posted by Bollo View Post
    Well yes thats the obvious choice and what Im doing atm, but I want to optimize paladins to the max as with any other vocation, hence the request.
    And why do you think using buil-in targeting isnt optimized?

  10. #10
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,423
    Reputation
    119
    Rep Power
    25
    Quote Originally Posted by XtrmJosh View Post
    Best way would be to see if you can work them out, just have a persistent running to print them to console and shoot an arrow, see what occurs... It should be pretty clear as long as it's only you and 1 target which isn't shooting projectiles
    I found in the folder tibiadata > projectiles.xml

    Could you look and see if it's all right? I just tested and it worked fine but I do not know if there is anything else to add to improve or not.

    --Attack Pally
    auto(100)

    --Settings
    local monstersArea = {'name 1', 'name 2'} --consider mas san, rune
    local monsters = {'name 1', 'name 2'} --consider exori gran con, exori con, exori san
    local HuntSections = {'Hunt'} --for example...{'Hunt'}....{'Floor 1', 'Floor 2'}
    --Spells Areas (exevo mas san and runes)
    local MasSan = true --exevo mas san
    local Rune = false --check use rune
    local RuneType = 'avalanche rune'
    local numberMonsters = 3 --monsters for mas san, rune
    local MP = 70 --percentage mp cast mas san, rune
    --Single Atk (exori gran con, exori con and exori san)
    local SmartAttack = true --automatically check if the monster is weaker to physical and holy, ==ONLY NO-PVP==
    local GranCon = true --exori gran con
    local Con = true --exori con
    local San = true --exori san
    --Option
    local LancerBeetle = false
    local RuneLancerBeetle = false
    --PVP
    local pvp = false --check pvp
    local pvpDistance = 10 --check players around, if checked pvp
    local SafeListPvp = {'char 1', 'char 2'}

    ----------------------------------------
    local AttackRune = getarearunetile(unpack(monstersArea))
    local SmartAtk = creatureinfo(unpack(monsters))

    if $connected then
    if table.find(HuntSections, $wptsection) then
    foreach newprojectile p do
    if table.find({1, 2, 3, 7, 8, 9, 14, 16, 19, 21, 22, 23, 24, 33, 34, 35, 40, 45, 48, 49, 50, 51}, p.type) and (p.fromx == $posx) and (p.fromy == $posy) and cooldown(SPELL_GROUP_ATTACK) == 0 then
    if MasSan and cancastspell('exevo mas san') and ($level >= 50) and maroundspell('exevo mas san', '3x3', unpack(monstersArea)) >= numberMonsters and ($mppc >= MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and $attacked.isshootable then
    pausewalking(300)
    cast('exevo mas san')
    wait(300,500)
    elseif Rune and (itemcount(RuneType) > 0) and cancastspell(RuneType) and (AttackRune.amount >= numberMonsters) and ($mppc > MP) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and $attacked.isshootable then
    pausewalking(300)
    useitemon(RuneType, 0, AttackRune.tile)
    wait(300,500)
    elseif table.find(monsters, $attacked.name) and $attacked.isshootable then
    if GranCon and cancastspell('exori gran con') and ($level >= 90) and (not SmartAttack or (SmartAttack and (SmartAtk.physicalmod > SmartAtk.holymod))) then
    cast('exori gran con')
    wait(300,500)
    elseif Con and cancastspell('exori con') and ($level >= 23) and ($attacked.dist >= 5) and (not SmartAttack or (SmartAttack and (SmartAtk.physicalmod > SmartAtk.holymod))) then
    cast('exori con')
    wait(300,500)
    elseif San and cancastspell('exori san') and ($level >= 40) and ($attacked.dist <= 4) and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and (not SmartAttack or (SmartAttack and (SmartAtk.holymod > SmartAtk.physicalmod))) then
    cast('exori san')
    wait(300,500)
    end
    end
    end
    end
    end
    if LancerBeetle then
    if maround(5, 'Lancer Beetle') >= 4 then
    if MasSan and cancastspell('exevo mas san') and ($level >= 50) and maroundspell('exevo mas san', 'any', 'Lancer Beetle') >= 4 and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and $attacked.isshootable then
    pausewalking(300)
    cast('exevo mas san')
    wait(300,500)
    elseif RuneLancerBeetle and itemcount(RuneType) > 0 and cancastspell(RuneType) and AttackRune.amount >= numberMonsters and not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and $attacked.isshootable then
    pausewalking(300)
    useitemon(RuneType, 0, AttackRune.tile)
    wait(300,500)
    end
    end
    end
    end

 

 

Posting Permissions

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