#ifndef __DEFINE_H__ #define __DEFINE_H__ #include "Version.h" #include "Define.Build.h" #include "DefineForLog.h" #if defined(__KR) || defined(_KOREA) #define GENERAL_SHOUT_LIMIT_LEVEL 1 #elif defined(__TW) || defined(_TAIWAN) #define GENERAL_SHOUT_LIMIT_LEVEL 20 #elif defined(__CN) || defined(_CHINA) #define GENERAL_SHOUT_LIMIT_LEVEL 15 #elif defined(__JP) || defined(_JAPAN) #define GENERAL_SHOUT_LIMIT_LEVEL 1 #endif //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 二进制模块发布时需要的部分 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ typedef BYTE NUMTYPE; typedef WORD DURATYPE; typedef WORD POSTYPE; const POSTYPE INVALID_POSTYPE_VALUE = 255; const DURATYPE INVALID_DURATYPE_VALUE=10000; typedef INT64 DBSERIAL; typedef DWORD64 DBWLDSERIAL; typedef WORD SLOTCODE; typedef DWORD CODETYPE; typedef WORD KEYTYPE; typedef WORD LEVELTYPE; typedef BYTE SLOTIDX; typedef int FIELDID; typedef ULONGLONG MONEY; typedef DWORD CASH; typedef WORD MAPCODE; typedef WORD FIELDCODE; typedef WORD ZONEKEY; typedef INT64 EXPTYPE; typedef WORD PORTALKEY; const PORTALKEY INVALID_PORTAL_KEY = 0; //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 包装用!!优化用typedef:只在发送到客户端的包中使用 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ typedef int DAMAGETYPE; // extended by _NA001605_EP2_DAMAGETYPE_EXTENTION_ typedef short TILEINDEX; typedef WORD MONSTERCODE; typedef UINT PLAYERHP; typedef WORD MPTYPE; //__NA_001290_20090525_SHIELD_SYSTEM typedef WORD PLAYERSD; //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE typedef FLOAT PLAYERFP; //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #define DAMAGETYPE_MAX (2000000000) // expanded by _NA001605_EP2_DAMAGETYPE_EXTENTION_ //跳跃相关 #define MAX_JUMP_NODE 30000 #define MIN_JUMP_NODE 200 /// [2012-5-31 by i4u4me] 通过改变跳转算法,改变最大的悬停距离 #define MAX_JUMP_DISTANCE (12) // 最大跳跃距离 //#define MAX_JUMP_DISTANCE (15) // 最大跳跃距离 #define MAX_ALLPLAYERS_PACKET_SIZE ( 1500 ) // 发送周边玩家信息时最大分组尺寸 #define MAX_ITEMNAME_LENGTH ( 64 ) // 物品名称长度 #define MAX_SKILLNAME_LENGTH ( 64 ) // 技能名称长度 #define MAX_MAPNAME_LENGTH ( 64 ) // 地图名称长度 enum { MAX_ABILITY_NUM = 5 }; // 每一个技能的最大伤害(技能效果)个数 #define MAX_SUMMONED_NUM ( 10 ) // 一次性召唤的最大数量 #define MAX_AREA_ID_LENGTH ( 4 ) // Area区域ID长度 // (NOTE) 自0816版本以来未使用的节 // removed by __NA_963_LOG_LIB_VERSION_REFACTORING #define MAX_STATEINFOSTREAM_SIZE ( 1024 ) // 角色状态信息 #define MAX_DBSAVE_STATEINFO_NUM ( 40 ) // 存储在DB中的最大状态数 //_NA_001990_ACSYSTEM_ADD //_NA_007422_20140716_MODIFY_MAX_ACHIEVEMENT_COUNT #define MAX_ACHIEVEMENT_COUNT (3000) //最大成就 #define MAX_ACHIEVEMENT_REWARD (2) //成就奖励个数 #define MAX_ACHIEVEMENT_OBJECT (10) //成就和数量 #define ACHIEVEMENT_UINT_SIZE (23) //成就的长度 #define MAX_ACHIEVEMENT_PARENT_CODE (4) //先行AC代码最大个数 #define MAX_SKILL_SLOT_NUM (100) #define MAX_VENDOR_SLOT_NUM (130) //extended by __NA000920_20080306_NPCSHOP_ITEM_SELL_HISTORY (from 125) #ifdef _NA_0_20101124_VENDOR_SLOT_COUNT_INCREASE #define MAX_PERSONAL_VENDOR_SLOT_NUM (40) #else #define MAX_PERSONAL_VENDOR_SLOT_NUM (24) #endif #define MAX_TOTAL_SLOT_NUM (MAX_INVENTORY_SLOT_NUM+MAX_EQUIPMENT_SLOT_NUM+MAX_SKILL_SLOT_NUM+MAX_WAREHOUSE_SLOT_NUM+MAX_TEMPINVENTORY_SLOT_NUM) #define MAX_QUICK_SLOT_NUM (48) #define MAX_STYLE_SLOT_NUM (4) #define MAX_EVENT_INVENTORY_SLOT_NUM (5*5) //< 活动背包槽数一页5*5=25 #define MAX_INVENTORY_TAB_NUM (5) //< 背包基本标签个数 #define MAX_CHARGE_INVENTORY_TAB_NUM (5) //< 背包基本标签个数 #define MAX_INVENTORY_TAB_TOTAL_NUM (MAX_INVENTORY_TAB_NUM+MAX_CHARGE_INVENTORY_TAB_NUM) #define MAX_INVENTORY_SLOT_PER_TAB (15) //< 每个背包标签的槽数 enum { MAX_PANDORA_SLOT_NUM = 8 }; // 潘多拉盒子槽数 #define MAX_CHANGE_ITEMSTAT_SLOT_NUM (4) //< 物品四重奏转换槽数 #define MAX_WAREHOUSE_INVENTORY_PWD_LENGTH (8) // 仓库库存编号 #define MAX_SSN_STREAM_LENGTH (10) // 社会团体号码 (到10字为止) #ifdef _KR_0_20120207_CRYPT_SHA256 #define MAX_SSN_ENCODED_STREAM_LENGTH (65) #else #define MAX_SSN_ENCODED_STREAM_LENGTH (16) #endif //只在游戏服务器使用的插槽 #define MAX_TRADE_SLOT_NUM (20) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 商店列表相关 #define MAX_ONLOOKER_VENDOR_NUM (100) //商店列表NPC用户POOL的Init size(可增加) #define COUNT_SEARCH_CONTAINER_INIT (10) //搜索商店列表时,向量的Init size(可能会增加) #define COUNT_VENDOR_IN_PAGE (10) //进入商店列表一页的列表数 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #define TEMP_DBSERIAL_VALUE (0) #define DBSERIAL_MASK_VALUE (0xFFFFFFFFFFFFFFFF) #define QUICK_SLOT_NULL_VALUE (255) #define INVALID_SLOT_POS (255) #define MAX_LEVEL ( 250 ) // 最大等级(据说以后最大等级可以改变!!) #define MIN_PENALTY_LEVEL ( 11 ) // 最小面板应用级别 #ifdef _NA_003966_20111227_ADD_ENCHANT enum { MAX_ENCHANT_GRADE = 15 }; #else enum { MAX_ENCHANT_GRADE = 12 }; #endif enum { MAX_AWAKENING_GRADE = 9, }; // 最大觉醒等级 // _NA_008124_20150313_AWAKENING_SYSTEM //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 任务相关 #ifdef _NA_1388_20101207_EP2_INCREASED_MISSION_MAX #ifdef _NA_003649_20111115_BATTLE_ZONE_HARDMODE #define MAX_MISSION_NUM 100 #else #define MAX_MISSION_NUM 50 #endif #else #define MAX_MISSION_NUM 32 #endif #define MAX_HIDDEN_MISSION_NUM 16 #define MAX_MAPCODE_NUM 0xFFFF #define BEGIN_MISSION_MAP 1 //开始任务地图代码 #define BEGIN_CHUNTING_MAP 40001 //C狩猎地图代码开始 #define BEGIN_PVP_MAP 20001 //PVP地图代码开始 //任务接力相关. #define MISSION_RELAY_NOTICE_TIME 21000 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 级别功能限制相关 //#define CREATE_GUILD_LIMIT_LEVEL (20) #define LIMIT_LEVEL_WARHOUSE (6) #define LIMIT_LEVEL_RANKUP (7) #define LIMIT_LEVEL_ENCHANT (8) #define LIMIT_LEVEL_ACCESSORY (15) #define LIMIT_LEVEL_SACCESSORY (30) #ifdef _NA_007408_20140711_MODIFY_CRYSTALLIZE // 删除结晶化等级限制 #else #define LIMIT_LEVEL_CRYSTALIZE (9) #endif //_NA_007408_20140711_MODIFY_CRYSTALLIZE //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ///重新定义 #define MAX_EXP_POTION_VALUE ( 500000000000 ) //经验药水提升的最大经验 #define DISTANCE_SPACE_GET_ITEM 7.0f // 空间食用的物品是10米以内的物品 #ifdef _NA_004530_20120315_1202_SKILL_RENEWAL enum { MAX_SKILL_LEVEL = 20 }; // 最大技能等级 enum { MAX_SKILL_OVER_LEVEL = 20 }; // 最高技能等级 #else #ifdef _NA_0_20100901_SKILLTREE_SYSTEM enum { MAX_SKILL_LEVEL = 5 }; // 最大技能等级 enum { MAX_SKILL_OVER_LEVEL = 10 }; // 最高技能等级 #else enum { MAX_SKILL_LEVEL = 10 }; // 最大技能等级 enum { MAX_SKILL_OVER_LEVEL = 20 }; // 最高技能等级 #endif #endif // 名称长度定义 #define MAX_CLIENT_CHARNAME_LENGTH ( MAX_CHARNAME_LENGTH + 1 ) // 发送到客户端的包或客户端中包含角色名字的string长度. #define MAX_CLASSNAME_LENGTH ( 16 ) #define MAX_TITLEID_LENGTH ( 16 ) // 角色名称以外的特殊称号 #define MAX_SHOPNAME_LENGTH ( 32 ) // 商店名称长度 #define MAX_SMALLDATETIME_SIZE ( 16 ) // "2006-10-12 24:03" ( 分单位 ) #define MAX_MIDDATETIME_SIZE ( 19 ) // "2006-10-12 24:03:00" ( 秒单位 ) #define MAX_DATETIME_SIZE ( 23 ) // "2006-10-12 24:03:00.123" ( 毫秒单位 ) #ifdef _INTERNATIONAL_UI #if defined (_GLOBAL) || defined (_RUSSIA) #define MAX_ROOMTITLE_LENGTH ( 31 ) #else #define MAX_ROOMTITLE_LENGTH ( 29 ) #endif//北美限制为30字以外的28字。 #else //_NA_20110630_BATTLE_ZONE_RENEWAL #define MAX_ROOMTITLE_LENGTH ( 31 ) #endif//_INTERNATIONAL_UI(英文限制为30字.) #define MAX_ROOMPASSWORD_LENGTH ( 7 ) // 房间密码最大长度 #define MAX_VENDOR_TITLE_LENGTH (80) //< 个人商店标题长度 #define MAX_VENDOR_SEARCH_LENGTH (20) //< 搜索词长度 #define VENDOR_ITEMS_PER_PAGE (12) // 个人商店搜索结果每页物品数量 #define MAX_CHAT_LEN (100) #define MAX_NOTICE_LEN (1024) #define MAX_SHOUT_LEN (255) // 数量定义 #define MAX_MONSTER_NUM ( 10000 ) // 游戏全体怪物数 #define MAX_PLAYER_NUM ( 1000 ) // 游戏整体的最大东接角色数 #define MAX_FIELDITEM_NUM ( 3000 ) // 全部游戏道具数 #define MAX_TARGET_NUM ( 32 ) // 范围攻击时最大可攻击的角色数 enum { MAX_FIGHTING_ENERGY_NUM = 5 }; // 最大可充值的投机数量 #define MAX_EFFECT_COUNT ( 10 ) // 施展技能时最大效果数 #define MAX_PARTYMEMBER_NUM ( 10 ) // 队员的最大个数 #define MAX_FIELD_PARTYMEMBER_NUM ( 10 ) // 场景中队员的最大个数 #ifdef _NA_002050_20110216_ADD_GENDER #define MAX_CHARACTER_LIST_NUM (10) // 一个服务器群中可生成角色的最大个数 #define MAX_CHARACTER_SLOT_NUM (10) // 一个服务器群中可生成角色的最大个数 // 设置角色槽数相关(变更时需要重新构建) struct MaxCharListConfig { enum { kDefaultSlotSize = 6 }; // 默认角色槽数 enum { kMaxSlotSize = MAX_CHARACTER_LIST_NUM }; // 最大角色槽数 enum { kUseExtension = 1 }; // 是否使用角色栏扩展(0,1) enum { kSlotSizePerExtension = 1 }; // 扩展时增加的角色槽数 }; #else #define MAX_CHARACTER_LIST_NUM (6) // 一个服务器群中可生成角色的最大个数 #define MAX_CHARACTER_SLOT_NUM (6) // 一个服务器群中可生成角色的最大个数 #endif // _NA_002050_20110216_ADD_GENDER #define VILLAGE_SECTOR_SIZE 200 // mail地图的扇区大小(为了处理视图的一个扇区大小(正方形) #define FIELD_SECTOR_SIZE 200 // 场景的扇区大小 #define ROOM_SECTOR_SIZE 200 // 战区大小 #define DOMINATION_SECTOR_SIZE 200 // 区域占领战的扇区大小 #define PLAYER_MOVE_UPDATE_TICK (500) // 玩家的移动更新时间 #define SERVER_UPDATE_TICK (20) // 服务器的整体Update Tick #define DISTANCE_NPC_MEET 6.0f // 6米以内与npc接头的位置. #define JUMP_DAMAGE_HEIGHT 8.0f // 8米开始适用跳跃伤害 #define JUMP_METER_PER_DAMAGE 60.0f // 每米伤害 #define MAX_IPADDRESS_SIZE 15 #define DEFAULT_ADJUST_LIMIT (3.0f) // GetTileToStand的参数值 // 动画帧时间 // 引擎中DEF_NUM_FRAMES_PER_MS的值为0.03f #define DEF_NUM_FRAMES_PER_MS (30) #define SPEED_MULTIPLIER (0.001f) // 角色速度系数 #define MAX_MAP_NUM (100) // World.txt的Row个数 //个体商店手续费 #define TRADE_COMMISSION_RATE (0.05f) //< 5% #if NATION_BUILD_VERSION >= 1002 #define CHAR_DESTROY_LEVEL (150) //< 角色完全删除等级 (70) #else #define CHAR_DESTROY_LEVEL (40) //< 角色完全删除等级 (40) #endif // GM命令的MAX Define值 #define GM_MAX_CREATE_ITEM_NUM ( 1000) #define GM_MAX_CREATE_MONEY ( 1000000000) #define GM_MAX_STAT_UP_VALUE ( 100) #define GM_MAX_SKILLPOINT_UP_VALUE ( 100) #define MAX_RANK_OPTION ( 49) #define MAX_ITEM_GRADE ( 1) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // PVP相关时间延迟 #define PVP_PRESS_KEY_TIMEOUT_TIME (30*1000) #define PVP_PRESS_KEY_LEAVE_TIME (PVP_PRESS_KEY_TIMEOUT_TIME - (10*1000)) // 20秒内如果没有回答的话就把回到村子里的包裹扔掉 #define PVP_MATCHLESSS_DELAY_TIME (10*1000) #define PVP_REVIVAL_DELAY_TIME (20*1000) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 竞争猎人相关时间延迟 #define CHUNTING_TIMEATTACK_EXPIRE_TIME (20*60*1000) // 时间攻击维持时间 #define CHUNTING_SURVIVAL_EXPIRE_TIME (20*60*1000) // 服务器间隔维护时间 #define CHUNTING_INIT_POTION_NUM (40) // 初始任务数 #define CHUNTING_MAX_MEMBER_NUM (10) // 最大成员数 #define CHUNTING_RESURRECTION_DELAY_TIME (5*1000) // 复活延迟 #define CHUNTING_INTERVAL_START_READY (20*1000) // 进入其他队伍后到游戏开始为止延迟 #define CHUNTING_TIMEATTACK_EXPIRE_TIME_GUILD_PVP (10*60*1000) #define CHUNTING_SURVIVAL_EXPIRE_TIME_GUILD_PVP (10*60*1000) #define SKILL_COOLTIME_MARGIN (500) // Server: 比起Clara,选择小的冷却时间,降低冷却时间的技能失败率. //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 公会相关 #define MAX_GUILDMARKSTREAM_SIZE (3072) #define MAX_GUILDSTYLESTREAM_SIZE (8) #define MAX_GUILDNOTICE_LENGTH (768) #define MAX_GUILD_INTRODUCTION_LENGTH (768) #define CREATE_GUILD_LIMIT_LEVEL (20) //<< 创建帮派等级限制 #define GUILD_UP2GP_RATE (1000000) //<< 公会UP:GP转换比率 #ifdef _NA_007239_20140521_BUG_GUILDRELATION_COUNT #define MAX_ALLIENCE_GUILD_NUM (20) // 同盟公会最大数 #define MAX_HOSTILITY_GUILD_NUM (0) // 敌对公会最大数 #define MAX_ONE_SIDE_HOSTILITY_NUM (0) // 单方面宣布敌对公会最大数 #else // 公会更新之前-以后 #define MAX_GUILD_RELATION_NUM (10) // 每个公会关系公会最大数 #define MAX_ALLIENCE_GUILD_NUM (10) // 同盟公会最大数 #define MAX_HOSTILITY_GUILD_NUM (5) // 敌对公会最大数 #define MAX_ONE_SIDE_HOSTILITY_NUM (100) // 单方面宣布敌对公会最大数 #endif //_NA_007239_20140521_BUG_GUILDRELATION_COUNT #define MAX_GUILD_MEMBER_NUM (200) //<< 当前可获得的最大公会成员数 #define MAX_GUILD_CORPS_MEMEBER_NUM (60) //<< 公会军团可获得的最大公会成员数 #define MAX_GUILD_CORPS_NUM (8) // 每个公会最大军团数(包括直辖军团) #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION #define MAX_GUILD_JOIN_REQUEST_NUM (30) // 加入公会邀请列表最大数 #define MAX_GUILD_JOIN_REQUEST_TIME_MAX (24*60*60) // 加入公会请求维持时间(单位秒) #define MAX_GUILD_JOIN_REQUEST_PLAYER_NUM (5) // 玩家可申请的最大加入请求数 #define MAX_GUILD_FACILITY (8) // 公会设施最大数 #define MAX_GUILD_FACILITY_OPTION (2) // 公会设施选项最大数 typedef BYTE FCODE; //公会设施种类 typedef int FLEVEL; //公会设施等级 typedef BYTE ATYPE; //帮派激活类型 #endif //_NA_007330_20140620_GUILD_SYSTEM_EXTENSION //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 堕落的寺院 #define VERSION_AREA_TILE ( 1) //WAT文件版本 typedef INT UPTYPE; typedef INT GPTYPE; typedef INT GUILDGUID; typedef INT GUILDMARKIDX; ///< 映射码 typedef INT CORPSGUID; typedef INT CAMPGUID; //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ typedef INT CHARGUID; typedef INT USERGUID; typedef BYTE MISSIONNO; //< 不会超过MAX_MISSION_NUM typedef int RANKINGKEY; //< 排行榜编号 #if defined (_NA_006802_20130704_REORGANIZATION_RANK_SYSTEM) typedef BYTE RANKINGID; //< 添加地图代码重复导致的固有密钥值。 typedef BYTE RANKINGTYPE; //< 因为地图代码相同,排名类型也会不同,所以追加。 typedef WORD RANKING; // 排名显示类型 #endif // _NA_006802_20130704_REORGANIZATION_RANK_SYSTEM typedef WORD RANKINGNO; //< 排行榜类别编号 == MAPCODE typedef INT CORPSGUID; //< 公会军团GUID typedef INT GAMECHUUSN; typedef UINT64 BETAKEY; #ifdef _NA_0_20100819_AGGRO_RENEWAL typedef DWORD BATTLEPOINT; #else typedef WORD BATTLEPOINT; #endif #ifdef _NA_008012_20150204_SUN_RANKING_SYSTEM typedef INT64 SCORE; //< 排名分数 #endif // _NA_008012_20150204_SUN_RANKING_SYSTEM /// 总是使用这个类型!!!!数据型(DATATYPE)统一 typedef WORD MAPID; ///< 服务器标识 typedef int SOUND_INDEX; ///< 声音指数:相同的声音处理 typedef DWORD PLAYERKEY; //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //WAYPOINT相关 typedef WORD WPINDEX; //< 当前DB为int #ifdef _NA_007942_20150113_MODIFY_RUNE_STONE_WAYPOINT_MAXCOUNT #define MAX_CHAR_WAYPOINT_NUM (15) // 个人微博积分最大个数 #else #define MAX_CHAR_WAYPOINT_NUM (10) // 个人微博积分最大个数 #endif //_NA_007942_20150113_MODIFY_RUNE_STONE_WAYPOINT_MAXCOUNT //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //采集相关 #define MAX_COLLECTION_LIST_NUM (255) //< 脚本的最大个数(可采集采集采集物种类) #define MAX_FIELD_COLLECTION_NUM (255) //< 场景中存在的最大个数 #define MAX_COLLECT_DISTANCE_OBJ (10) //< 采集物与可采集最大距离(采集物与距离差) #define MAX_COLLECT_DISTANCE_CHAR (5) //< 角色可获得奖励的最大距离(起始和结束时距离差) //{__NA001283_20090303_COLLECTION_MAPOBJECTID // 地图目标键在生成时内部使用20000次,, // 触发器使用从1号开始的号码, // 与触发方相关的逻辑需要更改为触发号. // MapObjectKey使用(200000~)值,TriggerObjectKey使用(1~)值。 //将下级密钥(1~)转换为上级密钥(200000~) #define Conv_MapObjectKey(Key) (MAP_OBJECT_KEY>Key?Key+MAP_OBJECT_KEY:Key) //将上位键(200000~)转换为下位键(1~) #define Conv_TriggerObjectKey(Key) (MAP_OBJECT_KEY<=Key?Key-MAP_OBJECT_KEY:Key) //} //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //分组系统 '__KR_001355_20090608_GROUPINGSYSTEM_DATA' #define MAX_GROUP_MEMBER_LOW_MAX (5) //个人可拥有的最大子列表个数 #define MAX_GROUP_MEMBER_HIGH_MAX (1) //个人可拥有的最大上级列表个数 #define MAX_GROUP_MEMBER (MAX_GROUP_MEMBER_LOW_MAX + MAX_GROUP_MEMBER_HIGH_MAX)//组总人数 #define MAX_DATE_GROUPBONUS (7) //为了获得集团经验值奖金需要重新接触的日子。 #define HIGH_MEMBER_LEVEL (80) //上位成员等级,只在中国版本中使用 #define LOW_MEMBER_LEVEL (10) //下级成员等级,只在中国版本中使用 #if defined (_CHINA) #define MAX_GROUP_EXP (10000000) //离线最大累计经验 #else #define MAX_GROUP_EXP (3000000) //离线最大累计经验 #endif //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ typedef DWORD REGENID; typedef DWORD UNITGROUPID; // 认证协议中使用的值 const int GAMECHU_USN_MAX = 10; const int INFO_MAX_LEN = 64; #if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) const int ID_MAX_LEN = 50; #else const int ID_MAX_LEN = 24; #endif #ifndef CHECK_ID_LENGTH_BUFFER #if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_) #define CHECK_ID_LENGTH_BUFFER(member) \ BOOST_STATIC_ASSERT(static_cast(sizeof(member)/sizeof(member[0])) == (ID_MAX_LEN + 1) && \ ID_MAX_LEN == 50) #else #define CHECK_ID_LENGTH_BUFFER(member) \ BOOST_STATIC_ASSERT(static_cast(sizeof(member)/sizeof(member[0])) >= ID_MAX_LEN && \ ID_MAX_LEN == 24) #endif #endif const int PASSWD_MAX_LEN = 24; #define MAX_IP_STRING_LEN 15 // NOTE: f110923.1L, 已从serverstruct.h移动 const int IP_MAX_LEN = 32; // NOTE: f110923.1L, 替换为 MAX_IP_STRING_LEN. 添加Size以备Unicode(16->32) const int MAX_IP_LENGTH = 16; // NOTE: f110923.1L, 不再使用,为了配合Shop服务器而添加 const int AUTH_SERIAL_KEY_LEN = 32; // 连接串行密钥(认证) const int MAX_WORLD_NAME_LEN = 32; // 世界名称长度 const int MAX_CHANNEL_NAME_LEN = 32; // 频道名称长度 const DWORD HEARTBEAT_TICK = 20000; #if USING_GAMEGUARD const DWORD GAME_GUARD_CHECK_TICK = 5000; // 每5秒检查一次游戏后卫 #endif // USING_GAMEGUARD #ifdef _KR_0_20120207_CRYPT_SHA256 enum { kCryptStringSize = 65 }; #else enum { kCryptStringSize = 16 }; #endif //日志文件的路径最大长度 #define MAX_LOGPATH_LEN 256 //交易一定金额以上时登录(1亿) #define LOG_TRADE_OVER_MONEY 100000000 //任务房生成时等级差异值。 #define MISSION_LEVEL_JOIN_OFFSET 25 #define HUNTING_JOIN_LEVEL_OFFSET 15 const BYTE MAX_VALKYRIE_RELOAD_COUNT = 20; // 女武神武器最大装填数 #ifdef _NA_000094_20100622_ENHANCED_USER_BLOCK_LIST #define MAX_FRIEND_STAT_NUM 200 // 可以进入一个分组的最大好友数 #define MAX_BLOCK_STAT_NUM 200 // 一个分组的最大屏蔽数 #define MAX_FRIENDBLOCK_STAT_NUM 400 // 包含一个分组的好友/屏蔽的最大数字 #else #define MAX_FRIEND_STAT_NUM 90 // 可以进入一个包的最大好友数 #define MAX_BLOCK_STAT_NUM 90 // 一个分组的最大屏蔽数 #define MAX_FRIENDBLOCK_STAT_NUM 190 // 包含一个分组的好友/屏蔽的最大数字 #endif //_NA_000094_20100622_ENHANCED_USER_BLOCK_LIST #define MAX_REVENGE_STAT_NUM 10 // 可以进入一个包的最大风险对象数字 #define MAX_FRIENDINVITATE_REWARD_NUM MAX_FRIEND_STAT_NUM * 4 // 可放入一个包的好友奖励列表信息 //_NA_0_20100527_ADD_CHAR_RELATION_MEMO #define MAX_FRIEND_MEMO_LENGHT 114 // 详细信息窗口的便笺尺寸 #define __AUTH_TEST__ /*整理后的difine*/#define REMOVE_ATTACK_MOVE // 删除攻击移动 // 事件关联值 #define _MAX_EVENT_REGITEM 5 // 可在一个活动中登录的最大道具数 // NOTE: increased by _KR_0_20091021_FIRENDINVITATION_EXTEND //邀请朋友的活动有4种奖励。 #define _MAX_EVENT_REWARD 4 // 一个活动给予的奖励数 #define _MAX_EVENT_ROW_NUM 100 // 当前正在执行的活动最大个数 #define MAX_AKPATTERN_SIZE 1024 // 模式数据最大大小 #define MAX_MEMO_NUM 200 // 最大条数 #define MAX_MEMO_PAGENUM 20 // 发送到一页(分组单位)的最大纸条数量(共200个为20*10=200,所以发送10次) #define MAX_MEMO_LENGTH 200 // 实际长度(BYTE) #define MAX_MEMO_STRLENGTH 201 // 包含NULL #define MAX_SUBJECT_WLENGTH 10 // 实际长度(wchar_t) #define MAX_SUBJECT_LENGTH 20 // 实际长度(BYTE) #define MAX_SUBJECT_STRLENGTH 21 // 包含NULL typedef ULONGLONG MEMOGUID; // 频道聊天室最大入场人数(没有定义) #if defined (_RUSSIA) #define MAX_CHATZONE_USER 500 #else #define MAX_CHATZONE_USER 255 #endif // 将null字符变形为DWORD型的值 #define Null_Value 1819047246 // 认证服务器请求客户端连接结束时,添加理由标志-昌贤删除后再次添加。补丁时定义要解开 #define _AUTH_USERDISCONN_CODE #define MAX_VERSION_SIZE 64 // 脚本或各种版本的尺寸 //有关报告的价格。 #define MAX_MODULE_NAME_SIZE 64 #define MAX_BUILD_VERSION_SIZE 8 #define MAX_OS_NAME_SIZE 64 #define MAX_PROCESS_NAME_SIZE 100 #define MAX_PHYSICAL_MEMORY_SIZE 32 #define MAX_DIRECTX_NAME_SIZE 64 #define MAX_DESCRIPT_SIZE 64 #define MAX_DISPLAY_MEMORY_SIZE 32 #define MAX_DRIVER_VERSION_SIZE 32 #define __NA_515_20070608_JUMP_DAMAGE #define MAX_SOCKET_OPTION_INDEX 1024 #define MAX_ITEM_OPTION_KIND_NUM 128 // 删除 _NA_000251_20100727_SOCKET_SYSTEM #define SKILLCODE_INVALID 0 #define SKILLCODE_NORMAL_ATTACK 65500 #define SKILLCODE_FIGHINGENERGY 2101 // 技能码 #define MAX_GUILD_DELEGATE_RIGHT 6 //__NA_000596_20070821_GUILD_CLASS_SYSTEM #define INFINITE_ITEM_DAY 10000 #define HEIGHT_OF_STORY 20 // 一层楼高 ///////////////////////////////////////////公会 /////////////////////////////////////////// #define INVALID_GUILDGUID (0) #define MAX_REPURCHASE_ITEM_NUM (5) // 重新购买物品列表的最大个数 #define GUILDWAREHOUSE_USING_LEVEL (1) // 无法使用公会仓库的等级 #ifdef _NA_003923_20120130_GUILD_RENEWAL #define GUILDWAREHOUSE_SLOTEX_GUILD_GRADE (3) // 无法使用扩展槽的公会等级 #define GUILDWAREHOUSE_SLOTEXPOS (25) // 行会等级3以上开始可使用的槽位编号 #define GUILDWAREHOUSE_SLOTEXPOS_BY_CASHITEM (50) // 使用公会等级缓存道具可使用的槽位编号 #define MAX_GUILDWAREHOUSE_SLOT_PER_TAB (25) // 每个公会仓库标签的槽数 #else #define GUILDWAREHOUSE_SLOTEX_GUILD_GRADE (2) // 无法使用扩展槽的公会等级 #define GUILDWAREHOUSE_SLOTEXPOS (24) // 行会等级2以上开始可使用的槽位编号 #define GUILDWAREHOUSE_SLOTEXPOS_BY_CASHITEM (48) // 使用公会等级缓存道具可使用的槽位编号 #define MAX_GUILDWAREHOUSE_SLOT_PER_TAB (24) // 每个公会仓库标签的槽数 #endif //_NA_003923_20120130_GUILD_RENEWAL #define MAX_GUILDWAREHOUSE_TAB_NUM (1) // 公会仓库基本标签数 #define MAX_GRADE_GUILDWAREHOUSE_TAB_NUM (1) // 公会仓库公会等级为3,可使用的最大标签数 #define MAX_CHARGE_GUILDWAREHOUSE_TAB_NUM (1) // 公会仓库缓存可使用的最大标签数 #define MAX_GUILDWAREHOUSE_TAB_TOTAL_NUM (3) // 公会仓库中可使用的最大标签数 #define MAX_GUILDWAREHOUSE_LOGLIST_NUM (200) #define MAX_GUILDWAREHOUSE_LOGPAGE_NUM (20) #define GUILD_DESTROY_WAIT_TIME (3*24*60) #define GUILDGRADE_AT_GUILDWAREHOUSE_CREATE (2) //创建公会仓库的Guild Grade #define GUILDWAREHOUSE_TAB_COUNT_AT_GUILD_CREATE (1) //创建公会仓库时提供的仓库标签数量 #define GRADE_AT_GUILD_CREATE (1) //创建帮派时基本Guild Grade #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION #define MAX_GUILDNAME_LENGTH ( 16 ) // 行会名最大长度 #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION ////////////////////////////////////////////占领战//////////////////////////////////////// #define MAX_TILE_NODE_CNT_IN_DOMINATION 50 #define MAX_ATTACK_HEIGHT_IN_DOMINATION 4.5f /////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////BIT CONTROL/////////////////////////// #define BIT_RESET(val) (val = 0) #define BIT_ON(val,bit) (val |= bit) #define BIT_OFF(val,bit) (val &= (~bit)) #define IS_BIT_ON(val,bit) ((val & bit) == bit) //////////////////////////////////////////////////////////////////////// #define PACKET_PTR_CONVERT(type, obj, Value) \ type* obj = static_cast(Value); #define _MAKESTR(s) #s #define MAKESTR(s) _MAKESTR(s) enum { MAX_PET_NAME_LENGTH = 10 }; //__NA_1131_PET_NAME_SETTING // used by __NA_001359_20090619_HEIM_LOTTO_SYSTEM = { // 如果没有Cla/服务器/DB协议,下一个选项将无法更改 #define LOTTO_MIN_NUMBER 1 // 可选择的最小数字 #define LOTTO_MAX_NUMBER 25 // 可选择的最大数字 #define LOTTO_NUM_PICKS 4 // 应征/抽奖时选择几个数字 #define LOTTO_NUM_RECENT_DRAWS 2 // 最近第几集的海姆彩票数据(>=2) #define LOTTO_MAX_NOTICE 10 // 保存最近几条中奖通知 #if defined (_GLOBAL) || defined (_RUSSIA) #define LOTTO_MAX_TICKETS 30 // 一个角色可拥有的彩票纸的最大个数 #else #define LOTTO_MAX_TICKETS 5 // 一个角色可拥有的彩票纸的最大个数 #endif // 服务器端页面处理的常数 #define LOTTO_NUM_WINNERS_PER_PAGE 200 // 选择中奖者列表时每页记录数 // } #define CHANNEL_DOMINATION_WAR 0 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //区域占领战系统 #define MAX_DOMINATION_ACTIONLIST (10) // 拍卖窗口显示的行会列表数字 #define MAX_DOMINATION_MAP (100) // 开始占领战地图的总个数 #define MAX_DOMINATION_AUCTION (100) // 可竞标一个地区拍卖的公会个数 #define MAX_DOMINATION_DEFENSEWALL_NUM (3) // 占领区前防墙个数 #define DOMINATION_DEFFENSWALL_POINT (5) // 虽然现在5点是MAX,但是以后可以变更。 // WARNING: 对于Gamellu,只需要测试值 (3)!, 必须还原为有效值 (20) #define MAX_DOMINATION_MEMBER (20) // 可参与占领战的成员最大值 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #define CONDITION_DELEY (1000) // 状态触发更新时间 #if defined (_RUSSIA) #define GIFT_REQ_USERLEVEL (20) //可赠送俄罗斯Level #else #define GIFT_REQ_USERLEVEL (25) //北美可礼包Level #endif #ifdef _CHINA //_NA_001290_20090525_MODIFY_CALC_SD #define SDINCREASE_RATIO (3.0f) // SP计算用增加比率值 #else //youngmoon #2996SD公式更改 //#define SDINCREASE_RATIO (8.0f) #define SDINCREASE_RATIO (6.0f) #endif #define STATE_BATTLE_TIME (5000) // 战况持续时间 //_NA_20100812_INTEGRATE_SYSTEM_MEMO_DOMINATION #ifdef _NA_006801_20130814_RENEWAL_RANKINGSYSTEM_MINOR #define MAX_SYSTEM_MEMO_LIST (200) // 可一次性发送的系统内存个数 #else #define MAX_SYSTEM_MEMO_LIST (100) // 可一次性发送的系统内存个数 #endif //_NA_006801_20130814_RENEWAL_RANKINGSYSTEM_MINOR //_NA_0_20100901_SKILLTREE_SYSTEM #ifdef _NA_004530_20120315_1202_SKILL_RENEWAL enum { CHARACTER_SKILL_LEVEL_RATIO = 1 }; // 每级1积分 enum { REQUIRE_USED_SKILL_POINT_FOR_NEXT_LINE = 20 }; #else enum { CHARACTER_SKILL_LEVEL_RATIO = 3 }; // 角色等级3技能等级1 enum { REQUIRE_USED_SKILL_POINT_FOR_NEXT_LINE = 5 }; // 用于熟悉下一行技能的技能点数比例 #endif //_NA_20110630_BATTLE_ZONE_RENEWAL #define MAX_MISSION_COUNT (100) //可指定任务最大值 #define MAX_PARTYROOM_LIST (40) //战区列表中显示的队伍列表最大值 #define MAX_PARTYROOM_SEARCH_LIST (100) //搜索结果列表最大值 #define MAX_REQUIRE_ITEM (10) //要求物品种类值(必须与脚本的要求个数一致) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 与cash shop相关 //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #define GIFT_MESSAGE_LENGTH 201 #define BUY_STORAGE_ITEM_PER_PAGE 30 //保管盒最大物品数量限制30改为400,增加数组长度。 by:十里坡剑神 2021-08-20 #define GIFT_STORAGE_ITEM_PER_PAGE 30 #define SHOP_MAX_ITEM_BUY_COUNT 30 #define SHOP_MAX_ITEM_GIFT_COUNT 30 #define SHOP_MAX_CASH_DETAIL_COUNT 10 #define SHOP_MAX_ITEM_PROPERTY_COUNT 10 //shop游戏代码. #ifdef _KOREA #define SHOP_GAMECODE 113 #define SHOP_SALESZONE 329 #define SHOP_SERVERTYPE 0 // 按游戏积分类型进行支付百分比查询(InquireInGamePoint Value)。在SUN中不使用。 #elif defined(_CHINA) #define SHOP_GAMECODE 862 #define SHOP_SALESZONE 860 #define SHOP_SERVERTYPE 0 #elif defined(_JAPAN) #define SHOP_GAMECODE 844 #define SHOP_SALESZONE 847 #define SHOP_SERVERTYPE 0 #elif defined(_GLOBAL) #define SHOP_GAMECODE 503 #define SHOP_SALESZONE 505 #define SHOP_SERVERTYPE 687 #elif defined(_RUSSIA) #define SHOP_GAMECODE 856 #define SHOP_SALESZONE 853 #define SHOP_SERVERTYPE 852 #endif //_NA_003027_20111013_HONOR_SYSTEM #define MAX_HONORTITLE_COUNT (300) #define MAX_HONOR_POINT_INFO_COUNT (200) #define MAX_DAILYQUEST_INFO_COUNT (300) #define MAX_DAILYQUEST_PROGRESS_COUNT (24) #define MAX_GUILD_DAILYQUEST_PROGRESS_COUNT (5) #ifdef _NA_007407_20140710_CHALLENGE_DAILY_QUEST #define MAX_CHALLENGE_DAILYQUEST_PROGRESS_COUNT (1000) #endif //_NA_007407_20140710_CHALLENGE_DAILY_QUEST //_NA004034_20120102_POINT_WALLET_SYSTEM #define MAX_POINTWALLET_COUNT (100) //_NA_003923_20120130_GUILD_RENEWAL #define MAX_IN_GAME_GUILD_LOG (100) #define MAX_IN_GAME_LOG_PARAM_STR (20) // _NA_008283_20150511_NOTIFICATIONS_SYSTEM #define MAX_NOTIFICATION_COUNT (50) // _NA_008404_20150712_MINIGAME_SYSTEM #define MINIGAME_BINGO_WIDTH (5) #define MINIGAME_BINGO_HEIGHT (5) #define MINIGAME_BINGO_LENGTH (MINIGAME_BINGO_WIDTH * MINIGAME_BINGO_HEIGHT) #define MINIGAME_BINGO_MAX_REWARD_COUNT (12) #endif // __DEFINE_H__