aQii te ayudaremos con Tus Ot Servers
 
ÍndicePortalRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» TITULO: Mu Black Kindom | Season 6 | 3000x | 80% | Nuevos Ev
Vie Oct 28, 2011 11:25 am por NAHUELLG

» (TUTORIAL) Como usar mage bomb =)
Dom Oct 09, 2011 7:29 am por GOD Roca

» Mu Skzer l Season 6 l Exp: 1600x l Drop: 80%
Jue Jul 07, 2011 2:57 am por NAHUELLG

» Mu Skzer l Season 6 l Exp: 1600x l Drop: 80%
Mar Jun 28, 2011 10:49 am por dnange18

» Mu Online Season 6 Finallity, la batalla final comienza by sairenji
Dom Jun 19, 2011 6:23 am por sairenji

» 9.x]-[8.7x]-[8.61/2]-[8.6]-[8.54/7] The Forgotten Server 0.3.6 - Crying Damson
Miér Jun 15, 2011 9:51 am por Orejon

» ayuda porfaah
Jue Mayo 05, 2011 3:59 pm por Toniko

» Proyecto Dedicado Fennix Rl Map
Jue Mayo 05, 2011 3:42 pm por Toniko

» Como uso mega magebomb 8.6
Dom Mar 20, 2011 10:35 am por jasson

Mejores posteadores
God Sposo
 
Admin Necro
 
Admin Skit
 
Zir GaboX
 
Cubo
 
¤•~x Єℓ ώαtэr x~•¤
 
drawmarcos
 
chinodj
 
Toniko
 
meleq
 
¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

La mayor cantidad de usuarios en línea fue 12 el Vie Jul 12, 2013 8:22 am.

Comparte | 
 

 Sistema AntiBot

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Admin Necro
ADMINISTRADOR
ADMINISTRADOR


Mensajes : 64
Fecha de inscripción : 04/11/2010
Edad : 19
Localización : Mi Casa

MensajeTema: Sistema AntiBot   Sáb Nov 06, 2010 9:21 am

Sistema AntiBot

¿Cómo funciona?

Basicamente estás jugando y te llega un mensaje con una simple operación matemática, ej:

5+2= ?

y tu contestas !antibot 7



¿Cómo aplicarlo?

En creaturescripts.xml agrega estas lineas

Código:
-- configs
 local mintoanswer = 2 -- minutos para responder al antibot
 local delayAntiBot = 30 -- minutes of delay of delayAntiBot
 local maxgroupid = 1 -- a partir de que groupid no aplica el antibot
 local prisionpos = {x=83,y=122,z=7} -- si no respondes bien, coordenadas a donde seras enviado
 local prisionminutes = 10 -- tiempo dentro de la prision
 local templepos = {x=95, y=117, z=7} -- despues de la sentencia lugar a donde seras enviado
 -- 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, "People with group ID higher than ".. maxgroupid .." don't have this system.")
 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, "Necro Anti Bot System: Hola, "..playername.."! Tienes ".. mintoanswer .." minute(s) para responder cuanto es ".. first_num .." + ".. second_num ..". Para responder di: !antibot "number.")
 doPlayerSendTextMessage(cid, 20, "Necro Anti Bot System: Example: 20+20 = 40, then you would say !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, second_num, result, answer, prisioned = getPlayerStorageValue(cid,storages.first_num), getPlayerStorageValue(cid,storages.second_num), getPlayerStorageValue(cid,storages.second_num), getPlayerStorageValue(cid,storages.result), getPlayerStorageValue(cid,storages.answer), 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, "Time limit! You had been prisioned for ".. prisionminutes .." minute(s) because answered many wrong times.")
 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, "Time limit! You had been prisioned for ".. prisionminutes .." minute(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, "Necro Anti Bot System: Correcto, pero volveras a ser cuestionado dentro de un tiempo.")
 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, "Haz completado tu sentencia, relogea para ir a la ciudad.")
 else
 prisionEvent = addEvent(checkprisioned,1000,{cid=cid})
 end
 end
 end


Y agregar en talkactions.xml

Código:
-- 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, second_num, result, answer, prisioned = getPlayerStorageValue(cid,storages.first_num), getPlayerStorageValue(cid,storages.second_num), getPlayerStorageValue(cid,storages.second_num), getPlayerStorageValue(cid,storages.result), getPlayerStorageValue(cid,storages.answer), 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, "Necro Anti Bot System: Right answer, thank you for answering.")
 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, "Necro Anti Bot System: Right answer, but you had already answered more than 3 wrong times.")
 end
 else
 doPlayerSendTextMessage(cid, 20, "Necro Anti Bot System: Wrong answer!")
 wrong_answers_now = getPlayerStorageValue(cid,storages.wrong_answers)
 setPlayerStorageValue(cid,storages.wrong_answers,wrong_answers_now+1)
 doPlayerSendTextMessage(cid, 20, "Necro Anti Bot System: You had already got ".. getPlayerStorageValue(cid,storages.wrong_answers).." wrong answers! The limit is 3.")
 end
 end
 end


CREDITOS:


Creditos: Yunie De: otland
Volver arriba Ir abajo
http://tibiahelp.foroactivo.mx
 
Sistema AntiBot
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» ACTUALIZACION SISTEMA!!!!!!!!!!! ¿VUELVE PSN?
» El sistema de rachas de muertes de MW3 ha sido completamente cambiado.
» Actualización 3.70 de software de sistema Ps3
» Reglas: Sistema de dioses
» Formula 1 2012 (Calendario Gp,Sistema de puntuación,Equipos y pilotos y )

Permisos de este foro:No puedes responder a temas en este foro.
Tibia Help :: Scripts-
Cambiar a: