Ir para conteúdo

System Multi Vip


Posts Recomendados

Bom com o system multi vip , você pode criar varias e varias vip em apenas um script ! he.gif

esse script vem com o objetivo de facilitar a criação de vip's ! pois é muiiito fácil de editar !

Serve também para diminuir aquele monte de arquivos.lua que tem no seu serve por causa das vips .

Versão 1.0 : Comando por talkactions (ex = !buy..)

 

exemplo : ao falar "!buyvip1" compra vip 1
ao falar "!buyvip2" compra vip 2 ...

vamos lá :

vá em data / talkactions / scripts..

cria um arquivo.lua e cola isso dentro : rules.gif

local vips = {
[1] = {vip = "vip1", dias = 1, valor = 10, storage = 10001},
[2] = {vip = "vip2", dias = 2, valor = 50, storage = 10002},
[3] = {vip = "vip3", dias = 3, valor = 100, storage = 10003}
}

function onSay(cid, words, param) 

 for i = 1, #vips do
   if(words == "!buy"..vips[i].vip.."") then
     if doPlayerRemoveItem(cid, 2160, vips[i].valor) == TRUE then
       if getPlayerStorageValue(cid, vips[i].storage) - os.time() <= 0 then
         setPlayerStorageValue(cid, vips[i].storage, os.time() + vips[i].dias * 24 * 60 * 60)
         doSendMagicEffect(getCreaturePosition(cid), 28) 
         doPlayerSendTextMessage(cid, 22, "Parabéns você comprou "..vips[i].dias.." dia(s) de "..vips[i].vip.."!")
       else 
         setPlayerStorageValue(cid, vips[i].storage, getPlayerStorageValue(cid, vips[i].storage) + vips[i].dias * 24 * 60 * 60)
         doSendMagicEffect(getCreaturePosition(cid), 28)
          local quant = math.floor((getPlayerStorageValue(cid, vips[i].storage) - os.time())/(24 * 60 * 60))
         doPlayerSendTextMessage(cid, 22, "Você comprou mais "..vips[i].dias.." dia(s) de "..vips[i].vip..", agora você tem "..quant.." dias restantes.")
       end
     else
      doPlayerSendCancel(cid, "Você não tem dinheiro suficiente, você precisa de "..vips[i].valor.." crystal coins.")
      doSendMagicEffect(getCreaturePosition(cid), 2)
     end
   end
 end

 return true
end

Acho que de cara já deu para perceber onde você vai criar sua vip !

forward.png caso não, veja como configurar .. back.png

 

 

na parte :

local vips = {
[1] = {vip = "vip1", dias = 1, valor = 10, storage = 10001},
[2] = {vip = "vip2", dias = 2, valor = 50, storage = 10002},
[3] = {vip = "vip3", dias = 3, valor = 100, storage = 10003}
}

 

 

vip = "vip1" é o nome que você vai falar para comprar a vip . Exemplo : se você falar "!buyvip1" você compra a vip 1, Se você falar "!buyvip2" você compra a vip 2 e se você falar "!buyvip3" você compra a vip 3.. e assim sucessivamente..

 

dias = 1 ... É a quantidade de dias de cada vip que o player vai comprar .. no caso ta 1 .

 

valor = 10 .. É o valor de cada vip , pago com crystal coins ! , se colocar 100 é 1 kk .

 

storage = .. É a storage de cada vip !

 

 

Tag que vai em talkaction.xml :

Bom claro que você vai ter que colocar a fala de cada vip na tag como está ! yes.gif

                 <talkaction words="!buyvip1;!buyvip2;!buyvip3" script="Nome do Arquivo.lua"/>

!buy + nome da vip , ficando assim : !buyvip4;!buyvip5 ( entre ponto e virgula ( ; ) ) .

 

 

 

 

sglwug.png

 

Versão 2.0 : por Actions (ao dar use em X item)

 

 

Com Valor : além de dar use no item o player precisá ter X money.

 

--[[ ' vipName = Nome da Vip ' . ' itemId = item do item. ' Dias = dias de vip. ' Valor = preço em crystais coins '. storage = storage vip por tempo. ' ]]-- 
local vips = {
[1] = {vipName = "Vip 1", itemId = 00, dias = 5, valor = 50, storage = 20001},
[2] = {vipName = "Vip 2", itemId = 00, dias = 10, valor = 100, storage = 20002},
[3] = {vipName = "Vip 3", itemId = 00, dias = 15, valor = 200, storage = 20003}
}

function onUse(cid, item, frompos, item2, topos)

 for i = 1, #vips do
   if item.itemid == vips[i].itemId then
     if doPlayerRemoveItem(cid, 2160, vips[i].valor) == TRUE then
       if getPlayerStorageValue(cid, vips[i].storage) - os.time() <= 0 then
         setPlayerStorageValue(cid, vips[i].storage, os.time() + vips[i].dias * 24 * 60 * 60)
         doSendMagicEffect(getCreaturePosition(cid), 28) 
         doPlayerSendTextMessage(cid, 22, "Parabéns você comprou "..vips[i].dias.." dia(s) de "..vips[i].vipName.."!")
       else 
         setPlayerStorageValue(cid, vips[i].storage, getPlayerStorageValue(cid, vips[i].storage) + vips[i].dias * 24 * 60 * 60)
         doSendMagicEffect(getCreaturePosition(cid), 28)
          local quant = math.floor((getPlayerStorageValue(cid, vips[i].storage) - os.time())/(24 * 60 * 60))
         doPlayerSendTextMessage(cid, 22, "Você comprou mais "..vips[i].dias.." dia(s) de "..vips[i].vipName..", agora você tem "..quant.." dias restantes.")
       end
     else
      doPlayerSendCancel(cid, "Você não tem dinheiro suficiente, você precisa de "..vips[i].valor.." crystal coins.")
      doSendMagicEffect(getCreaturePosition(cid), 2)
     end
   end
 end

 return true
end

 

 

 

Sem Valor : apenas dando use no item.

 

 

local vips = {
[1] = {vipName = "Vip 1", itemId = 5786, dias = 5, storage = 20001},
[2] = {vipName = "Vip 2", itemId = 7489, dias = 10, storage = 20002},
[3] = {vipName = "Vip 3", itemId = 2173, dias = 15, storage = 20003}
}

function onUse(cid, item, frompos, item2, topos)

 for i = 1, #vips do
   if item.itemid == vips[i].itemId then
       if getPlayerStorageValue(cid, vips[i].storage) - os.time() <= 0 then
         setPlayerStorageValue(cid, vips[i].storage, os.time() + vips[i].dias * 24 * 60 * 60)
         doSendMagicEffect(getCreaturePosition(cid), 28) 
         doPlayerSendTextMessage(cid, 22, "Parabéns você Ganhou "..vips[i].dias.." dia(s) de "..vips[i].vipName.."!")
       else 
         setPlayerStorageValue(cid, vips[i].storage, getPlayerStorageValue(cid, vips[i].storage) + vips[i].dias * 24 * 60 * 60)
         doSendMagicEffect(getCreaturePosition(cid), 28)
          local quant = math.floor((getPlayerStorageValue(cid, vips[i].storage) - os.time())/(24 * 60 * 60))
         doPlayerSendTextMessage(cid, 22, "Você Ganhou mais "..vips[i].dias.." dia(s) de "..vips[i].vipName..", agora você tem "..quant.." dias restantes.")
       end
             doRemoveItem(item.uid)
   end
 end

 return true
end

 

 

 

 

Use o seguinte Script de Movements em ambos scripts de vip .
É só configurar corretamente, colocando a storage de cada vip.

sglwug.png

MOVEMENTS.

 

Agora Vá em data / movements / scripts...

crie um arquivo.lua e cole isso dentro : rules.gif

 

function onStepIn(cid, item, position, fromPosition)

local vips = {
[1] = {vip = "Vip1", storage = 10001, uid = 2070},
[2] = {vip = "Vip2", storage = 10002, uid = 2080},
[3] = {vip = "Vip3", storage = 10003, uid = 2090}
}

if isPlayer(cid) then
  
   for i = 1, #vips do
     if item.uid == vips[i].uid then
       if getPlayerStorageValue(cid, vips[i].storage) - os.time() >= 1 then
         doPlayerSendCancel(cid, "Bem Vindo")
       else
         doTeleportThing(cid, fromPosition, true)
         doPlayerSendCancel(cid, "Para passar aqui você precisa ser "..vips[i].vip.."!")
       end
     end
   end

end

 return true
end   

forward.png configurando : back.png

 

 

na parte :

local vips = {
[1] = {vip = "Vip1", storage = 10001, uid = 2070},
[2] = {vip = "Vip2", storage = 10002, uid = 2080},
[3] = {vip = "Vip3", storage = 10003, uid = 2090}
}

vip = É o nome da vip ..
storage = É a storage das vips ! a mesma que colocou no primeiro script .
uid = unique id de cada vip.

 

Exemplo : se você colocar a unique id da vip 1 no tile , será preciso ser vip1 para passar . se colocar a unique id da vip 2 será preciso ser vip 2 para passar ...

 

 

 

 

Na tag em movements.xml coloque todas as unique id das vip, como está.. yes.gif

obs : entre ponto e virgula ( ; )

        <movevent type="StepIn" uniqueid="2070;2080;2090" event="script" value="Nome do Arquivo.lua"/>

Agora coloca o unique id desejado em cada tile !

 

 

É isso pessoal !
XTibia_smile.gif

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

Interesante manin, eu mesmo acho desnessesario tanto vip's em baiks mais e os otadmins que sabe.

 

rep+

 

verdade, também não gosto muito ! Mais como vejo muitos membros com dificuldade em criar novas vip's , decidir criar algo mais simples e fácil de ser configurado .

Agradeço :)

 

Muito bom, assim fica mais organizado!

 

Sim , agora ficou muito fácil, mas muito fácil mesmo de criar um nova vip ! Obrigado !

o que se faria em 3 script em talkactions e 3 em movements .. da pra fazer em 1 .

Link para o comentário
Compartilhar em outros sites

Boa

Sempre vejo os scripts de VIP gigantes, esse foi menor que eles, sendo mais fácil de instalar :D

obrigado ><, Verdade, rs'

mais fácil e como falei no tópico diminui aqueles montes de arquivo.lua que tem nos serves que tem varias vips.

 

 

sglwug.png

 

 

Bom , nada pra fazer resolvi fazer outra versão do system .

  • Agora por Actions (por Item) .

Com 2 scripts .

  1. Com valor mesmo dando use no item o player precisa ter X quantidade de money pra comprar a vip.
  2. Ao dar use no item o player já ganha vip sem precisar te money.
Editado por DuuhCarvalho
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...