It's exactly as you're trying, but you must put:
filteruseroptions(true)
Before the player Settings, inside init start-end block.
Printable View
so it should looks like that ?
init start
Config.Players.Consider = getuseroption("SafeExori")
local Monsters = {"Nightmare", "Nightmare Scion"}
local Players = {
Consider = false,
Distance = 10,
FloorDifference = 1,
SafeList = {"Bubble", "Eternal Oblivion"},
}
local Spells = {
{Name = "exori gran", Amount = 4},
{Name = "exori", Amount = 3},
{Name = "exori min", Amount = 3},
{Name = "exori ico", Hppc = 10},
{Name = "exori hur", Hppc = 10},
{Name = "utito tempo", Amount = 5},
}
local SpecialAreas = {
--{min x, max x, min y, max y, z}
}
-- DO NOT CHANGE ANYTHING BELOW THIS LINE
local i, LastFloor, Exhaust, SpellDurations = 1, $posz, $timems, {["invisible"] = 200, ["blood rage"] = 10, ["train party"] = 120, ["swift foot"] = 10, ["protector"] = 10, ["great light"] = 695, ["creature illusion"] = 180, ["protect party"] = 120, ["light"] = 370, ["magic shield"] = 200, ["strong haste"] = 22, ["haste"] = 33, ["ultimate light"] = 1980, ["sharpshooter"] = 10, ["intense recovery"] = 60, ["recovery"] = 60, ["enchant party"] = 120, ["heal party"] = 120, ["charge"] = 5}
while Spells[i] do
local info = spellinfo(Spells[i].Name)
if #info.words == 0 then
table.remove(Spells, i)
else
Spells[i].NeedDirection = table.find({"WaveSmall", "WaveVerySmall", "WaveBig", "BeamSmall", "BeamBig", "Front", "Strike"}, info.castarea) ~= nil
Spells[i].Monsters = Spells[i].Monsters or Monsters
table.lower(Spells[i].Monsters)
Spells[i].Duration = (SpellDurations[info.name:lower()] or 1) * 1000
Spells[i].Exhaust = $timems
Spells[i].Attack = info.castmode:match("Target") ~= nil
Spells[i].object = info
i = i + 1
end
end
init end
auto(200, 400)
if $posz ~= LastFloor then
LastFloor, Exhaust = $posz, $timems + 2000
return
else
for _, area in ipairs(SpecialAreas) do
local a,b,c,d,e = unpack(area)
if $posx <= b and $posx >= a and $posy <= d and $posy >= c and $posz == e then
return
end
end
end
if $timems >= Exhaust then
for i, Spell in ipairs(Spells) do
if $timems >= Spell.Exhaust and cancastspell(Spell.object) 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 = Spell.Attack and maroundspell(Spell.Name, BestDir, unpack(Spell.Monsters)) or maround(1, false, unpack(Spell.Monsters))
end
if BestAmount >= Spell.Amount then
while $self.dir ~= BestDir do
turn(BestDir)
waitping()
end
cast(Spell.Name) waitping()
Spell.Exhaust = $timems + Spell.Duration
end
elseif Spell.Hppc and $attacked.hppc >= Spell.Hppc and table.find(Spell.Monsters, $attacked.name:lower()) and $attacked.isshootable and cancastspell(Spell.object, $attacked) then
cast(Spell.Name) waitping()
Spell.Exhaust = $timems + Spell.Duration
end
end
end
end
sorry but maybe i am noob with hotkeys :D
No, and please don't copy the whole code. I'll post only the stuff you need to change.
init start
local Monsters = {"Nightmare", "Nightmare Scion"}
filteruseroptions(true)
local Players = {
Consider = getuseroption("SafeExori"),
Distance = 10,
FloorDifference = 1,
SafeList = {"Bubble", "Eternal Oblivion"},
}
...
Thanks a lot !! ;-)
You are great !
and about the monsters each spell its smth like
local Spells = {
{Name = "exori gran", Amount = 4,Monsters = {"Nightmare", "Nightmare Scion"}},
{Name = "exori", Amount = 3,Monsters = {"Nightmare", "Nightmare Scion"} },
{Name = "exori min", Amount = 3},
{Name = "exori ico", Hppc = 10},
{Name = "exori hur", Hppc = 10},
{Name = "utito tempo", Amount = 5},
}.
smth like that ?
Ye, but if you are going to put the same monsters for 2-3 spells, it's easier to put them on the main list and change only a few spells to other monsters.
ye but it was only the Showcase, to show if its ok, ofc i will put other monsters for spell :P
but one more
can i do smth like that
local Spells = {
{Name = "exori gran", Amount = 4,Monsters = {"Nightmare", "Nightmare Scion"}},
{Name = "exori", Amount = 3,Monsters = {"Nightmare", "Nightmare Scion"} },
{Name = "exori min", Amount = 3, Monsters = {"Nightmare", "Nightmare Scion"}},
{Name = "exori min", Amount = 1, Monsters = {"Grim Reaper"}},
{Name = "exori ico", Hppc = 10},
{Name = "exori hur", Hppc = 10},
{Name = "utito tempo", Amount = 5},
}.
like put 2x Exori Min but for other monsters and ohter amounts?
Regards
Yes it's possible to do that.
Thanks a lot ;-)
--Area Attack
init start
local Monsters = {"Kollos", "Spidris","Spitter","Crawler","Waspoid","Insectoid Worker"}
filteruseroptions(true)
local Players = {
Consider = getuseroption("SafeExori"),
Distance = 10,
FloorDifference = 1,
SafeList = {"Bubble", "Eternal Oblivion"},
}
local Spells = {
{Name = "exori gran", Amount = 3},
{Name = "exori", Amount = 2},
{Name = "exori", Amount = 1, Monsters = {"Kollos", "Spidris"}},
{Name = "exori min", Amount = 3},
{Name = "exori ico", Hppc = 10},
{Name = "exori hur", Hppc = 10},
{Name = "utito tempo", Amount = 5},
{Name = "utito tempo", Amount = 2, Monsters = {"Kollos", "Spidris"}},
}
can you tell me why he shoot exori,exori gran,utito tempo even if he see [ 21:41 You see a swarmer. ] and this monster isn't on the list?
Regards
It could be a problem with maround, actually utito is not an attack spell, so I did a workaround to support spells like it. But the others shouldn't be casted randomly as you said, I'm not sure what it's but I'll look forward on it for the new versions.
not really, it was shooting exori, exori gran with monsters around even if they wasn't on the list it was checking only the amount ;>
Thanks for checking that