Ir para conteúdo
  • Cadastre-se

(Resolvido)Reward Item


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Galera gostaria de uma ajuda de vocês.

Acredito que seja um script bem simples.

                          8.6 REAL SERVER.        

Ao dar USE no item ele aleatóriamente poderá se transforma em 1 dos 5 itens.

 

Ex:

●sword de evento 1% de chance

●Addon doll 40% de chance

●10 Cristal coin  60% de chance

●Moeda de evento  5% de chance 

●Stamina doll  10% de chance

 

Não sou scripter mas acredito que seja bem simples. Acho que com esse exemplo está bem claro o que eu desejo.

 

OBS: Se possível quando o jogador ganhar o item mais difícil no caso seria a "Sword de evento"(no exemplo acima), avisar no BroadCast: "Parabéns |PLAYERNAME| você achou a |NOMEDOITEM|."

 

Caso não dê para colocar esse script citado na OBS, não tem problema.

 

Tópico de fácil entendimento.

REP + para quem me ajudar ! Obg.

Editado por caioitalo1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
function onUse(cid, item, frompos, item2, topos)
	local item = {
	[1] = {2156, 1, 1},
	[2] = {3000, 1, 5},
	[3] = {2113, 1, 10},
	[4] = {2156, 1, 40},
	[5] = {2160, 10, 60}, -- [um número maior que o anterior] = {ID do item, quantidade, chance}
	}
	
	local randomItem = math.random (1, 100)
	
	for i = 1, #item do
		if randomItem > 0 and randomItem <= item[i][3] then
			if doPlayerAddItem (cid, item[i][1], item[i][2]) then
				break;
			end
		end
	end
	doRemoveItem (item2.uid, 1)
                                                     
	if randomItem > item[#item][3] then
		doPlayerSendTextMessage (cid, 19, "Seu item falhou.")
	end
return true
end

 

Editado por Talesigorvr (veja o histórico de edições)

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
9 minutos atrás, Talesigorvr disse:

function onUse(cid, item, frompos, item2, topos)
	local item = {
	[1] = {2156, 1, 1},
	[2] = {3000, 1, 5},
	[3] = {2113, 1, 10},
	[4] = {2156, 1, 40},
	[5] = {2160, 10, 60}, -- [um número maior que o anterior] = {ID do item, quantidade, chance}
	}
	
	local randomItem = math.random (1, 100)
	
	for i = 1, #item do
		if randomItem > 0 and randomItem <= item[i][3] then
			if doPlayerAddItem (cid, item[i][1], item[i][2]) then
				break;
			end
		end
	end
	doRemoveItem (item2.uid, 1)
                                                     
	if randomItem > item[#item][3] then
		doPlayerSendTextMessage (cid, 19, "Seu item falhou.")
	end
return true
end

 

Obrigado, uma dúvida ficou, esse script avisa no Broadcast caso ele tirar o item de id: 2156 ?

Como dito na obs acima.

Link para o post
Compartilhar em outros sites
function onUse(cid, item, frompos, item2, topos)
	local item = {
	[1] = {2156, 1, 1},
	[2] = {3000, 1, 5},
	[3] = {2113, 1, 10},
	[4] = {2156, 1, 40},
	[5] = {2160, 10, 60}, -- [um número maior que o anterior] = {ID do item, quantidade, chance}
	}
	
	local randomItem = math.random (1, 100)
	
	for i = 1, #item do
		if randomItem > 0 and randomItem <= item[i][3] then
			if doPlayerAddItem (cid, item[i][1], item[i][2]) then
				if randomItem == 1 then
					doBroadcastMessage ("Parabéns, "..getCreatureName (cid).."! Você achou a "..getItemNameById (item[i][1]).."!")
				end
				
				break;
			end
		end
	end
	doRemoveItem (item2.uid, 1)
                                                     
	if randomItem > item[#item][3] then
		doPlayerSendTextMessage (cid, 19, "Seu item falhou.")
	end
return true
end

 

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
13 horas atrás, Talesigorvr disse:

function onUse(cid, item, frompos, item2, topos)
	local item = {
	[1] = {2156, 1, 1},
	[2] = {3000, 1, 5},
	[3] = {2113, 1, 10},
	[4] = {2156, 1, 40},
	[5] = {2160, 10, 60}, -- [um número maior que o anterior] = {ID do item, quantidade, chance}
	}
	
	local randomItem = math.random (1, 100)
	
	for i = 1, #item do
		if randomItem > 0 and randomItem <= item[i][3] then
			if doPlayerAddItem (cid, item[i][1], item[i][2]) then
				if randomItem == 1 then
					doBroadcastMessage ("Parabéns, "..getCreatureName (cid).."! Você achou a "..getItemNameById (item[i][1]).."!")
				end
				
				break;
			end
		end
	end
	doRemoveItem (item2.uid, 1)
                                                     
	if randomItem > item[#item][3] then
		doPlayerSendTextMessage (cid, 19, "Seu item falhou.")
	end
return true
end

 

@Talesigorvr Mano nao deu nenhum error, porem esta acontecendo isso. Toda vez que eu abro o item random, ele sempre vem o item [1] so vem ele, e só as vezes ele anuncia no BrocadCast, poderia ajudar ?

Tag: <action itemid="1990" event="script" value="quests/rewarditem.lua"/>

 

Acredito que esse seja o error, ele ta assim no meu.

local randomItem = math.random (1, 100)

Coloquei math.random (1, 5) e so vinha o ITEM 1!

Depois fui trocar para testar

Coloquei math.random (2, 5) e so vinha o ITEM 2!

 

Editado por caioitalo1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Essa linha é pra fazer a porcentagem.

Você deve ter configurado errado, eu testei aqui e funcionou.

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
  • Solução
function onUse(cid, item, frompos, item2, topos)
	local t,r = {
		[{1, 2}] = {2173,1},
		[{1, 5}] = {2161,2},
		[{1, 10}] = {2163,1},
		[{1, 40}] = {2162,1},
		[{1, 60}] = {2160,10}
	}, math.random(1, 100)
	for var, ret in pairs(t) do
		if r >= var[1] and r <= var[2] then
			doPlayerAddItem(cid, ret[1], ret[2])
			doRemoveItem(item.uid)
			doBroadcastMessage("Parabéns, "..getCreatureName(cid).."! Você achou a "..ret[2].." "..getItemNameById (ret[1]).."!");break
		end
	end
	if r > 60 then
		doPlayerSendTextMessage(cid, 19, "Seu item falhou, tente novamente!")
	end
	return true
end

 

não testei

Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Não achei o erro no meu script, mas okay. ;P

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo