게임강의
각종 노하우 분류

믹스마스터 NPC 패킷 분석

컨텐츠 정보

본문

/* XNPC::Contact(unsigned short, unsigned char, XPACKET*) */

void __thiscall Contact(XNPC *this,ushort param_1,uchar param_2,XPACKET *param_3)

{
  char cVar1;
 
  cVar1 = SendCheckValidNpc(this,(uchar)this[6],param_1);
  if (cVar1 != '\0') {
    return;
  }
  Clean((XPACKET *)NpcPacket);
  AddByte((XPACKET *)NpcPacket,-100);
  AddByte((XPACKET *)NpcPacket,(uchar)this[4]);
  switch(this[6]) {
  default:
    goto switchD_080cab83_caseD_0;
  case (XNPC)0x2:
    cVar1 = OnSaleMan(this,param_1,param_2,(XPACKET *)NpcPacket);
    break;
  case (XNPC)0x3:
    goto switchD_080cab83_caseD_3;
  case (XNPC)0x4:
    cVar1 = OnCoreMan(this,param_1,param_2,(XPACKET *)NpcPacket);
    break;
  case (XNPC)0x8:
    cVar1 = OnCastleWar(this,param_1,param_2,(XPACKET *)NpcPacket,param_3);
    break;
  case (XNPC)0x9:
    cVar1 = OnCastleMan(this,param_1,param_2,(XPACKET *)NpcPacket);
    break;
  case (XNPC)0xa:
    cVar1 = OnCastleGod((ushort)this,(uchar)param_1,(XPACKET *)(uint)param_2);
    break;
  case (XNPC)0xb:
    AddByte((XPACKET *)NpcPacket,param_2);
    if (param_2 == '\0') {
      MakeBarterItemPacket(this,(XPACKET *)NpcPacket);
    }
    else {
      if (param_2 != '\x01') {
        return;
      }
    }
    goto switchD_080cab83_caseD_3;
  }
  if (cVar1 == '\0') {
switchD_080cab83_caseD_0:
    return;
  }
switchD_080cab83_caseD_3:
  AddTo_ZC_SendQ(param_1,(XPACKET *)NpcPacket);
  return;
}

 

NPC 패킷 입니다

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 658 / 1 페이지
번호
제목
이름

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 147,509
2 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 91,378
3 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 64,195
4 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 59,621
5 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 57,281
6 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 54,964
7 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 52,661
8 no_profile Gatchaman쪽지보내기 자기소개 아이디로 검색 전체게시물 45,503
9 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 35,020
10 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 29,199
알림 0