drakylucas 159 Postado Dezembro 11, 2011 Share Postado Dezembro 11, 2011 (editado) Iae XTibianos, belezinha? =p Bom, hoje não tinha nada para fazer, ninguém importante online no MSN, etc e já fazia tempo que não fazia nenhum script (até porque estudava dia inteiro, então não tinha tempo), resolvi fazer um sistema de prisão. Como funciona? Você, ADM ou GM de um servidor está cansado daqueles players enxerem saco, porém acha que não é um motivo que mereça uma punição severa como o banimento, pode utilizar esse sistema para prender o jogador por determinado tempo. Exemplo de uso: /prender Lucas,15 isso irá prender o jogador Lucas por 15 minutos. Adicionando o Sistema ao seu servidor: Primeiramete, na pasta raiz (onde fica o executável) do seu servidor, entre na pasta MODS Copie qualquer ARQUIVO com extenção XML da pasta MODS e cole na mesma pasta, mudando o seu nome para prisao.xml dentro do prisao.xml, coloque isso: <?xml version="1.0" encoding="UTF-8"?> <mod name="Prisao System" version="1.0" author="Draky Lucas" contact="Forum XTIBIA" enabled="yes"> <config name="prisao_config"><![CDATA[ --------------- CONFIG -------------- config = { pos = {x = 1000,y = 1000,z = 7}, -- posição do centro da cadeia [mapa] storage = 27271, -- nao é necessario alterar [armazena o tempo da prisao em segundos] } function getTime(s) -- função by : mkalo local n = math.floor(s / 60) s = s - (60 * n) return n, s end --------------- FIM CONFIG --------------- ]]></config> <talkaction words="/prender" access="3" event="buffer"><![CDATA[ domodlib('prisao_config') local t = param:explode(",") local nome, tempo = t[1], tonumber(t[2]) if nome and tempo then local guid = getPlayerGUIDByName(nome)or 0 if isPlayer(guid) then doPlayerSendTextMessage(guid,19,"Voce foi preso por "..tempo.. " minutos!") doTeleportThing(guid,config.pos) setPlayerStorageValue(guid,config.storage,os.time() + tempo*60) doPlayerSendTextMessage(cid,19,"Voce prendeu o jogador "..nome.. " por "..minutos.." minutos") else doPlayerSendCancel(cid,"O Jogador "..nome.." nao existe ou esta offline.") end else doPlayerSendTextMessage(cid,19,"Formato incorreto. \nPara prender alguem digite: /prender Nome_do_jogador,tempo_em_minutos") end return true ]]></talkaction> <movevent type="StepIn" actionid="27271" event="buffer"><![CDATA[ domodlib('prisao_config') if(os.time() < getPlayerStorageValue(cid,config.storage) then local minutos,segundos = getTime(getPlayerStorageValue(cid,config.storage) - os.time()) doTeleportThing(cid, fromPosition, false) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) return doPlayerSendCancel(cid,"Espere mais "..minutos.." minuto(s) e "..segundos.." segundo(s) para poder sair da cadeia") end doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid,19,"Se cometer outro crime será punido mais severamente.") return true ]]></movevent> </mod> Configurando: Script: No inicio do script, na parte de config, apenas altere a POSIÇÃO da prisão. pos = {x = 1000,y = 1000,z = 7}, -- posição do centro da cadeia [mapa] Mapa: Crie uma prisão, todos os tiles protection-zone, coloque um piso diferente nela, e nesse piso coloque a ACTION ID 27271 _________________________________________________________ PS: Não tenho nenhum servidor aqui em casa, então pedi para um amigo testar e ele me falou que funcionou, qualquer erro poste que eu arrumo PS²: Script exclusivo ao XTibia. Reportarei caso postem em outros fórums. Créditos: Draky Lucas (pelo script) / MatheusMkalo (pela função getTime(s)) Postem as críticas ae ;P aceito elogios e também xingamentos com fundamentos vlw? =D Editado Dezembro 11, 2011 por DrakyLucas Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Dezembro 12, 2011 Share Postado Dezembro 12, 2011 Script bastante simples. Seria mais interessante se ele fizesse a checagem por globalevents com uma table com todos os jogadores. Enfim, parabéns pelo script. Até. Link para o comentário Compartilhar em outros sites More sharing options...
drakylucas 159 Postado Dezembro 12, 2011 Autor Share Postado Dezembro 12, 2011 Script bastante simples. Seria mais interessante se ele fizesse a checagem por globalevents com uma table com todos os jogadores. Enfim, parabéns pelo script. Até. sei la, tipo esse dae não vai causar lag pois o player preso vai te que pisa no quadrado pa sair, ja uma verificação de segundo em segundo ou minuto em minuto poderia causar lag em servidores muito cheios. pq segundo em segundo ou minuto em minuto? pq tipo, o ADM pode colocar quanto tempo cada player fica na cadeia por sí só, entao um global event teria de contar esse tempo diferente pa cada jogador =p O Que eu poderia fazer é um addEvent pa solta a pessoa automaticamente dps do tempo preso, só que se ela deslogar nao funcionaria [só se fizesse duas verificações, caso esteja online só teleporte e offline mude no banco de dados, só que acho do jeito que fiz mais facil e util =p] enfim, vlw tb pela crítica =D flw =D Link para o comentário Compartilhar em outros sites More sharing options...
vitorvvm 6 Postado Dezembro 13, 2011 Share Postado Dezembro 13, 2011 perfeito... simples mas mesmo assim muito funcional... estava precisando de uma prisão mesmo... para tirar o /ban e o /unban... OBRIGADO POR TRAZER AO XTIBIA... Link para o comentário Compartilhar em outros sites More sharing options...
Lukeskywalker 31 Postado Dezembro 15, 2011 Share Postado Dezembro 15, 2011 legal muito funcional e facil de instalar ainda alem de tudo em mods parabens exelente sistema Link para o comentário Compartilhar em outros sites More sharing options...
LucasToad 0 Postado Março 1, 2012 Share Postado Março 1, 2012 Po eu não consegui... fiz tudo certinho. na hora de abrir o serve da um erro, porém o server inicia mesmo assim [Error - ScriptingManager: :LoadFromXml] cannot load mod mods/prisao.xml Line: 6 Info: Input is not proper UTF-8, indicate encoding ! Bytes: 0xE7 0xE3 0x6F 0x20 será que alguem pode me ajudar? Link para o comentário Compartilhar em outros sites More sharing options...
digodigo2 2 Postado Julho 3, 2012 Share Postado Julho 3, 2012 (editado) aqui da Erro <div>Loading Prisao System.xml...[Error - ScriptingManager::loadFromXml] Cannot load mod mods/Prisao System.xml</div> <div>[03/07/2012 00:40:02] Line: 5, Info: Input is not proper UTF-8, indicate encoding !</div> <div>[03/07/2012 00:40:02] Bytes: 0xE7 0xE3 0x6F 0x20</div> Editado Julho 3, 2012 por digodigo2 Link para o comentário Compartilhar em outros sites More sharing options...
rickynhow 0 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 Funciona em Poketibia? Link para o comentário Compartilhar em outros sites More sharing options...
758594 3 Postado Novembro 4, 2012 Share Postado Novembro 4, 2012 Teria como acrescentar o motivo? ex: /prender malko,15,cavebot Link para o comentário Compartilhar em outros sites More sharing options...
fenixfox 1 Postado Janeiro 25, 2013 Share Postado Janeiro 25, 2013 veio me explica aonde eu coloco essa pasta se pude Teria como acrescentar o motivo? ex: /prender malko,15,cavebot fazendo favor Link para o comentário Compartilhar em outros sites More sharing options...
MateusBrasil 1 Postado Fevereiro 4, 2013 Share Postado Fevereiro 4, 2013 Cara não funfa da erro no ecoding, meu server v8.60, da pra ajudar urgentemente. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados