Ir para conteúdo

Sistema De Cadeia Perfeita (Com Time)


brenomadlan

O que você achou desse tópico?  

6 votos

  1. 1. O que você achou deste tópico e desta talkation ?

    • Sem dúvida a melhor, nota 10
    • Perfeito, nota 8
    • Gostei, nota 7
    • Interessante, nota 5


Posts Recomendados

Oi, primeiramente eu sou novo aqui e decidi ajudar o Xtibia com um script bem legal.

 

Então vamos começar...

 

-Você digita /jail (e o nome do player)que ele será automaticamente teleportado para a cadeia.

-Para remover o player da cadeia é só digitar /unjail (e o nome do player) que ele sera teleportado automaticamente para um lugar desejado.

 

1º-Abra a pasta do seu OT e vá em: data\talkactions\talkactions.xml

 

2ºAdicione em duas linhas estes códigos:

 

<talkaction words="/jail" script="Cadeia.lua"/>

<talkaction words="/unjail" script="Cadeia.lua"/>

 

3º Agora vá para : data\talkactions\scripts

 

4º Copie e cole qualquer arquivo .lua e renomeie para Cadeia

 

5º Apague tudo o que tem dentro do arquivo e cole isto:

 

-- Sistema adaptado por FreaksOT --

-- Tempo em segundos que alguém ficará na prisão --

default_jail = 300

-- O group ID da permissão para alguém manda o outro para a cadeia. --

grouprequired = 3

-- StorageValue that the player gets --

jailedstoragevalue_time = 1338

jailedstoragevalue_bool = 1339

-- POSICAO DA CADEIA: --

jailpos = { x = 1196, y = 1112, z =7 }

-- POSICAO DO LUGAR QUE ELE VOLTARÁ (RECOMENDADO TEMPO): --

unjailpos = { x = 1196, y = 1100, z =7 }

-- auto kicker, dont edit

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,'Você foi chutado da prisão! Até logo')

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, 'Você está preso até ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (Agora são: ' .. 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, 'Você vai ser expulso da prisão em um segundo.')

else

doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você não está preso.')

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, 'Você está preso '.. getCreatureName(isplayer) ..' até ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (Agora são: ' .. os.date("%H:%M:%S", os.time()) .. ').')

doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'Você foi preso por '.. getCreatureName(cid) ..' até ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (Agora sao: ' .. os.date("%H:%M:%S", os.time()) .. ').')

return TRUE

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player com este nome não existe ou está offline.")

return FALSE

end

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode libertar outros jogadores.")

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) .. 'vou deixar você sair da prisão!')

doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Voce está solto '.. getCreatureName(isplayer) ..'.')

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player com este nome não existe ou está offline.")

return FALSE

end

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode libertar outros jogadores.")

return FALSE

end

end

return FALSE

end

 

6º Vamos entender o script:

Acompanhe a legenda abaixo:

 

Vermelho - Posição da cadeia.

Azul - Posição do lugar que o player vai sair da cadeia (recomendo que seja o templo).

Verde - Tempo (em segundos, no caso 300 segundos, ou seja, 5 minutos) que o player vai ficar na cadeia.

 

Prontinho, agora você já tem sua cadeia funcionando. Agora avaliem o tópico, o script e vote na enquente.

Valeu a todos, um abraço e muitíssimo obrigado.

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

Esse script ja existe eu adaptei ele e criei um script que vc digita /jail Player_Name,Numero_da_Cela e o cara é teleportado para quela cela fiz ate uma ilha com a cadeia haha ficou perfect :D

Link para o comentário
Compartilhar em outros sites

  • 6 months later...

Esse script já existe faz anos, eu pessoalmente já tenho ele desde de um dos primeiros ot servers a serem criados, ele vem em todos os ot servers cara, não é um system útil, pois você não acrescentou nada, só ensinou a mexer, do qual quer pessoa poderia fazer sozinho, sem explicação nenhuma, como eu.

 

Esse system não é de sua autoria e acho que ele veio com o primeiro ot server a ser criado.

 

KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK, colocou seu nome no system mais velho do mundo?

Cara se toca, esse system existe a mais tempo que você descobriu o tibia.

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

×
×
  • Criar Novo...