Ir para conteúdo
  • Cadastre-se

(Resolvido)Sistema de forja que faz verificação da quantidade de itens em certa bancada


Ir para solução Resolvido por Bodak Reborn,

Posts Recomendados

Fala pessoal, tudo blz ?

 

Bom, eu achei um sistema de Forja de itens, que no meu ver é ótimo, porém não atende as minhas necessidades...

 

Segue o sistema:

 

 

 


em Actions.xml Adicione:

<action uniqueid="16451" event="script" value="forjar.lua">

 

Crie um Arquivo LUA em Actions>Scripts com o nome de "forjar.lua" e adicione isso dentro:

 

function onUse(cid, item, item2, frompos, topos, pos)

local config = {

["Magic Plate Armor"] = {t1=2476,t2=2464,t3=2472}, -- t1 = ID do ITEM 1 |---| t2 = ID do ITEM 2 |---| t3 = ID do ITEM a ser FORJADO --

["Dragon Scale Mail"] = {t1=2489,t2=2487,t3=2492},

}


local r1 = {x = 222, y = 217, z = 7, stackpos= 2} -- Posição 1 ( NÃO MEXA NO stackpos= 2 )

local r2 = {x = 224, y = 217, z = 7, stackpos= 2} -- Posição 2 ( NÃO MEXA NO stackpos= 2 )

local r3 = {x = 223, y = 217, z = 7} -- Posição do Item a Ser Criado


local q1 = getThingfromPos(r1)

local q2 = getThingfromPos(r2)

		for i, x in pairs(config) do

				if (q1.itemid == x.t1 and q2.itemid == x.t2) or (q1.itemid == x.t2 and q2.itemid == x.t1) then

						doRemoveItem(q1.uid, 1)

						doRemoveItem(q2.uid, 1)

						addEvent(doCreateItem, 1000, x.t3, 1, r3)

						doSendMagicEffect(r3, 47)

						addEvent(doSendMagicEffect, 900, r3, 39)

						doPlayerSendTextMessage(cid, 22, "Parabéns, Você Forjou Um " .. i .. ".")

						break

				end

		end

		return TRUE

end

 

Eu queria que esse script verificasse a quantidade de itens nas duas posições, mas não sei qual função verifica a quantidade de Orochi Tunic naquela bancada...

Esse script remove apenas 1, queria uma maneira de configurar a quantidade sem ter nenhum bug de poder usar com quantidade menor e dar certo, e etc.

 

Ex: Para se forjar Orochi Tunic, usa-se 80 Gold Bars + 10 Soldier Pills

 

Esse script deveria pegar a quantidade necessária, verificar quantos tem na bancada e caso os valores da verificação seja iguais, ela remove essa quantidade, de tal maneira que não seja possível forjar com menos do que a quantidade indicada.

 

Esse script remove apenas 1 item de cada bancada, pensei em criar duas variáveis com os valores, mas n sei como usá-las para verificar se a quantidade do item é válida para ser removida.

 

 

Desde já, muito obrigado.

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

Lembre-se de colocar a quantidade de cada item no config. qnt1 se refere ao t1 e a qnt2 se refere ao t2.

local config = {
["Magic Plate Armor"] = {t1 = 2476, t2 = 2464, t3 = 2472, qnt1 = 10, qnt2 = 15}, -- t1 = ID do ITEM 1 |---| t2 = ID do ITEM 2 |---| t3 = ID do ITEM a ser FORJADO --
["Dragon Scale Mail"] = {t1 = 2489, t2 = 2487, t3 = 2492, qnt1 = 20, qnt2 = 5},
}

function onUse(cid, item, item2, frompos, topos, pos)
	local r1 = {x = 222, y = 217, z = 7, stackpos= 2} -- Posição 1 ( NÃO MEXA NO stackpos= 2 )
	local r2 = {x = 224, y = 217, z = 7, stackpos= 2} -- Posição 2 ( NÃO MEXA NO stackpos= 2 )
	local r3 = {x = 223, y = 217, z = 7} -- Posição do Item a Ser Criado

	local q1 = getThingfromPos(r1)
	local q2 = getThingfromPos(r2)
	
	for i, x in pairs(config) do
		if q1.itemid == x.t1 and q2.itemid == x.t2 then
			if q1.type >= x.qnt1 and q1.type >= x.qnt2 then
				doRemoveItem(q1.uid, x.qnt1)
				doRemoveItem(q2.uid, x.qnt2)
				addEvent(doCreateItem, 1000, x.t3, 1, r3)
				doSendMagicEffect(r3, 47)
				addEvent(doSendMagicEffect, 900, r3, 39)
				doPlayerSendTextMessage(cid, 22, "Parabéns, Você Forjou Um " .. i .. ".")
				break
			end
		elseif q1.itemid == x.t2 and q2.itemid == x.t1 then
			if q1.type >= x.qnt2 and q1.type >= x.qnt1 then
				doRemoveItem(q1.uid, x.qnt1)
				doRemoveItem(q2.uid, x.qnt2)
				addEvent(doCreateItem, 1000, x.t3, 1, r3)
				doSendMagicEffect(r3, 47)
				addEvent(doSendMagicEffect, 900, r3, 39)
				doPlayerSendTextMessage(cid, 22, "Parabéns, Você Forjou Um " .. i .. ".")
				break
			end
		end
	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
17 minutos atrás, Talesigorvr disse:

Lembre-se de colocar a quantidade de cada item no config. qnt1 se refere ao t1 e a qnt2 se refere ao t2.


local config = {
["Magic Plate Armor"] = {t1 = 2476, t2 = 2464, t3 = 2472, qnt1 = 10, qnt2 = 15}, -- t1 = ID do ITEM 1 |---| t2 = ID do ITEM 2 |---| t3 = ID do ITEM a ser FORJADO --
["Dragon Scale Mail"] = {t1 = 2489, t2 = 2487, t3 = 2492, qnt1 = 20, qnt2 = 5},
}

function onUse(cid, item, item2, frompos, topos, pos)
	local r1 = {x = 222, y = 217, z = 7, stackpos= 2} -- Posição 1 ( NÃO MEXA NO stackpos= 2 )
	local r2 = {x = 224, y = 217, z = 7, stackpos= 2} -- Posição 2 ( NÃO MEXA NO stackpos= 2 )
	local r3 = {x = 223, y = 217, z = 7} -- Posição do Item a Ser Criado

	local q1 = getThingfromPos(r1)
	local q2 = getThingfromPos(r2)
	
	for i, x in pairs(config) do
		if q1.itemid == x.t1 and q2.itemid == x.t2 then
			if q1.type >= x.qnt1 and q1.type >= x.qnt2 then
				doRemoveItem(q1.uid, x.qnt1)
				doRemoveItem(q2.uid, x.qnt2)
				addEvent(doCreateItem, 1000, x.t3, 1, r3)
				doSendMagicEffect(r3, 47)
				addEvent(doSendMagicEffect, 900, r3, 39)
				doPlayerSendTextMessage(cid, 22, "Parabéns, Você Forjou Um " .. i .. ".")
				break
			end
		elseif q1.itemid == x.t2 and q2.itemid == x.t1 then
			if q1.type >= x.qnt2 and q1.type >= x.qnt1 then
				doRemoveItem(q1.uid, x.qnt1)
				doRemoveItem(q2.uid, x.qnt2)
				addEvent(doCreateItem, 1000, x.t3, 1, r3)
				doSendMagicEffect(r3, 47)
				addEvent(doSendMagicEffect, 900, r3, 39)
				doPlayerSendTextMessage(cid, 22, "Parabéns, Você Forjou Um " .. i .. ".")
				break
			end
		end
	end
return TRUE
end

Muito Obrigado, amigo... O pessoal demora muito pra responder meus tópicos. Tenho mais 2 que tá sem resposta, o TK tá ficando fraco, antes eu postava e rapidamente resolvia.

Link para o post
Compartilhar em outros sites
1 minuto atrás, Talesigorvr disse:

NP, espero que tenha funcionando. :p

Vou testar aqui rapidinho, é intervalo na escola.. 

6 horas atrás, Talesigorvr disse:

NP, espero que tenha funcionando. :p

Bom, funcionou inicialmente... Porém só funciona para remover a quantidade em itens montáveis, como por exemplo o dinheiro, outros como armor ele só remove uma. 

 

Porém vlw, eu posso adaptar a receita para ser usada em pedras de poder recolhidas em monstros, de maneira que elas se juntem. Muito obrigado, :D :p

Link para o post
Compartilhar em outros sites
  • 5 months later...

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