Ir para conteúdo
🥳 [EVENTO ESPECIAL] 20 Anos de WebCheats - Conte sua história. ×
Venda da WebCheats - Uma Nova Era para a Comunidade ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Como criar npc compositor


combatrw
 Compartilhar

Posts Recomendados

PESSOAL, BOA TARDE, FELIZ NATAL A QUEM LER.

EU ESTOU TENTANDO CRIAR UM NPC COMPOSITOR, NO ESTILO DA EHRE, PORÉM QUERO COPIAR O MODELO DE CRIAÇÃO DA SOUL, NO LUGAR DE CONFIGURAR A SOUL SERIA PARA CRIAR COLARES E CINTOS. TIPO JUNTA X ITENS E COMPO O CINTO OU COLAR QUE ESCOLHER, HP, MP, VELO DE ATAQUE, ETC.

A BASE QUE ESTOU USANDO É A DO THE NEW WORLD 7.59. TENHO SOURCE DO SERVER E DO CLIENT. SE ALGUEM PUDER ME EXPLICAR MAIS OU MENOS O QUE PRECISO ALTERAR OU CRIAR DO ZERO PARA TER UM NPC ASSIM EU AGRADEÇO. PRO CASO DE NPC QUE SÓ RESPONDE "TRAGA ALGO QUE EU FAÇO ISSO OU AQUILO" EU JA SEI FAZER. O QUE QUERO É O NPC QUE CLICA E APARECE A JANELA PARA ESCOLHER A COMPOSIÇÃO.

Link para o comentário
Compartilhar em outros sites

Primeiramente, não use caps rsrs

Sobre o NPC, como tem a source, de ambos, basicamente veja qual é o Merchant do NPC Ehre, ( caso use ele para abrir a janela ), copie o código para outro id não usado. Altere o NPC para o novo merchant, veja se a função original ainda funciona.

 

A partir dai, altere no cliente os itens a serem solicitados, provavelmente vai precisar alterar os IDs que aparecem na janela, no servidor, os itens entregues.

 

O cliente deve enviar no pacote algo como posição ou id do item, o servidor devolve com base nesse id.

 

Tentou algo do tipo e barrou em algum lugar?

Link para o comentário
Compartilhar em outros sites

Caro amigo, desculpe pelo caps, fui ignorante.

Quanto ao que perguntou se tentei, sim, busquei fazer algo do tipo, porém a Ehre não é declarada como merchant como os outros npcs, eu entendi o que voce quis dizer, eu mesmo ja criei npc de teleporte, de troca de itens, etc, fazendo dessa forma. A Ehre é diferente, ela não é declarada na source do client também, acredito que para criar algo como ela teria que usar o mixlist, ainda não sei como, vou buscar uns tutoriais pra ver se acho uma resposta. Desde já agradeço sua atenção em responder esse post.

Abraço.

Link para o comentário
Compartilhar em outros sites

Imagina, tmj.

Uai, podemos resolver por aqui mesmo.

Não estou por dentro das novidades do jogo ( parei na 7.48/7.54 ), mas baixei agora essa release ( BabyLoves - 

É necessário se cadastrar para acessar o conteúdo.
r cima, achei o código original.

Source\Code\TMSrv\GetFunc.cpp -> Exec_MSG_CombineItemEhre -> GetMatchCombineEhre
Chumbaram no código a composição da soul.

No caso, ter uma composição a mais resolve o seu caso ou seria um NPC a parte mesmo?

Pesquisando no cliente, esse parece ser um patch, não uma source de cliente mesmo. 
Adicionar uma composição a mais, pode ser mais fácil que adicionar um completamente novo, se não tiver a source do cliente

Link para o comentário
Compartilhar em outros sites

Caro amigo,

eu uso uma source muito parecida com essa, conheço o arquivo que está mencionando, trata as composições da Ehre, eu pensei em adicionar, mas minha ideia original é criar outro npc com outras composições, isso é mais dificil do que parece. Se fosse fácil realmente a gente veria isso a rodo, ai quando a gente fala com alguem que tem servidor mais lotado o cara enche a boca pra falar " criei novas composições , blá blá blá" . Quando descobrir como vou publicar um tutorial pra ajudar outras pessoas. 

Abraço.

Link para o comentário
Compartilhar em outros sites

Blz, será um NPC novo então.

 

Se puder usar a source de um cliente, será mais fácil para vc, caso use um cliente já compilado, vai precisar ajustar com hook.

 

Se for fazer um hook, seria algo como:

Citar

 

Caso não saiba a textura da janela, abra o eWYD ou outro conversor de textura e procure a textura da janela que vc quer clonar.

Pegue a source de um cliente ( completa/descompilada ) e veja qual parte do código abre essa textura. veja qual comparação ele faz, se merchant ou outro valor

Procure algumas mensagem/alerta/erro/string nesse arquivo descompilado, procure essa string com o OllyDbg.

Achando essa mensagem, procure pela comparação, tente achar onde ele compara algum valor para abrir essa janela

Achando o endereço, podemos fazer um hook para adicionar essa comparação.

( Pode ser feita com IDA ou qualquer outra forma que achar melhor )

Não seria muito diferente de quando fazíamos hooks para mudar/adicionar/alterar teleportes.

 


Se preferir usar uma source do cliente, será muito mais fácil fazer essa e outras alterações.

Com o hook, seria chamar a mesma janela com base em um merchant diferente e baseada no level ou outro parâmetro extra.

 

Já pensou/considerou usar a source do cliente descompilado?

 

Link para o comentário
Compartilhar em outros sites

Então, como eu comentei anteriormente, a source que eu uso é muito parecida com aquela que voce citou acima, só que mais atual, onde possuo também a source do client exe, vou buscar entender isso que você disse e tentar fazer por ele.
 

Link para o comentário
Compartilhar em outros sites

68bOM2A.png

 

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. 

 

Editado por Renanzim.530
Link para o comentário
Compartilhar em outros sites

Você é um anjo de Deus. Que o Senhor abençoe grandemente sua vida e que 2026 seja um ano de muita vitória para você e sua familia. Se eu puder contribuir ou ajudar com algo seu, eu ficaria muito feliz. 

Obrigado.

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, combatrw disse:

Você é um anjo de Deus. Que o Senhor abençoe grandemente sua vida e que 2026 seja um ano de muita vitória para você e sua familia. Se eu puder contribuir ou ajudar com algo seu, eu ficaria muito feliz. 

Obrigado.

 

Imagina, espero que consiga,  qualquer coisa esccreva aqui  que  eu tento ajudar.

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.