Comparte
Ver el tema anteriorIr abajoVer el tema siguiente
avatar
Aportador
Mensajes Mensajes : 213
Ver perfil de usuario

Jail System

el Lun Sep 12, 2011 7:27 am
Reputación del mensaje :100% (1 voto)
Bueno aqui les traigo otro Script que encontre en tibia fusion:P espero les guste es el Jail System muy conocido es cuando encarcelas a uno en tu ot Razz
aki les dejo el todo:D



Tu GOD, GM, CM o como lo configures (recomiendo que Senior tutor también) encarcela a un player por x minutos [0 - ilimitado] (!jail 1,Nick ó !jail 15,Nick ó !jail 30,Nick) o usar por defecto el jail rapido !jail Nick.
Desencarcelar a un jugador: !unjail Nick
Liberación de player automatica (el player sale de la carcel automaticamente cuando cumple su tiempo de condena >Very Happy)
Antes de cualquier Crash del server o que lo cierres, se kickea cualquier player en la carcel y es llevado al templo origen.

En: tuot/data/talkactions.xml pegas esto:
Código:
        <talkaction words="!jail" script="jailsystem.lua"/>
 <talkaction words="!unjail" script="jailsystem.lua"/>
 <talkaction words="/jail" script="jailsystem.lua"/>
 <talkaction words="/unjail" script="jailsystem.lua"/>

Y en la carpeta tuot/data/talkactions/scripts/ creas un archivo llamado jailsystem.lua o ya sea que copies y pegues uno y le cambies el nombre, de cualquiera de las dos formas pegas esto en el nuevo archivo:
Código:
-- Tiempo por default en segundos --
default_jail = 360
-- Group id necesario para encarcelar a alguien --
grouprequired = 3
-- StorageValue that the player gets --
jailedstoragevalue_time = 1338
jailedstoragevalue_bool = 1339
-- Posicion de la carcel: --
jailpos = { x = xxx, y = xxx, z =xxx }
-- Posicion cuando el player sale de la carcel: --
unjailpos = { x = 160, y = 50, z =7 }
-- auto kicker, NO EDITAR
jail_list = {}
jail_list_work = 0
 
function checkJailList(param)
        addEvent(checkJailList, 1000, {})
        for targetID,player in ipairs(jail_list) do
        if isPlayer(player) == TRUE then
        if getPlayerStorageValue(player, jailedstoragevalue_time) < os.time() then
        doTeleportThing(player, unjailpos, TRUE)
        setPlayerStorageValue(player, jailedstoragevalue_time, 0)
        setPlayerStorageValue(player, jailedstoragevalue_bool, 0)
        table.remove(jail_list,targetID)
        doPlayerSendTextMessage(player,MESSAGE_STATUS_CONSOLE_ORANGE,'Has salido de la carcel! Nos vemos luego :)')
        end
        else
        table.remove(jail_list,targetID)
        end
        end
end
 
function onSay(cid, words, param)
        if jail_list_work == 0 then
        jail_list_work = addEvent(checkJailList, 1000, {})
        end
        if param == '' and (words == '!unjail' or words == '/unjail') then
        if getPlayerStorageValue(cid, jailedstoragevalue_time) > os.time() then
        doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Tu has sido encarcelado hasta ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (ahora son las: ' .. os.date("%H:%M:%S", os.time()) .. ').')
        else
        if getPlayerStorageValue(cid, jailedstoragevalue_bool) == 1 then
        table.insert(jail_list,cid)
        doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Saldras de la carcel en 1 segundo')
        else
        doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'No estas encarcelado')
        end
        end
        return TRUE
        end
        local jail_time = -1
        for word in string.gmatch(tostring(param), "(%w+)") do
        if tostring(tonumber(word)) == word then
        jail_time = tonumber(word)
        end
        end
        local isplayer = getPlayerByName(param)
        if isPlayer(isplayer) ~= TRUE then
        isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+1))
        if isPlayer(isplayer) ~= TRUE then
        isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+2))
        if isPlayer(isplayer) ~= TRUE then
        isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+3))
        end
        end
        end
        if jail_time ~= -1 then
        jail_time = jail_time * 60
        else
        jail_time = default_jail
        end
        if words == '!jail' or words == '/jail' then
        if getPlayerGroupId ( cid ) >= grouprequired then
        if isPlayer(isplayer) == TRUE then
        doTeleportThing(isplayer, jailpos, TRUE)
        setPlayerStorageValue(isplayer, jailedstoragevalue_time, os.time()+jail_time)
        setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 1)
        table.insert(jail_list,isplayer)
        doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Tu encacelaste a '.. getCreatureName(isplayer) ..' hasta las ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (ahora son las: ' .. os.date("%H:%M:%S", os.time()) .. ').')
        doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'Tu has sido encarcelado por '.. getCreatureName(cid) ..' hasta las ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (ahora son las: ' .. os.date("%H:%M:%S", os.time()) .. ').')
        return TRUE
        else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este player no existe o esta offline")
        return FALSE
        end
        else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "No tienes acceso para encarcelar jugadores Noob!")
        return FALSE
        end
        elseif words == '!unjail' or words == '/unjail' then
        if getPlayerGroupId ( cid ) >= grouprequired then
        if isPlayer(isplayer) == TRUE then
        doTeleportThing(isplayer, unjailpos, TRUE)
        setPlayerStorageValue(isplayer, jailedstoragevalue_time, 0)
        setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 0)
        table.remove(jail_list,targetID)
        doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. ' te permiten salir de la carcel! Nos vemos luego :)')
        doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Desencarcelaste a '.. getCreatureName(isplayer) ..'.')
        else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este player no existe o esta offline")
        return FALSE
        end
        else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "No tienes acceso para encarcelar jugadores, Noob!")
        return FALSE
        end
        end
        return FALSE
end
y listo ahora unas recomendaciones:

Te recomiendo que cuando hagas la carcel en tu Map editor le pongas al area en la que los player pueden andar "Protection zone", así evitas que se anden atacando en el caso que encarceles 2 o mas players.
Ponerle zona de "No Logout" a esa misma parte de la "Protection Zone" para que cumplan la sentencia y no logeen ahi.


Bueno espero les alla gustado el Script ya de hecho que es muy util y bueno para encarcelar a los Boters - o a algunos que cometan Crimenes Razz
espero ganarme Mi +rep y comenten Very Happy
Pd: ustedes acomoden las pocisiones de donde esta la carcel y donde keres ke lo lleve cuadno lo liveres o cuando cumpla su sentencia Wink

Busken esta parte:
Código:
jailpos = { x = xxx, y = xxx, z =xxx }
-- Posicion cuando el player sale de la carcel: --
unjailpos = { x = 160, y = 50, z =7 }
y lo acomodan Razz
Creditos: 99% tibia fusion y 1% yop Wink
avatar
Moderador
Mensajes Mensajes : 312
Ver perfil de usuariohttp://www.otsuporter.com/

Re: Jail System

el Lun Sep 12, 2011 2:56 pm
muy buena rep

__________________________________________________
avatar
Aportador
Mensajes Mensajes : 134
Ver perfil de usuario

Re: Jail System

el Lun Sep 12, 2011 4:13 pm
Hehehe esta bueno me da risa este comando Razz
De encarcelar alas personas ^^

Buena
Baneado
Mensajes Mensajes : 21
Ver perfil de usuario

Re: Jail System

el Lun Sep 12, 2011 5:13 pm
wow lo usare
avatar
Miembro
Mensajes Mensajes : 131
Ver perfil de usuario

Re: Jail System

el Mar Sep 13, 2011 8:12 am
Se ve bueno Men
+REP
Contenido patrocinado

Re: Jail System

Ver el tema anteriorVolver arribaVer el tema siguiente
Permisos de este foro:
No puedes responder a temas en este foro.