Ir para conteúdo

Novo Sistema De Vip


laravita

Posts Recomendados

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 por laravita
Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...
  • 9 months later...

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

Link para o comentário
Compartilhar em outros sites

  • 8 months later...

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?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...