Ir para conteúdo
  • 0

Ganhar premio a cada lvl


SkyDarkyes

Pergunta

15 respostass a esta questão

Posts Recomendados

  • 0

 

Peraí, action? Não seria um creaturescript de onAdvance pra ser automático? Ou você quer tipo um baú?

Ganha automaticamente ao pegar o x level! Pelo que ele falou né.

 

 

É o que eu imagino que ele queira. Mas aí não pode ser action e sim creaturescript.

Link para o comentário
Compartilhar em outros sites

  • 0

 

 

function onUse(cid, item, fromPos, item2, toPos)
    local recompensas = {    
    [1] = {level = 50, item = 2160, quant = 1},
    [2] = {level = 100, item = 2160, quant = 2},
    [3] = {level = 150, item = 2160, quant = 3},
}
    
    for i = 1, #recompensas do
        recompensas[i].storage = 55223 + i
    end
    
    local k = 0
    for _, recompensa in ipairs(recompensas) do
        if getPlayerLevel(cid) >= recompensa.level then
            if getPlayerStorageValue(cid, recompensa.storage) == -1 then
                doPlayerAddItem(cid, recompensa.item, recompensa.quant)
                doPlayerSendTextMessage(cid, 22, "You have found "..recompensa.quant.." "..getItemNameById(recompensa.item)..".")
                setPlayerStorageValue(cid, recompensa.storage, 1)
                k = 1
                break
            end
        end
    end
    if k == 0 then
        doPlayerSendTextMessage(cid, 26, 'It is empty.')
        doSendMagicEffect(getCreaturePosition(cid), 2)
    end
    return true
end

 

 

 

Explicação:

  • Você coloca o level mínimo pra ganhar, o item e a quantidade.
  • Quando o jogador clicar, vai checar se ele tem o level mínimo e se ele já ganhou o prêmio.
  • Se estiver tudo certo, ele ganha 1 prêmio de cada vez (se quiser que ganha todos os prêmios anteriores, tire a linha que tem "break")
  • Se ele não puder ganhar nada vai aparecer "It is empty."
Link para o comentário
Compartilhar em outros sites

  • 0

Fiz aqui sem dar os prêmios anteriores (deu um trabalhinho pra pensar num jeito de fazer sem ter que começar do 0)

 

 

function onUse(cid, item, fromPos, item2, toPos)
	local recompensas = {	
	[1] = {level = 50, item = 2160, quant = 1},
	[2] = {level = 100, item = 2160, quant = 2},
	[3] = {level = 150, item = 2160, quant = 3},
}
	
	for i = 1, #recompensas do
		recompensas[i].storage = 55303 + i
	end
	
	local k = 0
	local prox_recompensa = 0
	for g, recompensa in ipairs(recompensas) do
		if recompensas[g+1] then
			prox_recompensa = recompensas[g+1].level
		else
			prox_recompensa = 100000
		end
		if getPlayerLevel(cid) >= recompensa.level and getPlayerLevel(cid) < prox_recompensa then
			if getPlayerStorageValue(cid, recompensa.storage) == -1 then
				doPlayerAddItem(cid, recompensa.item, recompensa.quant)
				doPlayerSendTextMessage(cid, 22, "You have found "..recompensa.quant.." "..getItemNameById(recompensa.item)..".")
				setPlayerStorageValue(cid, recompensa.storage, 1)
				k = 1
				break
			end
		end
	end
	if k == 0 then
		doPlayerSendTextMessage(cid, 26, 'It is empty.')
		doSendMagicEffect(getCreaturePosition(cid), 2)
	end
	return true
end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, se decide. Explica direito o que você quer que eu cansei de ficar tentando ler sua mente. Já fiz dois scripts com o que você pediu e você muda de ideia ou não explicou tudo.

 

Eu deixei explicadinho o que o primeiro script fazia e depois refiz uma parte a seu pedido e ainda tá explicado como alterar se ele vai ganhar todos ou um de cada vez.

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

  • 0

Bom vamos lá

Quando o player clika no item ele ganha premios de acordo com o lvl

De 50 em 50 leveis até 600

Porem exemplo se eu pega o premio do lvl 50,nao posso pegar mais do lvl 50,apenas os outros,se eu tiver lvl 100,e nao tiver pegado nenhum premio posso pegar o do 50 e do 100 e os adiante

 

Tende?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...