Ir para conteúdo
  • 0

Item que add VIP


diguuinhoo

Pergunta

Bom dia/Boa tarde/Boa Noite

 

Estou usando no meu servidor 8.6 este sistema vip: http://www.xtibia.com/forum/topic/151189-vip-system-by-mock-100/

 

e eu gostaria de criar um item (no caso o id 8976) que usando ele é adicionado X dias VIP a conta e remove-se o item.

Já tentei fazer o script com base em alguns que achei por aqui, mas sou iniciante na area e já tentei diversas maneiras de fazer isso, todas sem sucesso.

Se facilitar e o mais simples for arrumar o meu (que esta uma bagunçaworriedsmiley.gif):

na actions.xml:

 

<action itemid="8976" script="vip/itemvip.lua"/>

id do item que ira usar

 

no itemvip.lua do servidor:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
local days = 1 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 55555)
local timenow = os.time()
local dia = os.time() + daysvalue
if getPlayerStorageValue(cid, 55555) - os.time() <= 0 then
time = timenow + days
else
time = storageplayer + days
end
db.executeQuery("UPDATE `accounts` SET `vip_time` = "..dia.." WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
doPlayerPopupFYI(cid, "Foram adicionados ".. days .." dias de VIP no seu character.\nVoce tem "..tempo.." dias de VIP restantes.")
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
return TRUE
end

dias que ira adicionar

storage utilizado

Aqui gostaria que informasse quanto tempo foi adicionado

Aqui gostaria que informasse o novo tempo da VIP

Eu acho que estou errando em utilizar esta função, porem não sei outra forma de fazer isto(a função do script original não funciona)

o tempo de vip se encontra na tabela accounts da database (nome da coluna: vip_time)

Script Original do itemvip.lua:

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}

local days = 30 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 55555)
local timenow = os.time()

if getPlayerStorageValue(cid, 55555) - 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, 55555, time)
local quantity = math.floor((getPlayerStorageValue(cid, 55555) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end

return TRUE
end

 

Eu sei que esta uma bagunça, como disse sou iniciante em script. se alguem conseguisse jogar uma luz pro meu problema...

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

@@diguuinhoo,

Algo simples, a função em si já faz tudo, tente assim:

local dias = 30 -- dias vip

function onUse(cid, item)
	dias = tonumber(dias)
	vip.addVipByAccount(getPlayerAccount(cid), vip.getDays(dias))
	doRemoveItem(item.uid, 1)
	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
	doPlayerPopupFYI(cid, "Foram adicionados " .. dias .. " dias de VIP em sua account.\nSua VIP Account expira em " .. os.date("%d/%m/%y", vip.getVip(cid)) .. ".")
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

maninho, no meu ele só add vip no char e não na conta...
to usando o mesmo systema vip dele..

eu gostaria que ele adicionace a vip na storage 13500



Ex: esse tbm ele adiona a vip so no char

function onUse(cid, item, fromPosition, itemEx, toPosition)

local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}

local days = 30 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13540)
local timenow = os.time()

if getPlayerStorageValue(cid, 13540) - 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, 13540, time)
local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end

return TRUE
end

 

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

  • 0

maninho, no meu ele só add vip no char e não na conta...

to usando o mesmo systema vip dele..

 

eu gostaria que ele adicionace a vip na storage 13500

 

 

 

Ex: esse tbm ele adiona a vip so no char

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local config={

removeOnUse = "yes" -- remover quando usar ("yes" or "no")

}

 

local days = 30 -- dias que serão adicionados

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13540)

local timenow = os.time()

 

if getPlayerStorageValue(cid, 13540) - 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, 13540, time)

local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))

doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")

if (config.removeOnUse == "yes") then

doRemoveItem(item.uid, 1)

end

 

return TRUE

end

 

Amigo, abre um tópico na seção de Suporte de Scripting,

Este tópico já está resolvido.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...