Ir para conteúdo

Featured Replies

Postado

Bom, estava pesquisando sobre OtClient e acabei achando esse OtClientV8, feito por Kondra -- link em pt-br dizendo sobre ele External Link -- tópico feito pelo próprio criado External Link

 

Comecei pesquisar sobre, e realmente me parasse um OtClient muito bom, o que mais me interessou e oq venho mostrar é a parte do BOT, ele ja vem com um bot incluso que me interessou muito, pois qualquer um pode criar as funções dele em lua. 

O tópico falando do bot so vou deixar escrito oque ta la, mas se quiserem ver as imagens o link é esse -- External Link

Spoiler

O OTClientV8 bot está incluído no projeto OTClientV8, mas possui um repositório github separado com documentação e exemplos.


Este bot permite que você crie o que quiser com a linguagem lua e otclient otml. Ele fornece acesso a todas as funções otclient lua e possui várias funções e ferramentas para facilitar o desenvolvimento.
 
Ainda não há uma interface atualizado, porém você pode criar utilizando a função setupUI e compartilhar

Já está em desenvolvimento a documentação de uso deste bot, onde é possível encontrar scripts e tutoriais de como utiliza-lo 
Se você quiser contribuir, adicionar mais funções, alguns scripts ou até a interface do usuário entre no canal de discord otclientv8 e entre em contato comigo - Entre no Servidor de discórdia OTClientV8! (https://discord.gg/feySup6). Ou apenas faça uma solicitação de recebimento do github.

O Limite é a sua imaginação!

Creditos Kondra

 

Quando baixei o OtClient o bot ja vem um com 'example' com bastante comandos ja adicionado, mas vou deixar alguns exemplo aqui para poderem entender:

Aqui tem todas funções e mais informações sobre o bot -- https://github.com/OTCv8/otclientv8_bot

 

Spoiler

Todos exemplos aqui  NÃO foram criado por mim, deixarei os devidos crédito e link.

Os script são colocado no diretorio do AppData\Roaming\OTClientV8\otclientv8\bot\seuperfil

A maoria aqui talvez ja vem incluso como 'example'.

 

Sio com janela de texto para adicionar quantos friends quiser - credito Evolunia

Spoiler


macro(100, "Sio", function()
    local friend = getPlayerByName(storage.friendName)
    local friend1 = getPlayerByName(storage.friend1Name)
    if friend and friend:getHealthPercent() < 80 then
        say("exura sio \""..storage.friendName)
        delay(500)
   elseif friend1 and friend1:getHealthPercent() <= 80 then -- If u need more you can copy this lines
        say("exura sio \""..storage.friend1Name) --
        delay(500) --
    end -- And paste them between this end and the delay
end)
  addTextEdit("friendName", storage.friendName or "Friend Name", function(widget, text) 
    storage.friendName = text
end)
addLabel("Priority 1 ^ Priority 2 v", "Priority 1 ^ Priority 2 v")
  addTextEdit("friend1Name", storage.friend1Name or "Friend Name", function(widget, text)   -- Also copy this lines
    storage.friend1Name = text -- If u add more just rename the Friend1Name to Friend2Name in the lines u paste
end) --

 

 

 

Anti-Paralyze - credito Evolunia

Spoiler


macro(100, "Anti Paralyze", nil, function()
  if isParalyzed() and storage.autoAntiParalyzeText:len() > 0 then
    saySpell(storage.autoAntiParalyzeText)
end
end)
addTextEdit("autoAntiParalyzeText", storage.autoAntiParalyzeText or "utani hur", function(widget, text) 
  storage.autoAntiParalyzeText = text
end)

 

 

 

Heal com Potion com janela para escolher potions - credito Evolunia

Spoiler


local healthPercent = 99
macro(200, "faster health potting",  function()
  if (hppercent() <= healthPercent) then
    usewith((storage.hpItem), player)
  end
end)
addTextEdit("hpItem", storage.hpItem or "23375", function(widget, text) 
storage.hpItem = text
end)

 

 

Equipa energy ring em determinado % de vida - credito Evolunia

Spoiler


--[[
  1. Start the script with your normal ring on 
  2. make sure the backpack with e-rings
     are always open
]]
local energy_ring = 3051; -- Your energy ring
local energy_ring_equiped = 3088; -- Ring changes id when equiped
local original_ring = getFinger(); -- Your original ring
local healthp_for_energy = 50;
local healthp_for_original = 80;
local manap_for_original = 25;

macro(1000, "e-ring", function()
  if (manapercent() <= manap_for_original and getFinger():getId() ~= original_ring:getId()) then
    g_game.equipItem(original_ring);
  elseif (hppercent() <= healthp_for_energy and manapercent() >= manap_for_original and getFinger():getId() ~= energy_ring) then
      local ring = findItem(energy_ring);
      if (ring) then
          g_game.equipItem(ring);
      end
  elseif (hppercent() >= healthp_for_original and getFinger():getId() ~= original_ring:getId()) then
      g_game.equipItem(original_ring);
  end
end)

 

 

faz com que todas as mensagens privadas sejam exibidas na tela, da mesma forma que os scripts no windbot / xenobot. Basta colá-lo na janela de retornos de chamada e ele funcionará. -- credito Mr. Greyshade

Spoiler


local height = 50
local widget = setupUI([[
Panel
  id: msgPanel
  height: 400
  width: 200
]], g_ui.getRootWidget())

onTalk(function(name, level, mode, text, channelId, pos)
    if (mode ~= 4) then return end
    local msgLabel = g_ui.loadUIFromString([[
Label
  color: #5ff7f7
  background-color: black
  opacity: 0.87
]], widget)
    msgLabel:setText(name .." ["..level.. "]: " .. text)
    msgLabel:setPosition({y = height, x = 10})
    if height > 210 then
        for msgIndex, message in ipairs(widget:getChildren()) do
            message:setPosition({y = message:getPosition().y - 13, x = 10})
            if (msgIndex == 1) then message:destroy() end
        end
    else
        height = height + 13
    end
end)

 

 

Ataca monstro mais proximo e menos health se for mais de um - credito Ele no

Spoiler


macro(100, "Smarter targeting", function() 
  local battlelist = getSpectators();
  local closest = 10
  local lowesthpc = 101
  for key, val in pairs(battlelist) do
    if val:isMonster() then
      if getDistanceBetween(player:getPosition(), val:getPosition()) <= closest then
        closest = getDistanceBetween(player:getPosition(), val:getPosition())
        if val:getHealthPercent() < lowesthpc then
          lowesthpc = val:getHealthPercent()
        end
      end
    end
  end
  for key, val in pairs(battlelist) do
    if val:isMonster() then
      if getDistanceBetween(player:getPosition(), val:getPosition()) <= closest then
        if g_game.getAttackingCreature() ~= val and val:getHealthPercent() <= lowesthpc then 
          g_game.attack(val)
          break
        end
      end
    end
  end
end)

 

 

Agora esse é mais avançado vou deixa oque ele faz com tradução do translate google mas o link original de todos esta no começo. - credito panxor

 

Spoiler

como se comporta:
1.bot usará magia multi-alvo se houver 2 ou mais monstros por perto, mesmo quando houver jogadores na tela - até você atingir 15 pvp kills (alguém tenta fazer o RS)
2. bot usará magia alvo única se apenas 1 monstros ao redor ou existem jogadores na tela (se você ultrapassou 15 pontos de pvp em mata-mata).

Importante! bot irá contar o número de mortes que você ganhou desde que você iniciou o script / redefiniu a janela da macro (desligue e ligue novamente).
Para alterar o ponto inicial da contagem, basta alterar os frags de 0 para o

próprio X Script:

 



local frags = 0

onTextMessage(function(mode, text)
 if string.find(text, "Warning! The murder") then
    frags = frags + 1
end
end)

local multiTargetSpell = 'holy power'
local singleTargetSpell = 'exori san'
local distance = 3
local amountOfMonsters = 2
local fragLimit = 15

macro(250, "Exp Cast",  function()
    local isSafe = true;
    local specAmount = 0
    if not g_game.isAttacking() then
        return
    end
    for i,mob in ipairs(getSpectators()) do
        if (getDistanceBetween(player:getPosition(), mob:getPosition())  <= distance and mob:isMonster())  then
            specAmount = specAmount + 1
        end
        if (mob:isPlayer() and player:getName() ~= mob:getName()) then
            isSafe = false;
        end
    end
    if (specAmount >= amountOfMonsters and ((frags <= fragLimit) or isSafe)) then
        say(multiTargetSpell)
    else
        say(singleTargetSpell)
    end
end)

 

 

Todos script tirado desse link - https://otland.net/threads/scripts-macros-for-kondras-otclientv8-bot.267394/

 

 

Meu objetivo com esse post é só compartilhar, já que não achei nada sobre ele no Tibia King, no momento tenho outros projeto, e não posso estuda as funções do bot, mas acredito que como eu tenha mais pessoas que se interesse.

Mas logo pretendo estuda pois acho que esse seria o melhor client e bot que pode substituir o tibia.exe elf/magebot q sempre usamos.

 

@edit

Não sei se estou na area certa, se estiver errado me desculpe e favor mover.

Postado
  • Administrador

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

  • 1 year later...
Postado
Em 21/02/2020 em 11:55, Naze disse:

Bom, estava pesquisando sobre OtClient e acabei achando esse OtClientV8, feito por Kondra -- link em pt-br dizendo sobre ele External Link -- tópico feito pelo próprio criado External Link

 

Comecei pesquisar sobre, e realmente me parasse um OtClient muito bom, o que mais me interessou e oq venho mostrar é a parte do BOT, ele ja vem com um bot incluso que me interessou muito, pois qualquer um pode criar as funções dele em lua. 

O tópico falando do bot so vou deixar escrito oque ta la, mas se quiserem ver as imagens o link é esse -- External Link

  Mostrar conteúdo oculto

O OTClientV8 bot está incluído no projeto OTClientV8, mas possui um repositório github separado com documentação e exemplos.


Este bot permite que você crie o que quiser com a linguagem lua e otclient otml. Ele fornece acesso a todas as funções otclient lua e possui várias funções e ferramentas para facilitar o desenvolvimento.
 
Ainda não há uma interface atualizado, porém você pode criar utilizando a função setupUI e compartilhar

Já está em desenvolvimento a documentação de uso deste bot, onde é possível encontrar scripts e tutoriais de como utiliza-lo 
Se você quiser contribuir, adicionar mais funções, alguns scripts ou até a interface do usuário entre no canal de discord otclientv8 e entre em contato comigo - Entre no Servidor de discórdia OTClientV8! (https://discord.gg/feySup6). Ou apenas faça uma solicitação de recebimento do github.

O Limite é a sua imaginação!

Creditos Kondra

 

Quando baixei o OtClient o bot ja vem um com 'example' com bastante comandos ja adicionado, mas vou deixar alguns exemplo aqui para poderem entender:

Aqui tem todas funções e mais informações sobre o bot -- https://github.com/OTCv8/otclientv8_bot

 

  Ocultar conteúdo

Todos exemplos aqui  NÃO foram criado por mim, deixarei os devidos crédito e link.

Os script são colocado no diretorio do AppData\Roaming\OTClientV8\otclientv8\bot\seuperfil

A maoria aqui talvez ja vem incluso como 'example'.

 

Sio com janela de texto para adicionar quantos friends quiser - credito Evolunia

  Mostrar conteúdo oculto



macro(100, "Sio", function()
    local friend = getPlayerByName(storage.friendName)
    local friend1 = getPlayerByName(storage.friend1Name)
    if friend and friend:getHealthPercent() < 80 then
        say("exura sio \""..storage.friendName)
        delay(500)
   elseif friend1 and friend1:getHealthPercent() <= 80 then -- If u need more you can copy this lines
        say("exura sio \""..storage.friend1Name) --
        delay(500) --
    end -- And paste them between this end and the delay
end)
  addTextEdit("friendName", storage.friendName or "Friend Name", function(widget, text) 
    storage.friendName = text
end)
addLabel("Priority 1 ^ Priority 2 v", "Priority 1 ^ Priority 2 v")
  addTextEdit("friend1Name", storage.friend1Name or "Friend Name", function(widget, text)   -- Also copy this lines
    storage.friend1Name = text -- If u add more just rename the Friend1Name to Friend2Name in the lines u paste
end) --

 

 

 

Anti-Paralyze - credito Evolunia

  Mostrar conteúdo oculto



macro(100, "Anti Paralyze", nil, function()
  if isParalyzed() and storage.autoAntiParalyzeText:len() > 0 then
    saySpell(storage.autoAntiParalyzeText)
end
end)
addTextEdit("autoAntiParalyzeText", storage.autoAntiParalyzeText or "utani hur", function(widget, text) 
  storage.autoAntiParalyzeText = text
end)

 

 

 

Heal com Potion com janela para escolher potions - credito Evolunia

  Mostrar conteúdo oculto



local healthPercent = 99
macro(200, "faster health potting",  function()
  if (hppercent() <= healthPercent) then
    usewith((storage.hpItem), player)
  end
end)
addTextEdit("hpItem", storage.hpItem or "23375", function(widget, text) 
storage.hpItem = text
end)

 

 

Equipa energy ring em determinado % de vida - credito Evolunia

  Mostrar conteúdo oculto



--[[
  1. Start the script with your normal ring on 
  2. make sure the backpack with e-rings
     are always open
]]
local energy_ring = 3051; -- Your energy ring
local energy_ring_equiped = 3088; -- Ring changes id when equiped
local original_ring = getFinger(); -- Your original ring
local healthp_for_energy = 50;
local healthp_for_original = 80;
local manap_for_original = 25;

macro(1000, "e-ring", function()
  if (manapercent() <= manap_for_original and getFinger():getId() ~= original_ring:getId()) then
    g_game.equipItem(original_ring);
  elseif (hppercent() <= healthp_for_energy and manapercent() >= manap_for_original and getFinger():getId() ~= energy_ring) then
      local ring = findItem(energy_ring);
      if (ring) then
          g_game.equipItem(ring);
      end
  elseif (hppercent() >= healthp_for_original and getFinger():getId() ~= original_ring:getId()) then
      g_game.equipItem(original_ring);
  end
end)

 

 

faz com que todas as mensagens privadas sejam exibidas na tela, da mesma forma que os scripts no windbot / xenobot. Basta colá-lo na janela de retornos de chamada e ele funcionará. -- credito Mr. Greyshade

  Mostrar conteúdo oculto



local height = 50
local widget = setupUI([[
Panel
  id: msgPanel
  height: 400
  width: 200
]], g_ui.getRootWidget())

onTalk(function(name, level, mode, text, channelId, pos)
    if (mode ~= 4) then return end
    local msgLabel = g_ui.loadUIFromString([[
Label
  color: #5ff7f7
  background-color: black
  opacity: 0.87
]], widget)
    msgLabel:setText(name .." ["..level.. "]: " .. text)
    msgLabel:setPosition({y = height, x = 10})
    if height > 210 then
        for msgIndex, message in ipairs(widget:getChildren()) do
            message:setPosition({y = message:getPosition().y - 13, x = 10})
            if (msgIndex == 1) then message:destroy() end
        end
    else
        height = height + 13
    end
end)

 

 

Ataca monstro mais proximo e menos health se for mais de um - credito Ele no

  Mostrar conteúdo oculto



macro(100, "Smarter targeting", function() 
  local battlelist = getSpectators();
  local closest = 10
  local lowesthpc = 101
  for key, val in pairs(battlelist) do
    if val:isMonster() then
      if getDistanceBetween(player:getPosition(), val:getPosition()) <= closest then
        closest = getDistanceBetween(player:getPosition(), val:getPosition())
        if val:getHealthPercent() < lowesthpc then
          lowesthpc = val:getHealthPercent()
        end
      end
    end
  end
  for key, val in pairs(battlelist) do
    if val:isMonster() then
      if getDistanceBetween(player:getPosition(), val:getPosition()) <= closest then
        if g_game.getAttackingCreature() ~= val and val:getHealthPercent() <= lowesthpc then 
          g_game.attack(val)
          break
        end
      end
    end
  end
end)

 

 

Agora esse é mais avançado vou deixa oque ele faz com tradução do translate google mas o link original de todos esta no começo. - credito panxor

 

  Mostrar conteúdo oculto

como se comporta:
1.bot usará magia multi-alvo se houver 2 ou mais monstros por perto, mesmo quando houver jogadores na tela - até você atingir 15 pvp kills (alguém tenta fazer o RS)
2. bot usará magia alvo única se apenas 1 monstros ao redor ou existem jogadores na tela (se você ultrapassou 15 pontos de pvp em mata-mata).

Importante! bot irá contar o número de mortes que você ganhou desde que você iniciou o script / redefiniu a janela da macro (desligue e ligue novamente).
Para alterar o ponto inicial da contagem, basta alterar os frags de 0 para o

próprio X Script:

 




local frags = 0

onTextMessage(function(mode, text)
 if string.find(text, "Warning! The murder") then
    frags = frags + 1
end
end)

local multiTargetSpell = 'holy power'
local singleTargetSpell = 'exori san'
local distance = 3
local amountOfMonsters = 2
local fragLimit = 15

macro(250, "Exp Cast",  function()
    local isSafe = true;
    local specAmount = 0
    if not g_game.isAttacking() then
        return
    end
    for i,mob in ipairs(getSpectators()) do
        if (getDistanceBetween(player:getPosition(), mob:getPosition())  <= distance and mob:isMonster())  then
            specAmount = specAmount + 1
        end
        if (mob:isPlayer() and player:getName() ~= mob:getName()) then
            isSafe = false;
        end
    end
    if (specAmount >= amountOfMonsters and ((frags <= fragLimit) or isSafe)) then
        say(multiTargetSpell)
    else
        say(singleTargetSpell)
    end
end)

 

 

Todos script tirado desse link - https://otland.net/threads/scripts-macros-for-kondras-otclientv8-bot.267394/

 

 

Meu objetivo com esse post é só compartilhar, já que não achei nada sobre ele no Tibia King, no momento tenho outros projeto, e não posso estuda as funções do bot, mas acredito que como eu tenha mais pessoas que se interesse.

Mas logo pretendo estuda pois acho que esse seria o melhor client e bot que pode substituir o tibia.exe elf/magebot q sempre usamos.

 

@edit

Não sei se estou na area certa, se estiver errado me desculpe e favor mover.

 

Desculpa o incomodo mas não achei em nenhum lugar

Você sabe me dizer como faz o comando do Function pra quando ele chegar no final do cavebot voltar para o label hunt?

 

EX: Eu fiz o label inicio

Fiz o script pra ir até a hunt

Chegando na hunt fiz o label hunt

Fiz o script da hunt 

Agora quero que ele volte pro label hunt se não tiver morrido

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo