Primeiro você cria um npc com face de compositor, como por exemplo face 54, ai você abre a Mixlist.bin no MixList Editor.
1- Em NPC você procura por essas faces que não tem nada setado.
2- Em face e tipo você adiciona primeiro a face do NPC, no caso 54 e em tipo você adiciona o que vai ser mais tarde
o Pacote que o servidor vai receber do NPC, tem que adicionar um que não tem ainda, por exemplo 742
3- Adiciona o valor emm gold que a composição vai cobrar, se não for cobrar nada coloca 0
4- Posição no mapa você adiciona a posição dividida por 128, por exemplo se o NPC for ficar em 2100x 2100y a posição no mapa é 16x e 16y
5- Item Show, nele você coloca o item que vai ser composto, e os effects tipo quantidade. Em item show no lugar de colocar o ID do Item você pode também colocar o ID do arquivo Mixhelp.dat, pra criar uma composição no mixhelp é simples, você copia uma existente tipo:
Criação_de_Item_Ancient 10004 192
FFFFFFFF Os_itens_refinados_até_+9_podem_ser_criados
FFFFFFFF em_Ancient_utilizando_até_4_itens_com
FFFFFFFF refinação_a_partir_de_+7_e_utilizando_uma
FFFFFFFF jóia_específica._Um_item_ancient_adquirido
FFFFFFFF através_dessa_combinação_possui_um
FFFFFFFF poder_superior_aos_itens_normais,_possuindo
FFFFFFFF uma_habilidade_através_das_jóias_usadas.
FFFF0000 (Atualmente_apenas_as_armas
FFFF0000 podem_ser_combinadas)
ai você substitui o 10004 como do exemplo, (ou outro valor que você copiar) pelo próximo numero, por exemplo se 10004 fosse o ultimo item da minha mixhelp eu trocaria por 10005, e substitui o segundo valor, no exemplo 192 pelo id do item que você quer que mostre, pra isso você precisa abrir os seus arquivos Itemicon que estão na pasta UI, supondo que eu quero o item que ta na itemicon13 sendo ele o ultimo item da primeira linha, o ID dele é 1210 então o seu item na mixhelp ficaria:
Composição_nao_sei_o_que 10005 1210
Para o NPc mostrar essa composição do mixhelp você coloca o numero 10005, como no exemplo em ItemID no lugar de colocar por exemplo id 413 pra compor uma P.L, usando o MixHelp a sua composição vai ter a descrição que você colocar no espaço de texto.
6- itens requeridos, aqui é muito importante que você após zerar todas as casas, fazer um macete para "desbugar" essa seção. O macete consiste em, onde esta para selecionar o tipo de item, no caso itemlist você deve mudar para "lista interna" e depois retornar para "itemlist"
Agora sobre o uso dessa parte, nela você adiciona os item que você vai cobrar na composição, se for somente uma unidade você pode por direto o ID do item por exemplo 1 P.L coloca 413 e deixa marcado na caixa de seleção itemlist agora se você for cobrar por exemplo 20 P.L então você usa o item 6.5 e 7 da imagem.
6.5- Aqui você procura por itens numerados por 52685 que são itens que não estão sendo utilizados e vai ppara o item 7 da imagem.
7- Aqui você preenche o item. Em Strdef você pode colocar itens da strdef.bin, eles servem para adicionar descrição ao item solicitado, tipo adicione item +9 do NPc de compor item Anct, se não tiver descrição a adicionar simplesmente deixe zerado, em quantidade você adiciona a quantidade de itens requeridos e em itemiD você adiciona o ID do item requerido, por exemplo 20 e 413 para solicitar 20 P.L, os efeitos você pode deixar zerado, ou adicionar o efeito do tem requerido, supondo que você vai pedir 3 brinco +9 ficaria com quantds 3, ID do brinco EF_1 43 EFV_1 9, ai então para ele aparecer como requerido na lista você adiciona o o numero do item na lista interna em itens requeridos e muda a seleção de ItemList para Lista Interna ai vai ficar por exemplo item 21 que quye seria o lugar que você editou no item 6.5 e Lista Interna.
8- o item 8 eu esqueci exatamente pra que serve, mas no geral você só zera tudo mesmo. kkk
Com isso você tem 1 NPC e 1 Composição, para o NPC abrir essa sua composição agora você precisa setar ele na sua source do cliente, no meu caso é na função MouseClick_MixNPC na TMFieldScene.cpp
você copia um dos npcs e substitui pelo seu novo NPC por exemplo
if (pOver->m_dwID <= 0 || pOver->m_dwID >= 1000 && pOver->m_sHeadIndex == 54 &&
m_pGround->m_vecOffsetIndex.x == 16 && m_pGround->m_vecOffsetIndex.y == 16)
{
m_ItemMixClass.ResultItemListSet(54, 16, 16);
SetVisibleMixPanel(m_ItemMixClass.m_pMixPanel->m_bVisible == 0);
return 1;
}
que é o NPc que fizemos 54, face, 16,16 posição.
Com isso seu NPC agora vai abrir a janela de composição, ai você deve tentar compor e verificar qual o valor do pacote que o servidor vai receber, você vai receber na janela da sua Tmsrvr algo como "o servidor recebeu pacote desconhecido tal", esse vai ser o pacote que você vai colocar na sua packetcontrol da release do servidor direcionando para o npc que você vai ter agora que criar o código da composição. Por exemplo NPCcomposiçãonova
ai você cria o código da composição, ou das composições que você setar no npc no mixlist editor e seta ele para ser redirecionado por esse pacote.
É mais ou menos isso, espero que ajude..
Ps: outra coisa que você pode fazer é estudar essa base, nela existe um sistema de compositores via sql que deve ser compatiivel com a sua base, mmas ai é um pouco mais complicado.