Jump to content

Utilizar multíplos iteminfo.lua


Like it

Recommended Posts


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  24
  • Reputation:   11
  • Joined:  12/14/16
  • Last Seen:  

Olá.

Hoje vim trazer um tutorial muito simples, mas que é de grande utilidade para todos, até pelo motivo de eu não ter encontrado em nenhuma comunidade PT-BR. Tive um grande trabalho para achar um tutorial que tivesse uma línguagem mais prática e funcionasse, então devido a isso decidi postar. 

 

Utilizar multíplos iteminfo.lub/lua.

 

Primeiro, como sabemos, os clientes mais novos estão usando itemInfo.lua / lub para substituir arquivos TXT para informações de item no lado do cliente, dentro da pasta System.

Acho que grande parte dos criadores de servidores mais complexos, se depararam com a situação de adicionar algum(ns) item(ns) de outro RO como idRO, iRO, & jRO, KRO e sempre receber "Item desconhecido" e "Maçãs", e não saber o verdadeiro motivo causador disso, exceto ao trocar os arquivos itemInfo.lua/lub. Eis que surgiu uma solução! Vamos lá.

 

Utilidade:  utilizar itemInfo de outros servidores oficiais, como kRO, iRO e idRO, e fazer com que aqueles possam substituir informações não existentes de outros arquivos.

Tutorial

- 1º Passo:

Prepare os arquivos a ser utilizado, exemplo:

"itemInfo_bRO.lua" - Traduzido do BRO com todos os arquivos em PT-BR.

"itemInfo_iRO.lua" Servidor internacional iRO.

"itemInfo_idRO.lua".

"iteminfo_custom" - Seu iteminfo customizado, com seus itens criados.

"itemInfo_kRO.lua" - Servidor oficial e distribuidor do jogo RO.

 

- 2º Passo:

Faça um arquivo .lua vazio, dê o nome "itemInfo.lua". Este será o arquivo principal para ser lido pelo cliente.
Edite o "itemInfo.lua", e cole este código.

 

Spoiler

main = function()
	iiFiles = {
		"System/itemInfo_Translation.lua", -- 1st priority
		"System/itemInfo_iRO.lua", -- 2nd
		"System/itemInfo_idRO.lua", -- 3rd
		"System/itemInfo_kRO.lua", -- 4th
	}

	_TempItems = {}
	_Num = 0

	-- check existing item
	function CheckItem(ItemID, DESC)
		if not (_TempItems[ItemID]) then
			_TempItems[ItemID] = DESC
			_Num = _Num + 1
		else
			myTbl = {}
			for pos,val in pairs(_TempItems[ItemID]) do
				myTbl[pos] = val
			end

			for pos,val in pairs(DESC) do
				if not (myTbl[pos]) or myTbl[pos] == "" then
					myTbl[pos] = val
				end

			end

			_TempItems[ItemID] = myTbl
		end

	end
	-- end check

	-- Read all files
	for i,iiFile in pairs(iiFiles) do
		d = dofile(iiFile)
	end
	-- Read all files


	-- process _TempItems
	for ItemID,DESC in pairs(_TempItems) do
		--print("ItemID",ItemID,"Name",DESC.identifiedDisplayName)
		result, msg = AddItem(ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum)
		if not result then
			return false, msg
		end
		for k,v in pairs(DESC.unidentifiedDescriptionName) do
			result, msg = AddItemUnidentifiedDesc(ItemID, v)
			if not result then
				return false, msg
			end
		end
		for k,v in pairs(DESC.identifiedDescriptionName) do
			result, msg = AddItemIdentifiedDesc(ItemID, v)
			if not result then
				return false, msg
			end
		end
	end
	-- process _TempItems

	_TempItems = nil

    return true, "good"
end

 

 

- 3º Passo:
entre no arquivo criado iteminfo.lua, que foi colado o código e onde estiver essa parte
 
main = function()
	iiFiles = {
		"System/itemInfo_Translation.lua", -- 1st priority
		"System/itemInfo_iRO.lua", -- 2nd
		"System/itemInfo_idRO.lua", -- 3rd
		"System/itemInfo_kRO.lua", -- 4th
	}
 

Mude para o nome dos seus arquivos, colocando em ordem de prioridade qual arquivo deve ser lido primeiro pelo Hexed (Geralmente iniciado com o BRO). Salve e feche.

 

- 4º Passo: 

Em seguida, copie o arquivo e renomeie o arquivo copiado para "iteminfo.lub".

 

- 5º Passo:

Entre em todos seus arquivos preparados no Passo 1, e verifique se ambos começam assim:

 
tbl = {
...
}

Caso sim, continue no mesmo arquivo e vá para o próximo passo.

 

- 6º Passo:

Vá até o final do arquivo e remova a função principal. Geralmente estará assim.

 

Spoiler 
function main()
	for ItemID, DESC in pairs(tbl) do
		result, msg = AddItem(ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum)
		if not result then
			return false, msg
		end
		for k, v in pairs(DESC.unidentifiedDescriptionName) do
			result, msg = AddItemUnidentifiedDesc(ItemID, v)
			if not result then
				return false, msg
			end
		end
		for k, v in pairs(DESC.identifiedDescriptionName) do
			result, msg = AddItemIdentifiedDesc(ItemID, v)
			if not result then
				return false, msg
			end
		end
	end
	return true, "good"
end

 

 

 

Adicione ao lugar removido o seguinte código.

for ItemID,DESC in pairs(tbl) do
CheckItem(ItemID,DESC)
end
 

Fim!

Aprecie seus novos arquivos.

Notas e Créditos.

 

OBS¹: Apenas traduzi um tutorial já existente, no qual vou estar deixando a fonte a baixo. Mas tive que modificar praticamente todo tutorial, então os créditos são a ambos.

OBS²: Não irei fornecer nenhum arquivo, isto é apenas um tutorial, não me envie pm me solicitando nada.

OBS³: todos os arquivos devem ser decompilado .lua, não compilado.

OBS4:Se você tiver itens com ícone vazio , isso significa que sua data não tem o sprite / textura necessária ou seus arquivos itemInfo estão com o "unidentifiedResourceName" ou "identifiedResourceName" vazio ou não preenchidos. 

Fonte: http://pservero.com/...iteminfo-files

  • Upvote 8
  • Love 2
  • Like 1
Link to comment
Share on other sites

  • 4 months later...

  • Group:  Members
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  65
  • Reputation:   38
  • Joined:  11/15/11
  • Last Seen:  

Show de bola em, parabéns pela contribuição para a comunidade :)

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  30
  • Topics Per Day:  0.01
  • Content Count:  149
  • Reputation:   35
  • Joined:  04/01/13
  • Last Seen:  

Parabéns pelo guia, nem sonhava que isso era possível.

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  23
  • Topics Per Day:  0.01
  • Content Count:  224
  • Reputation:   58
  • Joined:  12/30/11
  • Last Seen:  

Bom dia. Parabéns e obrigado pelo guia!

Link to comment
Share on other sites

  • 1 year later...

  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.01
  • Content Count:  130
  • Reputation:   70
  • Joined:  09/03/14
  • Last Seen:  

Muito útil o tutorial, obrigado por trazer traduzido fera!

 

+1

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  23
  • Topics Per Day:  0.01
  • Content Count:  183
  • Reputation:   15
  • Joined:  06/10/12
  • Last Seen:  

Pois é mas dai surge uma pergunta.

Em que padrão o client lê os itens?

Tipo, tem 3 iteminfo e o id 501 de 2 deles, está em inglês, e apenas 1 está pt-br.

Qual ele vai ler?

 

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.01
  • Content Count:  130
  • Reputation:   70
  • Joined:  09/03/14
  • Last Seen:  

On 4/19/2019 at 11:36 AM, HD Scripts said:

Pois é mas dai surge uma pergunta.

Em que padrão o client lê os itens?

Tipo, tem 3 iteminfo e o id 501 de 2 deles, está em inglês, e apenas 1 está pt-br.

Qual ele vai ler?

 

Ou vai dar erro pq vc tem 3 itens com id iguais ou 1 irá sobrepor o outro, chuto que o principal que seja lido iteminfo.lub.

Só testando xD

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  11
  • Reputation:   1
  • Joined:  06/01/12
  • Last Seen:  

Ainda funciona este método? Pois o System do bRO não consigo editar nada    está bem confuso para se mexer:

 

image.thumb.png.07b910cdb0c04c7befdfd34ff9527e99.png

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  10
  • Reputation:   4
  • Joined:  03/26/14
  • Last Seen:  

HD Scripts - O 1ª iteminfo da lista terá prioridade sobre os outros. Esse esquema de muiti iteminfo foi uma das coisas mais bacanas que eu já vi.

Doritos Nacho - O iteminfo do BRO está compilado. Você vai precisar usar alguma ferramenta para descompilar e depois editar.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.01
  • Content Count:  233
  • Reputation:   49
  • Joined:  12/20/18
  • Last Seen:  

Existe uma forma BEM FACIL de ler 2,5,10 item info '-'

 

Seria necessário apenas ler a estrutura do arquivo que entenderia.

Link to comment
Share on other sites

  • 2 years later...

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  6
  • Reputation:   1
  • Joined:  02/19/17
  • Last Seen:  

Muito top esse sistema, já tive as ideias de como usar da melhor forma possível, vou trabalhar esse sistema somente nos custons ??

Portanto, tenho uma duvida, o arquivo inicial para a sistema tem que ser o propio iteminfo.lua, mas os arquivos que ele puxara para leitura pode ser .lub?

Edited by Kurama Youko
  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...