@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
could you add an option to use ultimates strikes?
@Heronas
@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
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.
tyvm!
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'}
-- 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
This is my target
target.jpg
try this:
auto(200, 400)
local pos = getarearunetile(false, "Dragon", "Dragon Hatchling")
if pos.amount >= 3 then
pausewalking(500)
useitemon("Avalanche Rune", 0, pos.tile) waitping(1, 2)
pausewalking(0)
end
documentation