[Mod] - Prisão System

drakylucas
em Mods, funções e outros

drakylucas

Draky Scripter
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/09/10Posts: 416Char no Tibia: Draky Lucas

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

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

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é.

Oie :D

drakylucas

Draky Scripter
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/09/10Posts: 416Char no Tibia: Draky Lucas

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

vitorvvm

--Sei um pouco de tudo--
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 07/06/11Posts: 122Char no Tibia: shakerspere

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...

Lukeskywalker

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 30/06/08Posts: 173Char no Tibia: Lady Stars Walker

legal muito funcional e facil de instalar ainda alem de tudo em mods parabens exelente sistema

LucasToad

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/01/08Posts: 2Char no Tibia: Sir makabru

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?

digodigo2

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/06/12Posts: 31

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>

rickynhow

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/08/12Posts: 12

Funciona em Poketibia?

758594

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 29/06/11Posts: 105Char no Tibia: seila

Teria como acrescentar o motivo? ex: /prender malko,15,cavebot

fenixfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/10/12Posts: 19Char no Tibia: Kina Dart

veio me explica aonde eu coloco essa pasta se pude Teria como acrescentar o motivo? ex: /prender malko,15,cavebot fazendo favor

MateusBrasil

$$MAPPER$$!$${=´_·_`=}$&#
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/02/13Posts: 6Char no Tibia: {ADM} MateusBr

Cara não funfa da erro no ecoding, meu server v8.60, da pra ajudar urgentemente.