• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Talkactions] Systema antibot

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Talkactions] Systema antibot el Miér Jun 17, 2015 4:38 pm

    Krapula

    avatar
    Donador User
    Donador User
    Primero que nada buenas Mañana, tardes o noches a nuestro lectores y seguidores de tibiaface.

    Aqui les traigo un sistema anti bot

    Primero que nada vamos a "creaturescripts.xml"
    Y pegaremos esto dentro

    Código:
    <event type="login" name="AntiBotLogin" script="antibot.lua"/>
    <event type="logout" name="AntiBotLogout" script="antibot.lua"/>

    luego vamos a Crear nuevo archivo "data/creaturescripts/scripts/antibot.lua"

    y colocamos esto adentro

    "-- 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=83,y=122,z=7} -- if don't answer, go to this pos local prisionminutes = 10 -- time inside the prision local templepos = {x=95, y=117, 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, "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, "Yunie Anti Bot System: Hello, "..playername.."! You have ".. mintoanswer .." minute(s) to answer how much is ".. first_num .." + ".. second_num ..". To answer say: !antibot "number." doPlayerSendTextMessage(cid, 20, "Yunie 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, "Yunie Anti Bot System


    ahora nos iremos a "talkactions.xml"

    y colocaremos

    Código:
    <talkaction words="!antibot" script="antibot.lua"/>


    Vamos a Crear nuevo archivo ="data/talkactions/scripts/antibot.lua"

    y colocaremos esto dentro de dicho lua

    -- 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, "Yunie 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, "Yunie Anti Bot System: Right answer, but you had already answered more than 3 wrong times.") end else doPlayerSendTextMessage(cid, 20, "Yunie 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, "Yunie Anti Bot System


    y listo.

    Ahora si alguien puede mejorarlo colocando que eso sea solo posible cuando no tenga PZ con personas, Que no tengas espadas con personas para que no abusen de este script seria genial.



    Última edición por Krapula el Miér Jun 17, 2015 7:55 pm, editado 3 veces (Razón : Habia Quedado Feo :P)

    Ver perfil de usuario http://www.facebook.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).