Ir para conteúdo
  • 0

Sistema de vip do ot, acabou vip acabou promotion..


curruwilliam

Pergunta

Olá,

 

Nesse ot que baixei tem sistema de vip !!

 

Comandos:

 

adicionar vip:

/vip add DIAS player

 

Deletar vip:

/vip del player

 

Ver a vip:

/vip see player

 

Então queria que quando eu adicionasse a vip no player.. adicionei 30 dias.. player joga de boas.. vai compra promotion no NPC dentro da área vip.. e quando acaba a vip do player ele volta a promotion de free sem ser as promotion nova..

 

Sou Elite Knight, compro 30 dias de vip, entro na área vip compro Second Promotion 50000 gp, então dps dos 30 dias perco acesso a área vip !! e tambem perco a Second Promotion voltando para elite knight !!

 

Entenderam ? :D

preciso muito disso..

 

Aqui esta o otserv que ja vem o sistema de vip:

http://www.xtibia.com/forum/topic/138461-original-styller-yourots-premium-edition-25032013-860-war-system/

 

até mais e obrigado..

Link para o comentário
Compartilhar em outros sites

  • Respostas 34
  • Created
  • Última resposta

Top Posters For This Question

Popular Days

Top Posters For This Question

Posts Recomendados

  • 0

Em data/creaturescripts/scripts, copie qualquer arquivo e cole, renomeie para "vipend" sem as aspas, ai você abre com o bloco de notas e cola isso dentro:

 

 

 

local principal = {x = 500, y = 300, z = 7} -- Aqui poe as coordenadas do templo principal

function onLogin(cid)

if vip.hasVip(cid) == false then

setPlayerPromotionLevel(cid, 1)

doPlayerSendTextMessage(cid,27,"Sua VIP acabou, donate para ter mais acessos!")

doTeleportThing(cid,principal)

end

return true

end

 

 

Aonde está vermelho mude para a posição do templo da CITY PRINCIPAL!

 

çç

Agora na mesma pasta abra com o bloco de notas o arquivo login.lua, aperte CTRL+F e procure por "registerCreatureEvent" sem as aspas! Muito bem, agora você verá vários juntos, no meio deles em uma linha adicione esse:

 

registerCreatureEvent(cid,"VipEnd")

 

Volte uma pasta, no arquivo creaturescripts.xml, abra-o com o bloco de notas e adicione essa tag:

 

<event type="login" name="VipEnd" script="vipend.lua"/>

Editado por Roksas
Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

 

Encontrei isso a relacionado a vip:

local pos = {x=160, y=51, z=7}
pos = {x=160, y=51, z=7}
function onLogin(cid)
if vip.hasVip(cid) == true then
 if getPlayerStorageValue(cid,55555) ~= 1 then
  setPlayerStorageValue(cid,55555,1)
 end
   elseif vip.hasVip(cid) ~= true and vip.getVip(cid) ~= 0 then
 if getPlayerStorageValue(cid,55555) == 1 then
  doTeleportThing(cid, pos, true)
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip ACABOU!")
  doPlayerSendTextMessage(cid,22,"Sua Vip ACABOU!")
  setPlayerPromotionLevel(cid, 1)
  setPlayerStorageValue(cid,55555,2)
 elseif getPlayerStorageValue(cid,55555) == -1 then
  setPlayerStorageValue(cid,55555,2)
 end
end
   return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

Beleza, Funcionou..

 

Mais cabei de refletir aqui..

Se o mesmo player compra vip dnv, ele teria que compra second promotion novamente...

Então, tem como fazer para quando player ganhar Vip ir direto para a Second Promotion ?

e quando acabar voltar.. ?

Desculpe por nao ter pensado nisso antes =´[

Link para o comentário
Compartilhar em outros sites

  • 0

É por Talkactions, eu que adiciono a vip aos players

 

function onSay(cid, words, param)
	 if param == "" then
		return  doPlayerPopupFYI(cid,"Está com problemas?\n Aprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Styller\n---------------\nDeletar vip:\n/vip del player\n/vip del Styller\n---------------\nVer a vip:\n/vip see player\n/vip see Styller\n---------------\n")
	 end
	 if param:lower():find('add') == 1 and 3 then
		local _,_,id,name = param:lower():find('add (%d+) (.+)')
		name = name or ""
		id = tonumber(id or 1) or 1
		if tonumber(id) == nil or getPlayerByName(name) == false then
		   return doPlayerSendTextMessage(cid,25,"Adicionar vip:\n/vip add days player\n/vip add 30 Styller\n [Player: "..name.."]")
		end
		if isPlayer(getPlayerByName(name)) == TRUE then
		vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id))[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]			doPlayerSendTextMessage(cid,25,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".")
		doPlayerSendTextMessage(getPlayerByName(name),25,"Você recebeu "..tonumber(id).." dias de vip.")
	 else
	   doPlayerSendTextMessage(cid,25,name.." não esta online ou não existe.")
	 end
	 elseif param:lower():find('del') == 1 and 3 then
		local _,_,name = param:lower():find('del (.+)')
		if getPlayerByName(name) == false then
		   return doPlayerSendTextMessage(cid,25,"Deletar vip:\n/vip del player\n/vip del Styller\n")
		end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]			vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time())
		doPlayerSendTextMessage(cid,25,"A vip de "..name.." foi apagada.")																																			  
	 elseif param:lower():find('see') == 1 and 3 then
		local _,_,name = param:lower():find('see (.+)')
		name = name or ""
		if getPlayerByName(name) == false then
		   return doPlayerSendTextMessage(cid,25,"Ver a vip:\n/vip see player\n/vip see Styller\n")
		end
		local ret_ = vip.getVip(getPlayerByName(name))
		if ret_ == 0 then
		  return doPlayerSendTextMessage(cid, 25,name.." Não tem vip, e nunca teve.")
		else
		  return doPlayerSendTextMessage(cid, 25, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_))
		end
	 end
	 return TRUE
end

 

Seria esse ?

Editado por curruwilliam
Link para o comentário
Compartilhar em outros sites

  • 0

Troca isso que vc me passou por:

 

 

function onSay(cid, words, param)

if param == "" then

return doPlayerPopupFYI(cid,"Está com problemas?\n Aprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Styller\n---------------\nDeletar vip:\n/vip del player\n/vip del Styller\n---------------\nVer a vip:\n/vip see player\n/vip see Styller\n---------------\n")

end

if param:lower():find('add') == 1 and 3 then

local _,_,id,name = param:lower():find('add (%d+) (.+)')

name = name or ""

id = tonumber(id or 1) or 1

if tonumber(id) == nil or getPlayerByName(name) == false then

return doPlayerSendTextMessage(cid,25,"Adicionar vip:\n/vip add days player\n/vip add 30 Styller\n [Player: "..name.."]")

end

if isPlayer(getPlayerByName(name)) == TRUE then

vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id))

setPlayerPromotionLevel(name,2)

doPlayerSendTextMessage(cid,25,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".")

doPlayerSendTextMessage(getPlayerByName(name),25,"Você recebeu "..tonumber(id).." dias de vip.")

else

doPlayerSendTextMessage(cid,25,name.." não esta online ou não existe.")

end

elseif param:lower():find('del') == 1 and 3 then

local _,_,name = param:lower():find('del (.+)')

if getPlayerByName(name) == false then

return doPlayerSendTextMessage(cid,25,"Deletar vip:\n/vip del player\n/vip del Styller\n")

end

vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time())

doPlayerSendTextMessage(cid,25,"A vip de "..name.." foi apagada.")

elseif param:lower():find('see') == 1 and 3 then

local _,_,name = param:lower():find('see (.+)')

name = name or ""

if getPlayerByName(name) == false then

return doPlayerSendTextMessage(cid,25,"Ver a vip:\n/vip see player\n/vip see Styller\n")

end

local ret_ = vip.getVip(getPlayerByName(name))

if ret_ == 0 then

return doPlayerSendTextMessage(cid, 25,name.." Não tem vip, e nunca teve.")

else

return doPlayerSendTextMessage(cid, 25, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_))

end

end

return TRUE

end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou..

Tirei a vip do player voltou para as cordenadas que coloquei no seu primeiro script.. Entao voltou para elite knight

Ai adicionei novamente 1 dia de vip ao player e desloguei e loguei e não veio com a vocation superior.. wink.png

Link para o comentário
Compartilhar em outros sites

  • 0

Ta pera, faz assim, troca aquele primeiro que eu passei por esse e troca as coordenadas:

 

[color=#ff0000]local principal = {x = 500, y = 300, z = 7} -- Aqui poe as coordenadas do templo principal[/color]
function onLogin(cid)
if vip.hasVip(cid) == false then
setPlayerPromotionLevel(cid, 1)
doPlayerSendTextMessage(cid,27,"Sua VIP acabou, donate para ter mais acessos!")
doTeleportThing(cid,principal)
else
setPlayerPromotionLevel(cid, 2)
end
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

Nada nada, só vai tirar a promotion e por. E quando acabar teleportar pro templo ^^

Tópico movido para seção de pedidos e dúvidas resolvidos!

Link para o comentário
Compartilhar em outros sites

  • 0

Tem uma outra coisinha, teria como implementar nesse sistema de vip, ou eu teria que trocar todo o sistema para por um sistema de por vip na account e não num char especifico.. ?

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, o seu sistema de VIP ele da days de VIP ACCOUNT, pra ACCOUNT inteira!

Só que não aparece no character list, tipo Premium Account (30 days). Que nem no global, etc.

 

Instale esse meu System:

 

http://www.xtibia.com/forum/topic/201802-classic-premium-v2/

Link para o comentário
Compartilhar em outros sites


×
×
  • Criar Novo...