DuuhCarvalho 327 Postado Março 18, 2014 Share Postado Março 18, 2014 (editado) Bom com o system multi vip , você pode criar varias e varias vip em apenas um script ! 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 1ao falar "!buyvip2" compra vip 2 ... vamos lá :vá em data / talkactions / scripts.. cria um arquivo.lua e cola isso dentro : 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 ! caso não, veja como configurar .. 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á ! <talkaction words="!buyvip1;!buyvip2;!buyvip3" script="Nome do Arquivo.lua"/> !buy + nome da vip , ficando assim : !buyvip4;!buyvip5 ( entre ponto e virgula ( ; ) ) . 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. MOVEMENTS. Agora Vá em data / movements / scripts... crie um arquivo.lua e cole isso dentro : 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 configurando : 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á.. 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 ! Editado Março 24, 2014 por DuuhCarvalho Link para o comentário https://xtibia.com/forum/topic/230292-system-multi-vip/ Compartilhar em outros sites More sharing options...
kttallan 319 Postado Março 18, 2014 Share Postado Março 18, 2014 Interesante manin, eu mesmo acho desnessesario tanto vip's em baiks mais e os otadmins que sabe. rep+ Link para o comentário https://xtibia.com/forum/topic/230292-system-multi-vip/#findComment-1625196 Compartilhar em outros sites More sharing options...
AdilsonHacker 98 Postado Março 18, 2014 Share Postado Março 18, 2014 (editado) Muito bom, assim fica mais organizado! Editado Março 18, 2014 por AdilsonTsunami Link para o comentário https://xtibia.com/forum/topic/230292-system-multi-vip/#findComment-1625198 Compartilhar em outros sites More sharing options...
DuuhCarvalho 327 Postado Março 19, 2014 Autor Share Postado Março 19, 2014 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 https://xtibia.com/forum/topic/230292-system-multi-vip/#findComment-1625243 Compartilhar em outros sites More sharing options...
JustinnoTibianno 71 Postado Março 21, 2014 Share Postado Março 21, 2014 Boa Sempre vejo os scripts de VIP gigantes, esse foi menor que eles, sendo mais fácil de instalar Link para o comentário https://xtibia.com/forum/topic/230292-system-multi-vip/#findComment-1626513 Compartilhar em outros sites More sharing options...
DuuhCarvalho 327 Postado Março 24, 2014 Autor Share Postado Março 24, 2014 (editado) Boa Sempre vejo os scripts de VIP gigantes, esse foi menor que eles, sendo mais fácil de instalar 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. Bom , nada pra fazer resolvi fazer outra versão do system . Agora por Actions (por Item) . Com 2 scripts . Com valor mesmo dando use no item o player precisa ter X quantidade de money pra comprar a vip. Ao dar use no item o player já ganha vip sem precisar te money. Editado Março 24, 2014 por DuuhCarvalho Link para o comentário https://xtibia.com/forum/topic/230292-system-multi-vip/#findComment-1626812 Compartilhar em outros sites More sharing options...
Posts Recomendados