Jump to content

Recommended Posts

Posted

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
  • 4 months later...
  • 1 month later...
  • 1 month later...
  • 1 year later...
  • 1 month later...
Posted
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

  • 1 month later...
Posted

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.

  • 2 years later...
Posted (edited)

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

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...