Ir para conteúdo

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

Featured Replies

Postado

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)

Resolvido por Bodak Reborn

Ir para solução
  • Respostas 6
  • Visualizações 505
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Bodak Reborn
    Bodak Reborn

    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

  • Bodak Reborn
    Bodak Reborn

    NP, espero que tenha funcionando.

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

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

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