LA

Novo Sistema De Vip

Por laravita, 27 de jul. de 2011 em Mods, funções e outros

otserv
tibia
script
12
4k
laravitaL
27 de julho de 2011 às 19:48

Procurei em varios lugares do XTibia mas os unicos "vip system" que achei foi pelo comando "!addvip" e tals.

Entao resolvi posta esse sistema que achei.

Achei ele na otland entao os créditos nao sao meus, aki o link da onde tirei o tutorial.

Clique aqui

Vamos lá.

 

Novas funções em lua:

setPlayerVipDays(cid, days)
getPlayerVipDays(cid)
isPlayerVip(cid)               
doPlayerAddVipDays(cid, days)
doPlayerRemoveVip(cid)

 

Script:

Vá na pasta do seu ot, abra data/lib/function e bote isso no final do script:

vip_storage = 95883

function setPlayerVipDays(cid, days)
return setPlayerStorageValue(cid, vip_storage, (os.time() + 86400 * days)) and days
end

function getPlayerVipDays(cid)
local left, d = (getPlayerStorageValue(cid, vip_storage) - os.time()), 0
while left >= 86400 do
	left = left - 86400
	d = d+1
end
return d
end

function isPlayerVip(cid)
return getPlayerStorageValue(cid, vip_storage) >= os.time() and TRUE or FALSE
end

function doPlayerAddVipDays(cid, days)
return setPlayerStorageValue(cid, vip_storage, (os.time() + (86400 * getPlayerVipDays(cid)) + (86400 * days))) and days
end

function doPlayerRemoveVip(cid)
return setPlayerStorageValue(cid, vip_storage, 0) and TRUE
end

 

Feito isso vá na pasta data/actions/actions.xml e coloque isso no final do action.xml

<action actionid="5786" script="vipdoor.lua"/>
<action itemid="5785" script="vip.lua"/>

O item que estamos usando e esta medalha:(itemid:5785)

nv64v5.png

Agora va em data/actions/scripts copie qualquer script, apague o que tem dentro e cole isto:

function onUse(cid, item, fromPosition, itemEx, toPosition)
if isPlayerVip(cid) == TRUE then
	if getCreaturePosition(cid).y < toPosition.y then
		doTeleportThing(cid, {x=toPosition.x,y=toPosition.y+1,z=toPosition.z}, TRUE)
	else
		doTeleportThing(cid, {x=toPosition.x,y=toPosition.y-1,z=toPosition.z}, TRUE)
	end
	doCreatureSay(cid, "Welcome VIP Player!", TALKTYPE_ORANGE_1)
	doSendMagicEffect(getCreaturePosition(cid), 10)
else
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, but only VIP Players can pass here! Buy VIP on the WEB.")
end
return TRUE
end

Salve como vipdoor.lua, este é o script da porta vip, caso o player nao seja vip ira aparecer aquela msg disendo para compra a vip na web.

Para a porta funcionar você tenque ir no seu editor de mapas clicar com o botão direito na porta clicar em propriedades e colocar actionid:5786

 

 

Agora na mesma pasta data/actions/scripts copie outro arquivo apague tudo e cole isso:

local days = 30
local levelToBeVIP = 1

function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) >= levelToBeVIP then
	if isPlayerVip(cid) == FALSE then
		doCreatureSay(cid, "CONGRATULATIONS! You are now a VIP for "..days.." days! You can now enter the VIP-area and use unique features!. ", TALKTYPE_ORANGE_1)
	end
	doSendAnimatedText(getPlayerPosition(cid), "Welcome!", TEXTCOLOR_RED) 
	doPlayerAddVipDays(cid, days)
	doRemoveItem(item.uid, 1)
	doSendAnimatedText(getCreaturePosition(cid), "+"..days.." days", 30)
else
	doPlayerSendCancel(cid, "You need level "..levelToBeVIP.." to be a VIP player.")
end	
return TRUE
end

Salve como vip.lua

 

Onde tem o número 30 é o numero de dias que irá adicionar

Onde tem o numero 1 é o lvl que presisa pra usar a medalha.

 

É isso ae sua VIP Medal tá pronta, é so clicar nela que você ganhara 30 dias de VIP

Observação: quando a vip acabar o player não é teleportado para o templo.O player vai ficar sim na area vip mas para resolver este problema, coloque portas vips em todos os lugares, para o player nao vip nao conseguir entrar nas areas vips.

 

Qualquer bug só avisa.

Editado Julho 27 por laravita

inshowtimeI
31 de julho de 2011 às 17:15

Muito bom o tutorial, mas nao coloque links de onde vc tirou, e sim Créditos de quem fez, esta bom, com imagem. Aprovado por mim.

laravitaL
31 de julho de 2011 às 18:31

É que é o meu primeiro tutorial, não sabia mais ou menosoq bota. vlws

BeekiB
31 de julho de 2011 às 23:27

Bem por mim esta Aprovado, gostei muito estou pensando se usarei ele

fsgF
01 de agosto de 2011 às 09:11

Antigamente eu jogava um servidor chamado PBOT, e nele este item seria o Item VIP '-'

Clicava nele que ativava.

Rep +, muito bom Script!

kelvinvictorK
04 de agosto de 2011 às 19:14

Muito Bom! vou analizar e ver se usarei em meu otserver

Gabriel CoutoG
05 de agosto de 2011 às 13:54

Bom Script, e como eu disse, é um Script. Por isso estou movendo para áreas de Scripts, e não de tutoriais.

REP+

 

Atenciosamente,

AnyurCT.

2 semanas depois...
12 de agosto de 2011 às 20:57

ROx

2 meses depois...
YuriGeleiaY
04 de outubro de 2011 às 13:47

Muito bom só não dou rep+ pq não é seu! Mais vlw continue trazendo script assim ao xtibia!

2 semanas depois...
1418311
13 de outubro de 2011 às 14:43

Muito Loko Manow .. Vlw ae por trazer o script pro xtibia

 

Flws

9 meses depois...
ludgeromf1L
16 de julho de 2012 às 13:04

eu fikei com duvida nessa parte aki

 

 

if getCreaturePosition(cid).y < toPosition.y then

doTeleportThing(cid, {x=toPosition.x,y=toPosition.y+1,z=toPosition.z}, TRUE)

else

doTeleportThing(cid, {x=toPosition.x,y=toPosition.y-1,z=toPosition.z}, TRUE)

end

9 meses depois...
gorodjuG
10 de abril de 2013 às 08:11

ou mano tutorial bom cara mais o meu nao deu serto colokei o actionid na porta 5786 e quando vo abrir a porta dai nao abre dai quando cliko pra pegar os dias vips na medalha ela nao da vip pq?