Signup Now
Page 2 of 2 FirstFirst 12
Results 11 to 18 of 18
  1. #11
    Moderator Josh's Avatar
    Join Date
    Dec 2013
    Posts
    1,391
    Reputation
    183
    Rep Power
    27
    Quote Originally Posted by Cisco View Post
    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)

    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
    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) 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
    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
    You continue to amaze me. Are you able to do a stability test? Check how accurate it is over like 100 shots for instance? Would be very interested to see that. The reason the built in targeting isn't good is that it misses a lot of attacks, so I think this will also (unless it's actually Lucas' targeting logic that's broken).

    There is one other way which ozzix had the brilliant idea to count items in ammo slot. Probably a bit late to mention now but if the result of the accuracy test is that it just isn't good enough, I think the ammo check would be an ideal replacement (at least where assassin stars / spears are not being used). Worth a thought, maybe there is some super hybrid of the two which gives us an ultra-reliable and super neat system...
    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.


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

    Thanks. Tomorrow I will put to test on the 3 pally. One of them stayed 10h40min in the game and spent 1900 smp and 8700 arrows and made a profit of 290k, using targeting as Imba mentioned. Tomorrow if at that time he spend less supplements and hunting alone, as the character had hunted, he hears an improvement.
    @Bollo

    --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
    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) 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
    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

  3. #13
    Free User Bollo's Avatar
    Join Date
    Oct 2016
    Location
    Sweden
    Posts
    78
    Reputation
    23
    Rep Power
    18
    Quote Originally Posted by Cisco View Post
    @XtrmJosh

    Thanks. Tomorrow I will put to test on the 3 pally. One of them stayed 10h40min in the game and spent 1900 smp and 8700 arrows and made a profit of 290k, using targeting as Imba mentioned. Tomorrow if at that time he spend less supplements and hunting alone, as the character had hunted, he hears an improvement.
    @Bollo

    --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
    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) 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
    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
    Looks awesome mate! Im gonna test it myself and post results
    http://i.imgur.com/ZGf30Pt.jpg

    Paid Scripts thread is now live!

  4. #14
    Banned
    Join Date
    Jul 2016
    Posts
    830
    Reputation
    46
    Rep Power
    0
    @Cisco

    Tried the persistent for 20 hours and it's almost perfect.

    Almost because sometimes it doesnt cast exori san/con.

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

    Tried the persistent for 20 hours and it's almost perfect.

    Almost because sometimes it doesnt cast exori san/con.
    Yes, that detail I'm trying to fix.

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

    --Attack Pally
    auto(100)

    local monsters = {'name 1', 'name 2'}
    local HuntSections = {'Hunt'} --for example...{'Hunt'}....{'Floor 1', 'Floor 2'}
    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 MP = 50 --percentage mp cast mas san and/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
    --PVP
    local pvp = false --check pvp
    local pvpDistance = 10 --check players around, if checked pvp
    local SafeListPvp = {'char 1', 'char 2'}

    ----------------------------------------
    local AttackRune = getarearunetile(not pvp, 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) then
    if MasSan and cancastspell('exevo mas san') and $level >= 50 and maroundspell('exevo mas san', '3x3', unpack(monsters)) >= 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)
    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)
    elseif table.find(monsters, $attacked.name) and $attacked.isshootable then
    if GranCon and cancastspell('exori gran con') and $level >= 90 then
    cast('exori gran con')
    wait(300)
    elseif Con and cancastspell('exori con') and $level >= 23 and $attacked.dist >= 5 then
    cast('exori con')
    wait(300)
    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) then
    cast('exori san')
    wait(300)
    end
    end
    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 not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) 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 not pvp or (pvp and paroundfloorignore(pvpDistance, 1, unpack(SafeListPvp)) == 0) and $attacked.isshootable then
    pausewalking(300)
    useitemon(RuneType, 0, AttackRune.tile)
    wait(300)
    end
    end
    end
    end

  7. #17
    Banned
    Join Date
    Jul 2016
    Posts
    830
    Reputation
    46
    Rep Power
    0
    I will test it, thanks Cisco, as always.

    Edit:
    @Cisco

    After an exhaustively test (30 hours approx) I can say it's perfect, never missed a spell. However I only tried strikes.

    *clap*

    Cisco ftw.
    Last edited by Sargul; 02-09-2017 at 04:25 AM.

  8. #18
    Free User Cisco's Avatar
    Join Date
    Aug 2014
    Location
    Brazil
    Posts
    1,423
    Reputation
    119
    Rep Power
    25
    Quote Originally Posted by Sargul View Post
    I will test it, thanks Cisco, as always.

    Edit:
    @Cisco

    After an exhaustively test (30 hours approx) I can say it's perfect, never missed a spell. However I only tried strikes.

    *clap*

    Cisco ftw.
    I for one give up this persistent because I can not improve it. I still do not like using it I think very slowly, the targeting is much faster. I had even thought of adding "utori san," but I do not know what else to do.

    This is the last version I made yesterday.


    --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) 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 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 not pvp and (SmartAtk.holymod > SmartAtk.physicalmod))) then
    cast('exori san')
    wait(300,500)
    elseif Con and cancastspell('exori con') and ($level >= 23) and (not SmartAttack or (SmartAttack and (SmartAtk.physicalmod > SmartAtk.holymod))) then
    cast('exori con')
    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
  •