Well here's my version of an advanced shooter for mages.
It incorporates strike spells, area spells, area runes and target runes.
Again, this Leonardo guy gets credits for checking if it's safe to cast area spells and runes, he's somewhat good isn't he.
If you hate the comments in the scripts, feel free to delete them, just for reference and education.
-- Advanced Shooter for Mages
-- Version 1.0.1 - By Heronas
-- Credits for playercheck go to Leonardo
init start
-- Set monsters to consider when using spells/area runes
local creatureNames = {
'Crystal Spider',
'Frost Dragon'
}
-- Spells such as beams/waves/UEs and even knight/paladin spells can be set here
-- Example: {name = "exevo vis hur", amount = 3, monsters = {'Hydra'}},
-- name = spell name or words, amount = monster amount, monsters = monsters to consider
local spells = {
{name = "exevo gran mas vis", amount = 4},
{name = "exevo vis hur", amount = 3},
{name = "exevo vis hur", amount = 2, monsters = {'Frost Dragon'}},
{name = "exevo gran vis lux", amount = 2},
}
-- Area runes such as thunderstorms can be set here
-- Example: {name = "thunderstorm rune", amount = 3, monsters = {'Crystal Spider'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local areaRunes = {
{name = "avalanche rune", amount = 3}
}
-- Target runes such as SDs can be set here, for now only supports 1 targetrune
-- Example: {name = "sudden death rune", amount = 3, monsters = {'Demon'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local targetRunes = {
{name = "sudden death rune", amount = 3, monsters = {'Frost Dragon'}},
}
-- Check for players, taken from Leonardo's scripts
local players = {
consider = true,
distance = 20,
safeList = {"Bubble", "Eternal Oblivion"},
floorDifference = 1
}
-- Set to true to use strong strikes
local strongStrike = true
-- DON'T EDIT BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING --
--------------------------------------------------------------------
-- Directions to check
local shootDir = {'n', 'w', 's', 'e'}
-- Initial values for loop iteration
local quitLoop = 0
local exhaustTime = 0
local strongExhaustTime = 0
local countTries = 0
local areaCountLow = 10
local spellCountLow = 10
for i,j in pairs(spells) do
if spellCountLow > spells[i].amount then
spellCountLow = spells[i].amount
end
spells[i].monsters = spells[i].monsters or creatureNames
end
for i,j in pairs(areaRunes) do
if areaCountLow > areaRunes[i].amount then
areaCountLow = areaRunes[i].amount
end
areaRunes[i].monsters = areaRunes[i].monsters or creatureNames
end
for i,j in pairs(targetRunes) do
targetRunes[i].monsters = targetRunes[i].monsters or creatureNames
end
-- Prints
print('Started advanced mage shooter.')
init end
auto(50, 100)
quitLoop = 0
-- Reset exhaust time if a new projectile is fired from your position to your target's position
if $lastprojectile.tox == $attacked.posx and $lastprojectile.toy == $attacked.posy and $lastprojectile.fromx == $posx and $lastprojectile.fromy == $posy then
exhaustTime = $timems
end
if $timems >= exhaustTime then
if not players.consider or paroundfloorignore(players.distance, players.floorDifference, unpack(players.safeList)) == 0 then
-- Spells
if maround(8) >= spellCountLow and spells[1] ~= nil then
for i,_ in pairs(spells) do
if cancast(spells[i].name) then
for j,_ in pairs(shootDir) do
if maroundspell(spells[i].name, shootDir[j], unpack(spells[i].monsters)) >= spells[i].amount then
pausewalking(100)
turn(shootDir[j])
cast(spells[i].name)
quitLoop = 1
end
end
end
end
end
-- Area Runes
if maround(8) >= areaCountLow and areaRunes[1] ~= nil and quitLoop ~= 1 then
for i,_ in pairs(areaRunes) do
runeArea = getarearunetile(false, unpack(areaRunes[i].monsters))
if runeArea.amount >= areaRunes[i].amount and itemcount(areaRunes[i].name) ~= 0 then
countTries = 0
pausewalking(500)
useitemon(areaRunes[i].name, 0, runeArea.tile)
wait(500)
countTries = 1
if $lastprojectile.time <= exhaustTime then
countTries = 2
end
quitLoop = 1
end
end
end
end
-- Targetrunes and strikes
if $attacked.id ~=0 and quitLoop == 0 then
if maround(7, unpack(targetRunes[1].monsters)) >= targetRunes[1].amount then
useoncreature(targetRunes[1].name, $target)
elseif $timems >= strongExhaustTime and strongStrike then
caststrongstrike(1000)
strongExhaustTime = $timems + 5000
else
caststrike(1000)
end
end
-- Add exhaust time, takes into account if you missfire an area rune
exhaustTime = $timems + 1000 - countTries*500
end
Because a few people requested it in this thread, here is a paladin version:
-- Advanced Shooter for Paladins
-- Version 1.0.0 - By Heronas
-- Credits for playercheck go to Leonardo
init start
-- Set monsters to consider when using spells/area runes
local creatureNames = {
'Skeleton',
'Ghoul',
}
-- Spells such as beams/waves/UEs and even knight/paladin spells can be set here
-- Example: {name = "exevo vis hur", amount = 3, monsters = {'Hydra'}},
-- name = spell name or words, amount = monster amount, monsters = monsters to consider
local spells = {
{name = "exevo mas san", amount = 4, monsters = {'Ghoul'}},
{name = "exevo mas san", amount = 3},
}
-- Area runes such as thunderstorms can be set here
-- Example: {name = "thunderstorm rune", amount = 3, monsters = {'Crystal Spider'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local areaRunes = {
{name = "avalanche rune", amount = 5}
}
-- Target runes such as SDs can be set here, for now only supports 1 targetrune
-- Example: {name = "sudden death rune", amount = 3, monsters = {'Demon'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
-- NOTE: FOR NOW ONLY WORKS FOR 1 TARGETRUNE AND IT NEEDS A MONSTERS PARAMETER!!!!
local targetRunes = {
{name = "holy missile rune", amount = 2, monsters = {'Ghoul'}}
}
-- Check for players, taken from Leonardo's scripts
local players = {
consider = true,
distance = 20,
safeList = {"Bubble", "Eternal Oblivion"},
floorDifference = 1
}
-- Set to true to use strong strikes
local strongStrike = true
-- DON'T EDIT BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING --
--------------------------------------------------------------------
-- Directions to check
local shootDir = {'n', 'w', 's', 'e'}
-- Initial values for loop iteration
local quitLoop = 0
local exhaustTime = 0
local strongExhaustTime = 0
local countTries = 0
local areaCountLow = 10
local spellCountLow = 10
for i,j in pairs(spells) do
if spellCountLow > spells[i].amount then
spellCountLow = spells[i].amount
end
spells[i].monsters = spells[i].monsters or creatureNames
end
for i,j in pairs(areaRunes) do
if areaCountLow > areaRunes[i].amount then
areaCountLow = areaRunes[i].amount
end
areaRunes[i].monsters = areaRunes[i].monsters or creatureNames
end
for i,j in pairs(targetRunes) do
targetRunes[i].monsters = targetRunes[i].monsters or creatureNames
end
-- Prints
print('Started advanced paladin shooter.')
init end
auto(50, 100)
quitLoop = 0
-- Reset exhaust time if a new projectile is fired from your position to your target's position
if $lastprojectile.tox == $attacked.posx and $lastprojectile.toy == $attacked.posy and $lastprojectile.fromx == $posx and $lastprojectile.fromy == $posy then
exhaustTime = $timems
end
if $timems >= exhaustTime then
if not players.consider or paroundfloorignore(players.distance, players.floorDifference, unpack(players.safeList)) == 0 then
-- Spells
if maround(8) >= spellCountLow and spells[1] ~= nil then
for i,_ in pairs(spells) do
if cancastspell(spells[i].name) then
for j,_ in pairs(shootDir) do
if maroundspell(spells[i].name, shootDir[j], unpack(spells[i].monsters)) >= spells[i].amount then
pausewalking(100)
turn(shootDir[j])
cast(spells[i].name)
quitLoop = 1
end
end
end
end
end
-- Area Runes
if maround(8) >= areaCountLow and areaRunes[1] ~= nil and quitLoop ~= 1 then
for i,_ in pairs(areaRunes) do
runeArea = getarearunetile(false, unpack(areaRunes[i].monsters))
if runeArea.amount >= areaRunes[i].amount and itemcount(areaRunes[i].name) ~= 0 then
countTries = 0
pausewalking(500)
useitemon(areaRunes[i].name, 0, runeArea.tile)
wait(500)
countTries = 1
if $lastprojectile.time <= exhaustTime then
countTries = 2
end
quitLoop = 1
end
end
end
end
-- Targetrunes and strikes
if $attacked.id ~=0 and quitLoop == 0 then
if maround(7, unpack(targetRunes[1].monsters)) >= targetRunes[1].amount and itemcount(targetRunes[1].name) > 0 then
useoncreature(targetRunes[1].name, $target)
else
holyMod = tonumber(creatureinfo($attacked.name).holymod)
physicalMod = tonumber(creatureinfo($attacked.name).physicalmod)
if holyMod > physicalMod and holyMod > 90 then
if cancastspell('exori san') then
cast('exori san')
end
elseif physicalMod > 90 then
if strongStrike and cancastspell('exori gran con') then
cast('exori gran con')
strongExhaustTime = $timems + 5000
elseif cancastspell('exori con') then
cast('exori con')
end
end
end
end
-- Add exhaust time, takes into account if you missfire an area rune
exhaustTime = $timems + 1000 - countTries*500
end
PHP Code:
Versionlog:
1.0.0 - First release
1.0.1 - Counts runes now + paladin version added
01-08-2015, 01:25 AM
ash katchup
Hello there,
I haven't tested you script yet but have a question:
Where are you using areaCountLow and spellCountLow variables?
The following IF doesn't make sense:
if spellCountLow > spells[i].amount then
spellCountLow = spells[i].amount
end
Was it suppose to be a sort method (bubble?)? If so, are you sure it is working?
01-08-2015, 01:47 AM
Heronas
Heya,
You're right, I'm not using them at the moment, minor error on my side.
They are supposed to be in line 93 and 109 respectively, areaCountLow in 109 at
if maround(8) >= 2 and spells[1] ~= nil then
instead of the value 2 and same for spellCountLow at line 93.
The if statement is actually functioning, both variables start with a value 10 and if the next value in the table spells is lower, it gets replaced until it finds the lowest value.
I do those two if statements to prevent unecessary for loops in the actual script, after the initial.
I updated the code snippet in my first post, thanks.
01-08-2015, 02:28 AM
ash katchup
You're welcome!
I have another question: as i'm newbie at LUA, how does the following statement works?
areaRunes[i].monsters = areaRunes[i].monsters or creatureNames
01-08-2015, 03:08 AM
Heronas
Basically, if the value areaRunes[i].monsters returns a nil value, so that variable doesn't have a value, then it uses the other variable creatureNames.
If I would do this:
local value = nil
local test = value or 2
print(test)
It would return 2. And if I would do this:
local value = 3
local test = value or 2
print(test)
It would return 3.
01-08-2015, 03:30 AM
ash katchup
I see.
So, basically creatureNames is a list of creatures to use spells IF none other are set on targetRunes[i].monsters?
Interesting!
01-08-2015, 04:23 AM
Heronas
That is correct :)
As for the strikes (e.g. exori vis etcetera), they are based on your target and do not use any list or table of creatures, just your current target.
02-04-2015, 05:19 PM
felipepiva
bro, tell me, i havent tested your persistent yet but, it tries to shoot first area spells, sd, thunderstorms or normal spells? ty
02-21-2015, 09:58 PM
Heronas
Quote:
Originally Posted by felipepiva
bro, tell me, i havent tested your persistent yet but, it tries to shoot first area spells, sd, thunderstorms or normal spells? ty
Sorry I was busy lately didn't have time to be on the forum.
As of yet area spells, then area runes then target runes and strike spells last.
03-05-2015, 01:10 AM
Jesseh
@Heronas
How can I adapt it to a paladin using only avalanche, exevo mas san and casting exori san or gran con/con when needed? I tried to modify it but the character doesn`t shoot avalanche because I`m exhausted. If i turn off spells in targeting he shoots well the avalanche but it doesn`t cast exori san. How to proceed?
Thanks!
03-05-2015, 02:38 PM
gmoney
Quote:
Originally Posted by Heronas
elseif $timems >= strongExhaustTime and strongStrike then
caststrongstrike(1000)
Isn't this the same as:
elseif cancastspell(strongstrike) then
cast(strongstrike)
Also, does anyone know if there is an equivalent for runes? Something like if canshoot(" ")? Or maybe I will try using your exhasutTime xD
03-05-2015, 03:58 PM
Dworak
@Heronas maybe good idea would be to make shooter for paladins also ? Exevo Mas San + GFB/AVA + Exori San/Con - i remaked this code for RP and its working very nice :P
just in my opinion ;-)
Regards
03-05-2015, 05:31 PM
Dracker
could you add an option to use ultimates strikes?
@Heronas
03-06-2015, 01:20 PM
Jesseh
Quote:
Originally Posted by Dworak
@Heronas maybe good idea would be to make shooter for paladins also ? Exevo Mas San + GFB/AVA + Exori San/Con - i remaked this code for RP and its working very nice :P
just in my opinion ;-)
Regards
Dworak, could you share it with us? =)
Thanks!
03-06-2015, 02:15 PM
Dworak
@Jesseh, try this one it was working good for me, but not sure if this version is shooting Exori San, don't remember will test it at monday
-- Advanced Shooter
-- Version 1.0.0 - By Heronas
-- Credits for playercheck go to Leonardo
init start
-- Set monsters to consider when using spells/area runes
local creatureNames = {
'Fury',
'Nightmare',
'Spectre';
}
-- Spells such as beams/waves/UEs and even knight/paladin spells can be set here
-- Example: {name = "exevo vis hur", amount = 3, monsters = {'Hydra'}},
-- name = spell name or words, amount = monster amount, monsters = monsters to consider
local spells = {
{name = "exevo mas san", amount = tonumber(getuseroption('San Amount'))},
{name = "exevo vis hur", amount = 123},
{name = "exevo vis hur", amount = 122, monsters = {'Frost Dragon'}},
{name = "exevo gran vis lux", amount = 122},
}
-- Area runes such as thunderstorms can be set here
-- Example: {name = "thunderstorm rune", amount = 3, monsters = {'Crystal Spider'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local areaRunes = {
{name = "avalanche rune", amount = tonumber(getuseroption('Ava Amount'))}
}
-- Target runes such as SDs can be set here, for now only supports 1 targetrune
-- Example: {name = "sudden death rune", amount = 3, monsters = {'Demon'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local targetRunes = {
{name = "sudden death rune", amount = 3, monsters = {'Frost Dragon'}},
}
-- Check for players, taken from Leonardo's scripts
local players = {
consider = getuseroption('Safe San'),
distance = 20,
safeList = {"Bubble", "Eternal Oblivion"},
floorDifference = 1
}
-- Set to true to use strong strikes
local strongStrike = false
-- DON'T EDIT BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING --
--------------------------------------------------------------------
-- Directions to check
local shootDir = {'n', 'w', 's', 'e'}
-- Initial values for loop iteration
local quitLoop = 0
local exhaustTime = 0
local strongExhaustTime = cooldown("exori san")
local countTries = 0
local areaCountLow = 10
local spellCountLow = 10
for i,j in pairs(spells) do
if spellCountLow > spells[i].amount then
spellCountLow = spells[i].amount
end
spells[i].monsters = spells[i].monsters or creatureNames
end
for i,j in pairs(areaRunes) do
if areaCountLow > areaRunes[i].amount then
areaCountLow = areaRunes[i].amount
end
areaRunes[i].monsters = areaRunes[i].monsters or creatureNames
end
for i,j in pairs(targetRunes) do
targetRunes[i].monsters = targetRunes[i].monsters or creatureNames
end
init end
auto(50, 100)
quitLoop = 0
-- Reset exhaust time if a new projectile is fired from your position to your target's position
if $lastprojectile.tox == $attacked.posx and $lastprojectile.toy == $attacked.posy and $lastprojectile.fromx == $posx and $lastprojectile.fromy == $posy then
exhaustTime = $timems
end
if $timems >= exhaustTime then
if not players.consider or paroundfloorignore(players.distance, players.floorDifference, unpack(players.safeList)) == 0 then
-- Spells
if maround(8) >= spellCountLow and spells[1] ~= nil and getuseroption('Use Mas San') then
for i,_ in pairs(spells) do
if cancast(spells[i].name) then
for j,_ in pairs(shootDir) do
if maroundspell(spells[i].name, unpack(spells[i].monsters)) >= spells[i].amount then
cast(spells[i].name)
quitLoop = 1
end
end
end
end
end
-- Area Runes
if maround(8) >= areaCountLow and areaRunes[1] ~= nil and quitLoop ~= 1 and getuseroption('Use Ava') then
for i,_ in pairs(areaRunes) do
runeArea = getarearunetile(false, unpack(areaRunes[i].monsters))
if runeArea.amount >= areaRunes[i].amount and itemcount(areaRunes[i].name) ~= 0 then
countTries = 0
pausewalking(500)
useitemon(areaRunes[i].name, 0, runeArea.tile)
pausewalking(0)
countTries = 1
if $lastprojectile.time <= exhaustTime then
countTries = 2
end
quitLoop = 1
end
end
end
end
-- Targetrunes and strikes
if $attacked.id ~=0 and quitLoop == 0 then
if maround(7, unpack(targetRunes[1].monsters)) >= targetRunes[1].amount then
useoncreature(targetRunes[1].name, $target)
elseif $timems >= strongExhaustTime and strongStrike then
caststrongstrike(1000)
strongExhaustTime = $timems + 5000
else
caststrike(1000)
end
end
-- Add exhaust time, takes into account if you missfire an area rune
exhaustTime = $timems + 1000 - countTries*500
end
03-06-2015, 05:56 PM
Heronas
Hey guys I'll look at the script this weekend, I don't have an awful lot of time lately.
I personally think this could use an update to make it work better, I'll see what I can do.
@Jesseh
I'll make another one for paladins, shouldn't be too much work. The only thing is that I don't have a paladin which I can test with but it'll be ok.
@Dracker
I'll add it in the updated version, hopefully this weekend but don't pin me on it.
03-06-2015, 07:10 PM
Dracker
tyvm!
04-19-2015, 09:39 PM
Kirby
When I use this script, and it uses exori flam or any other spell, it changes direction constantly...
It's like the character is dancing.. Is there no way to change this? I think it's a bit obvious that you're botting every time you cast "Exori flam" and your character dances...
local shootDir = {'n', 'w', 's', 'e'}
06-24-2015, 06:00 PM
mgula
1 Attachment(s)
Quote:
-- Advanced Shooter
-- Version 1.0.0 - By Heronas
-- Credits for playercheck go to Leonardo
init start
-- Set monsters to consider when using spells/area runes
local creatureNames = {
'Dragon',
'Dragon Hatchling ',
'Spectre';
}
-- Spells such as beams/waves/UEs and even knight/paladin spells can be set here
-- Example: {name = "exevo vis hur", amount = 3, monsters = {'Hydra'}},
-- name = spell name or words, amount = monster amount, monsters = monsters to consider
local spells = {
{name = "exevo vis hur", amount = 123},
{name = "exevo vis hur", amount = 122, monsters = {'Frost Dragon'}},
{name = "exevo gran vis lux", amount = 122},
}
-- Area runes such as thunderstorms can be set here
-- Example: {name = "thunderstorm rune", amount = 3, monsters = {'Crystal Spider'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local areaRunes = {
{name = "avalanche rune", amount = 3, monsters = {'Dragon'}},
}
-- Target runes such as SDs can be set here, for now only supports 1 targetrune
-- Example: {name = "sudden death rune", amount = 3, monsters = {'Demon'}},
-- name = rune name, amount = monster amount, monsters = monsters to consider
local targetRunes = {
{name = "sudden death rune", amount = 3, monsters = {'Frost Dragon'}},
}
-- Check for players, taken from Leonardo's scripts
local players = {
consider = getuseroption('Safe San'),
distance = 20,
safeList = {"Bubble", "Eternal Oblivion"},
floorDifference = 1
}
-- Set to true to use strong strikes
local strongStrike = false
-- DON'T EDIT BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING --
--------------------------------------------------------------------
-- Directions to check
local shootDir = {'n', 'w', 's', 'e'}
-- Initial values for loop iteration
local quitLoop = 0
local exhaustTime = 0
local strongExhaustTime = cooldown("exori san")
local countTries = 0
local areaCountLow = 10
local spellCountLow = 10
for i,j in pairs(spells) do
if spellCountLow > spells[i].amount then
spellCountLow = spells[i].amount
end
spells[i].monsters = spells[i].monsters or creatureNames
end
for i,j in pairs(areaRunes) do
if areaCountLow > areaRunes[i].amount then
areaCountLow = areaRunes[i].amount
end
areaRunes[i].monsters = areaRunes[i].monsters or creatureNames
end
for i,j in pairs(targetRunes) do
targetRunes[i].monsters = targetRunes[i].monsters or creatureNames
end
init end
auto(50, 100)
quitLoop = 0
-- Reset exhaust time if a new projectile is fired from your position to your target's position
if $lastprojectile.tox == $attacked.posx and $lastprojectile.toy == $attacked.posy and $lastprojectile.fromx == $posx and $lastprojectile.fromy == $posy then
exhaustTime = $timems
end
if $timems >= exhaustTime then
if not players.consider or paroundfloorignore(players.distance, players.floorDifference, unpack(players.safeList)) == 0 then
-- Spells
if maround(8) >= spellCountLow and spells[1] ~= nil and getuseroption('Use Mas San') then
for i,_ in pairs(spells) do
if cancast(spells[i].name) then
for j,_ in pairs(shootDir) do
if maroundspell(spells[i].name, unpack(spells[i].monsters)) >= spells[i].amount then
cast(spells[i].name)
quitLoop = 1
end
end
end
end
end
-- Area Runes
if maround(8) >= areaCountLow and areaRunes[1] ~= nil and quitLoop ~= 1 and getuseroption('Use Ava') then
for i,_ in pairs(areaRunes) do
runeArea = getarearunetile(false, unpack(areaRunes[i].monsters))
if runeArea.amount >= areaRunes[i].amount and itemcount(areaRunes[i].name) ~= 0 then
countTries = 0
pausewalking(500)
useitemon(areaRunes[i].name, 0, runeArea.tile)
pausewalking(0)
countTries = 1
if $lastprojectile.time <= exhaustTime then
countTries = 2
end
quitLoop = 1
end
end
end
end
-- Targetrunes and strikes
if $attacked.id ~=0 and quitLoop == 0 then
if maround(7, unpack(targetRunes[1].monsters)) >= targetRunes[1].amount then
useoncreature(targetRunes[1].name, $target)
elseif $timems >= strongExhaustTime and strongStrike then
caststrongstrike(1000)
strongExhaustTime = $timems + 5000
else
caststrike(1000)
end
end
-- Add exhaust time, takes into account if you missfire an area rune
exhaustTime = $timems + 1000 - countTries*500
end
I need to use Avalanche at Dragon , Dragon Hatchling when it's 3-4 monster . I change yours and doesn't work :(
I need safe Avalanche beacouse play in Retro PVP ;/
It's Safe?
06-24-2015, 07:05 PM
Borges
Quote:
Originally Posted by mgula
I forgot add
I need safe Avalanche beacouse play in Retro PVP ;/
It's Safe?
added
auto(200, 400)
local pos = getarearunetile(false, "Dragon", "Dragon Hatchling")
if pos.amount >= 3 and paround() == 0 then
pausewalking(500)
useitemon("Avalanche Rune", 0, pos.tile) waitping(1, 2)
pausewalking(0)
end
07-20-2015, 02:16 PM
dillen
Hello, i was wondering i play on a retro pvp server and when i get a player on screen it stops shoot like it should. But can you make it so that it shoots sds at the monster if i got player on screen? coz if i dont attack the monsters when i got player on screen they just lure more on me and i die all the time?
Thanks in advance!
07-25-2015, 04:09 AM
Pup
I also have that "NSWE" feature where it likes to dance? Any way to fix.
07-25-2015, 09:37 PM
kroutaa
its striking every monster i attack, why?
07-25-2015, 10:25 PM
Menkens
hey i got problem with this one ;/
error in Persistent script are spell:
["end"]:are spell:110: 'end' expected (to close 'for' at line 43) near '<eof>'
its this line
66.67. for i,j in pairs(areaRunes) do68. if areaCountLow > areaRunes[i].amount then69. areaCountLow = areaRunes[i].amount70. end
66-70 lanes idk what is happeing im newbie ;x i copy this script line by line
09-18-2015, 01:41 PM
Heronas
Quote:
Originally Posted by Kirby
When I use this script, and it uses exori flam or any other spell, it changes direction constantly...
It's like the character is dancing.. Is there no way to change this? I think it's a bit obvious that you're botting every time you cast "Exori flam" and your character dances...
local shootDir = {'n', 'w', 's', 'e'}
Quote:
Originally Posted by Pup
I also have that "NSWE" feature where it likes to dance? Any way to fix.
Can you guys give me an exact indication when this happens, I've never had this happen before, are you using this on low characters or characters that don't have these spells yet?
Quote:
Originally Posted by dillen
Hello, i was wondering i play on a retro pvp server and when i get a player on screen it stops shoot like it should. But can you make it so that it shoots sds at the monster if i got player on screen? coz if i dont attack the monsters when i got player on screen they just lure more on me and i die all the time?
Thanks in advance!
Change line 129 to this:
if ((maround(7, unpack(targetRunes[1].monsters)) >= targetRunes[1].amount) or paround()) and itemcount(targetRunes[1].name) > 0 then
Quote:
Originally Posted by kroutaa
its striking every monster i attack, why?
That's the way I made this script for now, I might consider making it based on a monster list just like the area spells and runes etc., but that would mean it's not as easy to use.
Quote:
Originally Posted by Jesseh
@Heronas
How can I adapt it to a paladin using only avalanche, exevo mas san and casting exori san or gran con/con when needed? I tried to modify it but the character doesn`t shoot avalanche because I`m exhausted. If i turn off spells in targeting he shoots well the avalanche but it doesn`t cast exori san. How to proceed?
Thanks!
Quote:
Originally Posted by Dworak
@Heronas maybe good idea would be to make shooter for paladins also ? Exevo Mas San + GFB/AVA + Exori San/Con - i remaked this code for RP and its working very nice :P
just in my opinion ;-)
Regards
See update in first post, includes exori (gran) con/exori san, delete the strike part if you don't need that.
04-17-2016, 08:47 PM
dutch
+1 awesome made ;)
05-25-2016, 05:16 PM
elitecaos
hey i have a problem,in my targeting setting are set
first spell:strong energy strike
second spell:ice strike
i want him to use the two spells in the monster,but he only use ice strike,you know why?
can you help me?
06-17-2016, 09:05 PM
saweh
Why does this script use exori mort on ice witches? I didnt choose this spell in my targetings? and couldnt find anything about this in the script. Does this script uses automatically the best spells for the creatures?
06-18-2016, 01:55 AM
blakw
Quote:
Originally Posted by saweh
Why does this script use exori mort on ice witches? I didnt choose this spell in my targetings? and couldnt find anything about this in the script. Does this script uses automatically the best spells for the creatures?
Yes it does use best strike spell for creature weakness according to Creatures.xml (Windbot > Tibiadata folder).
06-19-2016, 07:58 AM
saweh
Alright thanks
12-01-2016, 08:06 PM
Dani Scripts
I'm trying some options for my newest scripts that's why i tried this, at sds settings i choosed to use rune at 3 Crystal Spiders the problem is that it isn't throwing them only to crystal spiders if there are 3+ crystal spiders at screen it'll throw sds to any creature i'm attacking is there a way to only shoot to crystal spiders? some lua expert can help me? :)
12-02-2016, 08:54 AM
saska
I need help how to set that used the exori vis gran vis 1 monster and when 3 uses tunderstorm rune and Exevo gran mas vis 6 I am grateful because it is quite complicated for a beginner like.
06-08-2017, 09:41 PM
JorgeGalvan
need help with the script, it goes smoothly but something appears this error and i have to reset the script, otherwise it wont work
16:37:23 error in Cavebot script attacking:
["if maround(7, unpack(targetRunes[1].monst..."]:attacking:119 attempt to index a nil value
07-17-2017, 04:50 PM
meva
So I am using your script and it's working perfectly but I was wondering whether I can do something like the following:
Code:
if getuseroption('useExevoMasSan') then
table.insert(spells, {name = "exevo mas san", amount = MinMonstersDC, monsters = {'Corym Charlatan', 'Corym Skirmisher', 'Corym Vanguard'}})
else
table.remove(spells, {name = "exevo mas san", amount = MinMonstersDC, monsters = {'Corym Charlatan', 'Corym Skirmisher', 'Corym Vanguard'}})
end
Simply if user checked option to cast exevo mas san, it will enable it in scripter and the only way I found to solve it is by inserting rows into table.
But unfortunately I couldnt make it to work ;/
11-26-2017, 09:16 PM
Filleman
Quote:
Originally Posted by Borges
added
auto(200, 400)
local pos = getarearunetile(false, "Dragon", "Dragon Hatchling")
if pos.amount >= 3 and paround() == 0 then
pausewalking(500)
useitemon("Avalanche Rune", 0, pos.tile) waitping(1, 2)
pausewalking(0)
end
Is there any way to add UE to this script aswell, I find this to work 10x better than the other script so would be nice.
02-15-2018, 10:14 PM
digocloda
Como resolver o erro
19:51:41 error in Cavebot script ava sd:
[" return dmg >= hp"]:ava sd:734 attempt to compare number with nil
stack traceback:
[" if wouldDieToAStrike(c) then"]:ava sd:742 in function [" return function()"]:ava sd:721
[" status = spell.shooter(currentMasks[spell.name],..."]:ava sd:886 in function [" local function tryCastSpell(spells, blac..."]:ava sd:883
[" tryCastSpell(unpack(pconfig))"]:ava sd:915 in user script