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
4º Irá apareçer uma tela como essa
5º Aperte CTRL + F e escreva AttackSpeed(sem espaço) e aperte "Enter"
6º Irá apareçer attackspeed="1000" Recomendo as primeiras vocações serem 100 e as promotion ser 75
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
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"
3º Adicione a pasta
<event type="login" name="AntiBotLogin" script="antibot.lua"/><event type="logout" name="AntiBotLogout" script="antibot.lua"/>
Como na imagem abaixo
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
-- configslocal 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
8º Coloque esse código nela, como mostra a imagem abaixo
<talkaction words="!antibot" script="antibot.lua"/>
9º Abra um Bloco de Notas e cole isso nele
-- local variableslocal 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 ~~