Ir para conteúdo

[8.5] Colocando Stages, Fast Atack E Anti Bot!


Davizinhu96

Posts Recomendados

Aee galera Xtibiana!

Muitos amigos meus e até players do meu ot me perguntam como colocar

fast atack... outros que ficam banindo um monte de gente sem motivo

e falando que é bot, mesmo se o cara estiver apenas treinando skill

e Stages que é um modo mais certo que a exp do seu server vai mudar :)

 

Os SS's são de um mapa do Slayer muito conheçido

de 8.42 mais funciona em todas as versões

 

 

Bom vou começar pelo que mais me pedem... Fast Atack!

 

 

Fazer Fast Atack é SUPER SIMPLES

 

1º Abra a pasta do seu OT

 

2º Abra a pasta Data/Xml e vai apareçer escrito Vocations.xml

 

3º Clique com o botão direitos no Vocations.xml e clique em Abrir

post-258416-1255791491_thumb.jpg

 

4º Irá apareçer uma tela como essa

post-258416-1255791546_thumb.jpg

 

5º Aperte CTRL + F e escreva AttackSpeed(sem espaço) e aperte "Enter"

post-258416-1255791814_thumb.jpg

6º Irá apareçer attackspeed="1000" Recomendo as primeiras vocações serem 100 e as promotion ser 75

post-258416-1255792143.jpg

PS: Enquanto menor o número mais rápido o attack!

 

7º Faça isso com todas as vocações, salva, feche e PRONTO seu OT está com fast attack!

 

Fácil né?

 

Agora vou ensinar stage level que já está bem fácil!

 

Na mesma pasta da Vocations.xml tem stages.xml

 

1º Clique com o botão direito e clique em "Abrir"

 

2º Irá apareçer algo parecido com isso

post-258416-1255792571_thumb.jpg

 

3º <stage minlevel="1" maxlevel="8" multiplier="55"/>

<stage minlevel="9" maxlevel="20" multiplier="50"/>

<stage minlevel="21" maxlevel="50" multiplier="45"/>

<stage minlevel="51" maxlevel="100" multiplier="40"/>

<stage minlevel="101" multiplier="35"/>

 

Azuis: Level que você muda de experiência

Vemelhos: Último level antes de mudar de experiência

Negrito: Experiência que ganha nos níveis

 

Pronto você já configurou sua stage!

 

Agora o Antibot

 

Funcionamento do script:

 

O sistema de tempo em tempo manda player para o player perguntando o resultado de uma conta de soma (números da conta gerados pelo sistema), então se o player não responder ou responder muitas vezes erradas ele é mandado para alguma prisão, algum lugar fechado, sem saída e automaticamente depois de um certo tempo configurado no script o player pode sair da prisão indo direto para o templo.

 

1º Abra a pasta do seu OT depois abra data\creaturescripts

 

2º Terá um programa chamado creaturescripts.xml... Clique com o botão direito e em seguida "Abrir"

post-258416-1255794221_thumb.jpg

 

3º Adicione a pasta

<event type="login" name="AntiBotLogin" script="antibot.lua"/>

<event type="logout" name="AntiBotLogout" script="antibot.lua"/>

Como na imagem abaixo

post-258416-1255794510_thumb.jpg

PS: Pode haver mais actions ou menos actions só prescisa adicionar!

 

4º Feche e salve

 

5º Abra um bloco de notas e escreva isso nele

-- configs

local mintoanswer = 2 -- minutes to answer anti bot system

local delayAntiBot = 30 -- minutes of delay of delayAntiBot

local maxgroupid = 1 -- groupid higher than this don't have antiBotSystem Activated

local prisionpos = {x=1070,y=1003,z=7} -- if don't answer, go to this pos

local prisionminutes = 10 -- time inside the prision

local templepos = {x=1023, y=1027, z=7} -- after the prisionminutes, back to this position (temple is recommended)

-- end configs

 

-- local variables

local storages = {first_num = 20123, second_num = 20124, result = 20125, answer = 20126, prisioned = 20127, prisiontime = 20128, wrong_answers = 20129}

-- end local variables

 

 

function onLogin(cid)

local prisioned = getPlayerStorageValue(cid,storages.prisioned)

if (prisioned == 1) then

local prisiontime = getPlayerStorageValue(cid,storages.prisiontime)

local timenow = os.time()

if (timenow >= prisiontime) then

setPlayerStorageValue(cid,storages.prisiontime,0)

setPlayerStorageValue(cid,storages.prisioned,0)

doTeleportThing(cid, templepos)

else

prisionEvent = addEvent(checkprisioned,1000,{cid=cid})

doTeleportThing(cid, prisionpos)

end

end

 

 

if (delayAntiBot <= mintoanswer) then

debugPrint("Error! Anti Bot System debugs: variable delayAntiBot need to be higher than mintoanswer.")

else

if (getPlayerGroupId(cid) <= maxgroupid) then

antiBotEvent = addEvent(antiBot,1000,{cid=cid})

else

doPlayerSendTextMessage(cid, 20, "Pessoas com ID maior que ".. maxgroupid .." não tem esse sistema.")

end

end

return TRUE

end

 

function onLogout(cid)

stopEvent(prisionEvent)

stopEvent(antiBotEvent)

stopEvent(checkAnswerEvent)

 

 

setPlayerStorageValue(cid,storages.first_num,0)

setPlayerStorageValue(cid,storages.second_num,0)

setPlayerStorageValue(cid,storages.result,0)

setPlayerStorageValue(cid,storages.answer,0)

setPlayerStorageValue(cid,storages.wrong_answers,0)

return TRUE

end

 

function antiBot(parameters)

local cid = parameters.cid

 

local playerpos = getCreaturePosition(cid)

local playerpz = getTilePzInfo(playerpos)

local playername = getPlayerName(cid)

local prisioned = getPlayerStorageValue(cid,storages.prisioned)

if (playerpz ~= 1 and prisioned ~= 1) then

local first_num = math.random(1,9)

local second_num = math.random(1,9)

local result = first_num+second_num

 

setPlayerStorageValue(cid,storages.first_num,first_num)

setPlayerStorageValue(cid,storages.second_num,second_num)

setPlayerStorageValue(cid,storages.result,result)

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Olá, "..playername.."! Você tem ".. mintoanswer .." minuto(s) para responder quanto é ".. first_num .." + ".. second_num ..". Para responder diga: !antibot \"number.")

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Exemplo: 20+20 = 40, você deve falar !antibot \"40.")

checkAnswerEvent = addEvent(checkAnswer,mintoanswer*60*1000,{cid=cid})

end

antiBotEvent = addEvent(antiBot,delayAntiBot*60*1000,{cid=cid})

end

 

function checkAnswer(parameters)

local cid = parameters.cid

local first_num = getPlayerStorageValue(cid,storages.first_num)

local second_num = getPlayerStorageValue(cid,storages.second_num)

local result = getPlayerStorageValue(cid,storages.result)

local answer = getPlayerStorageValue(cid,storages.answer)

local prisioned = getPlayerStorageValue(cid,storages.prisioned)

local wrong_answers = getPlayerStorageValue(cid,storages.wrong_answers)

if (wrong_answers > 3) then

doTeleportThing(cid, prisionpos)

setPlayerStorageValue(cid,storages.wrong_answers,0)

setPlayerStorageValue(cid,storages.first_num,0)

setPlayerStorageValue(cid,storages.second_num,0)

setPlayerStorageValue(cid,storages.result,0)

setPlayerStorageValue(cid,storages.answer,0)

setPlayerStorageValue(cid,storages.prisioned,1)

setPlayerStorageValue(cid,storages.prisiontime,os.time()+(prisionminutes*60))

doPlayerSendTextMessage(cid, 20, "Tempo acabou! Você será preso por ".. prisionminutes .." minuto(s) porquê você respondeu muitas vezes erradas.")

prisionEvent = addEvent(checkprisioned,1000,{cid=cid})

else

if (answer ~= 1 and prisioned ~= 1 and result > 0) then

doTeleportThing(cid, prisionpos)

setPlayerStorageValue(cid,storages.first_num,0)

setPlayerStorageValue(cid,storages.second_num,0)

setPlayerStorageValue(cid,storages.result,0)

setPlayerStorageValue(cid,storages.answer,0)

setPlayerStorageValue(cid,storages.prisioned,1)

setPlayerStorageValue(cid,storages.wrong_answers,0)

setPlayerStorageValue(cid,storages.prisiontime,os.time()+(prisionminutes*60))

doPlayerSendTextMessage(cid, 20, "Tempo acabou! Você está preso! ".. prisionminutes .." minuto(s).")

prisionEvent = addEvent(checkprisioned,1000,{cid=cid})

else

setPlayerStorageValue(cid,storages.first_num,0)

setPlayerStorageValue(cid,storages.second_num,0)

setPlayerStorageValue(cid,storages.result,0)

setPlayerStorageValue(cid,storages.answer,0)

setPlayerStorageValue(cid,storages.prisioned,0)

setPlayerStorageValue(cid,storages.wrong_answers,0)

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Você está sem bot, mas em alguns minutos será perguntado denovo.")

end

end

end

 

function checkprisioned(parameters)

local cid = parameters.cid

local prisioned = getPlayerStorageValue(cid,storages.prisioned)

local prisiontime = getPlayerStorageValue(cid,storages.prisiontime)

local timenow = os.time()

if (prisioned == 1) then

if (timenow >= prisiontime) then

doPlayerSendTextMessage(cid, 20, "Você completou seu tempo na prisão! Você deve relogar para ir para o templo.")

else

prisionEvent = addEvent(checkprisioned,1000,{cid=cid})

end

end

end

 

PS: Mude apenas oque está colorido!

PS²: O VERDE é a localização da cadeia!

PS³: O AZUL é a localização do templo!

PS³+¹: Salve na pasta data/creaturescripts/scripts com o nome de antibot.lua

 

6º Abra a pasta data/talkactions e abra o arquivo talkactions.xml

7º Terá uma parte mais ou menos assim

post-258416-1255795138_thumb.jpg

 

8º Coloque esse código nela, como mostra a imagem abaixo

<talkaction words="!antibot" script="antibot.lua"/>

post-258416-1255795280_thumb.jpg

 

9º Abra um Bloco de Notas e cole isso nele

-- local variables

local storages = {first_num = 20123, second_num = 20124, result = 20125, answer = 20126, prisioned = 20127, prisiontime = 20128, wrong_answers = 20129}

-- end local variables

 

function onSay(cid, words, param)

local first_num = getPlayerStorageValue(cid,storages.first_num)

local second_num = getPlayerStorageValue(cid,storages.second_num)

local result = getPlayerStorageValue(cid,storages.result)

local answer = getPlayerStorageValue(cid,storages.answer)

local prisioned = getPlayerStorageValue(cid,storages.prisioned)

 

param = tonumber(param)

 

if (prisioned ~= 1 and answer ~= 1 and result > 0) then

if (param == result) then

if (getPlayerStorageValue(cid,storages.wrong_answers) <= 3) then

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Resposta certa! obrigado por responder.")

setPlayerStorageValue(cid,storages.wrong_answers,0)

setPlayerStorageValue(cid,storages.answer,1)

setPlayerStorageValue(cid,storages.first_num,0)

setPlayerStorageValue(cid,storages.second_num,0)

setPlayerStorageValue(cid,storages.result,0)

else

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Resposta certa, mas você já errou mais de 3 vezes.")

end

else

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Resposta errada!")

wrong_answers_now = getPlayerStorageValue(cid,storages.wrong_answers)

setPlayerStorageValue(cid,storages.wrong_answers,wrong_answers_now+1)

doPlayerSendTextMessage(cid, 20, "Anti Bot System: Você acertou! ".. getPlayerStorageValue(cid,storages.wrong_answers).." Resposta errada! o limite é 3.")

end

end

end

PS: Não mude nada nele!

PS²: Salve em data/talkactions/scripts com o nome de antibot.lua

 

 

Pronto! espero ter ajudado!

 

 

Tutorial By:GOD Xinxua

Script By:Yunie e editado e traduzido por GOD Xinxua

 

Qualquer dúvidas, sugestões e criticas podem falar!

 

PS: Eu coloquei eles juntos que cada um sozinho não tem muita importancia

 

~~ A união faz a força ~~

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

Cara, tutorial de stages ja existe, fui eu que fiz.

link do tópico:

http://www.xtibia.com/forum/Fazendo-Exp-Po...es-t118066.html

Procura antes de postar.

 

Procurei de novo e achei o do fast attack, link do tópico:

http://www.xtibia.com/forum/Como-Colocar-F...erv-t61505.html

 

E cara, o ultimo, o de anti bot, isto nem é um tutorial, tu só colou o script do Yunie, você não explicou nada dele.

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

Last, os tutoriais não me pareceram iguais, usam palavras diferentes e métodos para explicação um pouco diferente também...

 

@Topic

GODXinxua, seus tutoriais ficaram muito bons, eu só acho que seria interessante você criar um em cada tópico, mas como já está assim, tudo bem, sem problemas.

Eu só peço que você coloque mais cores, principalmente nos locais de configuração dos scripts. Só falta isto para seu tutorial ser aprovado :)

 

Abraços

Link para o comentário
Compartilhar em outros sites

Last eu não copiei nada eu escrevi tudo com minhas palavras e o Antibot eu editei e traduzi!

 

Daniel valeu pelos elogios e vou tentar colocar mais cores!

 

Mattheus valeeu sou teu fã coloquei umas hunt sua no meu mapa :D

 

PS: Daniel se quiser que mude e coloque 1 em cada tópico tudo bem!

só avisar aqui que já mudo!

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

Last eu não copiei nada eu escrevi tudo com minhas palavras e o Antibot eu editei e traduzi!

 

Daniel valeu pelos elogios e vou tentar colocar mais cores!

 

Mattheus valeeu sou teu fã coloquei umas hunt sua no meu mapa :D

 

PS: Daniel se quiser que mude e coloque 1 em cada tópico tudo bem!

só avisar aqui que já mudo!

Eu não falei que voce copiou nada, eu falei que ja existe tutoriais semelhantes ao seu. (Com isso quero dizer com o mesmo tutorial, so que em diferentes palavras).

Link para o comentário
Compartilhar em outros sites

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