Systema Vip

extremeots
em Mods, funções e outros

extremeots

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/12/10Posts: 91Char no Tibia: Lhan Boldensa

Bom Algumas Veses baixei otsevers e sempre vinhão com um bug na vip

ai resolvi criar uma solução

 

Talkaction

function onSay(cid, words, param)

if(words == "!buyvip") then

local price = 1000000

if doPlayerRemoveMoney(cid, 1000000) == TRUE then

local days = 10

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))

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

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")

end

 

elseif(words == "!vipdays") then

local timenow = os.time()

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

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.")

 

elseif(words == "/checkvip") 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, 13540) - timenow)/(24 * 60 * 60))

doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.")

return TRUE

end

 

elseif(words == "/addvip") 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*24

local storageplayer = getPlayerStorageValue(player, 13540)

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, 13540, time)

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

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

end

 

elseif(words == "/delvip") 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,13540) < 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,13540,getPlayerStorageValue(C.uid,13540)-C.time)

end

doSendMagicEffect(C.pos, math.random(28,30))

end

end

 

return TRUE

end

 

Crie Um arquivo Lua na pasta talkactions\scripts

Depois Volte na pasta talkactions

e abra O XML Document Chamado (Talkactions)

e Coloque Isso

[color="#00FF00"]<talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/>[/color]

 

AZUL:Dias De Vip Que serão Add

VERMELHO:Preço Da Vip

 

Ajudei ?, REP+ AI :button_ok: :XTibia_smile:


priextix666

© Copyright 2011 all rights reserved.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/07/10Posts: 57

cara possui tópicos mais organizados sobre isso aki no xtibia, de todo modo obrigado por compartilhar ;D

© Copyright [MAPER] Hempz™ 2012 all rights reserved.assassin.gif

Naruto Extreme OT

ip: naruto-extremeot.servegame.com

porta: 7171

versão: 8.54

website: http://www.narutoextremeot.webnode.com

 

25b09bd431914686882897d77e63473b.0.gif

 

Ajudei? Agradeça Não Caii o dedo ;D..

coyotestark

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 15/02/11Posts: 259Char no Tibia: Aias Laf Du

oi man, nao tem como vc trocar, para ao inves de dinheiro, utilizar um item?

385417_122391137880813_100003297811828_101325_1909172176_n.jpg

Nao sou Gigante mas grande o suficiente para entender tudo a minha volta.

Foxin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/10/11Posts: 5
cara possui tópicos mais organizados sobre isso aki no xtibia, de todo modo obrigado por compartilhar ;D

 

 

Você quis dizer mais complicados ne =)

Troll On Muhahaha

Gabriel Couto

Anyur
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 22/04/11Posts: 2455Gênero: MasculinoChar no Tibia: Thyn Zare

Mais atenção ao postar. Você postou na área errada. Leia os Nomes da seção!

Cuidado com a reincidência nisso, você pode ser alertado.

 

Movido para o local correto.

 

Até!

Gabriel Couto, 23 anos. Acadêmico de Medicina.

Ex-Diretor Geral do XTibia.

 

www.tibiatv.com.br