Ir para conteúdo
Entre para seguir isso  
Miltonhit

VIP Completo.

Recommended Posts

Miltonhit    4
Miltonhit
Autor:Vodkart

Versão testada:8.54

Nome:Vip System.

Vocês devem estar se perguntando, o que esse sistema tem de diferente dos outros?Eu respondo: Ele adiciona [VIP] ao nome do player e quando essa vip acaba ele retira esse [VIP], Alem disso quando a vip account acaba ele é teleportado pra uma pos configuravel por você.Lembrando que esse script não é de minha autoria, retirei de outro forum.

 

Vamos ao script, em data/talkactions/script pegue um arquivo lua qualquer e renomeie para vip.lua e adicione isso nele:

 

-- Script SYtem vip 1.0 -- 
-- By Vodkart -- 

function onSay(cid, words, param) 
if(words == "!buyvip") then 
local price = 5000000 
if doPlayerRemoveMoney(cid, price) == TRUE then 
local days = 30 
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 

if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then 
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, "Foram adicionados ".. days .." dias de VIP no seu character.") 
setPlayerStorageValue(cid, 13540, time) 
local name = getCreatureName(cid) 
db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") 
doRemoveCreature(cid) 
end 
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) 
if not isPlayer(player) then 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") 
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 name = getCreatureName(player) 
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) 

if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then 
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.") 
else 
setPlayerStorageValue(player, 13540, time) 
db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") 
doRemoveCreature(player) 
end 
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. 

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

depois em data/talkactions abra o talkactions.xml e adicione essas linhas:

<talkaction log="yes" words="/addvip" access="5" event="script" value="vip.lua"/>
<talkaction log="yes" words="/checkvip" access="5" event="script" value="vip.lua"/>
<talkaction log="yes" words="!buyvip" access="1" event="script" value="vip.lua"/>
<talkaction log="yes" words="!vipdays" access="1" event="script" value="vip.lua"/>

 

Primeira parte do script está finalizada, agora vamos a segunda, vá na pasta data/creaturescript/scripts pegue um arquivo lua qualquer renomeie para vip.lua e adicione isto:

--[[ by vodkart ]]-- 
function onLogin(cid) 

if getPlayerStorageValue(cid, 13540) - os.time() > 0 then 
setPlayerStorageValue(cid, 9898, 1) 
end 

local pos = {x = 157, y = 50, z = 7} -- posiçao do templo.  

function Vodka(cid) 
if isPlayer(cid) then    
db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") 
doRemoveCreature(cid) 
end 
end 

if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then 
doTeleportThing(cid, pos)  
doPlayerPopupFYI(cid, "Sua vip Account acabou.") 
setPlayerStorageValue(cid, 9898, -1) 
if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then    
addEvent(Vodka, 3*1000, cid) 
end 
end 
return TRUE 
end

em data/creaturescript/creaturescript.xml e adicione essa linha:

<event type="login" name="checkvip1" script="vip.lua"/>

Pronto agora você tem um super vipsystem :yes:

 

Topico foi feito por min, porem script é de autoria de vodkart, obrigado até mais.

Editado por Black Ice

Compartilhar este post


Link para o post
Oneshot    24
Oneshot

Vou aprovar pois podem existir procuras por variados sistemas VIP.

Aprovado e Movido.

Compartilhar este post


Link para o post
BlueeYakuzy    2
BlueeYakuzy

Tipo , eu uso um sistema de VIP já só q queria adiciona essa função do nome [VIP]

 

vo posta meu script da talkactions vip.lua

 

function onSay(cid, words, param)
   local Data = string.explode(param, ",")
   if Data then
       local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(Data[1]) .. ";")
       if Data then
           if (Target:getID() ~= -1) then
               if Data[2] then
                   if (words:sub(2, 2) == "a") then
                       if isNumber(Data[2]) == TRUE then
                           if vipTimeByName(Data[1]) == 0 then
                               db.executeQuery("UPDATE `accounts` SET `vip_time` = 86400 * ".. Data[2] .." + ".. os.time() .." WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";")
                           else
                               db.executeQuery("UPDATE `accounts` SET `vip_time` = `accounts`.`vip_time` + (86400 * ".. Data[2] ..") WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";")
                           end
                           db.executeQuery("UPDATE `accounts` SET `vip` = 1 WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) .." LIMIT 1;")
                           db.executeQuery("UPDATE `accounts` SET `vip_days` = `accounts`.`vip_days` + ".. Data[2] .." WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";")
                           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi adicionado ".. Data[2] .." dias de vip ao player ".. Data[1] ..".")
                       else
                           doPlayerSendCancel(cid, "Insira apenas numeros.")
                       end
                   else
                       doPlayerSendCancel(cid, "Para verificar uma vip não presisa inserir os dias.")
                   end
               else
                   if (words:sub(2, 2) == "c") then
                       if vipDaysByName(Data[1]) == 0 then
                           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." não é vip.")
                       elseif vipDaysByName(Data[1]) == 1 then
                           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." tem ".. vipDaysByName(Data[1]) .." dia de vip.")
                       else
                           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." tem ".. vipDaysByName(Data[1]) .." dias de vip.")
                       end
                   else
                       doPlayerSendCancel(cid, "Insira a quantidade de dias que vai adicionar de vip ao player.")
                   end
               end
           else
               doPlayerSendCancel(cid, "Este player ".. Data[1] .." não existe.")
           end
       end
   else
       doPlayerSendCancel(cid, "Insira um nome.")
   end
   return TRUE
end

 

Por acaso seria neste script q eu adicionaria?

 

Eu não troco de script pois uso website, dai no lugar de compra PACC compra vip...

Obg.

Compartilhar este post


Link para o post
walefgs    0
walefgs

Tenta ae:

 

 

function onSay(cid, words, param)

local Data = string.explode(param, ",")

if Data then

local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(Data[1]) .. ";")

if Data then

if (Target:getID() ~= -1) then

if Data[2] then

if (words:sub(2, 2) == "a") then

if isNumber(Data[2]) == TRUE then

if vipTimeByName(Data[1]) == 0 then

db.executeQuery("UPDATE `accounts` SET `vip_time` = 86400 * ".. Data[2] .." + ".. os.time() .." WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";")

else

db.executeQuery("UPDATE `accounts` SET `vip_time` = `accounts`.`vip_time` + (86400 * ".. Data[2] ..") WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";")

end

 

db.executeQuery ("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")

db.executeQuery("UPDATE `accounts` SET `vip` = 1 WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) .." LIMIT 1;")

db.executeQuery("UPDATE `accounts` SET `vip_days` = `accounts`.`vip_days` + ".. Data[2] .." WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";")

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi adicionado ".. Data[2] .." dias de vip ao player ".. Data[1] ..".")

else

doPlayerSendCancel(cid, "Insira apenas numeros.")

end

else

doPlayerSendCancel(cid, "Para verificar uma vip não presisa inserir os dias.")

end

else

if (words:sub(2, 2) == "c") then

if vipDaysByName(Data[1]) == 0 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." não é vip.")

elseif vipDaysByName(Data[1]) == 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." tem ".. vipDaysByName(Data[1]) .." dia de vip.")

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." tem ".. vipDaysByName(Data[1]) .." dias de vip.")

end

else

doPlayerSendCancel(cid, "Insira a quantidade de dias que vai adicionar de vip ao player.")

end

end

else

doPlayerSendCancel(cid, "Este player ".. Data[1] .." não existe.")

end

end

else

doPlayerSendCancel(cid, "Insira um nome.")

end

return TRUE

end

 

Compartilhar este post


Link para o post
ricardosohn    0
ricardosohn

testado e funcional.

apesar de ter sistemas melhores, eh um bom sistema.

Aprovado.

Compartilhar este post


Link para o post
kacalsilvera    0
kacalsilvera

Kara me ajuda em uma coisa aki... Kero substituir o 5kk por um item . Tem como..

Tipowww o cara compra um item e fala !buyvip daew item some e a vip e adicionada ajuda ae

Compartilhar este post


Link para o post
FenixAdm    0
FenixAdm

verdade, tbm keria isso.. ao invés de ser dinhero trocar por um item, dai eu venderia esse item no meu site e seria melhor... se tiver como .. agradeço..

Compartilhar este post


Link para o post
Criticoo    4
Criticoo

troque:

 

local price = 5000000 
if doPlayerRemoveMoney(cid, price) == TRUE then 

...
-- e essa msg

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

 

por:

 

local item,quantidade = XXXX,XX
if doPlayerRemoveItem(cid,item,quantidade) == TRUE then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..quantidade.." "..getItemNameById(item).." para ser vip.")

Editado por Criticoo

Compartilhar este post


Link para o post
Asould Acalaylaa    5
Asould Acalaylaa

Nesse sistema VIP, o player compra por GP's? oO

Se for assim, é melhor deixar o sistema de PA mesmo. rs

Compartilhar este post


Link para o post
FenixAdm    0
FenixAdm
troque:

 

local price = 5000000 
if doPlayerRemoveMoney(cid, price) == TRUE then 

...
-- e essa msg

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

 

por:

 

local item,quantidade = XXXX,XX
if doPlayerRemoveItem(cid,item,quantidade) == TRUE then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..quantidade.." "..getItemNameById(item).." para ser vip.")

 

 

 

 

 

Hum agora sim, vou usar este sistema .. Muito Obrigado ;)

Compartilhar este post


Link para o post
ducklin    0
ducklin

ql o id do piso vip ?

Edit : Pow eu descobri o id do piso e tal mas eu falo os comandos e n funciona ?

 

pow aqui n ta funcionando os comandos

 

pow eu consigo adicionar vip no meu gm mas no meu player nao.. WUT ?

 

edit : descobri como arrumar

<talkaction log="yes" words="/addvip" access="5" event="script" value="vip.lua"/>

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

<talkaction log="yes" words="!buyvip" access="1" event="script" value="vip.lua"/>

<talkaction log="yes" words="!vipdays" access="1" event="script" value="vip.lua"/>

mudar para

 

<talkaction log="yes" words="/addvip" access="5" event="script" value="vip.lua"/>

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

<talkaction log="yes" words="!buyvip" access="0" event="script" value="vip.lua"/>

<talkaction log="yes" words="!vipdays" access="0" event="script" value="vip.lua"/>

Editado por vdzz

Compartilhar este post


Link para o post
ken    0
ken

quero fazer um piso só para vip pisar como faz?

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×