Restructure repository to include all source folders
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>
This commit is contained in:
@@ -0,0 +1,313 @@
|
||||
#ifndef _MONSTER_STRUCTURE_H_
|
||||
#define _MONSTER_STRUCTURE_H_
|
||||
|
||||
#include <Creature/CreatureStructure.h>
|
||||
|
||||
#pragma pack(8)
|
||||
|
||||
struct MonsterInfo
|
||||
{
|
||||
enum MaxNumber
|
||||
{
|
||||
MAX_MOTION_NUM = 4, // 최대 모션 개수
|
||||
MAX_ORIGINAL_ITEM_NUM = 5, // 몬스터 보유 잡템 최대수
|
||||
|
||||
MAX_NAME_LEN = 64, // 몬스터 이름 길이
|
||||
MAX_MODELING_FLAG_LENGTH = 32 // 모델링 데이터 이름 길이
|
||||
};
|
||||
|
||||
enum MonsterPattern
|
||||
{
|
||||
PATTERN_COMMON = 0,
|
||||
PATTERN_WARRIOR = 1, // 워리어
|
||||
PATTERN_DEFENDER = 2, // 디펜더
|
||||
PATTERN_MAGE = 3, // 메이지
|
||||
PATTERN_ACOLYTE = 4, // 어콜라이트
|
||||
PATTERN_BOSS = 5, // 보스
|
||||
PATTERN_BG = 6, // 배경(?)
|
||||
PATTERN_SUMMON = 7, // 소환수
|
||||
PATTERN_STRUCTURE = 8, // 구조물 (석상 종류)
|
||||
PATTERN_NAMED = 9, // 네임드
|
||||
PATTERN_CHIEF = 10, // 치프
|
||||
PATTERN_OBJECT = 11, // 오브젝트 (꽃, 버섯 등등..)
|
||||
PATTERN_GUARD = 12, // 경비병
|
||||
PATTERN_GATHER = 13, // 수집 타입
|
||||
MAX_PATTERN = 14
|
||||
};
|
||||
|
||||
enum SkillPattern
|
||||
{
|
||||
ATTACK_SKILL = 0, // 공격열 스킬
|
||||
RECOVER_SKILL = 1, // 회복열 스킬
|
||||
ENCHANT_SKILL = 2, // 부여열 스킬
|
||||
EXTENT_SKILL = 3, // 범위열 스킬
|
||||
BOSS_CHANT_SKILL = 4, // 보스의 챈트 스킬
|
||||
|
||||
MAX_SKILL_PATTERN = 5
|
||||
};
|
||||
|
||||
enum HitBox
|
||||
{
|
||||
X_PLUS = 0,
|
||||
X_MINUS = 1,
|
||||
Y_PLUS = 2,
|
||||
Y_MINUS = 3,
|
||||
|
||||
MAX_HITBOX_NUM = 4
|
||||
};
|
||||
|
||||
enum Z3D_CHR_ACTION
|
||||
{
|
||||
Z3D_CA_RUN = 1, // 달리기
|
||||
Z3D_CA_ATTACK = 2, // 공격
|
||||
Z3D_CA_WALK = 8, // 걷기
|
||||
Z3D_CA_CASTING = 24 // 캐스팅
|
||||
};
|
||||
|
||||
enum AwardKind
|
||||
{
|
||||
ORIGINAL1 = 0, // 잡템1
|
||||
ORIGINAL2 = 1, // 잡템2
|
||||
ORIGINAL3 = 2, // 잡템3
|
||||
ORIGINAL4 = 3, // 잡템4
|
||||
ORIGINAL5 = 4, // 잡템5
|
||||
|
||||
COIN = 5, // 돈
|
||||
GEM = 6, // 보석
|
||||
METAL = 7, // 광물
|
||||
POTION = 8, // 물약
|
||||
SKILL = 9, // 스킬북
|
||||
|
||||
CASH_ITEM = 10, // 캐쉬템
|
||||
LOTTERY = 11, // 복권
|
||||
|
||||
F_STANDARD_EQUIP = 12, // Standard-Option Item (Grade F)
|
||||
D_STANDARD_EQUIP = 13, // Standard-Option Item (Grade D)
|
||||
C_STANDARD_EQUIP = 14, // Standard-Option Item (Grade C)
|
||||
B_STANDARD_EQUIP = 15, // Standard-Option Item (Grade B)
|
||||
A_STANDARD_EQUIP = 16, // Standard-Option Item (Grade A)
|
||||
|
||||
F_OVER_EQUIP = 17, // Over-Option Item (Grade F)
|
||||
D_OVER_EQUIP = 18, // Over-Option Item (Grade D)
|
||||
C_OVER_EQUIP = 19, // Over-Option Item (Grade C)
|
||||
B_OVER_EQUIP = 20, // Over-Option Item (Grade B)
|
||||
A_OVER_EQUIP = 21, // Over-Option Item (Grade A)
|
||||
|
||||
NO_EQUIP = 22, // No-Option Item
|
||||
|
||||
//--// start..
|
||||
F_RING = 23, // 반지 (Grade F)
|
||||
D_RING = 24, // 반지 (Grade D)
|
||||
C_RING = 25, // 반지 (Grade C)
|
||||
B_RING = 26, // 반지 (Grade B)
|
||||
A_RING = 27, // 반지 (Grade A)
|
||||
|
||||
F_NECKLACE = 28, // 목걸이 (Grade F)
|
||||
D_NECKLACE = 29, // 목걸이 (Grade D)
|
||||
C_NECKLACE = 30, // 목걸이 (Grade C)
|
||||
B_NECKLACE = 31, // 목걸이 (Grade B)
|
||||
A_NECKLACE = 32, // 목걸이 (Grade A)
|
||||
|
||||
F_RUNE = 33, // 룬 (Grade F)
|
||||
D_RUNE = 34, // 룬 (Grade D)
|
||||
C_RUNE = 35, // 룬 (Grade C)
|
||||
B_RUNE = 36, // 룬 (Grade B)
|
||||
A_RUNE = 37, // 룬 (Grade A)
|
||||
DESTRUCTION_RUNE = 38, // 소멸의 룬
|
||||
|
||||
MAX_AWARD_KIND = 39
|
||||
//--// end..
|
||||
};
|
||||
|
||||
enum SpeacialKindID
|
||||
{
|
||||
// 소환수
|
||||
SUMMON_KINDLING = 3500,
|
||||
SUMMON_FLAMEWALKER = 3506,
|
||||
SUMMON_BURNINGSHIELD = 3513,
|
||||
SUMMON_FIREWING = 3520,
|
||||
SUMMON_DEATHBURN = 3527,
|
||||
|
||||
// 1레벨 석상
|
||||
// 명예의 석상
|
||||
STATUE_NEUTRALITY1 = 4001,
|
||||
STATUE_HUMAN_LOADING1 = 4002,
|
||||
STATUE_HUMAN_COMPLETE1 = 4003,
|
||||
STATUE_AKHAN_LOADING1 = 4004,
|
||||
STATUE_AKHAN_COMPLETE1 = 4005,
|
||||
|
||||
// BattleGround Server 명예의 석상
|
||||
BG_STATUE_NEUTRALITY1 = 4006,
|
||||
BG_STATUE_HUMAN_LOADING1 = 4007,
|
||||
BG_STATUE_HUMAN_COMPLETE1 = 4008,
|
||||
BG_STATUE_AKHAN_LOADING1 = 4009,
|
||||
BG_STATUE_AKHAN_COMPLETE1 = 4010,
|
||||
|
||||
// 다크 카나번 석상
|
||||
POWER_STATUE_NEUTRALITY1 = 4011, // 힘의 석상
|
||||
POWER_STATUE_HUMAN_LOADING1 = 4012,
|
||||
POWER_STATUE_HUMAN_COMPLETE1 = 4013,
|
||||
POWER_STATUE_AKHAN_LOADING1 = 4014,
|
||||
POWER_STATUE_AKHAN_COMPLETE1 = 4015,
|
||||
|
||||
INT_STATUE_NEUTRALITY1 = 4016, // 지능의 석상
|
||||
INT_STATUE_HUMAN_LOADING1 = 4017,
|
||||
INT_STATUE_HUMAN_COMPLETE1 = 4018,
|
||||
INT_STATUE_AKHAN_LOADING1 = 4019,
|
||||
INT_STATUE_AKHAN_COMPLETE1 = 4020,
|
||||
|
||||
EXP_STATUE_NEUTRALITY1 = 4021, // 경험의 석상
|
||||
EXP_STATUE_HUMAN_LOADING1 = 4022,
|
||||
EXP_STATUE_HUMAN_COMPLETE1 = 4023,
|
||||
EXP_STATUE_AKHAN_LOADING1 = 4024,
|
||||
EXP_STATUE_AKHAN_COMPLETE1 = 4025,
|
||||
|
||||
WEALTH_STATUE_NEUTRALITY1 = 4026, // 부의 석상
|
||||
WEALTH_STATUE_HUMAN_LOADING1 = 4027,
|
||||
WEALTH_STATUE_HUMAN_COMPLETE1 = 4028,
|
||||
WEALTH_STATUE_AKHAN_LOADING1 = 4029,
|
||||
WEALTH_STATUE_AKHAN_COMPLETE1 = 4030,
|
||||
|
||||
LIFE_EXTRACT_NEUTRALITY1 = 4031, // 생명 축출기
|
||||
LIFE_EXTRACT_HUMAN_LOADING1 = 4032,
|
||||
LIFE_EXTRACT_HUMAN_COMPLETE1 = 4033,
|
||||
LIFE_EXTRACT_AKHAN_LOADING1 = 4034,
|
||||
LIFE_EXTRACT_AKHAN_COMPLETE1 = 4035,
|
||||
|
||||
|
||||
// 2레벨 석상
|
||||
// 명예의 석상
|
||||
STATUE_NEUTRALITY2 = 4036,
|
||||
STATUE_HUMAN_LOADING2 = 4037,
|
||||
STATUE_HUMAN_COMPLETE2 = 4038,
|
||||
STATUE_AKHAN_LOADING2 = 4039,
|
||||
STATUE_AKHAN_COMPLETE2 = 4040,
|
||||
|
||||
// BattleGround Server 명예의 석상
|
||||
BG_STATUE_NEUTRALITY2 = 4041,
|
||||
BG_STATUE_HUMAN_LOADING2 = 4042,
|
||||
BG_STATUE_HUMAN_COMPLETE2 = 4043,
|
||||
BG_STATUE_AKHAN_LOADING2 = 4044,
|
||||
BG_STATUE_AKHAN_COMPLETE2 = 4045,
|
||||
|
||||
// 다크 카나번 석상
|
||||
POWER_STATUE_NEUTRALITY2 = 4046, // 힘의 석상
|
||||
POWER_STATUE_HUMAN_LOADING2 = 4047,
|
||||
POWER_STATUE_HUMAN_COMPLETE2 = 4048,
|
||||
POWER_STATUE_AKHAN_LOADING2 = 4049,
|
||||
POWER_STATUE_AKHAN_COMPLETE2 = 4050,
|
||||
|
||||
INT_STATUE_NEUTRALITY2 = 4051, // 지능의 석상
|
||||
INT_STATUE_HUMAN_LOADING2 = 4052,
|
||||
INT_STATUE_HUMAN_COMPLETE2 = 4053,
|
||||
INT_STATUE_AKHAN_LOADING2 = 4054,
|
||||
INT_STATUE_AKHAN_COMPLETE2 = 4055,
|
||||
|
||||
EXP_STATUE_NEUTRALITY2 = 4056, // 경험의 석상
|
||||
EXP_STATUE_HUMAN_LOADING2 = 4057,
|
||||
EXP_STATUE_HUMAN_COMPLETE2 = 4058,
|
||||
EXP_STATUE_AKHAN_LOADING2 = 4059,
|
||||
EXP_STATUE_AKHAN_COMPLETE2 = 4060,
|
||||
|
||||
WEALTH_STATUE_NEUTRALITY2 = 4061, // 부의 석상
|
||||
WEALTH_STATUE_HUMAN_LOADING2 = 4062,
|
||||
WEALTH_STATUE_HUMAN_COMPLETE2 = 4063,
|
||||
WEALTH_STATUE_AKHAN_LOADING2 = 4064,
|
||||
WEALTH_STATUE_AKHAN_COMPLETE2 = 4065,
|
||||
|
||||
LIFE_EXTRACT_NEUTRALITY2 = 4066, // 생명 축출기
|
||||
LIFE_EXTRACT_HUMAN_LOADING2 = 4067,
|
||||
LIFE_EXTRACT_HUMAN_COMPLETE2 = 4068,
|
||||
LIFE_EXTRACT_AKHAN_LOADING2 = 4069,
|
||||
LIFE_EXTRACT_AKHAN_COMPLETE2 = 4070,
|
||||
|
||||
// 석상 KID (CreatureStructure.h 에도 정의되어 있음)
|
||||
MIN_STATUE_KID = 4001,
|
||||
MAX_STATUE_KID = 4070
|
||||
};
|
||||
|
||||
enum StatueEffectType
|
||||
{
|
||||
SE_NONE = 0,
|
||||
SE_HP = 1, // Max HP 상승 효과
|
||||
SE_MP = 2, // Max MP 상승 효과
|
||||
SE_EXP = 3, // 획득 Exp 상승 효과
|
||||
SE_DROPRATE = 4, // 획득 아이템 DropRate 상승 효과
|
||||
|
||||
MAX_EFFECT_TYPE_NUM = 5
|
||||
};
|
||||
|
||||
|
||||
MotionInfo m_MonsterMotions[MAX_MOTION_NUM]; // 몬스터의 행동 정보 (걷기, 달리기, 공격, 캐스팅)
|
||||
char m_strName[MAX_NAME_LEN]; // 이름
|
||||
char m_strModelingFlag[MAX_MODELING_FLAG_LENGTH]; // 모델링 형태 플래그
|
||||
float m_fHitBox[MAX_HITBOX_NUM]; // 타격박스
|
||||
|
||||
unsigned short m_aryAwardItem[MAX_ORIGINAL_ITEM_NUM]; // 몬스터가 가지고 있는 오리지날 아이템들
|
||||
unsigned long m_aryDropRate[MAX_AWARD_KIND]; // 아이템 종류별 드랍률
|
||||
unsigned char m_cStandardBaseNum; // Standard-Option 장비의 최소 + 갯수
|
||||
unsigned char m_cOverBaseNum; // Over-Option 장비의 최소 + 갯수
|
||||
|
||||
unsigned long m_dwKID; // 종류 ID
|
||||
unsigned long m_dwRespawnTime; // 리스폰 타임
|
||||
|
||||
float m_fSize; // 사이즈
|
||||
float m_fAttackAngle; // 공격 각도
|
||||
short m_wAttackRange; // 공격 거리
|
||||
|
||||
unsigned char m_cSkillPattern; // 스킬 패턴
|
||||
unsigned char m_cSkillLevel; // 스킬 레벨
|
||||
|
||||
unsigned char m_cFixLevelGap; // 고정 레벨갭
|
||||
bool m_bFixLevelGap; // 고정 레벨갭 적용 여부
|
||||
|
||||
char m_cNation; // 국가
|
||||
|
||||
unsigned short m_wSkillUseRate; // 스킬 사용 확률
|
||||
unsigned short m_wSkillID[MAX_SKILL_PATTERN]; // 몬스터 스킬 ID
|
||||
unsigned char m_cEnchantSpellType; // 부여 스킬에 의한 스펠타입 ( Skill::SpellID::Type )
|
||||
unsigned char m_cChantSpellType; // 파티 챈트 스킬에 의한 스펠타입 ( Skill::SpellID::Type )
|
||||
float m_fSkillEffectSize; // 스킬 이펙트 사이즈 (인간: 1.0)
|
||||
|
||||
bool m_bIgnoreEnchant; // 챈트, 인챈트 무시 여부
|
||||
bool m_bCollision; // 충돌 체크 여부
|
||||
bool m_bFirstAttack; // 선제공격 여부
|
||||
bool m_bReturnPosition; // 타겟이 도망가면 제자리로 돌아가는지 여부
|
||||
bool m_bUseLOD; // LOD 처리 유무
|
||||
|
||||
// 공성 오브젝트 관련
|
||||
unsigned long m_dwDevelopGold; // 개발 비용
|
||||
unsigned char m_cDevelopSpeed; // 개발 속도 (단위 : 분)
|
||||
unsigned long m_dwUpgradeGold; // 업그레이드 비용
|
||||
unsigned char m_cUpgradeSpeed; // 업그레이드 속도 (단위 : 분)
|
||||
|
||||
float m_fDevelopGoldDown; // 개발 비용 절감 수치 (%)
|
||||
float m_fDevelopSpeedUp; // 개발 속도 향상 수치 (%)
|
||||
float m_fUpgradeGoldDown; // 업그레이드 비용 절감 수치 (%)
|
||||
float m_fUpgradeSpeedUp; // 업그레이드 속도 향상 수치 (%)
|
||||
float m_fDefenseUp; // 방어력 향상 수치 (%)
|
||||
float m_fOffenseUp; // 공격력 향상 수치 (%)
|
||||
float m_fHPUp; // HP 향상 수치 (%)
|
||||
float m_fBonusRate; // 총 수입 보너스 (%)
|
||||
float m_fRespawnSpeedUp; // PC 리스폰 속도 향상 수치 (%)
|
||||
|
||||
// 국가전 석상 효과 관련
|
||||
unsigned char m_cStatueEffectType; // 석상 효과 타입
|
||||
unsigned char m_cStatueEffectPercent; // 석상 효과 퍼센트
|
||||
bool m_bStatueRespawnEnable; // 석상 리스폰 가능 여부
|
||||
|
||||
MonsterInfo();
|
||||
static MonsterPattern GetMonsterPattern(const char* szMonsterType);
|
||||
static StatueEffectType GetStatueEffectType(const char* szStatueEffectType);
|
||||
|
||||
static unsigned short GetCompleteStatueKID(unsigned short wNowKID);
|
||||
static unsigned short GetLoadingStatueKID(unsigned char cRace, unsigned short wNowKID);
|
||||
static unsigned short GetDefaultStatueKID(unsigned short wNowKID);
|
||||
static bool IsLoadingStatueKID(unsigned short wNowKID);
|
||||
static bool IsRaceCompleteStatueKID(unsigned short wNowKID);
|
||||
};
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user