Ir para conteúdo

[Talkaction] Jail System Atualizado


CoGames

Posts Recomendados

Olá galera do XTibia, venho postar o Jail System, mas Atualizado!!!

 

Já vi muitos Jail System por ai, mas vi que alguns tem erros, outros não aparece mensagem nenhuma para quando o player vai para a cadeia e quanto tempo ficará, ou outros que é impossível ajustar o tempo...

 

É um script perfeito para GODs que odeiam players enchendo o saco, ai é só escrever !prender NOME, que se livrará do tal player chato!

 

Vamos as informações do script:

 

Nome: Jail System Atualizado

Créditos: 100% CoGames

Função: Um player enchendo seu saco? Mete !prender PLAYER e livre-se dele! Automaticamente ele irá para a cadeia e em tanto tempo ele sairá de lá! É como um castigo para o jogador!

BUGS ou ERROS: Não, testei em meu servidor 8.4, em um Slayer Yurots 8.54 e em um Styller Yurots Editado 8.6 e funcionou perfeitamente nos 3!

Versão apropriada: 8.4

 

Vamos ao trabalho!!!

 

Primeiro vá em data/talkactions/scripts, copie e cole um arquivo.lua e renomeie-o para Prisao.lua, dentro cole:

 

 

 

-- Jail System Atualizado por CoGames --

 

default_jail = 30

-- Tempo em segundos que o jogador ficara preso --

grouprequired = 3

-- O god que podera prender, exemplo: 3 para Tutor, 4 para GM, 5 para Cm e 6 para GOD --

jailedstoragevalue_time = 1338

jailedstoragevalue_bool = 1339

jailpos = { x = 451, y = 493, z =7 }

-- Lugar onde fica a Cadeia --

unjailpos = { x = 477, y = 485, z =7 }

-- Lugar onde fica o Templo --

jail_list = {}

jail_list_work = 0

-- Auto Kikador, nao edite!!! --

 

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ê saiu da cadeia, tente não fazer coisas malvadas da próxima vez para não ser preso novamente. Cuide-se amigo.')

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 == '!desprender' or words == '/desprender') then

-- Acima escreva o comando para desprender --

if getPlayerStorageValue(cid, jailedstoragevalue_time) > os.time() then

doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você foi preso até ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (agora é: ' .. 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ê sairá da prisão aqui a 1 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 == '!prender' or words == '/prender' then

-- Comando para prender --

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ê foi preso '.. getCreatureName(isplayer) ..' ate ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').')

doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'Voce foi preso por '.. getCreatureName(cid) ..' ate ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').')

return TRUE

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não existe ou esta offline.")

return FALSE

end

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para prender players.")

return FALSE

end

elseif words == '!desprender' or words == '/desprender' then

-- Comando para tirar da cadeia --

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) .. ' vejo você em breve...')

doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você saiu da prisão '.. getCreatureName(isplayer) ..'.')

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não existe ou esta offline.")

return FALSE

end

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para prender players.")

return FALSE

end

end

return FALSE

end

 

 

 

O que eu escrevi em vermelho, são as palavras que você pode editar!!!

O que eu escrevi em azul, é o tempo de prisão!!!

 

Agora vamos em data/talkactions/talkactions.xml, e em alguma linha cole:

 

<talkaction words="!prender" script="Prisao.lua"/>

<talkaction words="!desprender" script="Prisao.lua"/>

<talkaction words="/prender" script="Prisao.lua"/>

<talkaction words="/desprender" script="Prisao.lua"/>

 

Acima você pode editar o comando e o nome do arquivo.lua para funcionar perfeitamente!

 

Eu sei que puis alguns comandos a mais, mas é só para complementar, ou seja, para não dar erro no script!

 

Como Usar: No jogo, escreva !prender NOME DO PLAYER, para prender o jogador, e para tirar da cadeia fale !desprender NOME DO PLAYER.

 

E então terminamos o script, obrigado galera, qualquer coisa só comentar!!!

Não se esqueça do REP+button_ok.png se Gostou ;D!

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
×
×
  • Criar Novo...