Files
2022-10-26 12:25:11 +08:00

400 lines
16 KiB
C++

#ifndef GAMEDEFINE_H
#define GAMEDEFINE_H
#include "GameDefine_KIKI.h"
#include "GameDefine_KJWS78.h"
#include "GameDefine_JJUMBO.h"
#include "GameDefine_Engine.h"
#include "GameDefine_YJ.h"
#include "GameDefine_K2P.h"
#include "GameDefine_GS.h"
#include "GameDefine_Mjkim.h"
#include "GameDefine_LTJ.h"
#include "GameDefine_DH.h"
#include "GameDefine_YMS.h"
#include "GameDefine_SCJ.h"
#include "GameDefine_HSH.h"
//////////////////////////////////////////////////////////////////////////
// 与版本无关的客户端专用调试
//////////////////////////////////////////////////////////////////////////
#if defined(_DEBUG) || defined(_GAMECLIENT_VER)
//#define _YJ_EXECUTE_IN_MAPTOOL // 2010.07.26 / 任务测试环境改善工作
#define _NA_006519_20130311_TEXTURE_VIEWER // 2013.03.11 / 客户端纹理视图制作工作
#endif //_DEV_VER
//////////////////////////////////////////////////////////////////////////
// 被删除的difine
//#define CUSTOMIZE_HEAD
//#define _JSH_BUGFIX__LEAVE_PARTY_ // 2006.04.20 / 村庄里不适用组队退出命令的bug
//#define _JSH_ADD__ENCRYPT_PROTOCOL_ // 2006.03.15 / 协议加密
//#define _JSH_REFACTORING__WORLD_SERVER_CONNECTION_ // 2006.04.03 / 世界服务器连接重定向
//#define _JSH_ADD__GAME_EXIT_STANDING_BY_ // 2006.04.12 / 服务器选择等退出游戏时,暂时等待的功能
//#define _JSH_BUGFIX__LEAVE_FROM_PARTY_ // 2006.04.14 / 离开派对时,先确认是否参加派对
//#define _JSH_MODIFY__CHANGE_TRADE_PROTOCOL_ // 2006.04.14 / 玩家之间的交易:适用修改后的协议
//#define _ADD_REWARD_SCRIPT // 2006. 4. 7 / 补偿信息相关
//#define _ADD_FIELD_SCENE // 2006. 4. 11 / 添加场景.
//#define _ADD_FIELD_IN_DEAD_PROCESS // 2006. 4. 11 / 临死处理
//#define _ADD_ITEM_EXCHANGE // 2006. 4. 14 / 物品1:1兑换(商店出售物品时)
//#define _REMOVE_LOCK_KEYBOARD // 2006. 4. 18 / 删除键盘锁定喇叭
//#define _ADD_ITEM_DROP_DELETE_FOR_NOT_DROP_ITEM // 2006. 4. 26 / 删除无法下拉的物品.
//#define UI_RESOLUTION_VARIATION // 2006. 2. 15 / UI分辨率尺寸转换
//#define MINIMAP_POS_CHANGE
//#define NEW_ENGINE
//#define BLOCKED_TEXT // 2006. 2. 17 / 角色名称等加上黑色三角形
//#define PLAYER_HIT_DELTA_ANIMATION // 2006. 3. 22. 将角色伤害动画处理为德尔塔安妮
//#define MAPOBJECT_USE_WITH_ACTION // Map对象的使用也用Action处理
//#define CRITICAL_HIT_ANIMATION
//#define MONSTER_RADIUS // 怪物周边相关处理
//#define AREA_CONQUEST_NEW_PROJECT
//#define UI_AC_DIALOG
//#define MOD_NETWORK_HEARTBEAT
//#define _JBH_ADD_AGENT_ENCRYPT_PROTOCOL
//#define _ADD_CHARGE_ITEM_REPAIR_ASK // 2006. 12. 18 / 使用修理道具时添加询问意见的信息.
//#define _JBH_ADD_OPTION_CAMERA_BASE_MOVE // 2006.2.23 / 相机基准移动.
//#define _JBH_ADD_OPTION_CAMERA_BASE_MOVE_CALL_FUNCTION
//#define _JBH_MOD_ARMOR_KIT // 2006.4.20 / 物品4.11日适用
//#define _124_KIKI_CASH_ITEM_SHOP // 2006. 11. 21 / 收费项目集
//
//#define _ADD_QUEST_COMMON_FORWARD // 2006. 3. 30 / 显示任务接受列表及一般NPC对话时使用的UI
//#define _ADD_QUEST_REWARD // 2006. 3. 30 / 接受任务,进行,获得奖励的UI
//#define _ADD_QUEST_LIST_CONTENT // 2006. 3. 30 / 显示用户要求的任务内容.
//#define _ADD_QUEST_LIST_MISSION // 2006. 3. 30 / 显示用户要求的任务.
//#define _ADD_QUEST_MISSION_LIST // 2006. 3. 30 / 显示任务信息
//#define _ADD_QUEST_TIME_CHECK // 2006. 4. 19 / 任务时间检查
//#define _ADD_QUEST_AREA_CHECK // 2006. 4. 19 / 任务区域校验
//#define _ADD_QUEST_UNION // 2006. 4. 19 / 联合任务
//#define _ADD_QUEST_NPC_MARK_IN_RADAR // 2006. 4. 25 / 根据任务的NPC与雷达显示相关.
//#define _ADD_QUEST_CANCEL_BUTTON // 2006. 5. 19 / 添加任务放弃按钮.
//
//#define _ADD_QUEST // 2006. 3. 28 / Quest
//#define _ADD_OPEN_FORWARD_NPC_MEET // 2006. 3. 30 / 遇到NPC时显示任务前锋窗口.
//#define _ADD_QUEST_AUTO_ACCEPT // 2006. 5. 19 / 自动接受任务
//#define _ADD_QUEST_AUTO_ACCEPT_REQUEST // 2006. 8. 3 / 任务自动接受请求(无NPC)
//#define _ADD_QUEST_AUTO_REWARD_REQUEST // 2006. 8. 3 / 任务自动完成奖励请求(无NPC)
//#define _ADD_QUEST_CHAO_QUEST // 2006. 10.30 / 添加任务卡奥卡之间的裁减任务.
//#define _ADD_QUEST_VIEW_PROGRESS_QUEST // 2007. 1.15 / 显示任务进度.
//#define _ADD_CHARGE_ITEM_SAVE_POSITION_SCROLL // 2006. 11. 20 / 收费道具位置存储Potal滚动作业.
//#define _ADD_CHARGE_ITEM_EXTEND_INVENTORY // 2006. 11. 28 / 库存扩展工作.
//#define PCBANG_ITEM_TOOTIP_PRESENT // 2006. 12. 9 / 网吧道具选项输出.
//#define _ADD_CHARGE_ITEM
//#define AUTOTARGET_OPTION // 2006.2.21 / 攻击敌人时自动目标选项化.
//#define FIXTARGET_OPTION // 2006.2.21 / 每次按标签键时目标不会旋转,而是固定目标。选项化.
//#define FOG_RATE_CHANGE // 2006.2.15 / 设定包权值.
//#define _JBH_ADD_OPTION_SCROLL_ROTATION_SPEED // 2006. 2.23 / 相机转速滚动条选项.
//#define _JBH_ADD_OPTION_SCROLL_ROTATION_SPEED_CALL_FUNCTION
//#define _JBH_ADD_OPTION_SCROLL_MOUSE_SPEED // 2006. 2.24 / 鼠标移动灵敏度调节滚动条选项
//#define _JBH_ADD_OPTION_FORWARD_TARGETING // 2006. 2.24 / 前方击球选项.
//#define _JBH_ADD_OPTION_FORWARD_TARGETING_CALL_FUNCTION
//#define _JBH_MOD_CAMERA_DISTANCE // 2006.3.16 / 修改相机和角色的基本距离.
//#define _JBH_MOD_MOUSE_ACTION_CHANGE // 2006.3.16 / 鼠标左键切换.
//#define _JBH_MOD_OPTION_DIALOG // 2006.3.30 / 选项游戏拨号日志修改.
//#define _JBH_MOD_CHARACTERSCENE_NOT_MOUSE_CHANGE // 4.13 / 在角色场景中修改鼠标左右不变.
//#define _JBH_ADD_YOUNGMAN_PROTECT_MESSAGE // 2006.4.10 / 加载时青少年保护信息输出.
//#define _JBH_MOD_CAMERA_INTERPORATION // 2006.4.15 / 鼠标旋转时,摄像机被保存到Hero后面,删除.
//#define _JBH_ADD_NPC_SCALE // 2006.4.21 / 从NPC规模脚本中读取并处理.
//#define _JBH_ADD_FIELD_AREA_INFO_MESSAGE // 2006.4.22 / 进入场景时添加区域名称信息.
//#define _JBH_SPAWN_MONSTER_DIRECTION // 2006.4.26 / 赞助商设定特定怪物方向.
//#define _JBH_ADD_TIRED_SYSTEM_DIRECTING // 2006.3. 9 / 演绎疲劳度系统
//#ifdef LAST_TEST_RELEASE
// #define _SHOW_HEIM_IN_TESTLIVE_CASH_ITEM_SHOP
//#endif
#if defined ( _DEV_VER )
// 请不要处理注释!!
// 就算不处理注释也不会显示LUA控制台.
// 要想提高LUA控制台的话,客户端维护
// '请确认测试用例的使用方法.
//#define _USE_LUA_SCRIPT
#endif
//_NA_007192_20140428_CLIENT_LUA_MACRO_SYSTEM
// 激活lua
//#define _USE_LUA_SCRIPT
//////////////////////////////////////////////////////////////////////////
//
// 一个游戏频道环操作
//
//////////////////////////////////////////////////////////////////////////
#if defined(__KR000000_090128_CHANNELING__)
// 03/26 - 频道环开启
#ifdef __NA001334_090420_SERVER_SELECT_FACILITY__ // 新的服务器选择功能<-优先应用于频道环后,适用于全部版本
// 使用服务器通用解密
#else
#define _REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING // 服务器选择和删除重新连接
#endif
#undef _K2P_ADD_MOVE_TO_SERVER_BUTTON_001020 // 未定义角色选择窗口服务器选择按钮
#define _REMOVE_SERVER_LIST_CLOSE_BUTTON_FOR_CHANNELING // 删除服务器列表窗口的关闭按钮(REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING中分离(09.04.28) )
#define _MOD_IDENTITY_NUM__FOR_CHANNELING // 身份证号码输入限制改为6位(7->6)
#define _REMOVE_REGISTER_BUTTON_FOR_CHANNELING // 删除登录场景(服务器选择画面)中加入按钮
#if defined(_SUNGAME_DUMP_VER) || defined(_SUNGAME_VER)
// #define _COMMON_CHANNELING_LOGIC_DEFINE
#define _APPLY_KOREA_CHANNELING // 国内网络登录及网络明星应用,认证流程更新
#endif
#endif
//////////////////////////////////////////////////////////////////////////
//
// 全球频道工作
//
//////////////////////////////////////////////////////////////////////////
#if defined(__NA000000_GLOBAL_AUTH_PROCESS__)
#undef _K2P_ADD_MOVE_TO_SERVER_BUTTON_001020 // 未定义角色选择窗口服务器选择按钮
#define _REMOVE_SERVER_LIST_CLOSE_BUTTON_FOR_CHANNELING // 删除服务器列表窗口的关闭按钮(REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING中分离(09.04.28) )
#define _REMOVE_REGISTER_BUTTON_FOR_CHANNELING // 删除登录场景(服务器选择画面)中加入按钮
#if defined(_SUNGAME_DUMP_VER) || defined(_SUNGAME_VER)
#define _COMMON_CHANNELING_LOGIC_DEFINE // 与通道逻辑相关的公共分支
#define _APPLY_KOREA_CHANNELING // 应用网络登录和网络明星,认证过程
#define _APPLY_GLOBAL_CHANNELING // 全球频道环认证流程作业-基于国内频道环作业的追加作业
#endif
#endif
//////////////////////////////////////////////////////////////////////////
//
// 北美(NHN USA)频道环相关ACM初始化及报告模块工作
//
//////////////////////////////////////////////////////////////////////////
#ifdef __NA000000_NORTH_AMERICA_HANGAME_CHANNELING__
#undef _K2P_ADD_MOVE_TO_SERVER_BUTTON_001020 // 未定义角色选择窗口服务器选择按钮
#define _REMOVE_SERVER_LIST_CLOSE_BUTTON_FOR_CHANNELING // 删除服务器列表窗口的关闭按钮(REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING中分离(09.04.28) )
#define _REMOVE_REGISTER_BUTTON_FOR_CHANNELING // 删除登录场景(服务器选择画面)中加入按钮
#if defined(_SUNGAME_DUMP_VER) || defined(_SUNGAME_VER)
#define _COMMON_CHANNELING_LOGIC_DEFINE // 与通道逻辑相关的公共分支
#define _NHN_USA_CHANNELING
#endif
#endif//__NA000000_NORTH_AMERICA_HANGAME_CHANNELING__
#ifdef _JP_0_20100723_GAMECHU_AUTHFLOW_
#undef _K2P_ADD_MOVE_TO_SERVER_BUTTON_001020 // 未定义角色选择窗口服务器选择按钮
#define _REMOVE_SERVER_LIST_CLOSE_BUTTON_FOR_CHANNELING // 删除服务器列表窗口的关闭按钮(REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING中分离(09.04.28) )
#define _REMOVE_REGISTER_BUTTON_FOR_CHANNELING // 删除登录场景(服务器选择画面)中加入按钮
#define _JAPAN_GAMECHU_SUPPORT_DOUBLE_AUTH_FLOW_ // 为了测试开发网,支持两种认证方式(原计划删除,但由于开发网需要而适用)
#define _APPLY_JAPAN_GAMECHU_CHANNELING // 日本游戏频道环工作
#endif //_JP_0_20100723_GAMECHU_AUTHFLOW_(日本游戏频道)
#ifdef _RU_INGAMBA_AUTH_PROCESS
#undef _K2P_ADD_MOVE_TO_SERVER_BUTTON_001020 // 未定义角色选择窗口服务器选择按钮
#define _REMOVE_SERVER_LIST_CLOSE_BUTTON_FOR_CHANNELING // 删除服务器列表窗口的关闭按钮(REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING中分离(09.04.28) )
#define _REMOVE_REGISTER_BUTTON_FOR_CHANNELING // 删除登录场景(服务器选择画面)中加入按钮
#define _APPLY_RUSSIA_INGAMBA_CHANNELING // 俄罗斯印鉴巴频道工作
#endif //_RU_INGAMBA_AUTH_PROCESS
#ifndef _DEBUG
#if !defined( _CREATE_DUMP_ ) // Full Dump
#define GGUO_CRASH_DUMP // Mini Dump
#endif
#endif
#define AK_FOR_SUN // 机器翻译:2.0以后版本中需要调试
//////////////////////////////////////////////////////////////////////////
// 公会相关
//////////////////////////////////////////////////////////////////////////
/*($Delete$)*/#define __MOD_GUILDMEMBER_REFERENCE //08.01.15 GuildMain修改GuildMeber Reference错误的部分.
//#define _ZONE_TEST_LOBBY_IN_SINGLE // 单版本测试处理
//#define _ADD_CHARGE_ITEM_RANDOM_OPTION // 2006. 11. 27 / 随机选项附加道具作业.
//////////////////////////////////////////////////////////////////////////
//#define CAMERA_SMOOTH_DELETE // 2006.2.21 / 删除相机扫描的移动.
//#define _JBH_MOD_MOUSE_MBUTTON_IN_BATTLESCENE // 4.17 / 点击鼠标M键时修改为相机方向.
////////////// [ ETC ] ////////////////////////////////////////
#ifndef _CHINA
#define _ADD_CHARGE_ITEM_AUTO_GET_HAIM
#endif
#ifdef _CHINA
#define _JBH_ADD_ITEM_OVER_PLAYING_TIME_MESSAGE // 2006.3. 7 / [中国版获得用]防止中毒系统禁止获得物品信息.
#endif
// 测试中(未经验证的内容)////////////////////////////////////////////////////////////////
//#define _JSH_ADD__PLAY_MOVIE_BEFORE_MISSION_ // 2006.02.23 / 任务开始前输出视频(现在是测试阶段)
//#define VIBRATE_CHARACTER // 2006. 2. 17 / 被击时角色颤抖
//#define HAIR_COLOR_VARIATION // 2006 .2 .17 / 改变头发颜色~
//#define MAPOBJECT_INSTANCING
//////////////////////////////////////////////////////////////////////////
#ifdef _DEBUG
//# define _CHECK_MEMORY_OVERRUN // 2006. 12. 27 / 在内存溢出的可疑部分填写相应的函数.
#endif
#ifdef _CHECK_MEMORY_OVERRUN
#define CRT_CHECK_INTERRUPT() if ( !_CrtCheckMemory() ) _asm {int 3}; // 在怀疑的部分前后放入相应的函数.
#else
#define CRT_CHECK_INTERRUPT()
#endif
//////////////////////////////////////////////////////////////////////////
// 测试相关程序
#define INTERFACE_DIALOG_TEST FALSE //Wz Dialog渲染TURE的话Dialog一个一个Render.
#define ITEM_COMPOSITE_APPLY TRUE // 物品组合
//////////////////////////////////////////////////////////////////////////
// 战斗相关
#define ATTACK_STAND_TIME 5000
#define TUTO_FIELD 20206
#define TUTO_MISSION 31
#define MAX_ITEM_INFO 1000
#define MAX_NPC_INFO 1000
#define MAX_SKILL_INFO 1000
#define MAX_SKILL_INVENTORY_STORE_INFO 1000
#define MAX_STYLE_INFO 1000
#define MAX_MAP_INFO 100
#define MAX_SHOP_INFO 1000
#define MAX_ITEM_COMPOSITE_INFO 100
#define MAX_ITEM_CRYSTALIZE_INFO 50
#define MAX_ITEM_COMPOSITE_NPC_INFO 50
#define MAX_SOCKET_DESC_INFO 50
#define MAX_GRAPHIC_INFO 10000
#define MAX_DIALOG 100
#define MAX_BGM 100
#define MAX_STYLE_QUICK_REGISTER 100
#define MAX_ITEM_SOUND_INFO 50
#define MAX_NPC_PORTAL_INFO 50
#define MAX_ENCHANT_INFO 100
#define MAX_SKILL_TEXT_INFO 1000
#define MAX_MISSION_MESSAGE_LENGTH 2048
#define MAX_MESSAGE_LENGTH 1024
#define MAX_HELP_INFO 100
#define MAX_QUEST_TEXT_INFO 50000
#define MAX_MISSION_REWARD_INFO 100
#define MAX_ATTACH_ITEM_INFO 1000
#define MAX_EXPVALUE_INFO 100
#define GROUP_ID_NONE 0
#define MAX_MISSION_TEXT_INFO 500
#ifdef _JAPAN
#define MAX_SSN_COUNT 8
#else
#ifdef _MOD_IDENTITY_NUM__FOR_CHANNELING
#define MAX_SSN_COUNT 6
#else
#define MAX_SSN_COUNT 7
#endif
#endif
#define MAX_ICON_IMAGE 50000
#define DISTANCE_NPC_MEET_EXT 0.70f // 无法与NPC见面时,DISTANC_NPC_MEET的70%距离的值
#define DISTANCE_TAB_TARGET_MONSTER 30.0f // 可通过TAB选择的怪物距离30米
#define DISTANCE_TRADING 6.0f // 只有在6米以内才能进行交易.
#define DISTANCE_FOLLOW_PLAYER 3.0f // 跟随玩家角色的距离
#define NONE_ID 0xFFFFFFFF
// 时间相关
#define SEC_PER_TICK 1000 // 一秒
#define MIN_PER_TICK SEC_PER_TICK * 60 // 一分钟
#define HOUR_PER_TICK MIN_PER_TICK * 60 // 一小时
#define DAY_PER_TICK HOUR_PER_TICK * 24 // 一天
#define NO_COOLTIME //关闭冷却时间校验
#define DELAY_LEAVE_FIELD_TICK 10*SEC_PER_TICK // 10秒
#define DEALY_SPAWN_VILLAGE 5*SEC_PER_TICK // 10秒
// PVP相关
#define MAX_TEAM 2
// font 相关 define
// 与信息提示相关
#ifdef _SCJ_SETITEM_TOOLTIP_REFORM
#define MAX_SLOTINFO_LINE 70
#else
#define MAX_SLOTINFO_LINE 60
#endif //_SCJ_SETITEM_TOOLTIP_REFORM
#define MAX_SLOTINFO_LENGTH 256
#define MAX_TEMP_VARIABLE 20
// 任务相关
#define MAX_QUEST_AREA_ID 1000
#define HEIGHT_GAP 0.3f
// 颜色相关
#define DEFAULT_FONT_WZCOLOR WzColor_RGBA(165,165,165,255)
#define TOOLTIP_FONT_WZCOLOR DEFAULT_FONT_WZCOLOR
#define TOOLTIP_BG_WZCOLOR WzColor_RGBA(0,0,0,200)
#define TOOLTIP_SIDE_LINE_WZCOLOR WzColor_RGBA(119,119,119,255) // 外角线
#define TOOLTIP_OPTION_NAME_WZCOLOR DEFAULT_FONT_WZCOLOR
#define REVENGE_STONE 7243
#define SSQ_PORTAL 61009
//------------------------------------------------------------------------------
/**
游戏服务器列表的最大列表个数 (used in GameServerListParser)
*/
const int c_iMAX_GAMESERVERLIST_PARSER = 50;
using namespace util;
class Quest;
// typedefs
typedef DWORD RESOURCECODE; ///< 图形资源
typedef WORD KEYSETCODE; ///< DInput CODE
typedef util::_tstring SUN_STRING; ///<
typedef std::basic_string<TCHAR>::size_type STR_INDEX; ///
#ifdef _NA_007060_20140210_DIFFERENT_QUEST_WINDOW_OPENBUG_FIX
typedef WORD QCODE;
typedef std::list<QCODE> QUEST_LIST;
typedef std::list<QCODE>::iterator QUEST_LIST_ITER;
#else
typedef std::list<Quest *> QUEST_LIST;
typedef std::list<Quest*>::iterator QUEST_LIST_ITER;
#endif //_NA_007060_20140210_DIFFERENT_QUEST_WINDOW_OPENBUG_FIX
//---------------------------------------------------------------------------------------
// 动态窗口ID大小
//---------------------------------------------------------------------------------------
#define DYNAMIC_WINDOW_ID_MIN 1500
#define DYNAMIC_WINDOW_ID_MAX 1600
#define RANDOM_ITEM_CODE 65535
#define WzIdToConst(l1,l2,l3,l4) ((l1) * 0x01000000 + (l2) * 0x00010000 + (l3) * 0x00000100 + (l4) * 0x00000001)
#define EFFECT_HIGHT 4000
#define EFFECT_MIDDLE 500
#define EFFECT_LOW 50
#endif
// GAMEDEFINE_H