Yup I know... but stamina is killing me... all chars around 20 stamina haha
Yup I know... but stamina is killing me... all chars around 20 stamina haha
Btw LB wyrm cave is in testing phase, possibly will post that today/tomorrow :)
Okay... Scouted Okolnir today, tomorrow probably I will write script :)
Added instructions section, because some of you pm me for info how to configurate script or complaining that it is not working properly from the start
ty just bought it
Hello are you still accepting requests? Thanks! :)
Yeah. Write here or in PM if that is private request :)
Hey, got any scripts for a 70ED? I dont care about waste, just the exp ^^
What I only have for 70 ed is yalahar necro, not best exp, but making task and often profit or break even form hero drop...
Any script for Coryms in LB?
No, I don't have any, but actually I can write it. For EK it will be coming, any other profesion?
My newest idea is to make creature product seller - don't let resellers/traders gain all the money on you :D
I will make it to go on all places that does not require access quests and on some places that require, but with possibility to turn it off, also only the places I have access to :)
Never tried this (old)script but if you're into coding you might be able to use it as an outline to rewrite/edit/update most of the lines so that it functions better than the bot's rune shooter.
Code:-- Attack magic including area runes.
-- By Tururu. V1.00
-- CONFIGURATION
-- Monsters for each attack
local SpellMonsters={"Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire","Lizard Zaogun","Killer Caiman","Eternal Guardians","Death Blob","Mutated Bat","Mutated Tiger"}
local AreaRuneMonsters={"Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire","Lizard Zaogun","Killer Caiman","Eternal Guardians","Death Blob","Mutated Bat","Mutated Tiger"}
local UltimateMonsters={"Demon Skeleton"}
-- Number of monsters for area rune and ultimate attack
local AreaRuneMin=3
local UltimateMin=5
-- Spells and runes to use
local SpellAttack = "exori Frigo"
local SpellRange = 3
local SpellMana = 20
local AreaRuneID = 3161 -- 3202 Thunderstorm
local UltimateAttack = "exori vis"
local UltimateMana = 20
local MaxRadius=3 --For search of suitable tiles to shoot runes, a radius around the center of gravity
-- END OF CONFIGURATION
local InsideAreaRune={
{1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
local ScoreAreaRune={
{2,2,2,1,0,0,0,0,0,0,0,0,0,0,0},
{2,2,2,1,0,0,0,0,0,0,0,0,0,0,0},
{2,2,1,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
local AreaRuneN
local UltimateN
local RuneExhaust=0
local tx=0
local ty=0
local tz=0
local selfx
local selfy
function TrySpell() --A function to use the default spell attack
if(Self.CanCastSpell(SpellAttack))then
--Get current target creature. Targeting handled by xenobot
local target = Creature.GetByID(Self.TargetID())
if(target:isValid() and target:isMonster())then
if(target:isOnScreen(false) and target:isVisible() and target:isAlive())then
for n in pairs(SpellMonsters) do
if(SpellMonsters[n]==target:Name()) then
if(target:DistanceFromSelf() <= SpellRange) then
Self.Cast(SpellAttack,SpellMana)
end
break
end
end
end
end
end
end
while(true) do
--Get all creatures in my floor, alive, which are monsters
local tbl = {}
for i = CREATURES_LOW, CREATURES_HIGH do
local creature = Creature.GetFromIndex(i)
if(creature:isValid() and creature:isMonster())then
if(creature:isOnScreen(false) and creature:isVisible() and creature:isAlive())then
table.insert(tbl, creature)
end
end
end
--Calculate number of creatures to use area rune/ultimate spell
local MonsterX = {}
local MonsterY = {}
local AverageX=0
local AverageY=0
AreaRuneN=0
UltimateN=0
if(table.getn(tbl)>=AreaRuneMin) then
for _, cid in ipairs(tbl) do
for n in pairs(AreaRuneMonsters) do
if(AreaRuneMonsters[n]==cid:Name()) then
AreaRuneN=AreaRuneN+1
MonsterX[AreaRuneN]= cid:Position().x
MonsterY[AreaRuneN]= cid:Position().y
AverageX=AverageX+MonsterX[AreaRuneN]
AverageY=AverageY+MonsterY[AreaRuneN]
break
end
end
for n in pairs(UltimateMonsters) do
if(UltimateMonsters[n]==cid:Name()) then
UltimateN=UltimateN+1
break
end
end
end
end
if(UltimateN>=UltimateMin and Self.CanCastSpell(UltimateAttack))then --Many creatures on screen, cast ultimate spell
Self.Cast(UltimateAttack,UltimateMana)
wait(600)
elseif(AreaRuneN>=AreaRuneMin and RuneExhaust<=0 and Self.ItemCount(AreaRuneID)>0) then --Enough creatures to shoot runes, search suitable tile to shoot area rune
AverageX=math.floor(AverageX/AreaRuneN) -- Center of gravity of the creatures included in the area rune list. A good starting point to search
AverageY=math.floor(AverageY/AreaRuneN)
local SuitableTileFound=false
local SuitableX
local SuitableY
local OnTileN=0
local OnTileScore=0
local MaxScore=0
local MaxOnTile=0
tz=Self.Position().z
selfx=Self.Position().x
selfy=Self.Position().y
for tx=AverageX-MaxRadius,AverageX+MaxRadius do
if(math.abs(tx-selfx)<=7) then --Dont want to check tiles outside of the screen
for ty=AverageY-MaxRadius,AverageY+MaxRadius do
if(math.abs(ty-selfy)<=5) then --Dont want to check tiles outside of the screen
if( Map.IsTileWalkable(tx,ty,tz))then --Can shoot only if walkable
OnTileN=0
OnTileScore=0
for i= 1, AreaRuneN do
--Checking whether the monster is inside the rune by checking against the array with the drawing of the area. Adding 1 to the indexes because lua starts in i=1
--Same for scores. Give more points to the inside of the area, to try to catch moving monsters.
if(InsideAreaRune[math.abs(ty-MonsterY[i])+1][math.abs(tx-MonsterX[i])+1]==1)then
OnTileN=OnTileN+1
OnTileScore=OnTileScore+ScoreAreaRune[math.abs(ty-MonsterY[i])+1][math.abs(tx-MonsterX[i])+1]
end
end
if(OnTileN>=AreaRuneMin) then --Check that the position we just checked covers enough monsters to be worth a rune shot
SuitableTileFound=true
if(OnTileScore>MaxScore)then --Keep in memory the position with the best score
SuitableX=tx
SuitableY=ty
MaxScore=OnTileScore
MaxOnTile=OnTileN
end
end
end
end
end
end
end
if(SuitableTileFound)then --We found a place to shoot
local AreaRunesLeft=Self.ItemCount(AreaRuneID)
print("Found X:"..SuitableX.." Y:"..SuitableY.." to hit "..MaxOnTile.." monsters with score "..MaxScore..". Runes: "..AreaRunesLeft)
delayWalker(400)
Self.UseItemWithGround(AreaRuneID,SuitableX,SuitableY,Self.Position().z)
wait(600)
if(Self.ItemCount(AreaRuneID)<AreaRunesLeft)then --The exhaust for runes is 2 seconds. We already waited 600 ms, wait 1400 more if we are positive in this check that we shot a rune.
print("Exhausted")
RuneExhaust=1400
end
else
TrySpell()
end
else -- Default situation, use normal spells
TrySpell()
end
if(RuneExhaust>0)then
RuneExhaust=RuneExhaust-200
end
wait(200)
end
Thanks :) will look into it
The bot's shooter is actually really good. However, to minimize the risk of detection the bot imposes a limit on how many things you may be doing at one time. One common example of this is that the bot won't use runes while its looting bodies (or at least wont use them as often as possible). However, these restrictions are imposed on lua scripts as well.
The second most common cause of poor rune useage is that runes go on cooldown when you drink a potion. This may in turn prompt the bot to use a strike spell instead, causing it to suffer an even greater cooldown before it may try to use a rune again. This can be worked around by using a mana refilling lua script and lowering the percentage at which the bot drinks potions in the standard healer. For higher leveled scripts its also a good idea to remove strike spells from the magic shooter (keep them as "if stuck" spells).
the most disturbing thing in rune shooting is that bot does not stop to shoot rune, cuz you cant use it while running (like pots), so it will spamm you a lot of "using one of xxx runes..." and will shoot exori vis instead, cuz you are running away from monster (also usually missing normal attack from wand)
targeting by built in magic shooter is good, very good I would say (it misses only when monsters are moving fast and are not grouped in one place)
Are you using elastic targeting? Cause that will cause it to prioritize running more. Personally I've never had any issues with shooting while running though, even while using elastic targeting. You can always try removing the strike spell though. The best solution would ofc be if the bot had an "against AT MOST x creatures" setting in the shooter, that is a definitely a weakness which a custom script could overcome.
nope... I have tried elastic targetting and the only time I use it is on drillworms with pally (high range and quite space to run), just if you want to use runes, you need to use utani hur/gran hur to move much faster than mobs
You made the EK Coryms LB Script?
Sorry for the "absence" but I have came back to work. I will now mostly do something on days off.
I will re do the list with planned scripts, because I abandoned few of them, cuz on some vocations this places are not profitable, have lower exp, are dangerous... so this way I will eliminate those...
Liking your scripts but you should utilize the special areas feature. Your scripts particularly Yalahar Dragons just runs around until they disappear or run into more targets.
~deleted
decided not to wait longer :) added frosts
Will re make most of the scripts, hud will be changed to the newest version, scripts will require turning walker on to work (it was problem with setting up for first time), also some minor changes (special areas, softs, stamina, etc)
Hey folks :D I will start new acc with rp and 1/2 eks... I will script all hunting grounds for them all the way and revamp all my scripts that I have already as I promised.
Keep it up mate! I expect nice scripts soon :)
Hah yesterday I made dawnport script, starts as EK and exits from client when finished lvling till 8 and reached Oressa (i think it is her name?)
Now my plan is to make edron rp, edron ek and port hope ek scripts. No idea by now what to do there, port hope swamps, north port hope and eventually tarantulas or carniphilas, edron possibly with trolls/goblins, rotworms and later dwarfs/orcs (need to check them myself before letting bot there as I never hunted on this spot myself)
Ok, got some time today so I will post what I made by now:
Port hope swamp trolls - EK 8 lvl, 1 offline training session recommended, no supplies needed, required rope, coming to depot on low cap or 5 or more medicine pouches to deposit them.
Edron rotworms - RP 8 lvl, 1 session offline training recommended, I use throwing stars cuz I bought them in bulk cheaper than spears, but you can easily change it to spears. Required rope and shovel
Today making Port hope north including crocodile cave for ek... will do it if I finish doing in service of yalahar quest, cuz there is service today on my world... wish me good luck xD
Guys do you have any good alternative for ek on 8 lvl? Other than swamp trolls, I wanted to make something different to give you other possible startups
EK low level. Hmmm there are good places but you need skills. Edron Trolls, Crocodiles + Tasker (I would buy this :D) Tarantulas + Tasker (same as crocodiles) Maybe scripts that use tasker are a bit hard (I dont know) but come on bro make few of this.
Yalahar Ghouls, good option too. Cemetery to the right.
All tombs -1 -2 for a fresh start. Nomads they are like Amazons but for Premmium :D the cave of Arito is always empty. You can make a script to do the quest (optional) and then the hunting ground, with option to loot heavy items and sell them ofc.
Edron forgotten tomb too. Thats it :p
Nomads... never thought about it
Maybe not all tombs, but penisula is good (although scripted by Xeno) and tarpit is good as far as I know, what can be good is oasis as well ;)
arito cave... never thought of it, really :D and also never heard of edron tomb o.O need to check this out
and about taskers, I have seen function to count monsters only once somewhere (never tried it), by myself I am not really sure if I know enough xeno commands to write it xD anyway scripts that I do are often on creatures for tasking, but I recommend to take tasks not force users to take them, cuz with pally/mage after 130 you can sit all the time on tasks an get points from different spawns, with ek there is problem, cuz only sea serpents are okay... maybe behe on 200+ but I never reached this lvl with EK
thanks
Okay for EK I added Swamp Trolls and Port Hope North and for RP Edron Rotworms
Enjoy, these are for free :)
Also -> Dawnport ready, check in Knight Scripts (you actually pass dawnport as ek xD)
I am done with list of next coming scripts. My friend, who is botter much longer time than me and also possibly knows much more about tibia itself, helped me with it.
I will release them most probably when I will script them with my project chars. List is with scripts 8 to 100 lvl, but I will not post it here. You will have surprise.