Ir para conteúdo

Antha Anti-Bot System


Antharaz

Posts Recomendados

{T}ive um idéia babaca enquanto estava atoa em casa...

 

.-.

 

porque não fazer um anti-bot system?

 

lol

 

Gtz champz!!! ¬¬

 

 

 

 

{A}lguns detalhes do sistema:

 

1º - Para não atrapalhar wars ele não faaz a verificação o player está PZ Locked.

 

2º - Se você der logout sem fazer a verificação, ao entrar novamente ele lhe informará o último código não confirmado por você.

 

3º - Os gods/gms/account managers não recebem nenhuma msg por motivos óbvios.

 

 

 

 

{E}m globalevents.xml localizado na pasta data\globalevents coloque a linha abaixo antes de </globalevents>:

 

 

<globalevent name="anthaab" interval="900" event="script" value="anthaab.lua"/>

 

 

 

{A}pós fazer isto, vamos criar o script correspondente ao evento. Crie um arquivo chamado anthaab.lua em data\globalevents\scripts com o code abaixo:

 

function onThink(interval, lastExecution)
for x=1,#getOnlinePlayers() do
if getPlayerAccess(getCreatureByName(getOnlinePlayers()[x])) < 4 and (not isPlayerPzLocked(getCreatureByName(getOnlinePlayers()[x]))) and getOnlinePlayers()[x] ~= "Account Manager" then
    if getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9564) == -1 then
        local numero = math.random(0,99999)
        doPlayerSendTextMessage(getCreatureByName(getOnlinePlayers()[x]), MESSAGE_STATUS_WARNING, 'Anti-bot system by Antharaz. Seu número de confirmação anti-bot é: '..numero..'. Por favor digite !anthaab XXXXX onde XXXXX é seu número de confirmação.')
        setPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9564,numero)
    elseif getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565) == -1 then
        setPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565,1)
        doPlayerSendTextMessage(getCreatureByName(getOnlinePlayers()[x]), MESSAGE_STATUS_WARNING, 'Último aviso. Confirme seu número gerado pelo sistema anti-bot pelo comando !anthaab ou você será banido.')
    elseif getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565) == 1 then
        doAddAccountBanishment(getAccountIdByName(getOnlinePlayers()[x]))
        setPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565,-1)
        doRemoveCreature(getCreatureByName(getOnlinePlayers()[x]))
    end
end
end
   return TRUE
end

 

 

 

 

{A}gora vá em talkactions.xml na pasta data/talkactions e adicione a linha abaixo antes de </talkactions>:

 

 <talkaction words="!anthaab" event="script" value="anthaab.lua"/>

 

{A}gora em data/talkactions/scripts crie um arquivo chamado anthaab.lua com o code abaixo:

 

 

function onSay(cid, words, param, channel)
if getPlayerAccess(cid) > 3 then
return false
elseif getPlayerStorageValue(cid,9564) == -1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'Você ainda não recebeu um novo número de confirmação anti-bot.')
elseif tonumber(param) == getPlayerStorageValue(cid,9564) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'Confirmado com sucesso. Bom jogo.')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'Antha anti-bot system by Antharaz')
setPlayerStorageValue(cid,9564,-1)
setPlayerStorageValue(cid,9565,-1)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Número de confirmação errado. O seu número de confirmação é '..getPlayerStorageValue(cid,9564)..'.')
end
return true
end

 

 

{A}gora vá em data\creaturescripts\scripts, abara o arquivo login.lua e coloque o código abaixo antes do return true:

 

if getPlayerStorageValue(cid,9564) > -1 then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'Você não confirmou seu último número do sistema anti-bot. Ele é: '..getPlayerStorageValue(cid,9564)..'.')
end

 

 

 

 

{V}ídeo:

 

http://www.screencast.com/t/MmM5NjFiY

 

PS:.. o vídeo demora um pouco para começar mesmo...

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

Poderia colocar como o script funciona, o que ele faz, sei que tem o vídeo

mais muitas pessoas não podem assistir por ter conexão baixa, como eu.

 

Parece estar muito legal a script é 100% sua??

(caso não for bote os créditos)

 

 

Rep+

 

Continue trazendo conteúdo ao Xtibia.com!

Link para o comentário
Compartilhar em outros sites

@vilden

 

sim... script 100% meu...

 

=x

 

Como funciona:

 

A cada intervvalo de tempo o sv fará uma checagem e mandará uma msg para todos players...

 

caso o player ainda não tenha recebido o número de checagem ou que já tenha confirmado o último: Anti-bot system by Antharaz. Seu número de confirmação anti-bot é: NUMERO ALEATÓRIO. Por favor digite !anthaab XXXXX onde XXXXX é seu número de confirmação.

 

Caso o player ainda não tenha confirmado o último número: Último aviso. Confirme seu número gerado pelo sistema anti-bot pelo comando !anthaab ou você será banido.

 

Caso ele não tenha confirmado o número mesmo depois do último aviso ele será banido.

 

 

 

 

 

 

Se o player falar !anthaab NÚMERO ERRADO: o sv mandará uma msg para ele informando o número certo.

 

 

Se o player falar !anthaab NÚMERO CERTO: o sv mandará uma msg para ele informando que foi confirmado com sucesso.

Link para o comentário
Compartilhar em outros sites

cara eu queria saber onde e o lugar q muda o tempo que a verificaçao e feita

Exemplo: eu queria q a verificaçao fosse feita de 3 em 3 horas,o que eu boto e onde eu boto?

Obs: belo trabalho!!

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

ao certo ponto e util por exemplo, para server que não toleram bot em treiners, mais por exemplo deixei meu char afk no DP. ele vai pedir não vai ter como eu responder, dai seria um ban injustamente. acho que cairia bem se pudesse colocar ele por área dai colocava nos treiners.

---

belo script :)

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

@nilton123

 

lá na linha que você adicionou em globalevents.xml tem uma parte assim:

 

interval="900"

 

Esse 900 é o tempo em SEGUNDOS. Caso queira 3 horas, troque o 900 por 10800

 

 

 

 

 

@Cosaki

 

Vamos supor q seu char ta afk no dp e você coloque o tempo de verificação 10 min...

 

Depois de ficar 10 min afk ele manda a 1ª msg com o número. Depois de mais 10 min ele dá o último aviso e logo depois, com mais 10 min, se o player n tiver feito a verificação que ele leva ban...

 

Provavelmente você vai ser kickado pelo server antes de fica 30 min afk.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 1 month later...
  • 3 weeks later...
  • 9 months later...
×
×
  • Criar Novo...