ToP Game
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Painel do Usuário

Mensagens: 0


Alterar
Ver
Tópicos e mensagens
Últimos assuntos
» [Novo]Serve Files By Maxmi Full Client
Implementar Penteados 100%, Sem Substituir Existentes! EmptyTer Nov 10, 2020 5:12 pm por jrasb

» Bot Rodar E Bot Pesca [Mkmt2] 100% Funcionavel !!!!
Implementar Penteados 100%, Sem Substituir Existentes! EmptySeg Jan 09, 2017 9:05 am por FALKNERY13

» Novas Bg tops
Implementar Penteados 100%, Sem Substituir Existentes! EmptyQui Jul 09, 2015 5:21 am por NurfPT

» [Tutorial] Instalar Server Files De Metin2 Em Freebsd
Implementar Penteados 100%, Sem Substituir Existentes! EmptyQui Jul 09, 2015 5:11 am por NurfPT

» [Quest] Npc Pede Item E Da Item Com Imagem
Implementar Penteados 100%, Sem Substituir Existentes! EmptySex Jan 23, 2015 4:18 am por pedrinhoida17

» Download Escondidos
Implementar Penteados 100%, Sem Substituir Existentes! EmptyQui Jan 22, 2015 8:18 pm por dj_eisonsmo@hotmail.com

» [NPC] Top d++
Implementar Penteados 100%, Sem Substituir Existentes! EmptyQui Jan 22, 2015 8:12 pm por dj_eisonsmo@hotmail.com

» Nova quest Npc Banco.
Implementar Penteados 100%, Sem Substituir Existentes! EmptyQui Jan 15, 2015 6:52 pm por blad69

» Tutorial Como Implementar Bonus Ao Lado Do Inventario
Implementar Penteados 100%, Sem Substituir Existentes! EmptyQua Jan 14, 2015 1:29 pm por lamtj92

Os membros mais ativos da semana
Nenhum usuário


Implementar Penteados 100%, Sem Substituir Existentes!

Ir para baixo

Implementar Penteados 100%, Sem Substituir Existentes! Empty Implementar Penteados 100%, Sem Substituir Existentes!

Mensagem por รเи√@ℓ Ter Nov 20, 2012 4:48 pm

Bom dia Gente !

Vi a algum tempo, tanto aqui quanto em outras comunidades pedidos de um tutorial a respeito. Até mesmo eu durante meses tive problemas com isto me forçando a substituir penteados pelos oficiais para dar certo. Nunca vi um que explique detalhadamente sobre isto, por isso resolvi me dedicar em um. Vamos ver se consigo explicar claramente pra BRs e PTs entendam. Destaco que este tutorial é de minha autoria (obetuno) e de exclusividade da Cyber-Gamers ! Não copie seu conteúdo sem os devidos créditos meus e local da fonte.

Para se implementar voce precisa basicamente estas ações:

- Ficheiros GR2 e DDS (ou TGA depende da textura que quer implementar), para o Pack "PC" ou "PC2".
- Direcionamento nos ficheiros MSM da pack "ROOT"
- Implementar no Banco de Dados (ícone que ao clicar muda o penteado).
- Desposição do Item também no ITEM_PROTO do cliente.
- Quest "hair.quest" PERFEITAMENTE CONFIGURADA ! é o mais importante.
- Configuração dos ficheiros SUB da Pack "ICONE" (Na qual mostra a miniatura com o penteado).
- Item_List da pack LOCALE, que vai definir o icone do item que vai mudar o cabelo.

A maiora dos erros que encontramos está na quest instalada. é nesta quest que iremos dizer ao servidor qual item que ao clicar mudas a textura do cabelo no personagem. Também é nela que se configura algum bonus do cabelo se necessario.
Outro erro que encontramos com frequencia está nos ficheiros MSM da root do client. Um pequeno ponto incorreto levas ao não funcionamento, (Penteados brancos sem textura ou até invisiveis). Devido a quantidade de etapas e também ao detalhe das ações que todos encontram tantos erros ao implementar.


1º PASSO - Implementar Ficheiros GR2 e Textura em "PC ou PC2"

Estes 2 ficheiros são o penteado em si. O com a terminação GR2 leva sua forma em 3D, caso queiram abri-los para visualizar, utilizem um programa chamado Granny! Muito leve e útil este programa, pois além de visualizar as formas 3D, ele também reproduz ficheiros com dados de movimento e texturas. é essencial que qualquer administrador ou designer de client o tenha como ferramenta.
O com a terminação DDS é a textura (no caso a cor). Pode também ter a terminação TGA, BPM e até mesmo JPG em alguns casos. Juntos esses 2 formam o penteado Smile

Ao terminar de baixar os penteados, provavelmente eles virão somente assim:
Imagem Postada

Primeira coisa a se fazer é colocar os 2 ficheiros nos arquivos "PC" e "PC2" da pasta PACK do client.

FATO A SE RECORDAR:
Os ficheiros PC e PC2 armazenam várias coisas, por isso é o pack com maior tamanho do client

- No PC irão: Armaduras e Penteados de Guerreiro(M) Shura(M) Ninja(F) e Shaman(F), Brilhos, Formas dos Personagens, Designer das Skills, Designer de Ações do Personagem.
- No PC2 irão: Armaduras e Penteados de Guerreiro(F) Shura(F) Ninja(M) e Shaman(M), Formas dos Personagens, Designer de Ações do Personagem.

Coloque os ficheiros GR2 na pack descompactada em \ymir work\pc\warrior\hair !
Atenção na hora de colocar a textura na pasta! Ela deve estar na pasta que estiver configurada na GR2.
Como saber ??? Abram a GR2 na Granny para saberem, vejam:
Imagem Postada

Após colocar os 2 ou mais arquivos, compacte a pack (PC ou PC2) com algum programa de compactação.
PS: Não se esqueça de editar as linhas XML com os novos arquivos!!! Se não especificar as linhas com os novos arquivos eles não serão compactados junto dos outros.


2º PASSO - Direcionamento dos Ficheiros MSM na pack "ROOT"

Ai que devem prestar atenção, na pack root tem um ficheiro responsável por direcionar as texturas das armaduras e penteados! Cada classe tem um arquivo com seus direcionamentos. vejam um exemplo de um arquivo MSM:
Imagem Postada

Percebam que cada linha tem uma informação sobre a textura e o local onde ela está.

Linhas iniciais do ficheiro:

*BaseModelFileName = Local onde se encontra a forma do Personagem
- Não alteramos nada neste local.
*Group HairData { = Marca o inicio da listagem dos penteados. Finaliza com "}" no arquivo
- Não se altera nada neste local.
*PathName = Local onde estão os penteados da classe do ficheiro. No caso do exemplo, sendo guerreiro(M): "d:/ymir Work/pc/warrior/"
- Não convém mexer nesta linha
*HairDataCount = Este sim devemos alterar ! é onde as pessoas mais erram !
- Deve colocar aki o numero da quantidade de cabelos que voce tem nesta classe. Por default vem 18 em alguns ficheiros. Recomendo por 28 ! Ou melhor ainda, ponha a quantidade exata que você tem de cabelos (conte todos os Group HairDataXX que vem abaixo contando pelo Group HairData00 que se inicia). Se você colocar errado este local, ou colocar um valor menor que a quantidade de cabelos que voce tem, eles firarão invisíveis no jogo.

Linhas representadas por cada penteado:

*Group HairData00 = Número do Direcionamento
- Pode por qualquer um, desde que não não se repita em outro direcionamento.
*HairIndex = Número do Penteado
- Este é importante, é a ligação entre o penteado e a quest dos cabelos. Respeite a ordem que ele segue.
*Model = Direção da forma em GR2.
- Normalmente é no mesmo lugar: "hair/Nome_do_Penteado.gr2"
*SourceSkin = Direção da textura principal.
- Neste caso, há muitos penteados que têm a mesma forma, só altera a cor. Ai colocamos neste local a direção da textura principal. Se só houver 1 textura para a forma coloque a direção dela mesma.
*TargetSkin = Direção da Textura.
- Coloque a direção da textura. Em 90% dos casos se encontra junto da forma GR2: "hair/textura_do_pentado.dds"

Após configurar os campos corretamente, compacte a root e ponha de volta no client.
PS: Você deve fazer isto para cada classe dos penteados! Como disse anteriormente, cada classe possui um arquivo de direcionamentos.


3º PASSO - Impementar no Banco de dados.

Claro que para usar um penteado precisamos de um item pra clicar e ele trocar o cabelo do personagem.
Existem regras pra esta etapa tambem! Não saia por ai usando querys sem antes ver se estão como voces querem.
EXEMPLO DE UMA QUERY PARA PENTEADO:

Quote
INSERT INTO `item_proto` VALUES ('74001', 0xBFECBCF6BFA120C2F920BCF4C4C628BAD3C0BABBF629, 0x436162656C6F2064652043617368, '18', '10', '0', '1', '106936', '0', '0', '', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');

São poucas zonas na query que interessam quando o item é apenas um de uso de cabelos. Vejam os locais que devem prestar atenção nos valores (da esquerda para direita):

*Valor "74001" = No caso aqui é o ID do item !
- Muito importante você colocar o ID exato que se encontra na quest "hair.quest" vnum, mais na frente vemos como ela é.
*Valor "0xBFECBCF6BFA120C2F920BCF4C4C628BAD3C0BABBF629" = Aqui é o nome do penteado em formato encriptado MySQL5.
- Não convém mudar... Não fará diferença a não ser que depois você queira que os penteados sejam dropados de Mobs no jogo.
*Valor "0x436162656C6F2064652043617368" = Aqui é o nome proto do item em formato encriptado MySQL5.
- No caso, o nome que vai aparecer em menssagem do sistema quando você adquirir o item. Ponha o que desejar.
*Valor "18" = Tipo de item ! Type !
- Aqui OBRIGATORIAMENTE tem que ser 18! Colocando este número você especifica para a BD que é um penteado de cabelo e que o item deve sumir depois de clicado.
*Valor "10" = Tipo do tipo de item! Subtype
- Pode por 0 ou 10. Normalmente os com valor "0" são penteados comuns, os com valor "10" são penteados com bonus, comprados em loja por exemplo. Recomendo por "10" pois sempre usei assim.
*Valor "0" = Flag Deixe o valor "0".
- Não convém mexer. Deixe sempre ZERO.
*Valor "1" = Size, ou quantos espaços ele gasta no inventário.
- SEMPRE 1 ! Sempre 1 para penteados.
*Valor "106936" = Antiflag, Que classe irá usar o item ou que genero.
- Este é o local mais importante de todos! Exite uma regra, na qual posso explicar em outro tutorial que este número especifica que classe, que gênero e quando usa o item. Dependendo do que colocar nessa região, ao clicar aparecerá uma menssagem do sistema dizendo "Sua classe não permite usar este item" ou "Este item só pode ser usado por personagens Masculinos". Vou passar pra vocês os Antiflags corretos para cada penteado, sem especificar genero(Masculinos e femininos da mesma classe poderão usar).

Quote
GUERREIROS = 106936
NINJAS = 106932
SHURAS = 106924
SHAMANS = 106908

Imagem Postada

*Valores seguintes = Sempre "0"
- Com exceção do GOLD ou SHOP_BUY, pois nesse você especifica os valores de compra e venda nos NPCs.
PS: Em GOLD e SHOP_BUY NUNCA DEVE SER "ZERO", coloque "1" se não quiser preço. A não ser que você tenha implementado uma diff no ficheiro game para permitir itens a preço ZERO nas lojas dos NPCs.

Tendo colocado a query, você já terá o ID do cabelo que quer mudar. O ID do item que é ligado a quest "hair.quest".


4º PASSO - Adicionar a linha no ITEM_PROTO do client

Nesta região não tem segredo.
Meta na linha os mesmos valores que você pos na DB. Após o termino ponha na pack do LOCALE e recompacte.


5º PASSO - Quest "Hair.quest"

Aqui está a mágica de tudo !
Neste script é onde acontece a referência de cada penteado pra cada item e seu bonus !
Aqui tem um exemplo de uma quest para vocês usarem que possui 22 penteados para cada classe e genero! Vejam os locais onde você pode atribuir o bonus desejado pelo cabelo.


Quote
quest hair begin
state start begin
function My_hair_item(vnum,index)
hair_list={}
-- vnum /hair/ option / howmuch / duration
hair_list [74001] = {1001, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74002] = {1002, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74003] = {1003, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74004] = {1004, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74005] = {1005, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74006] = {1006, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74007] = {1007, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74008] = {1008, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74009] = {1009, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74010] = {1010, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74011] = {1011, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74012] = {1012, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74013] = {1013, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74015] = {1014, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74017] = {1015, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74018] = {1016, apply.ATTBONUS_ASSSASSIN, 0, 2592000}
hair_list [74019] = {1017, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74020] = {1018, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74021] = {1019, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74022] = {1020, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74023] = {1021, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74024] = {1022, apply.ATTBONUS_ASSASSIN, 0, 2592000}

hair_list [74251] = {2001, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74252] = {2002, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74253] = {2003, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74254] = {2004, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74255] = {2005, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74256] = {2006, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74257] = {2007, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74258] = {2008, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74259] = {2009, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74260] = {2010, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74261] = {2011, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74262] = {2012, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74263] = {2013, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74265] = {2014, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74267] = {2015, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74268] = {2016, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74269] = {2017, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74270] = {2018, apply.ATTBONUS_NINJA, 0, 2592000}
hair_list [74271] = {2019, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74272] = {2020, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74273] = {2021, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74274] = {2022, apply.ATTBONUS_ASSASSIN, 0, 2592000}

hair_list [74501] = {3001, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74502] = {3002, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74503] = {3003, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74504] = {3004, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74505] = {3005, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74506] = {3006, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74507] = {3007, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74508] = {3008, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74509] = {3009, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74510] = {3010, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74511] = {3011, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74512] = {3012, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74513] = {3013, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74515] = {3014, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74517] = {3015, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74518] = {3016, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74519] = {3017, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74520] = {3018, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74521] = {3019, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74522] = {3020, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74523] = {3021, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74524] = {3022, apply.ATTBONUS_ASSASSIN, 0, 2592000}

hair_list [74751] = {4001, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74752] = {4002, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74753] = {4003, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74754] = {4004, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74755] = {4005, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74756] = {4006, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74757] = {4007, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74758] = {4008, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74759] = {4009, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74760] = {4010, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74761] = {4011, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74762] = {4012, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74763] = {4013, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74765] = {4014, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74767] = {4015, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74768] = {4016, apply.ATTBONUS_ASSASSIN, 0, 2592000}
hair_list [74769] = {4017, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74770] = {4018, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74771] = {4019, apply.ATTBONUS_SHAMAN, 0, 2592000}
hair_list [74772] = {4020, apply.ATTBONUS_SURA, 0, 2592000}
hair_list [74773] = {4021, apply.ATTBONUS_WARRIOR, 0, 2592000}
hair_list [74774] = {4022, apply.ATTBONUS_ASSASSIN, 0, 2592000}

hair_list [75001] = {1001, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75002] = {1002, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75003] = {1003, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75004] = {1004, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75005] = {1005, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75006] = {1006, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75007] = {1007, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75008] = {1008, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75009] = {1009, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75010] = {1010, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75011] = {1011, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75012] = {1012, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75013] = {1013, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75015] = {1014, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75017] = {1015, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75018] = {1016, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75019] = {1017, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75020] = {1018, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75021] = {1019, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75022] = {1020, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75023] = {1021, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75024] = {1022, apply.ATTBONUS_ASSASSIN, 10, 2592000}

hair_list [75201] = {2001, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75202] = {2002, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75203] = {2003, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75204] = {2004, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75205] = {2005, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75206] = {2006, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75207] = {2007, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75208] = {2008, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75209] = {2009, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75210] = {2010, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75211] = {2011, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75212] = {2012, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75213] = {2013, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75215] = {2014, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75217] = {2015, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75218] = {2016, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75219] = {2017, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75220] = {2018, apply.ATTBONUS_NINJA, 10, 2592000}
hair_list [75221] = {2019, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75222] = {2020, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75223] = {2021, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75224] = {2022, apply.ATTBONUS_ASSASSIN, 10, 2592000}

hair_list [75401] = {3001, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75402] = {3002, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75403] = {3003, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75404] = {3004, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75405] = {3005, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75406] = {3006, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75407] = {3007, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75408] = {3008, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75409] = {3009, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75410] = {3010, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75411] = {3011, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75412] = {3012, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75413] = {3013, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75415] = {3014, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75417] = {3015, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75418] = {3016, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75419] = {3017, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75420] = {3018, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75421] = {3019, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75422] = {3020, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75423] = {3021, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75424] = {3022, apply.ATTBONUS_ASSASSIN, 10, 2592000}

hair_list [75601] = {4001, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75602] = {4002, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75603] = {4003, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75604] = {4004, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75605] = {4005, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75606] = {4006, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75607] = {4007, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75608] = {4008, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75609] = {4009, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75610] = {4010, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75611] = {4011, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75612] = {4012, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75613] = {4013, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75615] = {4014, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75617] = {4015, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75618] = {4016, apply.ATTBONUS_ASSASSIN, 10, 2592000}
hair_list [75619] = {4017, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75620] = {4018, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75621] = {4019, apply.ATTBONUS_SHAMAN, 10, 2592000}
hair_list [75622] = {4020, apply.ATTBONUS_SURA, 10, 2592000}
hair_list [75623] = {4021, apply.ATTBONUS_WARRIOR, 10, 2592000}
hair_list [75624] = {4022, apply.ATTBONUS_ASSASSIN, 10, 2592000}
return hair_list[vnum][index]
end

function leave_log(item_vnum)

char_log(0, "CHANGE_HAIR", string.format("USE_ITEM(%d)",item_vnum)) -- Set Item log

--char_log(0, "CHANGE_HAIR", string.format("SET_HAIR(%d)",item_vnum)) --Set Item log

char_log(0, "CHANGE_HAIR", string.format("END_SEC(%d)",get_time()+ hair.My_hair_item(item_vnum,4)) ) -- Duration log

--char_log(0, "CHANGE_HAIR", string.format("AFFECT(%s), DURATION:%d)",hair.My_hair_item(item_vnum,2),get_time()+ hair.My_hair_item(item_vnum,4))) -- Effect set log

char_log(0, "CHANGE_HAIR", "CHANGE_HAIR_END") -- End log

end


when 74001.use or
74002.use or
74003.use or
74004.use or
74005.use or
74006.use or
74007.use or
74008.use or
74009.use or
74010.use or
74011.use or
74012.use or
74013.use or
74015.use or
74017.use or
74018.use or
74019.use or
74020.use or
74021.use or
74022.use or
74023.use or
74024.use or
75001.use or
75002.use or
75003.use or
75004.use or
75005.use or
75006.use or
75007.use or
75008.use or
75009.use or
75010.use or
75011.use or
75012.use or
75017.use or
75013.use or
75015.use or
75018.use or
75019.use or
75021.use or
75022.use or
75023.use or
75024.use or
75020.use with pc.get_job()==0 begin

pc.set_part(PART_HAIR, hair.My_hair_item(item.vnum,1))
affect.remove_hair()
affect.add_hair(hair.My_hair_item(item.vnum,2),hair.My_hair_item(item.vnum,3) , hair.My_hair_item(item.vnum,4))

pc.setqf("limit_time",get_time()+ hair.My_hair_item(item.vnum,4))
hair.leave_log(item.vnum)
item.remove()
end

when 74251.use or
74252.use or
74253.use or
74254.use or
74255.use or
74256.use or
74257.use or
74258.use or
74259.use or
74260.use or
74261.use or
74262.use or
74263.use or
74265.use or
74267.use or
74268.use or
74269.use or
74270.use or
74271.use or
74272.use or
74273.use or
74274.use or
75201.use or
75202.use or
75203.use or
75204.use or
75205.use or
75206.use or
75207.use or
75208.use or
75209.use or
75210.use or
75213.use or
75215.use or
75211.use or
75212.use or
75212.use or
75217.use or
75218.use or
75219.use or
75221.use or
75222.use or
75223.use or
75224.use or
75220.use with pc.get_job()==1 begin

pc.set_part(PART_HAIR, hair.My_hair_item(item.vnum,1))
affect.remove_hair()
affect.add_hair(hair.My_hair_item(item.vnum,2),hair.My_hair_item(item.vnum,3) , hair.My_hair_item(item.vnum,4))

pc.setqf("limit_time",get_time()+hair.My_hair_item(item.vnum,4))

hair.leave_log(item.vnum)
item.remove()
end

when 74501.use or
74502.use or
74503.use or
74504.use or
74505.use or
74506.use or
74507.use or
74508.use or
74509.use or
74510.use or
74511.use or
74512.use or
74513.use or
74515.use or
74517.use or
74518.use or
74519.use or
74520.use or
74521.use or
74522.use or
74523.use or
74524.use or
75401.use or
75402.use or
75403.use or
75404.use or
75405.use or
75406.use or
75407.use or
75408.use or
75409.use or
75410.use or
75413.use or
75415.use or
75411.use or
75412.use or
75417.use or
75418.use or
75419.use or
75421.use or
75422.use or
75423.use or
75424.use or
75420.use with pc.get_job()==2 begin


pc.set_part(PART_HAIR, hair.My_hair_item(item.vnum,1))
affect.remove_hair()
affect.add_hair(hair.My_hair_item(item.vnum,2),hair.My_hair_item(item.vnum,3) , hair.My_hair_item(item.vnum,4))

pc.setqf("limit_time",get_time()+hair.My_hair_item(item.vnum,4))

hair.leave_log(item.vnum)
item.remove()
end

when 74751.use or
74752.use or
74753.use or
74754.use or
74755.use or
74756.use or
74757.use or
74758.use or
74759.use or
74760.use or
74761.use or
74762.use or
74761.use or
74763.use or
74765.use or
74767.use or
74768.use or
74769.use or
74770.use or
74771.use or
74772.use or
74773.use or
74774.use or
75601.use or
75602.use or
75603.use or
75604.use or
75605.use or
75606.use or
75607.use or
75608.use or
75609.use or
75610.use or
75611.use or
75613.use or
75615.use or
75612.use or
75617.use or
75618.use or
75619.use or
75621.use or
75622.use or
75623.use or
75624.use or
75620.use with pc.get_job()==3 begin


pc.set_part(PART_HAIR, hair.My_hair_item(item.vnum,1))
affect.remove_hair()
affect.add_hair(hair.My_hair_item(item.vnum,2),hair.My_hair_item(item.vnum,3) , hair.My_hair_item(item.vnum,4))

pc.setqf("limit_time",get_time()+ hair.My_hair_item(item.vnum,4))

hair.leave_log(item.vnum)
item.remove()
end

end
end

é importante que esta quest esteja perfeita! Recomendo que use esta que mandei, pois uso ela normal em meu servidor.
Salve-a no bloco de notas, renomeie para "hair.quest" e ative a quest no FreeBSD.
Dependendo das files tem um jeito diferente, aqui na minha usamos o ./qc "NOME_DA_QUEST.QUEST".
Imagem Postada

Exemplo comandos para files Daroo r1678:
# cd /usr/home/game/share/locale/germany/quest [ENTER]
# ./qc hair.quest [ENTER]

Caso queiram colocar outros penteados, deve acrescentar as seguintes linhas:

hair_list [74006] = {1006, apply.ATTBONUS_ASSASSIN, 0, 2592000}
ID, Numero do Penteado, Bonus, Valor do Bonus, Tempo do Bonus

when 74001.use or
Abaixo de todos coloque NUMERO_DO_ITEM.use or !

IMPORTANTE que cada classe tem um local ! Veja esta linha de comando no final do script:
with pc.get_job()==0 begin
Esta especifica a classe que vai usar, no caso "0" é para guerreiros ! Respeite essa regra.


6º PASSO - Configuração dos ficheiros SUB

Não vou me aprofundar muito nesta parte. Somente os penteados oficiais possuem uma miniatura de exemplo pra usar.
A não ser que você trabalhe em uma!
Caso queirão fazer a propria, sigam o padrão das outras que não tem segredo, siga como os já feitos mudando apenas o ID do item do cabelo. Ao final compacte acrescentando as linhas adicionais do XML.


7º PASSO - Item-List da pasta LOCALE

Para finalizar, aqui você especifica o icone que o item do cabelo irá usar. Exemplo:

Quote
74001 ETC icon/item/73001.tga

Comece pelo ID do item e depois separe a linha com [TAB]
ETC = Significa que não é armadura nem arma. é um item comum do jogo.
icon/item/73001.tga = Local e nome do icone do cabelo.
Imagem Postada

Normalmente, por default usamos estes IDs dos icones:

Quote
GUERREIROS = icon/item/73001.tga
NINJAS = icon/item/73251.tga
SHURAS = icon/item/73501.tga
SHAMANS = icon/item/73751.tga

Compacte a LOCALE com a item_list com as linhas configuradas.
Recomendo que coloque IDs a mais, caso um dia você precise colocar mais penteados!

Sei que envolve muitas etapas, mas se seguir a risca com certeza dará certo.
Caso precisem de ajuda e eu tiver um tempo posso ajudar ^^ Coloquei as dúvidas neste mesmo tópico e eu respondo.
Caso queiram baixar penteados, existem bons aki na comunidade na área de RECURSOS !
Opte por colocar os Oficiais primeiro... São desbugados, texturas de qualidade...
As texturas em TGA podem apresentar problemas in game ou baixa qualidade que não sei explicar. Como todos aqui estou aprendendo também.
Obrigado, espero que tenha sido claro e que tenha ajudado muita gente.
รเи√@ℓ
รเи√@ℓ
Root Administrador
Root Administrador

Mensagens : 88
Pontos : 4542
Reputação : 13
Data de inscrição : 15/11/2012
Idade : 27
Localização : Em Frente PC

https://mt2topgame.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos