Tudo que Tricoder postou
-
Relogger & Backpack Reopener - Reloga, reabre as Backpacks e reativa as funções: 'cavebot / looting / targeting'
init start -- local SCRIPT_VERSION = '1.1.0' -- The bot will open these backpacks, in this order. The first item is the -- name of the backpack, the second the location and the third is whether -- it should be open as new, which defaults to true. local backpacks = { {'Backpack of Holding', 'back'}, {'Dragon Backpack' , '0' }, {'Expedition Backpack', '1' , false}, {'Brocade Backpack' , '1' }, {'Brown Bag' , '0' }, } local serverSaveWait = {15, 20} -- Wait time on server save, in minutes local nextTry = $timems init end auto(100) if not $connected and $timems >= nextTry then set('Cavebot/Enabled', 'no') set('Targeting/Enabled', 'no') set('Looting/Enabled', 'no') reconnect() while not $connected do wait(90, 110) end waitping() local bp, loc, new, count, parentCont for _, v in ipairs(backpacks) do bp, loc, new = table.unpack(v) new = tern(new ~= nil, new, true) count = #getopencontainers() openitem(bp, loc, new) if new then while #getopencontainers() ~= count + 1 do wait(90, 110) end else waitping() end resizewindows(0) end set('Cavebot/Enabled', 'yes') set('Targeting/Enabled', 'yes') set('Looting/Enabled', 'yes') end foreach newmessage m do if m.type == MSG_RED then local min = m.content:match(REGEX_SERVER_SAVE) if min then nextTry = $timems + (tonumber(min) + math.random(table.unpack(serverSaveWait))) * 60000 break end end end Créditos: windbotbr
-
Auto Responder - Respondendo automaticamente os players
init start local Config = { SafeList = {"Bubble", "Eternal Oblivion"}, MinLevel = 10, IgnoreMonsters = false, LogText = true, UseDatabase = false, } -- DO NOT EDIT BELOW -- local Responder = { MessageInfo = {}, Timer = os.time(), } Responder.Ignored = $chardb:getvalue('AUTO_RESPONDER', 'IgnoredGuys') if Config.UseDatabase and Responder.Ignored and Responder.Ignored ~= '{}' then Responder.Ignored = Responder.Ignored:totable() else Responder.Ignored = {} end Responder.SpeechWords = { { k = {"spanish?", "spanish ?", "span?", "spanol?", "spanol?", "spanol ?", "spanol ?"}, r = {{"no", "nope"}, {"nope man", "nopss", "no man bb"}} }, { k = {"hi", "hai", "hello", "sup", "yo", "yoo", "hiho", "HI", "HELLO", "SUP", "YO", "YOO", "HIHO", "HAI"}, r = {{"hi", "hello", "hiho", "yo", "sup"}, {"i said hi", "already said hi", "sup, again"}, {"ok man, this is getting boring", "this is boring man", "damn stop saying hi"}} }, { k = {"use bot?", "use bot ?", "use bot", "bot?", "bot", "botter", "bottter", "botterrr", "botting", "you are bot", "you're bot", "your bot"}, r = {{"me?", "me ? lol", "no man", "you wrong", "you're wrong", "i dont bot"}, {"leave plz", "stop dis or ignored", "gtfo", "stop plz", "annoying :["}} }, { k = {"auto respond", "auto responder", "auto respond ?", "auto respond?", "auto responder?", "auto responder ?", "auto-respond", "auto-responder", "auto-responder?", "auto-responder ?", "auto-respond?", "auto-respond ?", "auto talk", "auto-talk", "auto talk?", "auto talk ?", "auto-talk?"}, r = {{"no, just type and do enter", "lol man", "lol wtf is this?", "lol'ed now", "oh tibia have that ?", "hahaha"}, {"whatever", "stop dis pls", "byee"}, {"i'm sirious now", "stop or ignored"}} }, { k = {"no kill", "plz no kill", "dont kill", "i'm skilling", "im skilling", "im skill", "plz no kill", "i'm skill", "man no kill", "ks?", "ks", "ks lol", "dont ks", "don't ks"}, r = {{"sry i need exp", "i need all exp", "all exp is mine", "leave plz i need exp"}, {"i will kill everything", "i kill what i want", "ks is fun"}} }, { k = {"noob", "n00b", "nb", "noob -.-", "n00b -.-", "noobie", "newbie", "nb plz", "noob plz"}, r = {{"noob u", "noob you", "nab", "sure noob", "-.-"}, {"whatever", "w.e", "ok man bb", "noob gtfo"}, {"aff", "boring", "i'm mad now"}} }, { k = {"whats my name?", "what is my name ?", "what is my name?", "what's my name?", "what's my name ?"}, r = {{"look on your character lol", "your name is noob", "u dont know how to read ?"}, {"lol man u know your name", "u know your name stop spam", "stop spam man"}, {"look on your screen and read", "such a noob"}, {"ok now i'll ignore you"}} }, { k = {"going to delete you", "going to delete your char", "i'll delete your char", "i will delete your char", "i'll ban you", "i'll ban u", "going to ban you", "going to ban u"}, r = {{"omaiga", "so you're a gm..", "no you're not", "ok man do what u want"}, {"come back tomorrow", "stop man bb", "stop spam"}, {"next msg like this = ignore"}} }, { k = {"fuck you", "fuck u", "fuk you", "fuk u", "fak you", "fak u", "fak", "fuck", "damn you", ".i.", "..i..", ",,i,,", ",i,"}, r = {{"not nice man", "stop", "i dont like that"}, {"sounds like a you dont like me", "stop or ignore", "stop or reported", "reported"}} }, { k = {"leave", "leave plz", "leave man", "leave pls", "leavee"}, r = {{"nop", "sry no", "nonono", "can't", "i'll stay", "sry bb"}, {"no man byee", "i will hunt now", "i am here now begone"}, {"damn can't your see ? i'm here now", "B.Y.E"}} }, { k = {"lol", "rofl", "lmao", "ftw", "wtf", "haha", "hehe", "LMAO", "ROFL", "LOL", "loled", "lol'ed", "lul", "lool", "luls", "lulz", "lols"}, r = {{"haha", "lul", "lool", "hehehe", "rofl", "roflmao", ":)", "^^", ":]", ":>"}, {"haha", "lul", "lool", "hehehe", "rofl", "roflmao", ":)", "^^", ":]", ":>"}, {"haha", "lul", "lool", "hehehe", "rofl", "roflmao", ":)", "^^", ":]", ":>"}, {"haha", "lul", "lool", "hehehe", "rofl", "roflmao", ":)", "^^", ":]", ":>"}, {"ok, i like to smile but it's enough let me alone now", "ok but now let me alone", ":) well i'm going, cya"}} }, { k = {"how do you type?", "how do you type ?", "how you type ?", "how you type?", "how to type?", "how to type ?"}, r = {{"type text and do enter", "u need something special", "u need to be special", "with fingers", "with hands"}, {"lol stuff you said", "man i need to hunt alone", "bb or ignored"}} }, { k = {"whoa you're so fast", "wow you're so fast", "you type really fast", "you type fast", "so fast you type", "type fast", "you're so fast", "your fast", "so fast"}, r = {{"yeah i train a lot", "ye imma hell of a racemachine", "yes i do"}, {"i said that i'm fast", "ye already said that, i'm really fast", "i'm so fast that i can hunt and talk to you :)"}, {"ok man..", "ye you know", "true.."}, {"i'm getting tired of this", "ok man now bb"}} }, } table.insert(Config.SafeList, $name) table.lower(Config.SafeList) function table.findtext(self, v) local c = table.find(self, v) if not c then for i, k in pairs(self) do if v:find(k) or v:lower():find(k:lower()) then return i end end else return c end return nil end local fileName = sprintf('[%s] - Auto Responder.txt', $name) if Config.LogText and not file.exists(fileName) then file.clear(fileName) end init end auto(1000, 1200) foreach newmessage m do if table.find({MSG_DEFAULT, MSG_WHISPER, MSG_YELL, MSG_PVT}, m.type) and (not table.find(Config.SafeList, m.sender:lower())) and m.level >= Config.MinLevel and os.difftime(os.time(), Responder.Timer) >= 2 and (not Responder.Ignored[m.sender]) and #spellinfo(m.content).words == 0 then if Config.LogText then file.writeline(fileName, string.format("RECEIVED: [%s] VIA: %s FROM: %s CONTENT: %s", m.timestr, m.type == MSG_PVT and "Private" or "Local Chat", m.sender, m.content)) end for State, Entry in pairs(Responder.SpeechWords) do if table.findtext(Entry.k, m.content) then if Responder.MessageInfo[m.sender] then if Responder.MessageInfo[m.sender][State] then if not Responder.SpeechWords[State].r[Responder.MessageInfo[m.sender][State] + 1] then Responder.Ignored[m.sender] = true local msg = ({"ignored -.-", "ignored"})[math.random(1, 2)] if not Config.IgnoreMonsters then while maround(1, false) > 0 do wait(100, 200) end end if m.type ~= MSG_PVT then say("Local Chat", msg) else say("Local Chat", string.format("@%s@ %s", m.sender, msg)) end if Config.LogText then file.writeline(fileName, string.format("SENT: [%s] VIA: %s FROM: %s TO: %s CONTENT: %s", m.timestr, m.type == MSG_PVT and "Private" or "Local Chat", $name, m.sender, msg)) file.writeline(fileName, string.format("IGNORED PLAYER: [%s] NAME: %s", m.timestr, m.sender)) end $chardb:setvalue('AUTO_RESPONDER', 'IgnoredGuys', table.tostring(Responder.Ignored)) return end else Responder.MessageInfo[m.sender][State] = 0 end else Responder.MessageInfo[m.sender] = {} Responder.MessageInfo[m.sender][State] = 0 end if not Config.IgnoreMonsters then while maround(1, false) > 0 do wait(100, 200) end end local msg = Entry.r[Responder.MessageInfo[m.sender][State] + 1][math.random(1, #Entry.r[Responder.MessageInfo[m.sender][State] + 1])] if m.type ~= MSG_PVT then say("Local Chat", msg) else say("Local Chat", string.format("*%s* %s", m.sender, msg)) end if Config.LogText then file.writeline(fileName, string.format("SENT: [%s] VIA: %s FROM: %s TO: %s CONTENT: %s", m.timestr, m.type == MSG_PVT and "Private" or "Local Chat", $name, m.sender, msg)) end Responder.MessageInfo[m.sender][State], Responder.Timer = Responder.MessageInfo[m.sender][State] + 1, os.time() return end end end end Créditos: windbotbr
-
Spells Area Attacker - Atacar monstros usando spells específicos de acordo com as circunstancias
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 = { -- {min x, max x, min y, max y, z} } 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", "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 Créditos: windbotbr
-
Loot Logger - Registra e Salva todas as mensagens de loots
init start -- local SCRIPT_VERSION = '1.0.1' local filename = 'Loot - ' .. $name .. '.txt' local hideEmpty = false -- DO NOT EDIT BELOW THIS LINE -- init end auto(1000) local handler = nil foreach newmessage m do if m.type == MSG_INFO and not (hideEmpty and m.content:find('nothing')) then if handler == nil then handler = io.open(filename, 'a+') end handler:write(os.date('%H:%M') .. ' ' .. m.content .. '\n') end end if handler ~= nil then handler:close() end Créditos: windbotbr
-
Persistent Anti Idle ( Anti Disconnect ) - Se mexer para não dar disconnect
init start local lastStand = $standtime local randTime = math.random(300000, 600000) init end auto(100) if $standtime < lastStand then lastStand = $standtime end if $standtime - lastStand > randTime then local dirs = {'n', 'e', 's', 'w'} -- Makes sure it's random and not the same we're facing right now table.remove(dirs, table.find(dirs, $self.dir)) turn(dirs[math.random(1, 3)]) waitping() lastStand = $standtime randTime = math.random(300000, 600000) end Créditos: windbotbr
-
Persistent Alerts - Vai alertar caso algo aconteça
init start -- local SCRIPT_VERSION = '1.0.1' local alerts = { { name = 'Player on Screen', sound = 'playeronscreen.wav', playSound = false, pauseBot = false, logout = false, safelist = {'Bubble', 'Cachero'} }, { name = 'Player Attacking', sound = 'playerattacking.wav', playSound = false, pauseBot = false, logout = false, safelist = {'Bubble', 'Cachero'} }, { name = 'Monster Attacking', sound = 'monsterattacking.wav', playSound = false, pauseBot = false, logout = false, safelist = {'Rat', 'Bat'} }, { name = 'Private Message', sound = 'privatemessage.wav', playSound = false, pauseBot = false, logout = false, safelist = {'Bubble', 'Cachero'} }, { name = 'Default Message', sound = 'defaultmessage.wav', playSound = false, pauseBot = false, logout = false, safelist = {'Bubble', 'Cachero'} }, { name = 'GM Detected', sound = 'gmdetected.wav', playSound = false, pauseBot = false, logout = false }, { name = 'Disconnected', sound = 'disconnected.wav', playSound = false, pauseBot = false, logout = false }, { name = 'Character Stuck', sound = 'characterstuck.wav', playSound = false, pauseBot = false, logout = false, stuckTime = 30000 -- ms }, { name = 'Health Below', sound = 'lowhealth.wav', playSound = false, pauseBot = false, logout = false, pcBelow = 50 }, { name = 'Mana Below', sound = 'lowmana.wav', playSound = false, pauseBot = false, logout = false, pcBelow = 50 } } -- Do not edit below this line do local tests = { function(safelist) return paroundignore(10, table.unpack(safelist)) > 0 end, function(safelist) return $pattacker.id ~= 0 and not table.find(safelist, $pattacker.name:lower()) end, function(safelist) return $mattacker.id ~= 0 and not table.find(safelist, $mattacker.name:lower()) end, function(safelist) foreach newmessage m do if m.type == MSG_PVT then return true end end return false end, function(safelist) foreach newmessage m do if m.type == MSG_WHISPER or m.type == MSG_DEFAULT or m.type == MSG_YELL then return true end end return false end, function() foreach creature c do if c.name:starts('GM') or c.name:starts('CM') then return true end end return false end, function() return not $connected end, function(stuckTime) return $standtime > stuckTime end, function(pcBelow) return $hppc < pcBelow end, function(pcBelow) return $mppc < pcBelow end } for i = 1, #alerts do local alert = alerts[i] alert.test = tests[i] if alert.safelist then table.lower(alert.safelist) end end end init end auto(100) listas('Alerts') for _, v in ipairs(alerts) do if v.test(v.safelist or v.stuckTime or v.pcBelow) then if v.playSound then playsound(v.sound) end if v.pauseBot then pausebot(true) end if v.logout then xlog() end end end Créditos: windbotbr
-
Curar a si mesmo usando 'Exura Sio'
cast('exura sio "' .. $name) Créditos: windbotbr
-
Lançar 'exura sio' em si mesmo se você for Druid. E 'exura vita' se você for um Sorcerer.
if $vocation == 'druid' then cast('exura sio "' .. $name) wait(300, 500) elseif $vocation == 'sorcerer' then cast('exura vita') wait(300, 500) end Créditos: windbotbr
-
Mostrar o nome da vocação do seu char abreviadamente ( 'NV', 'K', 'P', 'S' ou 'D' )
auto(200) listas($vocshort) Créditos: windbotbr
-
Usar "Exura ico" se você for um Knight. E 'Exura' se você for um Paladin.
if $voc == 2 then cast('exura ico') wait(300, 500) elseif $voc == 2 then cast('exura') wait(300, 500) end Créditos: windbotbr
-
Usar "Exura Vita" se você perder mais que 150 pontos hit de vida
auto(200) if $maxhp-$hp > 150 then cast('exura vita') wait(300, 500) end Créditos: windbotbr
-
Usar "Exura San" se você perde mais que 140 pontos hit de vida
auto(200) if $maxhp-$hp > 140 then cast('exura San') wait(300, 500) end Créditos: windbotbr
-
Usar "Exura Ico" se você perde mais que 100 pontos hit de vida
auto(200) if $maxhp-$hp > 100 then cast('exura ico') wait(300, 500) end Créditos: windbotbr
-
Pequeno error ao abrir TFS..
Vai nas sources, abre player.cpp e procura por: void Player::manageAccount Posta aqui.
-
Usar "Exura Gran Ico" se você perde mais que 170 pontos hit de vida
auto(200) if $maxhp-$hp > 170 then cast('exura gran ico') wait(300, 500) end Créditos: windbotbr
-
Usar "Exura Gran San" se você perde mais que 180 pontos hit de vida
auto(200) if $maxhp-$hp > 180 then cast('exura gran san') wait(300, 500) end Créditos: windbotbr
-
Usar "Exura San" caso esteja com menos de 60% de vida
auto(200) if $hppc < 60 then cast('exura san') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura' se a Vida estiver abaixo de 50 e com Mana acima de 20
auto(200) if $hp < 50 and $mp >= 20 then cast('exura') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura Gran' se a Vida estiver abaixo de 40 e com Mana acima de 70
auto(200) if $hp < 40 and $mp >= 70 then cast('exura gran') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura San' se a Vida estiver abaixo de 200 e com Mana acima de 160
auto(200) if $hp < 200 and $mp >= 160 then cast('exura san') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura Gran San' se a Vida estiver abaixo de 150 e com Mana acima de 210
auto(200) if $hp < 150 and $mp >= 210 then cast('exura gran san') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura Ico' se a Vida estiver abaixo de 120 e com Mana acima de 40
auto(200) if $hp < 120 and $mp >= 40 then cast('exura ico') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura Gran Ico' se a Vida estiver abaixo de 400 e com Mana acima de 200
auto(200) if $hp < 400 and $mp >= 200 then cast('exura gran ico') wait(300, 500) end Créditos: windbotbr
-
Usar 'Exura Vita' se a Vida estiver abaixo de 200 e com Mana acima de 160
auto(200) if $hp < 200 and $mp >= 160 then cast('exura vita') wait(300, 500) end Créditos: windbotbr
-
Show-Off Client + Launcher Pokémon Rubrum
Ficou maravilhoso!