Ir para conteúdo
  • Cadastre-se

(Resolvido)[HELP] Comando /jail


Ir para solução Resolvido por Ackerzin,

Posts Recomendados

Olá galera, eu coloquei um sistema de jail no meu serv que eu peguei de um outro otserv

porem esse mesmo comando nao pega no meu serv e aparece o seguinte erro:

 

[25/04/2018 21:00:31] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/cadeia.lua:7: '}' expected (to close '{' at line 4) near '['
[25/04/2018 21:00:31] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/cadeia.lua)
[25/04/2018 21:00:32] data/talkactions/scripts/cadeia.lua:7: '}' expected (to close '{' at line 4) near '['

 

se alguem poder me ajudar a reparar esse error eu agradeço 

 script do comando:

Citar

function onSay(cid,words,param)
local t = string.explode(param, ",")

local config = {
[1] = {x=1024, y=906, z=10},
[2] = {x=1028, y=906, z=10}
[3] = {x=1033, y=906, z=10},
[4] = {x=1033, y=898, z=10},
[5] = {x=1028, y=898, z=10}
[6] = {x=1023, y=898, z=10},
}

local from1,to1 = {x=1022, y=905, z=10},{x=1030, y=907, z=10}
local from2,to2 = {x=1022, y=907, z=10},{x=1030, y=915, z=10}
local temple = {x=1024, y=910, z=7} -- cordenadas do templo
local Player_Name = getPlayerByNameWildcard(t[1])

if not t[1] then
doPlayerSendTextMessage(cid, 27, "Digite o nome do jogador.")
return TRUE
end

if not Player_Name then
doPlayerSendTextMessage(cid, 27, "O jogador nao existe ou esta offline.")
return TRUE
end

local Player_Pos = getThingPos(Player_Name)

local function Unjail()
if isPlayer(cid) then
doTeleportThing(Player_Name, temple)
end
end

if not tonumber(t[2]) or tonumber(t[2]) < 1 or t[2] == "" then
doPlayerSendTextMessage(cid, 27, "Coloque a quantidade de tempo em minutos!")
return TRUE
end

if getPlayerAccess(Player_Name) >= 2 then
doPlayerSendTextMessage(cid, 27,"Voce nao pode prender um GM ou alguem superior a ele.")
return TRUE
end

if isInRange(Player_Pos, from1, to1) or isInRange(Player_Pos, from2, to2) then
doPlayerSendTextMessage(cid, 27,"O jogador ja esta preso!")
return TRUE
end

doTeleportThing(Player_Name, config[math.random(#config)])
doSendAnimatedText(Player_Pos, "JAIL!", TEXTCOLOR_RED)
doPlayerSendTextMessage(Player_Name, 25,"Voce foi preso por fazer algo contra as regras! e ficara preso por "..(tonumber(t[2])).." minuto"..(tonumber(t[2]) > 1 and "s" or "")..".")
doPlayerSendTextMessage(cid, 27,"Voce prendeu o jogador "..t[1].." por "..(tonumber(t[2])).." minuto"..(tonumber(t[2]) > 1 and "s" or "")..".")
addEvent(Unjail, t[2]*60*1000, Player_Name)
return TRUE
end

 

Valendo REP+

Link para o post
Compartilhar em outros sites
  • Solução
1 hora atrás, Jociel disse:

Olá galera, eu coloquei um sistema de jail no meu serv que eu peguei de um outro otserv

porem esse mesmo comando nao pega no meu serv e aparece o seguinte erro:

 

[25/04/2018 21:00:31] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/cadeia.lua:7: '}' expected (to close '{' at line 4) near '['
[25/04/2018 21:00:31] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/cadeia.lua)
[25/04/2018 21:00:32] data/talkactions/scripts/cadeia.lua:7: '}' expected (to close '{' at line 4) near '['

 

se alguem poder me ajudar a reparar esse error eu agradeço 

 script do comando:

 

Valendo REP+

 

 

Ta faltando algumas virgulas.

 

 

function onSay(cid,words,param)
local t = string.explode(param, ",")

local config = {
[1] = {x=1024, y=906, z=10},
[2] = {x=1028, y=906, z=10},
[3] = {x=1033, y=906, z=10},
[4] = {x=1033, y=898, z=10},
[5] = {x=1028, y=898, z=10},
[6] = {x=1023, y=898, z=10},
}

local from1,to1 = {x=1022, y=905, z=10},{x=1030, y=907, z=10}
local from2,to2 = {x=1022, y=907, z=10},{x=1030, y=915, z=10}
local temple = {x=1024, y=910, z=7} -- cordenadas do templo
local Player_Name = getPlayerByNameWildcard(t[1])

if not t[1] then
doPlayerSendTextMessage(cid, 27, "Digite o nome do jogador.")
return TRUE
end

if not Player_Name then
doPlayerSendTextMessage(cid, 27, "O jogador nao existe ou esta offline.")
return TRUE
end

local Player_Pos = getThingPos(Player_Name)

local function Unjail()
if isPlayer(cid) then
doTeleportThing(Player_Name, temple)
end
end

if not tonumber(t[2]) or tonumber(t[2]) < 1 or t[2] == "" then
doPlayerSendTextMessage(cid, 27, "Coloque a quantidade de tempo em minutos!")
return TRUE
end

if getPlayerAccess(Player_Name) >= 2 then
doPlayerSendTextMessage(cid, 27,"Voce nao pode prender um GM ou alguem superior a ele.")
return TRUE
end

if isInRange(Player_Pos, from1, to1) or isInRange(Player_Pos, from2, to2) then
doPlayerSendTextMessage(cid, 27,"O jogador ja esta preso!")
return TRUE
end

doTeleportThing(Player_Name, config[math.random(#config)])
doSendAnimatedText(Player_Pos, "JAIL!", TEXTCOLOR_RED)
doPlayerSendTextMessage(Player_Name, 25,"Voce foi preso por fazer algo contra as regras! e ficara preso por "..(tonumber(t[2])).." minuto"..(tonumber(t[2]) > 1 and "s" or "")..".")
doPlayerSendTextMessage(cid, 27,"Voce prendeu o jogador "..t[1].." por "..(tonumber(t[2])).." minuto"..(tonumber(t[2]) > 1 and "s" or "")..".")
addEvent(Unjail, t[2]*60*1000, Player_Name)
return TRUE
end

 

Esse aqui embaixo é o que eu uso no meu servidor.

 

Spoiler

-- Sistema adaptado por FreaksOT --
-- Tempo em segundos que alguém ficará na prisão --
default_jail = 1000
-- O group ID da permissão para alguém manda o outro para a cadeia. --
grouprequired = 5
-- StorageValue that the player gets --
jailedstoragevalue_time = 1338
jailedstoragevalue_bool = 1339
-- POSICAO DA CADEIA: --
jailpos = { x = 114, y = 56, z =7 }
-- POSICAO DO LUGAR QUE ELE VOLTARÁ (RECOMENDADO TEMPO): --
unjailpos = { x = 159, y = 52, 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 

 

 

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo