Ir para conteúdo
  • Cadastre-se

(Resolvido)Item Upgrade


Ir para solução Resolvido por antharaz,

Posts Recomendados

Olá boa tarde, Gostaria de pedir a vocês um script que seria tipo de upgrade. Ao usar a pedra em uma arma(só algumas armas que poderão ser dado o upgrade) teria uma chance normal na primeira e na segunda já ir dificultando e assim por diante. o Upgrade seria substituindo a primeira arma por outra um exemplo, ate +9 por exemplo

 

Seria assim 

1ª Arma = Spike Sword

2ª Arma = Ice rapier

3ª Arma= Giant Sword

e assim por diante.

ate a 9 arma

 

Agradeço desde já.

Link para o post
Compartilhar em outros sites
local config = {

				itens_iniciais = {2395,2397},

				t_upgrade = {
						[0] = {id=7744,chance=100},
						[1] = {id=2396,chance=90},
						[2] = {id=2393,chance=70}
				}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local u = getItemAttribute(itemEx.uid, 'upgrade')
	u = u and u or 0
	if (not isInArray(config.itens_iniciais,itemEx.itemid) and u == 0) or u == (#config.t_upgrade+1) then
		doSendMagicEffect(fromPosition, 2)
		return false
	end
	doRemoveItem(item.uid,1)
	if math.random(1,100) > config.t_upgrade[u].chance then
		doRemoveItem(itemEx.uid)
		doSendMagicEffect(fromPosition, 2)
		return false
	end
	doItemSetAttribute(itemEx.uid, 'upgrade',u + 1)
	doTransformItem(itemEx.uid,config.t_upgrade[u].id)
	doSendAnimatedText(toPosition,"+"..(u + 1), 55)
	doSendMagicEffect(fromPosition, 45)
 return true
end


Como você falou que seriam vários ids iniciais para o upgrade, fiz uma table aonde você colocará os ids q podem sofrer upgrade, para cada item e chance correspondente ao upgrade, eu inseria  table t_upgrade, agora te ensinarei a configurar cada linha, lembrando que fiz apenas 3 de acordo com seu exemplo, qualquer coisa é só alterar.

 

[0] = {id=7744,chance=100},

 

Aonde está id=7744 vc coloca o id que o item irá mudar quando sofrer upgrade e em chance=100 colocará a chance em porcentagem de sucesso.

 

Caso tenha alguma dificuldade ou caso seja um upgrade diferente para cada item, pode falar que te ajudo.

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

@antharaz Mano, funcionou tudo, mais tipo, o upgrade seria tipo assim. 

 

Exemplo : O Item 2395 (quando usa o item ele se trasnforma no proximo item.

Item 2 = 7744 (Quando usar o item de novo, tem chance de trocar pelo 3 item

item 3= 2396 (quando usa nessa arma troca pelo 4 item) 

 

Entendeu como é ? Ai ele pega o primeiro item e tem chance de vim os outros. Eu gostaria que fosse dando tipo um upgrade memso.Entendeu ?

Link para o post
Compartilhar em outros sites

@Gabrielk 

 

Então, isso que fiz, usei o item e transformou no outro, usei dnv no novo item e transformou no prox e por ae vai, só que dexei apenas 3 upgrades no exemplo, cada upgrade com uma chance.

Link para o post
Compartilhar em outros sites

@Gabrielk 

 

Foi um erro meu de logica no if, o código correto está abaixo:

 

Spoiler

local config = {

				itens_iniciais = {2395,2397},

				t_upgrade = {
						[0] = {id=7744,chance=100},
						[1] = {id=2396,chance=90},
						[2] = {id=2393,chance=70}
				}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local u = getItemAttribute(itemEx.uid, 'upgrade')
	u = u and u or 0
	if (not isInArray(config.itens_iniciais,itemEx.itemid) and u == 0) or u == (#config.t_upgrade+1) then
		doSendMagicEffect(fromPosition, 2)
		return false
	end
	doRemoveItem(item.uid,1)
	if math.random(1,100) > config.t_upgrade[u].chance then
		doRemoveItem(itemEx.uid)
		doSendMagicEffect(fromPosition, 2)
		return false
	end
	doItemSetAttribute(itemEx.uid, 'upgrade',u + 1)
	doTransformItem(itemEx.uid,config.t_upgrade[u].id)
	doSendAnimatedText(toPosition,"+"..(u + 1), 55)
	doSendMagicEffect(fromPosition, 45)
 return true
end

 

 

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

@Gabrielk 

Entendi que era o item porque a pedra já remove, para não remover o item é só tirar a linha doRemoveItem(itemEx.uid) ficando assim:

 

Spoiler

local config = {

				itens_iniciais = {2395,2397},

				t_upgrade = {
						[0] = {id=7744,chance=100},
						[1] = {id=2396,chance=90},
						[2] = {id=2393,chance=70}
				}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local u = getItemAttribute(itemEx.uid, 'upgrade')
	u = u and u or 0
	if (not isInArray(config.itens_iniciais,itemEx.itemid) and u == 0) or u == (#config.t_upgrade+1) then
		doSendMagicEffect(fromPosition, 2)
		return false
	end
	doRemoveItem(item.uid,1)
	if math.random(1,100) > config.t_upgrade[u].chance then
		doSendMagicEffect(fromPosition, 2)
		return false
	end
	doItemSetAttribute(itemEx.uid, 'upgrade',u + 1)
	doTransformItem(itemEx.uid,config.t_upgrade[u].id)
	doSendAnimatedText(toPosition,"+"..(u + 1), 55)
	doSendMagicEffect(fromPosition, 45)
 return true
end

 

 

Link para o post
Compartilhar em outros sites

Ele remove, mais só quando dá sucesso, quando falha ele não retira a pedra só dá tipo um exhaust, entendeu ? queria toda vez que usar a pedra no item ele remova não importa se deu sucesso ou falha, remove ao usar a pedra entendeu ? @antharaz

Link para o post
Compartilhar em outros sites

@Gabrielk 

 

Vamos lá...

 

antes mesmo dele ver se falhou ou não, o scirpt já está configurado para remover o item, independentemente se falhar ou não, logo não tem como remover o item em uma situação e em outra não... ele só não irá remover, se você usar a pedra em um item que não pode sofrer upgrade, que provavelmente é o que você está fazendo... eu testei aqui com skulls e deu tudo certo.

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