Ir para conteúdo
  • Cadastre-se

Como faço um sistema vip em ot 8.6?


Posts Recomendados

Então, o ot que baixei já vem com sistema vip (que é esse daqui: http://www.tibiaking.com/forum/topic/12001-perfect-vip-system-22/) só que fiz mais uma área vip e gostaria de fazer um novo sistema, e gostaria também que para o player ter acesso a essa área nova teria que passar por uma segunda quest vip e lá pegaria um item que daria acesso a esse novo vip.

 

Espero respostas, tks. :)

 

Link para o post
Compartilhar em outros sites

Obrigado por mover :)

 

Achei um script e ele funcionou (esse: http://www.tibiaking.com/forum/topic/20589-vip-system-by-mock-100/ ) mas ainda tenho dúvidas

 

A primeira, como faço pra dar vip para usuário? o /addvip não está pegando.

 

Segundo, gostaria que para o usuário virar vip teria que passar por uma quest e lá pegar o item vip, como faço isso?

 

Obrigado.

Editado por Ciclope263 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Amigo tente esse Script

 

Em movements/scripts crie um arquivo chamado donate.lua e coloque

 

-- Script Vip Sytem 1.0 --


function onStepIn(cid, item, position, fromPosition)

local config = {
msgDenied = "" .. getCreatureName(cid) .." Para poder entrar fassa a Quest Vip no teleport Quests.",
msgWelcome = "Para saber os dias de vip fale !days " .. getCreatureName(cid) .."."
}

if getPlayerStorageValue(cid, 13541) - os.time() <= 0 then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, config.msgDenied)
doSendMagicEffect(getThingPos(cid), 43)
return TRUE
end
doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, config.msgWelcome)
return TRUE
end

 

E coloque esta tag em movements.xml

<movevent type="StepIn" uniqueid="13701" event="script" value="donate.lua"/>

 

Agora vá em talkactions/scripts e acidione o arquivo vip2.lua

-- Script SYtem vip 1.0 --



function onSay(cid, words, param)
if(words == "!vip3") then
if doPlayerRemoveItem(cid, 8978, 1) == TRUE then
local days = 90000
local daysvalue = days * 240 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13541)
local timenow = os.time()

if getPlayerStorageValue(cid, 13541) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
setPlayerStorageValue(cid, 13541, time)

local quantity = math.floor((getPlayerStorageValue(cid, 13541) - timenow)/(240 * 60 * 60))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa do iten da quest Vip.")
end

elseif(words == "!days") then
local timenow = os.time()
local quantity = math.floor((getPlayerStorageValue(cid, 13541) - timenow)/(240 * 60 * 60))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.")

elseif(words == "/checkvip3") then
if getPlayerAccess(cid) == 5 then
if not param then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
end

local player = getPlayerByName(param)
local pid = getPlayerByNameWildcard(param)
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")
return TRUE
end

local timenow = os.time()

local quantity = math.floor((getPlayerStorageValue(player, 13541) - timenow)/(240 * 60 * 60))
doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.")
return TRUE
end

elseif(words == "/addvip3") then
if getPlayerAccess(cid) == 5 then
local t = string.explode(param, ",")
if not t[2] then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
end

local player = getPlayerByName(t[1])
local days = t[2]
local pid = getPlayerByNameWildcard(t[1])
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")
return TRUE
end

local daysvalue = days*3600*240
local storageplayer = getPlayerStorageValue(player, 13541)
local timenow = os.time()

local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue)

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.")
setPlayerStorageValue(player, 13541, time)
local quantity = math.floor((getPlayerStorageValue(player,13541) - timenow)/(3600*240))
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.")
end

elseif(words == "/delvip3") then
if getPlayerAccess(cid) == 5 then
local dec = MESSAGE_INFO_DESCR
if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end
local C,t = {},string.explode(param, ",")
C.pos = getPlayerPosition(cid)
C.uid = getCreatureByName(t[1])
C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia.
C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip.
local pid = getPlayerByNameWildcard(t[1])
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")
return TRUE
end

if(getPlayerStorageValue(C.uid,13541) < C.time)then
doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.')
else
doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.')
setPlayerStorageValue(C.uid,13541,getPlayerStorageValue(C.uid,13541)-C.time)
end
doSendMagicEffect(C.pos, math.random(28,30))
end
end

return TRUE
end

 

Adicione a seguinte tag em talkactions.xml

<talkaction words="!days;!vip3;/checkvip3;/addvip3;/delvip3" script="vip2.lua"/>

 

Para trocar o item que da o vip é nesta linha

 

if doPlayerRemoveItem(cid, 8978, 1) == TRUE then      Trocar o 8978 por outro id.

 

Para fazer o chão onde só quem tem vip possa passar coloque o Action e Unique ids 13701 no chão desejado.

 

E para alterar as palavras como !vip3 /addvip3 é so vc alterar na tag e depois ir no vip2.lua e alterar os respectivos..

 

 

Se precisar de algo mais só Falar!

 

Att:Lucas

 

Obs: Amigo isso que vc fez foi flood, para fazer seu tópico subir fale apenas @up, e vc deve ter paciência lembrando que aqui é um forum.

 

Obs2:Se resolveu seu problema marque como melhor resposta para que tópico possa ser marcado como resolvido.

Editado por llucas75 (veja o histórico de edições)

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo