Postado Maio 6, 2017 8 anos Galera, to usando esse script pra adicionar vip por item e mudar o nick pra [VIP]. Da certo, mas quando o player reloga pra trocar o nome, a vip acaba, ele desloga e sai o [VIP] do nome. function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 29000) local timenow = os.time() if getPlayerStorageValue(cid, 13778) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13778, time) local quantity = math.floor((getPlayerStorageValue(cid, 13778) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") doPlayerAddAddons(cid, 1) addEvent(doRemoveCreature, 5*1000, cid, true) end return TRUE end function onLogin(cid) local temple = { x =156, y = 112, z = 7} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,29000) ~= 1 then setPlayerStorageValue(cid,29000,1) end else if getPlayerStorageValue(cid,29000) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Sua vip acabou!") db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 29000, 0) end end return true end function onLogin(cid) local name = string.gsub(""..getCreatureName(cid).."", ".VIP. ", "") if getPlayerStorageValue(cid, 29000) <= 0 then if getCreatureName(cid) ~= name then db.executeQuery("UPDATE `players` SET `name` = '"..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") addEvent(doRemoveCreature, 2*1000, cid, true) end end return true end Queria adicionar também uma nova vocação quando o player usar o item, mas quero que seja removida quando a vip acabar.
Postado Maio 7, 2017 8 anos Seu script de addvip está botando uma storage diferente. Isso irá corrigir: function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 29000) local timenow = os.time() if getPlayerStorageValue(cid, 29000) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 29000, time) local quantity = math.floor((getPlayerStorageValue(cid, 29000) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") doPlayerAddAddons(cid, 1) addEvent(doRemoveCreature, 5*1000, cid, true) end return TRUE end Sobre a promotion, vc já tem ela configurada no vocations.xml? Se tiver, poste o ID das vocations que eu faço pra vc. Editado Maio 7, 2017 8 anos por luangop a (veja o histórico de edições) Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Maio 7, 2017 8 anos Autor Obrigado brother, eu percebi isso ontem, só a promotion que não fiz ainda! São essas aqui: <?xml version="1.0" encoding="UTF-8"?> <vocations> <vocation id="0" name="None" description="none" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="1000" soulmax="100" gainsoulticks="120" fromvoc="0"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="1" name="Sorcerer" description="a sorcerer" gaincap="1" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="250" gainmanaticks="2" gainmanaamount="300" manamultiplier="1.1" attackspeed="580" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="2" name="Druid" description="a druid" gaincap="1" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="250" gainmanaticks="2" gainmanaamount="300" manamultiplier="1.1" attackspeed="580" soulmax="100" gainsoulticks="120" fromvoc="2"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="3" name="Paladin" description="a paladin" gaincap="1" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="250" gainmanaticks="2" gainmanaamount="250" manamultiplier="1.6" attackspeed="550" soulmax="100" gainsoulticks="120" fromvoc="3"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="4" name="Knight" description="a knight" gaincap="1" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="250" gainmanaticks="2" gainmanaamount="250" manamultiplier="4.0" attackspeed="520" soulmax="100" gainsoulticks="120" fromvoc="4"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="5" name="Master Sorcerer" description="a master sorcerer" gaincap="1" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="350" manamultiplier="1.1" attackspeed="500" soulmax="200" gainsoulticks="15" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="6" name="Elder Druid" description="an elder druid" gaincap="1" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="350" manamultiplier="1.1" attackspeed="500" soulmax="200" gainsoulticks="15" fromvoc="2"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="7" name="Royal Paladin" description="a royal paladin" gaincap="1" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="300" manamultiplier="1.6" attackspeed="480" soulmax="200" gainsoulticks="15" fromvoc="3"> <formula meleeDamage="1.0" distDamage="1.1" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="8" name="Elite Knight" description="an elite knight" gaincap="1" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="300" manamultiplier="4.0" attackspeed="450" soulmax="200" gainsoulticks="15" fromvoc="4"> <formula meleeDamage="1.2" distDamage="1.0" defense="1.4" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="9" name="Illusionist Mage" description="a Illusionist Mage" gaincap="1" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="400" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="5"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="10" name="Elemental Master" description="a Elemental Master" gaincap="1" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="400" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="6"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="11" name="Sniper" description="a Sniper" gaincap="1" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="300" manamultiplier="1.6" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="7"> <formula meleeDamage="1.0" distDamage="1.2" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="12" name="Blade Master" description="a Blade Master" gaincap="1" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="300" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="8"> <formula meleeDamage="1.3" distDamage="1.0" defense="1.5" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> </vocations>
Postado Maio 7, 2017 8 anos action function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 29000) local timenow = os.time() if getPlayerStorageValue(cid, 29000) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 29000, time) local quantity = math.floor((getPlayerStorageValue(cid, 29000) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") doPlayerAddAddons(cid, 1) local voc = getPlayerVocation(cid) if voc <= 4 then newvoc = voc + 8 elseif voc > 4 and voc <= 8 then newvoc = voc + 4 end doPlayerSetVocation(cid, newvoc) addEvent(doRemoveCreature, 5*1000, cid, true) end return TRUE end Creaturescript function onLogin(cid) local temple = { x =156, y = 112, z = 7} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,29000) ~= 1 then setPlayerStorageValue(cid,29000,1) end else if getPlayerStorageValue(cid,29000) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Sua vip acabou!") local voc = getPlayerVocation(cid) if voc > 8 and voc < 13 then newvoc = voc - 4 doPlayerSetVocation(cid, newvoc) end db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 29000, 0) end end return true end function onLogin(cid) local name = string.gsub(""..getCreatureName(cid).."", ".VIP. ", "") if getPlayerStorageValue(cid, 29000) <= 0 then if getCreatureName(cid) ~= name then db.executeQuery("UPDATE `players` SET `name` = '"..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") addEvent(doRemoveCreature, 2*1000, cid, true) end end return true end Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Maio 8, 2017 8 anos Autor Amigo, não funcionou Não adiciona promotion ao player. Tipo, adiciona na hora, mas quando o player reloga volta pra promotion normal. Editado Maio 8, 2017 8 anos por PsyMcKenzie (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.