Like it Posted March 1, 2017 Posted March 1, 2017 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 8 2 1 Quote
Pixel Posted July 23, 2017 Posted July 23, 2017 Show de bola em, parabéns pela contribuição para a comunidade Quote
M4karov Posted August 29, 2017 Posted August 29, 2017 Parabéns pelo guia, nem sonhava que isso era possível. Quote
JulioCF Posted October 26, 2017 Posted October 26, 2017 Bom dia. Parabéns e obrigado pelo guia! Quote
Mihael Posted April 19, 2019 Posted April 19, 2019 Muito útil o tutorial, obrigado por trazer traduzido fera! +1 Quote
HD Scripts Posted April 19, 2019 Posted April 19, 2019 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? Quote
Mihael Posted June 10, 2019 Posted June 10, 2019 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 Quote
DoriTos Nacho Posted July 15, 2019 Posted July 15, 2019 Ainda funciona este método? Pois o System do bRO não consigo editar nada está bem confuso para se mexer: Quote
Phalanx CIWS Posted July 15, 2019 Posted July 15, 2019 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. Quote
LOOLP - OFF Posted July 17, 2019 Posted July 17, 2019 Existe uma forma BEM FACIL de ler 2,5,10 item info '-' Seria necessário apenas ler a estrutura do arquivo que entenderia. Quote
Kurama Youko Posted October 6, 2021 Posted October 6, 2021 (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 October 8, 2021 by Kurama Youko 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.