@Leonardo can you add exori gran ico if is only 1 monster with 50+% hp or player on screen?
and change some with utito bc so much time he use exori gran or exori then he use utito ;/
Printable View
@Leonardo can you add exori gran ico if is only 1 monster with 50+% hp or player on screen?
and change some with utito bc so much time he use exori gran or exori then he use utito ;/
Still not working.Someone is standing actually besides me and my character is still bursting Exori Flam when the Earth Elemental has like 5% HP.Code:init start
local Monsters = {"Earth Elemental", "Bog Raider", "Snake", "Wolf", "Bear"}
local Players = {
Consider = true,
Distance = 8,
FloorDifference = 1,
SafeList = {"Bubble", "Eternal Oblivion"},
}
local Spells = {
{Name = "exori flam", Hppc = 80},
}
local SpecialAreas = {
-- {min x, max x, min y, max y, z}
}
local UseTargetState = true
-- DO NOT CHANGE ANYTHING BELOW THIS LINE
local i, LastFloor, Exhaust = 1, $posz, $timems
while Spells[i] ~= nil do
Spells[i].Info = spellinfo(Spells[i].Name)
if Spells[i].Info.words == 0 then
table.remove(Spells, i)
else
Spells[i].Monsters = Spells[i].Monsters or Monsters
Spells[i].NeedDirection = table.find({"WaveSmall", "WaveMedium", "WaveVerySmall", "WaveBig", "BeamSmall", "BeamBig", "Front", "Strike"}, Spells[i].Info.castarea) ~= nil
Spells[i].AttackSupport = Spells[i].Info.group:match("Support") ~= nil
table.lower(Spells[i].Monsters)
i = i + 1
end
end
init end
auto(200, 400)
if $posz ~= LastFloor then
LastFloor, Exhaust = $posz, $timems + 2000
return
end
if $timems >= Exhaust and ($targeting or not UseTargetState) then
for _, Spell in ipairs(Spells) do
if cancast(Spell.Info) and not isinsidearea(SpecialAreas) then
if Spell.Amount and (not Players.Consider or paroundfloorignore(Players.Distance, Players.FloorDifference, unpack(Players.SafeList)) == 0) then
local BestAmount, BestDir = 0, $self.dir
if Spell.NeedDirection then
for Dir, Amount in pairs({n = 0, e = 0, s = 0, w = 0}) do
Amount = maroundspell(Spell.Name, Dir, unpack(Spell.Monsters))
if Amount > BestAmount or (Amount >= BestAmount and Dir == $self.dir) then
BestAmount, BestDir = Amount, Dir
end
end
else
BestAmount = not Spell.AttackSupport and maroundspell(Spell.Name, BestDir, unpack(Spell.Monsters)) or maround(1, false, unpack(Spell.Monsters))
end
if BestAmount >= math.max(Spell.Amount, 1) then
while $self.dir ~= BestDir do
turn(BestDir) waitping()
end
cast(Spell.Name) waitping()
end
elseif Spell.Hppc and $attacked.hppc >= math.max(Spell.Hppc, 1) and table.find(Spell.Monsters, $attacked.name:lower()) and cancast(Spell.Info, $attacked) then
cast(Spell.Name) waitping()
end
end
end
end
left: exori mas
my character using utito tempo even if only 1 monster that i put in hotkey is on me but 4 other monsters that should not be considered
how to consider special area?
i put that
local SpecialAreas = {
{ 32178, 32180, 32914, 32196, 10}
}
but doesnt work
Can I do it against players?
@Leonardo, what is the spell priority? I'm guessing first to last since iterator is i+1?
spamrate 0.1ms...
just show "you are exausted"
hi i would like to know, is how to edit a script for when player around it just use exori hur and exori ico ?? Thank you in advance.
00:56:42 error in HUD script NewHUDScript:
Cannot wait or wait for issued events in display scripts.
stack traceback:
["cast(Spell.Name) waitping()"]:NewHUDScript:77 in user script
Not running for me.
Any advice?
error in Persistent script NewPersistentScript:
["local Players = {"]:NewPersistentScript:5: '}' expected (to close '{' at line 3) near 'local'
Is it possible to somehow add party to safelist, instead of names? As me and a friend is botting in a party, I don't want to get skull if someone would get kicked and the party disbanded.
Thanks! That's what I needed.
init start
local Monsters = {"Hero", "Vicious Squire", "Renegade Knight", "Vile Grandmaster", "Giant Spider", "Brimstone Bug", "Wailling Widow"}
local Players = {
Consider = true,
Distance = 10,
FloorDifference = 1,
SafeList = {"Bubble", "Eternal Oblivion"},
}
local Spells = {
{Name = "exori gran", Amount = 3},
{Name = "exori", Amount = 2},
{Name = "exori min", Amount = 3},
{Name = "exori ico", Hppc = 10},
{Name = "exori hur", Hppc = 10},
{Name = "utito tempo", Amount = 20},
}
local SpecialAreas = {
-- {min x, max x, min y, max y, z}
}
local UseTargetState = true
-- DO NOT CHANGE ANYTHING BELOW THIS LINE
local i, LastFloor, Exhaust = 1, $posz, $timems
while Spells[i] ~= nil do
Spells[i].Info = spellinfo(Spells[i].Name)
if Spells[i].Info.words == 0 then
table.remove(Spells, i)
else
Spells[i].Monsters = Spells[i].Monsters or Monsters
Spells[i].NeedDirection = table.find({"WaveSmall", "WaveMedium", "WaveVerySmall", "WaveBig", "BeamSmall", "BeamBig", "Front", "Strike"}, Spells[i].Info.castarea) ~= nil
Spells[i].AttackSupport = Spells[i].Info.group:match("Support") ~= nil
table.lower(Spells[i].Monsters)
i = i + 1
end
end
init end
auto(200, 400)
if $posz ~= LastFloor then
LastFloor, Exhaust = $posz, $timems + 2000
return
end
if $timems >= Exhaust and ($targeting or not UseTargetState) then
for _, Spell in ipairs(Spells) do
if cancast(Spell.Info) and not isinsidearea(SpecialAreas) then
if Spell.Amount and (not Players.Consider or paroundfloorignore(Players.Distance, Players.FloorDifference, unpack(Players.SafeList)) == 0) then
local BestAmount, BestDir = 0, $self.dir
if Spell.NeedDirection then
for Dir, Amount in pairs({n = 0, e = 0, s = 0, w = 0}) do
Amount = maroundspell(Spell.Name, Dir, unpack(Spell.Monsters))
if Amount > BestAmount or (Amount >= BestAmount and Dir == $self.dir) then
BestAmount, BestDir = Amount, Dir
end
end
else
BestAmount = not Spell.AttackSupport and maroundspell(Spell.Name, BestDir, unpack(Spell.Monsters)) or maround(1, false, unpack(Spell.Monsters))
end
if BestAmount >= math.max(Spell.Amount, 1) then
while $self.dir ~= BestDir do
turn(BestDir) waitping()
end
cast(Spell.Name) waitping()
end
elseif Spell.Hppc and $attacked.hppc >= math.max(Spell.Hppc, 1) and table.find(Spell.Monsters, $attacked.name:lower()) and cancast(Spell.Info, $attacked) then
cast(Spell.Name) waitping()
end
end
end
end
don't work what is wrong olny use exori hur/ico
@Leonardo would you be able to explain me how can I add special area to the script? I am hunting hive and I dont want it to shoot round stairs but I havnt got a clue how to do it, cheers!
where i must put this scripts? on scripter/persistent?
could someone help me with the special areas please? idk how to config that
Hello,
to add a Special area in which you wouldn't want to cast a spell, you would first check for the Position data of the area.
if you dont want to cast it 1 sqm around a stair which is located on:
posx: 32123
posy: 32223
posz: 7
and for 2 sqm around a stair which is located on:
posx: 33145
posy: 31248
posz: 6
then you would edit the script like this:
init start
local Monsters = {"Swampling", "Snake", "Marsh Stalker", "Water Buffalo", "Salamander", "Emerald Damselfly"}
local Players = {
Consider = true,
Distance = 10,
FloorDifference = 1,
SafeList = {"Bubble", "Eternal Oblivion"},
}
local Spells = {
{Name = "exori gran", Amount = 4},
{Name = "exori", Amount = 3},
{Name = "exori min", Amount = 2},
{Name = "exori ico", Hppc = 10},
{Name = "exori hur", Hppc = 10},
{Name = "utito tempo", Amount = 5},
}
local SpecialAreas = {
{32122, 32124, 32222, 32224, 7},
{33143, 33147, 31246, 31250, 6}
}
local UseTargetState = false
-- DO NOT CHANGE ANYTHING BELOW THIS LINE
local i, LastFloor, Exhaust = 1, $posz, $timems
while Spells[i] ~= nil do
Spells[i].Info = spellinfo(Spells[i].Name)
if Spells[i].Info.words == 0 then
table.remove(Spells, i)
else
Spells[i].Monsters = Spells[i].Monsters or Monsters
Spells[i].NeedDirection = table.find({"WaveSmall", "WaveMedium", "WaveVerySmall", "WaveBig", "BeamSmall", "BeamBig", "Front", "Strike"}, Spells[i].Info.castarea) ~= nil
Spells[i].AttackSupport = Spells[i].Info.group:match("Support") ~= nil
table.lower(Spells[i].Monsters)
i = i + 1
end
end
init end
auto(200, 400)
if $posz ~= LastFloor then
LastFloor, Exhaust = $posz, $timems + 2000
return
end
if $timems >= Exhaust and ($targeting or not UseTargetState) then
for _, Spell in ipairs(Spells) do
if cancast(Spell.Info) and not isinsidearea(SpecialAreas) then
if Spell.Amount and (not Players.Consider or paroundfloorignore(Players.Distance, Players.FloorDifference, unpack(Players.SafeList)) == 0) then
local BestAmount, BestDir = 0, $self.dir
if Spell.NeedDirection then
for Dir, Amount in pairs({n = 0, e = 0, s = 0, w = 0}) do
Amount = maroundspell(Spell.Name, Dir, unpack(Spell.Monsters))
if Amount > BestAmount or (Amount >= BestAmount and Dir == $self.dir) then
BestAmount, BestDir = Amount, Dir
end
end
else
BestAmount = not Spell.AttackSupport and maroundspell(Spell.Name, BestDir, unpack(Spell.Monsters)) or maround(1, false, unpack(Spell.Monsters))
end
if BestAmount >= math.max(Spell.Amount, 1) then
while $self.dir ~= BestDir do
turn(BestDir) waitping()
end
cast(Spell.Name) waitping()
end
elseif Spell.Hppc and $attacked.hppc >= math.max(Spell.Hppc, 1) and table.find(Spell.Monsters, $attacked.name:lower()) and cancast(Spell.Info, $attacked) then
cast(Spell.Name) waitping()
end
end
end
end