Essa função faz com que um summon saia do mapa e do grupo.
No caso de catalisadores, quando uma Cria vira Adulto, o mob tem que sair do mapa, mas isso não acontece. Agora basta usar essa função.
Declare no seu .h a struct:
Código:
struct pCL_P1h{PacketHeader Header;int dat1;};
Declare também:
Código:
void SendRemoveMob(int clientid); void SendRemoveParty(int clientid, int mobId); #define DELETE_NORMAL 0 // Somente desaparece #define DELETE_DEAD 1 // Animacao da morte do spawn #define DELETE_DISCONNECT 2 // Efeito de quando o personagem sai do jogo #define DELETE_UNSPAWN 3 // Efeito quando os monstros ancts somem
No seu .cpp adicione:
Código:
void SendRemoveParty(int clientid, int mobId) { int removeparty_addr = 0x00442410; _asm { PUSH mobId PUSH clientid CALL removeparty_addr ADD ESP,0x04 } } void SendRemoveMob(int clientid) { pCL_P1h pRemMob; pRemMob.Header.Size = sizeof(pCL_P1h); pRemMob.Header.PacketId = 0x165; char tmp[1024]; for(int i = 0; i < 12; i++) { int masterIndex = clientid * 0x410; int memberId = *(WORD*)(masterIndex + 0x015C6D86 + (i * 2)); if(*(DWORD*)(memberId * 0xC4C + 0x07B318E0) == 0x00) { if(memberId != 0x0) { pRemMob.dat1 = DELETE_UNSPAWN; pRemMob.Header.ClientId = memberId; AddMessage((BYTE*)&pRemMob ,clientid); SendRemoveParty(clientid, memberId); return; } } } }
Para usar chame:
SendRemoveMob(clientid);
Créditos:
Shepher
Este comentário foi removido pelo autor.
ResponderExcluirDesculpa, cara. O SendRemoveMob fui em que fiz aqui. Só utilizei a struct e os defines que peguei de lá.
ResponderExcluirO SendRemoveParty é da própria TMSRV pega no .map.
é verdade, foi mal, dei uma olhada rapida voce utilizou a struct somente, coment removido
Excluir