Ir para conteúdo

Featured Replies

Postado

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 por ADM Guardian (veja o histórico de edições)

Resolvido por ADM Guardian

Ir para solução
  • Respostas 8
  • Visualizações 1.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 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!

  • 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(ci

  • local combat_values = {     ["ice"] = 1,     ["fire"] = 2,     ["earth"] = 3,     ["energy"] = 4,     ["holy"] = 5,     ["death"] = 6, } local config = {     storage = 101010,     time_storage = 101

Postado

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 por xWhiteWolf (veja o histórico de edições)

Postado

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
  • 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 por ADM Guardian (veja o histórico de edições)

Postado
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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo