Ir para conteúdo
  • Cadastre-se

HOTKEYS/ACTIONS Auto Responder - Respondendo automaticamente os players


Posts Recomendados

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
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Tricoder
      if $cavebot then setsetting('Cavebot/Enabled', 'no') else setsetting('Cavebot/Enabled', 'yes') end Créditos: windbotbr
    • Por Tricoder
      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
    • Por Tricoder
      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
    • Por Tricoder
      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
    • Por Tricoder
      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
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo