Ir para conteúdo

Perfect Vip System 3.0


Vodkart

Posts Recomendados

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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 

 

 

 

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

  • 2 weeks later...
×
×
  • Criar Novo...