Ir para conteúdo

[Mb]Anti-Cavebot System


nectof

Posts Recomendados

Nome: [MB]Anti-cavebot System

Autor: Maximus Berserker

Servidor testado: The Forgotten Server 0.3.5pl1 e 0.3.6pl1

Versão do Sistema: 0.8

Descrição: Sistema anti-cavebot bastante completo e útil que vem fazendo muito bem o seu trabalho.

 

Agora muito mais fácil de instalar e configurar!

 

Introdução

 

Bom, o MB Anti-cavebot System tem como finalidade combater o uso indiscriminado de cavebot.

Este sistema não elimina totalmente, mas evita que os players deixem seu char upando dia e noite com ajuda do cavebot.

O trabalho dele é interferir periódicamente, durante as hunts e punir os chars que não demonstrem serem controlados por humanos.

Diferente dos outros Anticavebots, este sistema só é ativado durante as hunts, NÃO atrapalhando em pvps, wars, quests, trainers ou até mesmo quando se está AFK.

De fácil configuração, você pode deixar ele de acordo com suas necessidades.

 

O que ele faz?

 

O sistema usa uma lista de nomes de monstros mais usados pelos players para UPLEVEL.

 

Durante as hunts, quando o player matar determinado número de monstros, 1 monstro do mesmo tipo será summonado em posse do player. Este monstro irá segui-lo para onde for, não adianta ropar ou fugir pra longe, ele é um summon!

 

Ao atacar um player ou um monstro que não esteja na lista, o summon é removido, porém o anticavebot ainda estará ativo até que resolva a soma.

 

Então para desativá-lo basta responder uma questão que aparece no mesmo momento que o summon aparece. Usando o comando !anticb, o player poderá resolver a soma, ex.: !anticb 63.

 

Na versão anterior, o antibot contava os monstros mortos do zero ao limite (150 por exemplo). Isso facilitava os players de terem uma noção de quando o antibot ia ser ativado, dependendo do monstro e do char, ficava em torno de 30 minutos.

 

Agora o antibot tem uma certa porcentagem de chance de ser ativado antes de chegar no limite, com o objetivo de pegar o player de surpresa.

 

  • Se o player errar um deterinado numero de vezes, ele morre.
  • Se o player der um determinado número de hits no monstro summonado pelo sistema, ele morre.
  • Se o player matar um determinado número de monstros, estando o sistema ativado, ele morre.
  • Se o player morrer pro sistema por um determinado número de vezes, adivinha só... ele é banido por um determinado número de dias! :happy:

 

Estes "determinados números" são configurados por você, logo mais ensinarei como.

 

Instalação

 

Baixe este arquivo RAR com os XMLs necessários e descompacte em qualquer pasta, no desktop por exemplo.

 

Link: Mediafire (23.74 KB)

Scan: Virus Total

 

Conteúdo:

  • pasta "antibots" com todos os xml dos monstros que selecionei (lembrando que você
    pode adicionar mais)
  • Arquivo "mbanticb.xml"
  • Arquivo "monsters.xml"

 

  • Copie a pasta "antibots" para a pasta de seu server "data/monster".
  • Copie o arquivo "mbanticb.xml" para a pasta "mods" na pasta raiz de seu server, caso não tenha, crie.
  • Abra o arquivo "monsters.xml" e copie o conteúdo para seu "monsters.xml" em "data/monster".

 

Conteúdo de "monsters.xml"

<!-- Maximus - Antibots -->
<monster name="a-Dragon Lord" file="antibots/a-dragon lord.xml"/>
<monster name="a-Dragon" file="antibots/a-dragon.xml"/>
<monster name="a-Frost Dragon" file="antibots/a-frost dragon.xml"/>
<monster name="a-Hydra" file="antibots/a-hydra.xml"/>
<monster name="a-Wyrm" file="antibots/a-wyrm.xml"/>
<monster name="a-Bog Raider" file="antibots/a-Bog Raider.xml"/>
<monster name="a-Warlock" file="antibots/a-Warlock.xml"/>
<monster name="a-Grim Reaper" file="antibots/a-grim reaper.xml"/>
<monster name="a-Nightmare" file="antibots/a-nightmare.xml"/>
<monster name="a-Undead Gladiator" file="antibots/a-Undead Gladiator.xml"/>
<monster name="a-Hero" file="antibots/a-hero.xml"/>
<monster name="a-Infernalist" file="antibots/a-infernalist.xml"/>
<monster name="a-Behemoth" file="antibots/a-behemoth.xml"/>
<monster name="a-Sea Serpent" file="antibots/a-Sea Serpent.xml"/>
<monster name="a-Hellspawn" file="antibots/a-hellspawn.xml"/>	
<monster name="a-Quara Constrictor" file="antibots/a-quara constrictor.xml"/>
<monster name="a-Quara Constrictor Scout" file="antibots/a-quara constrictor scout.xml"/>
<monster name="a-Quara Hydromancer" file="antibots/a-quara hydromancer.xml"/>
<monster name="a-Quara Hydromancer Scout" file="antibots/a-quara hydromancer scout.xml"/>
<monster name="a-Quara Mantassin" file="antibots/a-quara mantassin.xml"/>
<monster name="a-Quara Mantassin Scout" file="antibots/a-quara mantassin scout.xml"/>
<monster name="a-Quara Pincher" file="antibots/a-quara pincher.xml"/>
<monster name="a-Quara Pincher Scout" file="antibots/a-quara pincher scout.xml"/>
<monster name="a-Quara Predator" file="antibots/a-quara predator.xml"/>
<monster name="a-Quara Predator Scout" file="antibots/a-quara predator scout.xml"/>
<monster name="a-Tortoise" file="antibots/a-tortoise.xml"/>

 

Fim da instalação.

 

Na versão anterior, o Antibot dava punição de 6x a mais de perda de exp na morte, porém removi dessa versão, mas quem ja tinha aderido a essa ideia, pode continuar sem problemas, não haverá conflito algum, porém deve remover isso do "login.lua" essas linhas:

-- Anti-cavebot
   if getPlayerStorageValue(cid, 32520) == 1 then
       doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"[ANTI-CAVEBOT] O anti-cavebot está ativado!\nNote que mesmo se você deslogar com o anti-cavebot ativado, ele só vai ser desativado se você resolver a soma ou ser punido por ele.\nResolva a seguinte soma para desativar o Anti-cavebot: Quanto é " .. getPlayerStorageValue(cid, 32518) .. "+" .. getPlayerStorageValue(cid, 32519) .. "?\nPara resolver a soma digite o comando !anticb [RESULTADO]. Ex.: !anticb 58.")
   end

 

Caso contrário, sempre que o botter morrer pro sistema, vão ser enviadas 2 mensagens dessa no login.

 

Para quem não acompanhou a versão anterior e quer aderir a punição por exp, pode fazer o seguinte:

 

Em "data\creaturescripts\scripts", abra o arquivo "login.lua"...

 

Apague

local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
  doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end

 

Cole

local loss = getConfigValue('deathLostPercent')
   if(loss ~= nil) then
       if getPlayerStorageValue(cid, 32522) == -1 then
           doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
       else
           doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 60) -- Se o cara morrer pelo Anti-cavebot ele perde mais exp do que o normal
       end
   end    

 

Configuração:

Abra o arquivo "mbanticb.xml" localizado na pasta "mods" e nas primeiras linhas você verá algo assim:

 

       -- Deseja criar um log?
logs = "sim" 

-- ativar banimento por mortes?
activeban = "sim"

-- Limite de mortes pelo antibot para ser banido
ban = 3

-- Dados do ban
duracao = 3 -- numero de dias
comentario = "[ANTICAVEBOT AUTO-BAN] Banido por uso e abuso de cavebot."

-- Nomes dos antibots. Lembrando que precisa criar o monstro na pasta "data/monster"
nomes = {"Dragon", "Dragon Lord", "Hydra", "Wyrm", "Frost Dragon", "Bog Raider", "Warlock", "Grim Reaper", "Nightmare", "Hero", "Undead Gladiator", "Infernalist", "behemoth", "Sea Serpent", "Serpent Spawn", "hellspawn","Quara Constrictor","Quara Constrictor Scout","Quara Hydromancer","Quara Hydromancer Scout","Quara Mantassin","Quara Mantassin Scout","Quara Pincher","Quara Pincher Scout","Quara Predator","Quara Predator Scout","Tortoise", "Ancient Scarab"}

-- Dano que o antibot causa no player
dano = 100000

-- Hits
nHits = 100 -- numero maximo de hits
q1 = 70 -- (maior) Primeira parada para avisar
q2 = 60 -- (medio) Segunda parada para avisar
q3 = 30 -- (menor) Terceira parada para dar ultimo aviso

-- Número de monstros mortos
mortosLimite = 150 -- Limite de monstros mortos para ativar o antibot
mortosFinal = 10 -- Com antibot ativado, ao chegar esse limite o player morre.

Então é só mudar os valores das variáveis como desejar.

Como já está tudo explicadinho aí, acho que não preciso explicar denovo aqui não é?

Em caso de dúvidas é só postá-la que damos um jeito :happy:

 

 

Considerações finais:

 

Este sistema vem mesmo cumprindo o que promete, até agora os players do meu server aprovaram e não encontraram nenhum bug até o momento.

 

Este script junta o útil ao agradável e é baseado no sistema da cip e daquele outro sistema antibot no qual envia uma soma para ser resolvida a todos os players no server, porém não tem nada daquele script nesse sistema a não ser a idéia que é muito boa.

 

Caso encontrem algum bug, postem aqui porfavor para que seja corrigido.

 

Sugestões e críticas são bem vindas!

 

Agradecimentos: Todos que contribuiram com tutoriais e scripts prontos!

 

Creditos: Para mim (MaximusZerk)

 

Edit: Apesar de aqui meu nick no forum ser nectof, em outro forum meu nick é MaximusZerk, e tem o mesmo significado de Maximus Berserker, espero que isso não atrapalhe.

 

Espero que gostem e que esse script seja util pra vocês.

 

Usem e abusem, mas não esqueçam de manter os creditos porfavor. :happy:

 

 

PS.: Como faço pra remover ou modificar esse anexo ai em baixo?

 

 

Abraços.

antibots.rar

Editado por nectof
Link para o comentário
Compartilhar em outros sites

Amigo você tem certeza que esse sistema é seu?? caso não for por favor

coloque os créditos para não gerar problemas, eu acho que já vi isso em algum lugar..

 

Coloque os créditos por favor..

 

_____________________________

é uma script bem tensa para novatos,

li e entendi, por min aprovado.

Editado por Vilden
Link para o comentário
Compartilhar em outros sites

É meu mesmo e botei ai os creditos no final, o nome está como Maximus Berserker, mas sou eu mesmo =)

Uma prova disso é que me disponibilizei a corrigir todos os bugs que forem reportados aqui.

Podem ficar tranquilos, esse script é de minha autoria.

 

Podem pesquisar por aí que não vão encontrar nada parecido até o seguinte momento.

Editado por nectof
Link para o comentário
Compartilhar em outros sites

Muito bom!

 

Dei uma pequena lida, pois tenho que sair amanhã vou ler inteiro. Pelo que vi está tudo certo, super bem explicado e detalhado.

 

Obrigado!

&

Aprovado!

Link para o comentário
Compartilhar em outros sites

só um detalhe:

 

doCreatureAddHealth(cid,-dano)

 

Isto não irá matar o player, mesmo a variável dano sendo 28133432856328, ele ficará com 1 de life...

Editado por Antharaz
Link para o comentário
Compartilhar em outros sites

só um detalhe:

 

doCreatureAddHealth(cid,-dano)

 

Isto não irá matar o player, mesmo a variável dano sendo 28133432856328, ele ficará com 1 de life...

 

Olha, aqui no meu server mata, pode ser que nos server antigos não matava, mas aqui o player vai pro saco mesmo. Testa ele no TFS 0.3.6pl1 que vai dar certo, pode crer.

 

Quando o player morre pro antibot, mostra a seguinte mensagem na lista de suas mortes:

24.02.2010, 21:18:15 Ramanaiz died at level 175 by undefined.

 

Mas com um pouco de conhecimento podem definir a punição trocando isso por um ban por exemplo ou teleportando para uma prisão, vai de cada um. :happy:

Editado por nectof
Link para o comentário
Compartilhar em outros sites

sim... xD

 

Eu vou fazer um sistema anti-bot mas um pouco mais complexo... *-*

 

pois tem como configurar pro programa msm pegar a msg, somar os números a partir da posição tal e mandar a msg...

 

mto bom system

:rolleyes:

Link para o comentário
Compartilhar em outros sites

Bom... se isso é possível, uma solução não é impossível.

Só botar a cuca p trabalhar, pq boas ideias é o que não falta, não é verdade? :happy:

 

Eh noix!

 

Abraços

Editado por nectof
Link para o comentário
Compartilhar em outros sites

Tem um pequeno problema:

 

doCreatureSay(target, "Alerta Anti-Cavebot!", TALKTYPE_ORANGE_1)

 

Há bots que interpretam as cores da mensagem e mandam um alerta sonoro. O certo seria mandar uma cor aleatória, ou de um modo diferente.

 

Link para o comentário
Compartilhar em outros sites

Há bots que interpretam as cores da mensagem e mandam um alerta sonoro. O certo seria mandar uma cor aleatória, ou de um modo diferente.

 

Essa mensagem é da mesma cor e tipo que os monstros mandam tembém, ela não fica registrada no chat log. Os monstros mandam varias vezes essas mensagens, mas não sei se o bot consegue distinguir as letras também, aí sim seria um problemas, mas pode ser contornado com envios aleatorios.

 

Obrigado pelo aviso e será levado em consideração também, se alguém mais tiver alguma ideia fico grato.

 

EDIT: É verdade esse comando alerta o bot, na proxima atualização isso será fixed, vlw!

 

Em breve estarei atualizando...

 

Abraços.

Editado por nectof
Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

Cara antes de tudo parabens pois é um otimo script e muito bem pensado ;).

 

Mas pra mim nao esta funcionando =/ tipo nao da nenhum erro quando abro o ot...

Eu editei para matar 5 bixos e dai aparecer o antibot porem eu mato os 5 e nao aparece o antibot.

 

Outra se eu uso o /cbcheck aparesse -1 mesmo q eu ja tenha matado varios bixo.

 

Ahh e os bixos estao com nome diferente

 

Ex:

 

<monster name="antibot-Hero" file="antibots/antibot-hero.xml"/>

porem o nome do arquivo na pasta se chama a-hero ( eu ageitei isso porem varios que nao entendem quem sabe nao consigam)

Link para o comentário
Compartilhar em outros sites

Cara antes de tudo parabens pois é um otimo script e muito bem pensado ;).

 

Mas pra mim nao esta funcionando =/ tipo nao da nenhum erro quando abro o ot...

Eu editei para matar 5 bixos e dai aparecer o antibot porem eu mato os 5 e nao aparece o antibot.

 

Outra se eu uso o /cbcheck aparesse -1 mesmo q eu ja tenha matado varios bixo.

 

Ahh e os bixos estao com nome diferente

 

Ex:

 

<monster name="antibot-Hero" file="antibots/antibot-hero.xml"/>

porem o nome do arquivo na pasta se chama a-hero ( eu ageitei isso porem varios que nao entendem quem sabe nao consigam)

 

Olá Mansurzinho,

Cara antes de tudo parabens pois é um otimo script e muito bem pensado ;).

Obrigado :blush:

Eu editei para matar 5 bixos e dai aparecer o antibot porem eu mato os 5 e nao aparece o antibot.

 

Sendo isso vejo 2 motivos pra não ter dado certo:

 

1º - Você editou as 3 variáveis?

   local mortosLimite = 150 -- Limite de monstros mortos para ativar o antibot
   local mortosFinal = 10 -- Delimita um prazo definitivo caso o sujeito não ataque o antibot ou não responda a soma.
   local mortosAviso = 5 -- Avisa antes de atingir o prazo final

 

Se você mudou o limite de mortos para 5, deve tambem mudar as variáveis de avisos, segue o exemplo:

   local mortosLimite = 5 -- Limite de monstros mortos para ativar o antibot
   local mortosFinal = 4 -- Delimita um prazo definitivo caso o sujeito não ataque o antibot ou não responda a soma.
   local mortosAviso = 3 -- Avisa antes de atingir o prazo final

Eu uso o comando "/storage", ingame para testar, exemplo: "/storage GM Maximus,32517,149". Então eu summono um bixo e mato e então ativa o antibot.

 

2º - Pode ser que você tenha esquecido de adicionar isso no login.lua (pouco provável)

registerCreatureEvent(cid, "anticavebot")
registerCreatureEvent(cid, "anticavebotb")

 

Ahh e os bixos estao com nome diferente

 

Ex:

 

<monster name="antibot-Hero" file="antibots/antibot-hero.xml"/>

porem o nome do arquivo na pasta se chama a-hero ( eu ageitei isso porem varios que nao entendem quem sabe nao consigam)

 

Sim, provavelmente você copiou antes do EDIT, mas eu ja tinha fixado isso:

Basta editar essa linha no "anticavebot2.lua", trocando:

doSummonMonster(cid, "a-" .. getCreatureName(target))

por

doSummonMonster(cid, "antibot-" .. getCreatureName(target))

 

Se mesmo assim ainda tenha alguma dificuldade, posta ae que tentarei resolver.

 

Já estou terminando a atualização e em breve dou uma editada no tópico, vai ficar bem mais facil de instalar e foram corrigidos alguns bugs e adicionados algumas implementações.

 

Obrigado por reportar, abraços.

Editado por nectof
Link para o comentário
Compartilhar em outros sites

Cara ta funcionando perfeita mente =)

 

Fico muito bom assim o script pra quem nao entende editar e usalo e o tutorial esta muito bem explicado ;).

 

Denovo parabens pois é muito bom esse script.

 

Tenta por uma/s SS pq tem um pessoal q a primeira coisa q faz é ver ss.

 

E esse script deveria ficar como fixo xD pois iria diminuir bastante dai os numeros de bot nos ot.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...