613 lines
15 KiB
C++
613 lines
15 KiB
C++
|
|
#pragma once
|
|
|
|
#ifdef _RAC
|
|
#include "GameRule.h"
|
|
#elif _JEDIT
|
|
#include "GameRule.h"
|
|
#endif
|
|
|
|
namespace GAME_DEFINE
|
|
{
|
|
enum SEX
|
|
{
|
|
SEX_NONE = 0, // No sex (gender)
|
|
SEX_FEMALE, // Female
|
|
SEX_MALE , // Male
|
|
|
|
SEX_MAX, // Max (for iterations)
|
|
};
|
|
|
|
enum CLAN
|
|
{
|
|
GCLAN_NOTHING = 0, // No Race
|
|
GCLAN_MONSTER, // Monster
|
|
GCLAN_NPC, // NPC
|
|
GCLAN_GAIA, // Gaia
|
|
GCLAN_DEVA, // Deva
|
|
GCLAN_ASURA, // Asura
|
|
GCLAN_ALFEN, // Alfen
|
|
GCLAN_GIAN, // Gian
|
|
GCLAN_AMAZON, // Amazon
|
|
|
|
GCLAN_MAX, // For iterations
|
|
|
|
GCLAN_PROP_NX3 = 1000, // Prop
|
|
GCLAN_PROP_SPEED, // Prop SPT
|
|
GCLAN_PROP_COB,
|
|
};
|
|
|
|
// Animation management, animation part management
|
|
enum ANIPART
|
|
{
|
|
ANIPART_BIPED = 0,///< Biped Ani(기본)
|
|
ANIPART_HAIR, ///< 머리 Ani
|
|
ANIPART_NECKLACE, ///< 목걸이 Ani
|
|
ANIPART_EARRING, ///< 귀고리 Ani
|
|
ANIPART_MANTLE, ///< 망토 Ani
|
|
ANIPART_FABRIC, ///< 앞뒤 가리개 Ani
|
|
ANIPART_LONGSKIRT, ///< 긴치마 Ani
|
|
ANIPART_MIDSKIRT, ///< 중치마 Ani
|
|
ANIPART_SHORTSKIRT, ///< 짧은 치마 Ani
|
|
ANIPART_WEAPON_LEFT, ///< 무기 왼쪽 Ani
|
|
ANIPART_WEAPON_RIGHT, ///< 무기 오른쪽 Ani
|
|
|
|
ANIPART_MAX,
|
|
};
|
|
|
|
// Manage bones and mesh parts
|
|
enum MPART
|
|
{
|
|
MPART_FACE = 0, ///< 얼굴
|
|
MPART_HAIR , // Hair
|
|
MPART_BODY , ///< 몸통-상의,하의 포함
|
|
MPART_FOOT , ///< 신발(단화, 장화)
|
|
MPART_HAND , ///< 손 (긴,짧은장갑)
|
|
MPART_L_SKIRT , ///< 긴 치마
|
|
MPART_M_SKIRT , ///< 중 치마
|
|
MPART_S_SKIRT , ///< 짧은 치마
|
|
|
|
MPART_MANTLE , ///< 망토
|
|
MPART_ACCE_EYE, ///< 액세서리 눈
|
|
MPART_ACCE_LIP, ///< 액세서리 입, 코
|
|
MPART_ACCE_EAR, ///< 액세서리 귀
|
|
MPART_ACCE_NECK,///< 액세서리 목걸이
|
|
MPART_FABRIC, ///< 앞가리개
|
|
|
|
MPART_L_WEAPON, ///< 왼쪽 무기
|
|
MPART_R_WEAPON, ///< 오른쪽 무기
|
|
|
|
MPART_HELM, ///< 투구
|
|
|
|
MPART_MAX ,
|
|
};
|
|
|
|
enum MDECOPART
|
|
{
|
|
MDECOPART_L_WEAPON = 0, ///< 치장용 무기 ( 방패 류 는 Attach에 붙는다 )
|
|
MDECOPART_R_WEAPON, ///< 치장용 무기 ( 방패 류 는 Attach에 붙는다 )
|
|
MDECOPART_BODY, ///< 치장용 의상
|
|
MDECOPART_HELM, ///< 치장용 투구
|
|
MDECOPART_HAND, ///< 치장용 장갑
|
|
MDECOPART_FOOT, ///< 치장용 부츠
|
|
// { sonador 1.8.1 액세서리 확장 표현 슬롯 추가
|
|
MDECOPART_L_SKIRT, ///< 치장용 긴 치마
|
|
MDECOPART_M_SKIRT, ///< 치장용 중 치마
|
|
MDECOPART_S_SKIRT, ///< 치장용 裏?치마
|
|
// }
|
|
MDECOPART_MANTLE, ///< 치장용 망토
|
|
MDECOPART_SHOULDER, ///< 치장용 어깨
|
|
MDECOPART_HAIR, ///< 치장용 헤어
|
|
|
|
MDECOPART_SHOULDER2, ///< 치장용 어깨
|
|
|
|
MDECOPART_MAX,
|
|
};
|
|
|
|
/// const char * pAniClassEx[]; <= 과 같은 인덱스를 사용
|
|
enum
|
|
{
|
|
ANICLS_UNA = 0, ///< 맨 손 0
|
|
ANICLS_SWO, ///< 칼 한손 1
|
|
ANICLS_SWA, ///< 칼 양손 2
|
|
ANICLS_SPA, ///< 창 양손 3
|
|
ANICLS_BWA, ///< 활 양손 4
|
|
ANICLS_DGO, ///< 단검 한손 5
|
|
ANICLS_SWT, ///< 장검 이도류 6
|
|
ANICLS_DGT, ///< 단검 이도류 7
|
|
ANICLS_SFO, ///< 지팡이 한손 8
|
|
ANICLS_SFA, ///< 지팡이 양손 9
|
|
ANICLS_AXO, ///< 도끼 한손 10
|
|
ANICLS_AXA, ///< 도끼 양손 11
|
|
ANICLS_AXT, ///< 도끼 이도류12
|
|
ANICLS_MAO, ///< 둔기 한손 13
|
|
ANICLS_MAA, ///< 둔기 양손 14
|
|
ANICLS_CBO, ///< 석궁 한손 15
|
|
<<<<<<< HEAD
|
|
ANICLS_CBT, // CBT Double Crossbow
|
|
|
|
=======
|
|
ANICLS_CBT, // AziaMafia Double Crossbow // From ZONE source; dual crossbows
|
|
>>>>>>> a34328224e914a577b99c79ec6e8ffbcea554a05
|
|
ANICLS_MAX,
|
|
};
|
|
|
|
/// Attach List
|
|
enum ATTACH
|
|
{
|
|
ATTACH_HEAD = 0, ///< 머리 0
|
|
ATTACH_HAND_LEFT , ///< 왼손 1
|
|
ATTACH_HAND_RIGHT, ///< 오른손 2
|
|
ATTACH_HAND_ARM2L, ///< 왼손 팔뚝 3
|
|
ATTACH_HAND_ARM2R, ///< 오른손 팔뚝 4
|
|
ATTACH_HAND_ARM2L_DECO, ///< 왼손 팔뚝 치장 5
|
|
ATTACH_HAND_ARM2R_DECO, ///< 오른손 팔뚝 치장 6
|
|
ATTACH_BODY, ///< 몸 7
|
|
ATTACH_SADDLE, ///< 허리 8
|
|
ATTACH_BACK, ///< 등 9
|
|
|
|
ATTACH_HAND_LEFT_WEAPON, ///< 왼손 무기 10
|
|
ATTACH_HAND_RIGHT_WEAPON, ///< 오른손 무기 11
|
|
|
|
ATTACH_HAND_LEFT_WEAPON01, ///< 왼손 무기 12
|
|
ATTACH_HAND_RIGHT_WEAPON01, ///< 오른손 무기 13
|
|
|
|
ATTACH_HAND_LEFT_WEAPON02, ///< 왼손 무기 14
|
|
ATTACH_HAND_RIGHT_WEAPON02, ///< 오른손 무기 15
|
|
|
|
ATTACH_MAX ,
|
|
};
|
|
|
|
/// Game Object Type
|
|
enum GAMEOBJECT_TYPE
|
|
{
|
|
OBJ_PLAYER = 0, ///< 일반 사용자
|
|
OBJ_NPC, ///< NPC
|
|
OBJ_MOB, ///< 몬스터
|
|
OBJ_GM, ///< Game Master
|
|
};
|
|
|
|
/// Event Type
|
|
enum EVENT_TYPE
|
|
{
|
|
TYPE_EFFECT = 0, ///< Effect
|
|
TYPE_SOUND, ///< Sound
|
|
};
|
|
|
|
enum EVENT_POS
|
|
{
|
|
POS_MY = 1000, ///< Effect
|
|
POS_TARGET, ///< Sound
|
|
};
|
|
|
|
/// 새로운 이펙트 위치 인덱스
|
|
enum EFFECT_POS
|
|
{
|
|
EFFECT_POS_TOP = 0, ///< HEAD에 링크
|
|
EFFECT_POS_MIDDLE, ///< BODY1, SPINE1에 링크
|
|
EFFECT_POS_DAMAGE, ///< 회전하여, 방향에 맞게 계산 필요
|
|
EFFECT_POS_BOTTOM, ///< BOTTOM(땅 바닥), TARGET(바라보는 시선위치) 2개 들어 있음
|
|
EFFECT_POS_SADDLE, ///< 안장, 크리처 라이딩 할때, 플레이어가 붙는 위치
|
|
EFFECT_POS_W_LEFT,
|
|
EFFECT_POS_W_RIGHT,
|
|
EFFECT_POS_W_TWOHAND,
|
|
|
|
EFFECT_POS_MAX,
|
|
};
|
|
|
|
enum EFFECT_POS_WEAPON
|
|
{
|
|
EFFECT_POS_LEFT_WEAPON = 0,
|
|
EFFECT_POS_RIGHT_WEAPON,
|
|
EFFECT_POS_TWOHAND_WEAPON,
|
|
|
|
EFFECT_POS_WEAPON_MAX,
|
|
};
|
|
|
|
enum EFFECT_POS_WEAPON_EP
|
|
{
|
|
EFFECT_POS_WEAPON_EP_START = 0,
|
|
EFFECT_POS_WEAPON_EP_END,
|
|
|
|
EFFECT_POS_WEAPON_EP_MAX,
|
|
};
|
|
|
|
enum MOTION_SPEED
|
|
{
|
|
MOTION_SPEED_0, ///< 0 : Lent = Attaque 5 : Veille 5
|
|
MOTION_SPEED_1, ///< 1 : Normal = Attaque 6 : Veille 4
|
|
MOTION_SPEED_2, ///< 2 : Rapide = Attaque 7 : Veille 3
|
|
MOTION_SPEED_3, ///< 3 : Normal = Attaque 10 : Veille 0²
|
|
};
|
|
|
|
enum EVENT_DETAIL_POS
|
|
{
|
|
DETAIL_HEAD = 0, ///< 0 머리
|
|
DETAIL_NECK, ///< 1 목
|
|
DETAIL_BODY2, ///< 2 Pelvis 바로 위~
|
|
DETAIL_BODY1, ///< 3 가슴
|
|
DETAIL_PELVIS, ///< 4 골방
|
|
DETAIL_LEFT_HAND, ///< 5 왼손
|
|
DETAIL_RIGHT_HAND,///< 6 오른손
|
|
DETAIL_BOTTOM, ///< 7 땅바닥
|
|
DETAIL_LEFT_FOOT, ///< 8 왼발
|
|
DETAIL_RIGHT_FOOT,///< 9 오른 발
|
|
DETAIL_LEFT_FIST, ///< 10 왼주먹
|
|
DETAIL_RIGHT_FIST, ///< 11 오른주먹
|
|
};
|
|
|
|
enum TEXTURE_GROUP_INDEX_LIST
|
|
{
|
|
TEXTURE_GROUP_INDEX_0 = 0,
|
|
TEXTURE_GROUP_INDEX_1,
|
|
TEXTURE_GROUP_INDEX_2,
|
|
TEXTURE_GROUP_INDEX_3,
|
|
TEXTURE_GROUP_INDEX_4,
|
|
TEXTURE_GROUP_INDEX_5,
|
|
TEXTURE_GROUP_INDEX_6,
|
|
TEXTURE_GROUP_INDEX_7,
|
|
TEXTURE_GROUP_INDEX_8,
|
|
TEXTURE_GROUP_INDEX_9,
|
|
TEXTURE_GROUP_INDEX_MAX,
|
|
};
|
|
|
|
enum TEXTURE_USING_INDEX_LIST
|
|
{
|
|
TEXTURE_USING_INDEX_0 = 0,
|
|
TEXTURE_USING_INDEX_1,
|
|
TEXTURE_USING_INDEX_2,
|
|
TEXTURE_USING_INDEX_3,
|
|
TEXTURE_USING_INDEX_4,
|
|
TEXTURE_USING_INDEX_5,
|
|
TEXTURE_USING_INDEX_6,
|
|
TEXTURE_USING_INDEX_7,
|
|
TEXTURE_USING_INDEX_8,
|
|
TEXTURE_USING_INDEX_9,
|
|
TEXTURE_USING_INDEX_10,
|
|
TEXTURE_USING_INDEX_11,
|
|
TEXTURE_USING_INDEX_12,
|
|
TEXTURE_USING_INDEX_13,
|
|
TEXTURE_USING_INDEX_14,
|
|
TEXTURE_USING_INDEX_15,
|
|
TEXTURE_USING_INDEX_16,
|
|
TEXTURE_USING_INDEX_17,
|
|
TEXTURE_USING_INDEX_18,
|
|
TEXTURE_USING_INDEX_19,
|
|
TEXTURE_USING_INDEX_MAX,
|
|
};
|
|
|
|
/// Environment
|
|
enum ENV_TYPE
|
|
{
|
|
ENV_FIELD = 0, ///< 일반 필드
|
|
ENV_FIELD_SKY, ///< 하늘 도시
|
|
ENV_FIELD_WATER,///< 물
|
|
// ENV_FIELD_
|
|
};
|
|
|
|
enum RENDERTARGET_SIZE
|
|
{
|
|
SIZE_RT_128 = 128,
|
|
SIZE_RT_256 = 256,
|
|
SIZE_RT_512 = 512,
|
|
SIZE_RT_1024 = 1024,
|
|
};
|
|
|
|
enum DEF_SIZE
|
|
{
|
|
SIZE_1024 = 1024,
|
|
SIZE_768 = 768,
|
|
};
|
|
|
|
enum SHADOW_RECT
|
|
{
|
|
RECT_SHADOW_128 = 128,
|
|
RECT_SHADOW_256 = 256,
|
|
RECT_SHADOW_512 = 512,
|
|
RECT_SHADOW_1024 = 1024,
|
|
};
|
|
|
|
enum WATER_RECT
|
|
{
|
|
RECT_WATER_128 = 128,
|
|
RECT_WATER_256 = 256,
|
|
RECT_WATER_512 = 512,
|
|
RECT_WATER_1024 = 1024,
|
|
};
|
|
|
|
/// MJ 2004/10/13 모션 조작 명령
|
|
enum MOTION_ACTION
|
|
{
|
|
MOTION_ATTACK = 0, ///< 공격
|
|
MOTION_STANDUP, ///< 앉기, 서기
|
|
MOTION_PICKUP, ///< 줍기
|
|
MOTION_COMBINE, ///< 조합
|
|
MOTION_RUN, ///< 걷기, 뛰기
|
|
MOTION_BOOTH, ///< 노점
|
|
MOTION_TRADE, ///< 트레이드
|
|
MOTION_PKMODE, ///< PK 모드
|
|
MOTION_MOUNT, ///< 타기, 내리기
|
|
MOTION_CAST_CANCEL, // Cancel all actions
|
|
MOTION_ASSIST, ///< 어시스트
|
|
MOTION_HI,
|
|
MOTION_BOW,
|
|
MOTION_HAPPY,
|
|
MOTION_SORROW,
|
|
MOTION_YES,
|
|
MOTION_NO,
|
|
MOTION_BORING,
|
|
MOTION_APOLOGIZE,
|
|
MOTION_CHEER,
|
|
MOTION_POUT,
|
|
MOTION_DANCE,
|
|
MOTION_CLAP,
|
|
MOTION_ANGRY,
|
|
MOTION_PROVOKE,
|
|
|
|
MOTION_PARTY_CREATE,
|
|
MOTION_PARTY_INVITE,
|
|
|
|
MOTION_PICKUP_CARD, ///< 카드 줍기
|
|
|
|
MOTION_MAX,
|
|
|
|
CREATURE_ATTACK, ///< 소환수 공격
|
|
CREATURE_BACKDOWN, ///< 퇴각
|
|
CREATURE_ALLATTACK, ///< 합동 공격
|
|
CREATURE_MAX,
|
|
|
|
};
|
|
|
|
/// 2005/ 06/ 23 모션 조작 명령에 해당하는 아이디( MOTION_ACTION으로 대체 가능 할거 같음 )
|
|
enum MOTION_ID
|
|
{
|
|
ID_ATTACK = 0,
|
|
ID_STANDUP ,
|
|
ID_PICKUP ,
|
|
ID_ASSIST ,
|
|
ID_PKMODE ,
|
|
ID_RUN ,
|
|
ID_MOUNT ,
|
|
// ID_CAST_CANCEL ,
|
|
ID_CREATURE_ATTACK ,
|
|
ID_CREATURE_ALLATTACK ,
|
|
ID_CREATURE_BACKDOWN ,
|
|
|
|
ID_TRADE ,
|
|
ID_COMBINE ,
|
|
ID_BOOTH ,
|
|
|
|
ID_HI ,
|
|
ID_BOW ,
|
|
ID_HAPPY ,
|
|
ID_SORROW ,
|
|
ID_YES ,
|
|
ID_NO ,
|
|
ID_BORING ,
|
|
ID_APOLOGIZE,
|
|
ID_CHEER ,
|
|
ID_POUT ,
|
|
ID_DANCE ,
|
|
ID_CLAP ,
|
|
ID_ANGRY ,
|
|
ID_PROVOKE ,
|
|
|
|
ID_PARTY_CREATE,
|
|
ID_PARTY_INVITE,
|
|
|
|
//편의성 용
|
|
ID_PICKUP_CARD, ///< 카드만 먹음
|
|
|
|
// AziaMafia ADD EMOTE
|
|
ID_TP,
|
|
ID_LOOT,
|
|
ID_TAME,
|
|
|
|
ID_BUFF,
|
|
ID_BUFFGUILD,
|
|
ID_TPTAMINGZONE,
|
|
ID_ATRADE,
|
|
|
|
|
|
ID_MAX,
|
|
};
|
|
|
|
enum CREATURE_POSITION
|
|
{
|
|
CREATURE_MOVE_LEFT = 0, ///< 왼쪽으로 이동
|
|
CREATURE_MOVE_RIGHT, ///< 오른쪽으로 이동
|
|
};
|
|
|
|
enum RENDER_FLAG
|
|
{
|
|
RENDER_SKY = 0, ///< 00 하늘 상자
|
|
RENDER_CLOUD, ///< 01 구름
|
|
RENDER_TERRAIN, ///< 02 땅
|
|
RENDER_TERRAIN_SHADOW, ///< 03 그림자
|
|
RENDER_PRIMITIVE, ///< 04 빌딩
|
|
RENDER_PRIMITIVE_ALPHA, ///< 05 빌딩 알파
|
|
RENDER_SPEED_TREE, ///< 06 Speed Tree Branch
|
|
RENDER_BILLBOARD, ///< 07 Bill Board
|
|
RENDER_ADDITIVEBILLBOARD, ///< 08 애디티브 Bill Board
|
|
RENDER_LENSFLARE, ///< 09 Lens Flare
|
|
RENDER_SPRITE, ///< 10 Sprite_AdditiveSprite
|
|
RENDER_WPRLIST, ///< 11 Wire
|
|
RENDER_TILE, ///< 12 Tile-Loading Screen
|
|
//RENDER_PATHEFFECT, //13 PathEffect
|
|
RENDER_QUAD,
|
|
RENDER_LINE,
|
|
RENDER_POLYLINE,
|
|
RENDER_SPEED_GRASS,
|
|
};
|
|
|
|
enum LIMIT_PK
|
|
{
|
|
LIMIT_MOB = (1 << 2), ///< 몬스터
|
|
LIMIT_PLAYER = (1 << 3), ///< 플레이어
|
|
LIMIT_SUMMON = (1 << 4), ///< 소환수
|
|
};
|
|
|
|
/// 각종 상태
|
|
enum CONTENT_STATE
|
|
{
|
|
CS_NONE, ///< 일반 상태
|
|
CS_TRADE, ///< 트레이드 상태
|
|
CS_STORAGE, ///< 창고 상태
|
|
};
|
|
|
|
/// Prop Category
|
|
enum SPROP_CATEGORY
|
|
{
|
|
SCATEGORY_PROP = 0,
|
|
SCATEGORY_BUILDING,
|
|
SCATEGORY_NPC,
|
|
|
|
SCATEGORY_MAX,
|
|
};
|
|
|
|
enum WORLD_TIME_INFO
|
|
{
|
|
WORLD_TIME_DAWN = 0,
|
|
WORLD_TIME_DAYLIGHT = 1,
|
|
WORLD_TIME_EVENING = 2,
|
|
WORLD_TIME_NIGHT = 3,
|
|
};
|
|
|
|
enum PLAYER_POSITION_INFO
|
|
{
|
|
PLAYER_IN_WORLD = 0,
|
|
PLAYER_IN_DUNGEON,
|
|
PLAYER_IN_DUNGEON_SIEGE,
|
|
PLAYER_IN_DUNGEON_RAID,
|
|
/// 2012.04.30 아레나가 추가가 되야 되서 기존걸 LOCATION_TYPE과 같은 이름인 MATCH로 바꿈 - prodongi
|
|
PLAYER_IN_MATCH,
|
|
PLAYER_IN_TOWN,
|
|
PLAYER_IN_TOWN_DUNGEON,
|
|
PLAYER_IN_DEATHMATCH,
|
|
PLAYER_IN_HUNTA,
|
|
PLAYER_IN_INSTANCE_DUNGEON_AUTO, // 2011.07.19 - servantes
|
|
PLAYER_IN_ARENA, /// 2012.04.30 - prodongi
|
|
PLAYER_IN_RAMADAN_PRAY_ROOM,
|
|
};
|
|
|
|
enum ADDON_WINDOW_POSITION
|
|
{
|
|
MOUSE_POSITION = 0,
|
|
CENTER_H_POSITION,
|
|
CENTER_V_POSITION,
|
|
LEFT_IN_POSITION,
|
|
LEFT_OUT_POSITION,
|
|
RIGHT_IN_POSITION,
|
|
RIGHT_OUT_POSITION,
|
|
TOP_IN_POSITION,
|
|
TOP_OUT_POSITION,
|
|
BOTTOM_IN_POSITION,
|
|
BOTTOM_OUT_POSITION,
|
|
USER_INPUT_POSTION,
|
|
};
|
|
|
|
const static float GAME_TERRAIN_DISTANCE_LV1 = 0.212f;
|
|
const static float GAME_TERRAIN_DISTANCE_LV2 = 0.3f;
|
|
const static float GAME_TERRAIN_DISTANCE_LV3 = 0.45f;
|
|
const static float GAME_TERRAIN_DISTANCE_LV4 = 0.7f;
|
|
const static float GAME_TERRAIN_DISTANCE_LV5 = 1.0f;
|
|
|
|
const static float GAME_PROP_DISTANCE_LV1 = 0.3f;
|
|
const static float GAME_PROP_DISTANCE_LV2 = 0.4f;
|
|
const static float GAME_PROP_DISTANCE_LV3 = 0.5f;
|
|
const static float GAME_PROP_DISTANCE_LV4 = 0.7f;
|
|
const static float GAME_PROP_DISTANCE_LV5 = 1.0f;
|
|
}
|
|
|
|
using namespace GAME_DEFINE;
|
|
|
|
// 2010.06.15 정의가 여러군데 있어서 여기로 통합함 - prodongi
|
|
#define FORCE_CHIP_SKILL_ID 6008
|
|
#define SOUL_CHIP_SKILL_ID 6009
|
|
#define RUNA_CHIP_SKILL_ID 6010
|
|
#define IS_AUTO_ATTACK_CHIP_SKILL_ID(id) ((id == FORCE_CHIP_SKILL_ID) || (id == SOUL_CHIP_SKILL_ID) || (id == RUNA_CHIP_SKILL_ID))
|
|
#define ISNT_AUTO_ATTACK_CHIP_SKILL_ID(id) ((id != FORCE_CHIP_SKILL_ID) && (id != SOUL_CHIP_SKILL_ID) && (id != RUNA_CHIP_SKILL_ID))
|
|
|
|
|
|
//Avatar 사용
|
|
const float CHECK_RANGE = 100.f;
|
|
const float RSHADOW_SIZE = 3.f;
|
|
const int UPDATE_TIME = 4000;
|
|
const int ATTACK_TIME = 500;
|
|
const int TRACE_TIME = 600;
|
|
const int DEF_SPEED = 17;
|
|
const int ATTACK_WAIT_TIME = 30000; ///< 전투 대기 모드 유지 시간
|
|
const float VIEW_NAME_PLATE_CULL_SIZE = 480.f; ///< 이름이 보이는 거리
|
|
|
|
const float DEFAULT_MOVE_SPEED = 100.0f / 7.0f; ///< 서버에 이리 돼있음
|
|
const float DEFAULT_ANI_PLAY_RATE = 4.8f;
|
|
|
|
const float HIDING_VISIBILITY_RATE = 0.2f;
|
|
const float HIDING_VISIBILITY_RATE_PARTY_RAID = 0.3f;
|
|
|
|
//World 사용
|
|
const float NPC_CLICK_LEN = 100.f;
|
|
const int RES_EVENT_TIME = 1500;
|
|
|
|
//종족 및 성별 카메라 높이
|
|
const float CAMERA_Z_OFFSET_DEVA_M = 15.f;
|
|
const float CAMERA_Z_OFFSET_DEVA_F = 14.f;
|
|
|
|
const float CAMERA_Z_OFFSET_GAIA_M = 15.f;
|
|
const float CAMERA_Z_OFFSET_GAIA_F = 14.f;
|
|
|
|
const float CAMERA_Z_OFFSET_ASURA_M = 15.f;
|
|
const float CAMERA_Z_OFFSET_ASURA_F = 14.f;
|
|
|
|
const float CAMERA_Z_OFFSET = 10.f;
|
|
|
|
#ifdef _RAC
|
|
const float GAME_EFFECT_DISTANCE = 50.0f*GameRule::DEFAULT_UNIT_SIZE; ///< 50미터로 제한
|
|
#endif
|
|
|
|
//게임만 사용
|
|
#ifdef _RAC
|
|
//Work 사용
|
|
const FLOAT ITEM_TAKE_RANGE = 5.f * GameRule::DEFAULT_UNIT_SIZE;
|
|
#endif
|
|
|
|
const float cam_pos[6][5][3] =
|
|
{
|
|
{ {-4,-6,16 }, {-1,-6,16 }, { 1,-5,17 }, { 3,-3,16 }, {-5,-3,17 }, }, ///< 데바 남 0
|
|
{ {-1,-5,15 }, { 0,-4,14 }, { 1,-4,14 }, { 2,-3,15 }, {-5,-2,15 }, }, ///< 데바 여 1
|
|
{ { 2,-7,14 }, { 1,-6,16 }, { 2,-5,16 }, { 5,-3,16 }, {-3,-4,16 }, }, ///< 아수라 남 2
|
|
{ { 0,-5,14 }, {-1,-4,14 }, { 1,-3,14 }, { 2,-3,14 }, {-2,-3,14 }, }, ///< 아수라 여 3
|
|
{ {-1,-6,15 }, { 1,-5,15 }, {-2,-5,15 }, { 2,-3,16 }, {-3,-3,17 }, }, ///< 가이아 남 4
|
|
{ { 0,-6,13 }, { 0,-5,14 }, { 0,-4,14 }, { 4,-2,14 }, {-2,-3,14 }, }, ///< 가이아 여 5
|
|
};
|
|
|
|
//해상도
|
|
const int RES_1024 = 1024;
|
|
const int RES_1280 = 1280;
|
|
const int RES_768 = 768;
|
|
|
|
bool static IsValidSex( int nSex )
|
|
{
|
|
switch( nSex )
|
|
{
|
|
case SEX_FEMALE: return true;
|
|
case SEX_MALE: return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool static IsValidRace( int nRace )
|
|
{
|
|
switch( nRace )
|
|
{
|
|
case GCLAN_GAIA: return true;
|
|
case GCLAN_DEVA: return true;
|
|
case GCLAN_ASURA: return true;
|
|
case GCLAN_ALFEN: return true;
|
|
case GCLAN_GIAN: return true;
|
|
case GCLAN_AMAZON: return true;
|
|
}
|
|
|
|
return false;
|
|
} |