Postado Julho 22, 2014 10 anos Tenho um script de WAND VIP (Sim! Aquele que permite ao jogador trocar o elemento de uma wand através do comando !wand ou algo parecido). O script está funcionando, porém não verifica se o player possui ou não a WAND VIP antes de trocar o elemento. Será que alguém pode me dizer quais configurações devo adicionar ao script para que ele passe a fazer essa verificação, não permitindo que o player, sem a wand, troque o elemento? Aqui está o script para referência: local combat_values = { ["none"] = 0, ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 0, delay = 0, msg = { default = "Por favor selecione um dos elementos disponíveis: Ice, Fire, Earth, Energy, Holy ou Death.", help = "Elementos disponíveis: Ice, Fire, Earth, Energy, Holy, Death.", invalid = "Digite um elemento válido! Fale !wand para saber os elementos disponíveis.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] if param == "help" then doPlayerSendCancel(cid, string.format(config.msg.help, config.price)) return end if param == "" then doPlayerSendCancel(cid, string.format(config.msg.default, config.price)) return end if not value then doPlayerSendCancel(cid, config.msg.invalid) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerStorageValue(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return end setPlayerStorageValue(cid, config.storage, value) setPlayerStorageValue(cid, config.time_storage, os.time()) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) return end Editado Julho 22, 2014 10 anos por ADM Guardian (veja o histórico de edições)
Postado Julho 22, 2014 10 anos como é a vip no seu server, é por premium? por database? por storage?? tem a função isVip(cid)? eu tinha lido errado haha o jeito que a AnaPaula falou resolve o problema! Editado Julho 22, 2014 10 anos por xWhiteWolf (veja o histórico de edições)
Postado Julho 22, 2014 10 anos e so add a função if getPlayerItemCount(cid, IDDOITEM) == 1 then doPlayerSendCancel(cid, voce nao tem o item necesserio)return end abaixo do if getPlayerStorageValue(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed)return end que deve pegar.
Postado Julho 23, 2014 10 anos Autor Obrigado Ana Paula e WhiteWolf (pela intenção de ajudar). Rep+ pra ambos. Porém, o problema não foi solucionado. O script continua executando as funções sem checar a quantidade do item wand vip. Vejam como está o script: Tenho uma ideia de como se resolve, mas não sei escrever isso em "scripts", hehe (burro). A ideia é a seguinte: os parametros "help", ""[vazio], "if not value", etc. devem depender da quantidade do item wand vip, ou seja, eles só serão executados se a quantidade de wand for DIFERENTE (maior) de zero. Alguma sugestão? local combat_values = { ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 0, delay = 0, msg = { default = "Por favor selecione um dos elementos disponíveis: Ice, Fire, Earth, Energy, Holy ou Death.", help = "Elementos disponíveis: Ice, Fire, Earth, Energy, Holy, Death.", invalid = "Digite um elemento válido! Fale !wand para saber os elementos disponíveis.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] if param == "help" then doPlayerSendCancel(cid, string.format(config.msg.help, config.price)) return end if param == "" then doPlayerSendCancel(cid, string.format(config.msg.default, config.price)) return end if not value then doPlayerSendCancel(cid, config.msg.invalid) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerStorageValue(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return end if getPlayerItemCount(cid, 23607) == 1 then doPlayerSendCancel(cid, Você não possui a wand.) return end setPlayerStorageValue(cid, config.storage, value) setPlayerStorageValue(cid, config.time_storage, os.time()) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) return end como é a vip no seu server, é por premium? por database? por storage?? tem a função isVip(cid)? eu tinha lido errado haha o jeito que a AnaPaula falou resolve o problema! Não resolveu o problema, heheh Editado Julho 23, 2014 10 anos por ADM Guardian (veja o histórico de edições)
Postado Julho 23, 2014 10 anos local combat_values = { ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 0, delay = 0, msg = { default = "Por favor selecione um dos elementos disponíveis: Ice, Fire, Earth, Energy, Holy ou Death.", help = "Elementos disponíveis: Ice, Fire, Earth, Energy, Holy, Death.", invalid = "Digite um elemento válido! Fale !wand para saber os elementos disponíveis.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] if param == "help" then doPlayerSendCancel(cid, string.format(config.msg.help, config.price)) return end if param == "" then doPlayerSendCancel(cid, string.format(config.msg.default, config.price)) return end if not value then doPlayerSendCancel(cid, config.msg.invalid) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerStorageValue(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return end if not (getPlayerItemCount(cid, 23607) >= 1) then doPlayerSendCancel(cid, Você não possui a wand.) return end setPlayerStorageValue(cid, config.storage, value) setPlayerStorageValue(cid, config.time_storage, os.time()) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) return end prontinho, faltou colocar um not na frente já que a checagem é pra ver justamente se ele não tem a wand.
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.