Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
181 lines
4.5 KiB
C
181 lines
4.5 KiB
C
#ifndef _CHAR_ATTACK_PACKET_H_
|
|
#define _CHAR_ATTACK_PACKET_H_
|
|
|
|
// CharAttackPacket.h
|
|
#include <DB/DBDefine.h>
|
|
#include <Network/Packet/PacketBase.h>
|
|
|
|
#include "CharAttackPacketStruct.h"
|
|
|
|
#pragma pack(1)
|
|
|
|
|
|
// 캐릭터 공격 패킷
|
|
typedef struct PktAt* LPPktAt;
|
|
struct PktAt : public PktBase
|
|
{
|
|
POS m_Postion; // 공격자 캐릭터 위치
|
|
float m_fDir; // 공격자 방향
|
|
|
|
unsigned long m_dwCharID; // 공격자 캐릭터 아이디
|
|
|
|
AtType m_AtType; // 공격 타입
|
|
AtNode m_AtNode; // 방어자 정보
|
|
};
|
|
|
|
|
|
// 캐릭터 공격 패킷 Ack (가변 길이) + 방어자 노드
|
|
typedef struct PktAtAck* LPPktAtAck;
|
|
struct PktAtAck : public PktBase
|
|
{
|
|
enum PktAtAckErr
|
|
{
|
|
NO_SERVER_ERR = 0,
|
|
SERVER_ERROR = 1,
|
|
FAIL_ATTACK = 2,
|
|
FAIL_ALREADY_DEAD = 2
|
|
};
|
|
|
|
unsigned long m_dwCharID; // 공격자 캐릭터 아이디
|
|
AtType m_AtType; // 공격 타입
|
|
|
|
unsigned short m_wHP; // 공격자 HP
|
|
unsigned short m_wMP; // 공격자 MP
|
|
|
|
unsigned char m_cJudge; // 플래그
|
|
unsigned char m_cDefenserNum; // 방어자 수
|
|
|
|
unsigned char m_cRightHandValue; // 사용한 무기 감소도(오른손, 내구도 감소 용)
|
|
unsigned char m_cLeftHandValue; // 사용한 무기 감소도(왼손, 내구도 감소 용)
|
|
|
|
unsigned char m_cRightHandIndex; // 사용한 무기 인덱스(오른손, 내구도 감소 용)
|
|
unsigned char m_cLeftHandIndex; // 사용한 무기 인덱스(왼손, 내구도 감소 용)
|
|
};
|
|
|
|
|
|
|
|
// 캐릭터 공격 정보 (가변 길이) + 방어자 노드
|
|
typedef struct PktAtInfo* LPPktAtInfo;
|
|
struct PktAtInfo : public PktBase
|
|
{
|
|
unsigned long m_dwCharID; // 캐릭터 ID
|
|
AtType m_AtType; // 공격 타입
|
|
unsigned char m_cDefenserNum; // 방어자 수
|
|
};
|
|
|
|
|
|
// 캐릭터 공격 받음 패킷
|
|
typedef struct PktAted* LPPktAted;
|
|
struct PktAted : public PktBase
|
|
{
|
|
POS m_Postion; // 공격자 위치
|
|
float m_fDir; // 공격자 방향
|
|
|
|
unsigned long m_dwCharID; // 공격자 캐릭터 ID
|
|
AtType m_AtType; // 공격 타입
|
|
|
|
unsigned short m_wMyHP; // 방어자 HP
|
|
unsigned short m_wMyMP; // 방어자 MP
|
|
|
|
unsigned char m_cJudge; // 판정 값
|
|
unsigned char m_cMyWeaponIndex; // 방어자 무기 인덱스(내구도 감소용)
|
|
unsigned char m_cMyWeaponValue; // 방어자 무기 감소도(내구도 감소용)
|
|
};
|
|
|
|
|
|
// 듀얼 명령
|
|
//
|
|
// 명령 :
|
|
// 0 = 제안, 1 = 수락, 2 = 거절, 3 = 로그아웃, 4 = 사망
|
|
//
|
|
// 에러 :
|
|
// 0 = 성공, 1 = 서버 에러, 2 = 이미 듀얼중인 캐릭터에게 듀얼 신청,
|
|
// 3 = 거부 옵션이 켜진 상태
|
|
typedef struct PktDuC* LPPktDuC;
|
|
struct PktDuC : public PktBase
|
|
{
|
|
enum DuelCmd
|
|
{
|
|
DUC_PROPOSE = 0, DUC_READY = 1, DUC_REFUSE = 2,
|
|
DUC_LOGOUT = 3, DUC_DEAD = 4, DUC_PARTY_PROPOSE = 5,
|
|
DUC_PARTY_READY = 6, DUC_REQUEST_PARTY_INFO = 7, DUC_CANCEL = 8
|
|
};
|
|
|
|
enum PktDuCError
|
|
{
|
|
NO_SERVER_ERR = 0, SERVER_ERROR = 1, FAIL_DUELING_CHAR = 2,
|
|
FAIL_REJECT = 3, FAIL_NOT_LEADER = 4, FAIL_NOT_PARTY = 5
|
|
};
|
|
|
|
unsigned long m_dwSenderID; // 보낸이 아이디
|
|
unsigned long m_dwRecverID; // 받는이 아이디
|
|
unsigned char m_cCmd; // 명령
|
|
};
|
|
|
|
|
|
// 팀배틀 정보
|
|
typedef struct PktTBInfo* LPPktTBInfo;
|
|
struct PktTBInfo : public PktBase
|
|
{
|
|
enum DuelCmd
|
|
{
|
|
DUC_PROPOSE = 0, DUC_READY = 1, DUC_REFUSE = 2,
|
|
DUC_LOGOUT = 3, DUC_DEAD = 4, DUC_PARTY_PROPOSE = 5,
|
|
DUC_PARTY_READY = 6, DUC_REQUEST_PARTY_INFO = 7
|
|
};
|
|
|
|
unsigned long m_dwCharID;
|
|
char m_strChallengerName[CHAR_INFOST::MAX_NAME_LEN];
|
|
unsigned char m_cCmd;
|
|
|
|
unsigned char m_cMemberNum;
|
|
};
|
|
|
|
|
|
// 캐릭터 챈트&인챈트 정보
|
|
typedef struct PktSpInfo* LPPktSpInfo;
|
|
struct PktSpInfo : public PktBase
|
|
{
|
|
unsigned long m_dwCharID; // 캐릭터 아이디
|
|
unsigned short m_nEnchantLevel; // 주문 레벨
|
|
unsigned char m_cSpellType; // 주문 타입 ( namespace Skill::SpellType참조 )
|
|
bool m_bOnOff; // 켜짐/꺼짐
|
|
};
|
|
|
|
// 캐릭터 리스폰
|
|
typedef struct PktRs* LPPktRs;
|
|
struct PktRs : public PktBase
|
|
{
|
|
enum RespawnCmd
|
|
{
|
|
RS_NORMAL = 0, RS_SELECT = 1
|
|
};
|
|
|
|
unsigned long m_dwCharID;
|
|
unsigned char m_cCmd;
|
|
POS m_Position;
|
|
};
|
|
|
|
// 캐릭터 리스폰 Ack
|
|
typedef struct PktRsAck* LPPktRsAck;
|
|
struct PktRsAck : public PktBase
|
|
{
|
|
POS m_Position; // 현재 위치
|
|
__int64 m_dlExp; // 현재 경험점
|
|
|
|
unsigned long m_dwCharID; // 캐릭터 아이디
|
|
unsigned short m_wHP; // HP
|
|
unsigned short m_wMP; // MP
|
|
};
|
|
|
|
// 어워드 처리
|
|
typedef struct PktAw* LPPktAw;
|
|
struct PktAw : public PktBase
|
|
{
|
|
unsigned long m_dwCharID; // 캐릭터 ID
|
|
unsigned long m_dwExp; // 경험치
|
|
};
|
|
|
|
#pragma pack()
|
|
|
|
#endif |