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>
89 lines
2.1 KiB
C++
89 lines
2.1 KiB
C++
#ifndef _CHARACTER_STRUCTURE_H_
|
|
#define _CHARACTER_STRUCTURE_H_
|
|
|
|
#include "../CreatureStructure.h"
|
|
|
|
|
|
// 전방 참조
|
|
class CCharacter;
|
|
|
|
// 캐릭터에 대한 속성
|
|
struct CharacterStatus
|
|
{
|
|
short m_nSTR; // 캐릭터 STR
|
|
short m_nDEX; // 캐릭터 DEX
|
|
short m_nCON; // 캐릭터 CON
|
|
short m_nINT; // 캐릭터 INT
|
|
short m_nWIS; // 캐릭터 WIS
|
|
|
|
CharacterStatus();
|
|
CharacterStatus(CHAR_INFOST& characterDBData);
|
|
void Init(CHAR_INFOST& characterDBData);
|
|
};
|
|
typedef CharacterStatus* LPCharacterStatus;
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
// DB 에서 처음에 읽어 오는 데이터들. 중간중간 저장해서 DB에 갱신함.
|
|
// 되도록이면 게임 처리중에는 건드리지 않는다. ( 레벨업 등등을 제외하고 ... )
|
|
|
|
struct CharacterDBData
|
|
{
|
|
CHAR_INFOST m_Info; // 외모, 이름, 능력치, hp,mp 등 기본 정보
|
|
CHAR_POS m_Pos; // 종료시 위치 정보, 저장된 위치 정보 ( Respawn 장소 )
|
|
SKILL m_Skill;
|
|
QUICK m_Quick;
|
|
bool m_Admin;
|
|
};
|
|
typedef CharacterDBData* LPCharacterDBData;
|
|
|
|
|
|
// 유저 접속 정보. 유저의 IP를 넣음.
|
|
struct ConnectInfo
|
|
{
|
|
SOCKADDR_IN m_siAgentHost; // agent UDP address of host
|
|
SOCKADDR_IN m_siPrivateHost; // private UDP address of host
|
|
SOCKADDR_IN m_siPublicHost; // public UDP address of host
|
|
|
|
};
|
|
typedef ConnectInfo* LPConnectInfo;
|
|
|
|
|
|
// 캐릭터끼리의 전투 정보 (듀얼, 전쟁)
|
|
struct CharacterFightInfo
|
|
{
|
|
enum _VictoryOrDefeat { DRAW = 0, WIN = 1, LOSE = 2, DEAD_TO_CHARACTER = 3 };
|
|
|
|
CCharacter* m_pDuelOpponent;
|
|
char m_cResult;
|
|
|
|
CharacterFightInfo();
|
|
};
|
|
typedef CharacterFightInfo* LPCharacterFightInfo;
|
|
|
|
|
|
// 캐릭터 마스터리 정보
|
|
struct CharacterMasteryInfo
|
|
{
|
|
union {
|
|
struct {
|
|
unsigned short m_SwordMastery : 2;
|
|
unsigned short m_AxeMastery : 2;
|
|
unsigned short m_BluntMastery : 2;
|
|
unsigned short m_DaggerMastery : 2;
|
|
unsigned short m_CrushWeapon : 2;
|
|
unsigned short m_Blade : 2;
|
|
unsigned short m_ClawMastery : 2;
|
|
unsigned short m_Remainder : 2;
|
|
} MasteryKind;
|
|
|
|
unsigned short m_wMasteryInfo;
|
|
};
|
|
|
|
CharacterMasteryInfo() : m_wMasteryInfo(0) { }
|
|
CharacterMasteryInfo(unsigned short wMasteryInfo) : m_wMasteryInfo(wMasteryInfo) { }
|
|
};
|
|
typedef CharacterMasteryInfo* LPCharacterMasteryInfo;
|
|
|
|
|
|
#endif |