Leaderboard
Popular Content
Showing content with the highest reputation on 11/11/19 in all areas
-
1 point
[Guia Custom Item] Adicionando custom item
antonycbueno reacted to bruno05 for a post in a topic
Olá a todos sei que existem outros guia aqui no forum para adiconar custom itens, Porém faltam algumas informações para funcionar corretamente (em cliente novos no meu caso 2018-06-20) Item Necessarios GIT > https://git-scm.com/downloads Tortoise - > https://tortoisegit.org/download/ NEMO - > https://gitlab.com/4144/Nemo EXE -> http://nemo.herc.ws/downloads/ (pode se encontrar um aqui para você estou a versão 2018-06-20) Bom vamos lá. - Compilar o cliente ( irei usar o NEMO) Imagem auto explicativa, Segue abaixo: Dependendo do Seu cliente no passo "3" da imagem, pode dar um erro "Always call SelectKoreaClientInfo" Apenas ignore. DATA.INI System/itemInfo_Sak.lub -> para algumas pessoas pode ser necessário mudar dependendo da sua pasta no meu caso não preciso. Always Load Korea ExternalSetting lua files Read Data Folder First Increase Headgear ViewID - > Coloque o numero conforme necessidade vai até 32000 O mais importante ( Não funcionara se não ativar ira dar crash não esqueça de Ativá-lo) Esses são os necessários porém sintase a vontade de editar seu EXE, conforme sua necessidade, feito isso ficara algo parecido com isso. Feito isso vamos para pasta do servidor Hercules\db\item_db2.conf Obs: Aqui estou usando um spr que peguei aqui no site então caso queira é só fazer download aqui. creditos ao ~Wolfeh. Obs²: neste SPR alterei o nome que estava Tobi_Mask.spr/act para item01 caso for usar este item altere para item01 tudo se não vai dar erro mantendo ¿©_ / ³²_ ou altere os AgeisName { Id: 40000 //ID Do seu custom Item AegisName: "item01" Name: "Tobi Mask" Type: 5 Buy: 20 Weight: 40 Atk: 20 Def: 20 Slots: 2 Job: 0xFFFFFFFE Loc: 769 EquipLv: 1 View: 4500 //ID DO SPRITE }, Agora vamos para pasta do seu RO e vamos na pasta data Pasta - >> data\sprite\¾ÆÀÌÅÛ item01.spr // mesmo nome do AegisName colocado no item_db2.conf item01.act // mesmo nome do AegisName colocado no item_db2.conf Pasta - >> data\sprite\¾Ç¼¼»ç¸® // Existem duas pasta ³² para masculino e ¿© para Feminino. Pasta - >> ³² ³²_item01.spr ³²_item01.act Pasta - >> ¿© ¿©_item01.spr ¿©_item01.act Pasta - texture\À¯ÀúÀÎÅÍÆäÀ̽º // Existem duas pasta caso contrario crie 1 - Item e a 2 - collection item - item01.bmp //icone do item mostrado no jogo collection - item01.bmp //foto do item que mostra com a descrição feito isso vamos para data\luafiles514\lua files\datainfo 1 - Abra o accessoryid.lub e adicione na ultima linha antes do } conforme esta á baixo.// Aqui estou usando o note++ ACCESSORY_C_Luna_On_Shoulder = 1881, //IMPORTANTE FECHE A VIRGULA SE NÃO DAR ERRO. -- Custom Item ACCESSORY_item01 = 4500, // aqui coloque o ID que colocou no item_db2.conf caso usou esse memso numero deixe esse // A ULTIMA LINHA NÃO PRECISA COLOCAR MAIS SE QUISER PODE POR. } 2 - Abra o accname.lub e adcione. // Lembrando que tem que ser antes do "}" conforme abaixo, [ACCESSORY_IDs.ACCESSORY_C_Luna_On_Shoulder] = "_C_Luna_On_Shoulder", -- Custom Itens [ACCESSORY_IDs.ACCESSORY_item01] = "_item01", } 3 - Agora ultima etapa vá para a pasta SEURO\System e abra itemInfo_Sak.lub (o mesmo nome, que colocou no nemo) Procure "function main()" vai estar +- assim: } function main() for ItemID, DESC in pairs(tbl) do result, msg = pcall(AddItem, ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not msg then result, msg = pcall(AddItem, ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum, DESC.costume) end Antes do } adicione: [40000] = { unidentifiedDisplayName = "Tobi Mask", unidentifiedResourceName = "item01", unidentifiedDescriptionName = { "Item desconhecido, voce precisa identificar usando a ^6666CCLupa^000000." }, identifiedDisplayName = "Tobi Mask", identifiedResourceName = "item01", identifiedDescriptionName = { "Uma mascara laranja com desenho espiral e um orificio para o olho direito.", "Ataque :^777777 20^000000", "Defesa :^0000FF 20^000000", "Equipped on :^777777 Upper, Mid, Lower^000000", "Weight :^009900 40^000000", "Applicable Job :^777777 Every Job^000000", "Spriter :^777777 Wolfeh^000000", "Level Requirement:^009900 1^000000", "Jobs:^6666CC All except Novice^000000" }, slotCount = 2, ClassNum = 4500, costume = false }, ficando parecido com isso : [40000] = { unidentifiedDisplayName = "Tobi Mask", unidentifiedResourceName = "item01", unidentifiedDescriptionName = { "Item desconhecido, voce precisa identificar usando a ^6666CCLupa^000000." }, identifiedDisplayName = "Tobi Mask", identifiedResourceName = "item01", identifiedDescriptionName = { "Uma mascara laranja com desenho espiral e um orificio para o olho direito.", "Ataque :^777777 20^000000", "Defesa :^0000FF 20^000000", "Equipped on :^777777 Upper, Mid, Lower^000000", "Weight :^009900 40^000000", "Applicable Job :^777777 Every Job^000000", "Spriter :^777777 Wolfeh^000000", "Level Requirement:^009900 1^000000", "Jobs:^6666CC All except Novice^000000" }, slotCount = 2, ClassNum = 4500, costume = false }, } function main() for ItemID, DESC in pairs(tbl) do result, msg = pcall(AddItem, ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not msg then result, msg = pcall(AddItem, ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum, DESC.costume) end 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 if nil ~= DESC.EffectID and nil ~= AddItemEffectInfo then result, msg = AddItemEffectInfo(ItemID, DESC.EffectID) if not result then return false, msg end end if nil ~= DESC.costume and nil ~= AddItemIsCostume then result, msg = AddItemIsCostume(ItemID, DESC.costume) if not result then return false, msg end end end return true, "good" end function main_server() for ItemID, DESC in pairs(tbl) do result, msg = AddItem(ItemID, DESC.identifiedDisplayName, DESC.slotCount) if not result then return false, msg end end return true, "good" end Abra seu servidor, e logue nele crie o item e teste. Considerações: Resolvi fazer esse guia pois não achei nenhum atualizado e faltava informações ( como a parte do nemo eu mesmo nunca tinha visto um guia sitando para ativar esse viewID) a maioria dos tutorial que via, ou pasta de exemplos sempre mandava adicionar em outros arquivos como idnum e etc e no caso do cliente novo não precisa. espero que este guia ajude. -
1 pointNot Yet, Once the topic is approved in rA, I will make sure to release it for rA as well