Jump to content

Perfect Vip System 3.0


Recommended Posts

cara, meu ot é 8.40, e tenho o sistema vip la

o action id é 13540!

e funciona direito!

pro cara comprar ele fala !buyvip

 

só que agora, eu queria tirar esse buyvip e só dar vip pelo god

queria que vc fizesse um script para que funcione o comando! pode ser /addvip

mas só o god que da o vip pro player, ou seja, o player nao ira mais comprar vip

só vai conseguir se o god digitar /addvip e o nick dele e os dias

 

vc pode me ajudar a fazer isto?

Link to comment
Share on other sites

Mlecar

 

seja bem vindo no forum,

 

posso te da uma dica,

 

apague seu sistema vip, instale esse do topico,

 

na hora de botar isso:

 

<talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/>

 

tire o !buyvip;

 

ficando assim

 

<talkaction words="!vipdays;/checkvip;/addvip;/delvip" script="systemvip.lua"/>

 

assim, o player não compra vip, só o GM (você) vai add vip pelo /addvip Nome,Dias

 

abraços

Link to comment
Share on other sites

  • 2 weeks later...

Mlecar

 

seja bem vindo no forum,

 

posso te da uma dica,

 

apague seu sistema vip, instale esse do topico,

 

na hora de botar isso:

 

<talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/>

 

tire o !buyvip;

 

ficando assim

 

<talkaction words="!vipdays;/checkvip;/addvip;/delvip" script="systemvip.lua"/>

 

assim, o player não compra vip, só o GM (você) vai add vip pelo /addvip Nome,Dias

 

abraços

 

Cara, olha o erro que da no forgetten

[27/08/2010 21:26:28] data/talkactions/scripts/premium.lua:8: attempt to call local 'cid' (a number value)

[27/08/2010 21:26:28] stack traceback:

[27/08/2010 21:26:28] data/talkactions/scripts/premium.lua:8: in function <data/talkactions/scripts/premium.lua:1>

Link to comment
Share on other sites

@ mlecar

 

 

no tópico já consta um script que nele não possui o comando !buyvip

 

está aqui:

 

 

-- Script SYtem vip 1.0 --

function onSay(cid, words, param)
if(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 == "/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 == "/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 == "/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

 

em talkactions.xml adicione a tag:

 

<talkaction words="!vipdays;/addvip;/delvip;/checkvip" script="systemvip.lua"/>

 

 

 

Link to comment
Share on other sites

@ mlecar

 

 

no tópico já consta um script que nele não possui o comando !buyvip

 

está aqui:

 

 

-- Script SYtem vip 1.0 --

function onSay(cid, words, param)
if(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 == "/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 == "/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 == "/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

 

em talkactions.xml adicione a tag:

 

<talkaction words="!vipdays;/addvip;/delvip;/checkvip" script="systemvip.lua"/>

 

 

 

 

cara, pode cre

mas tipo

o checkvip nao funfou

tem outro script do check vip nao?

passa ae, fico muito grato

vlw mlkao

Link to comment
Share on other sites

é que o checkvip é assim:

 

/checkvip NOME

 

sem a virgula

 

e tipo se vc adiciona o jogador 1 dia de vip não vai aparecer,porque ele ja conta,ai e como se fosse tipo 23 hrs e 59 minutos... ou seja nao fechando 1 dia...

Link to comment
Share on other sites

é que o checkvip é assim:

 

/checkvip NOME

 

sem a virgula

 

e tipo se vc adiciona o jogador 1 dia de vip não vai aparecer,porque ele ja conta,ai e como se fosse tipo 23 hrs e 59 minutos... ou seja nao fechando 1 dia...

naao da cara

tem que me mandar só o script do checkvip e nao todos

pq eu uso outro vip e outro comando de remove vip

só falta o checkvip

Link to comment
Share on other sites

desculpa! vou te passar!

 

function onSay(cid,words,param)

 

 

 

if getPlayerAccess(cid) > 3 and param ~= "" and getPlayerStorageValue(getPlayerByName(param), 13540) == -1 or getPlayerStorageValue(getPlayerByName(param), 13540) == 0 then

 

doPlayerSendTextMessage(getPlayerByName(param),20,'Uma VIP acabou de ser adcionada a você!')

setPlayerStorageValue(getPlayerByName(param), 13540, 1)

doPlayerSendTextMessage(cid,21,'Você acabou de adcionar uma VIP!')

elseif getPlayerAccess(cid) < 3 then

doPlayerSendTextMessage(cid,25,"Você não pode adcionar VIPs.")

 

elseif getPlayerStorageValue(getPlayerByName(param), 13540) ~= -1 then

doPlayerSendTextMessage(cid,25,"Este player já tem VIP.")

else

doPlayerSendTextMessage(cid,21,"Você precisa de escrever o nome do player que vai ganhar a VIP.")

 

end

end

 

 

é esse!!!

 

me passa seu msn tambem cara! vlw

Link to comment
Share on other sites

 

 

checkvip.lua

function onSay(cid, words, param)  

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 quantity = getPlayerStorageValue(player, 13540)

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

 

talkactions.xml

	<talkaction log="yes" access="3" words="/checkvip" event="script" value="checkvip.lua"/>

 

 

Link to comment
Share on other sites

[29/08/2010 22:37:57] Lua Script Error: [TalkAction Interface]

[29/08/2010 22:37:57] data/talkactions/scripts/checkvip.lua:onSay

 

[29/08/2010 22:37:57] data/talkactions/scripts/checkvip.lua:9: attempt to call global 'getPlayerGhostAccess' (a nil value)

[29/08/2010 22:37:57] stack traceback:

[29/08/2010 22:37:57] data/talkactions/scripts/checkvip.lua:9: in function <data/talkactions/scripts/checkvip.lua:1>

 

olha o erro que da no forgetten...

 

me passa teu msn cara

Link to comment
Share on other sites

aff que versão é seu ot mano?

 

é thiagoredlife@hotmail.com

 

usa esse:

 

 

function onSay(cid, words, param)   

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 getPlayerAccess(pid) > getPlayerAccess(cid))) then  
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")  
return TRUE  
end  

local quantity = getPlayerStorageValue(player, 13540) 

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

 

 

 

Edited by Vodkart
Link to comment
Share on other sites

  • 2 weeks later...
×
×
  • Create New...