@ -1,3 +0,0 @@ | |||||
-record(data_fshandle, {handle :: any(), ver :: any(), sessionKey :: any(), imno :: any(), is_use :: any()}). | |||||
-record(data_roster_status, {host_user :: any(), ver = 0 :: any(), status :: any()}). |
@ -1,25 +0,0 @@ | |||||
-define(log_opt_module(__MODULE), {module, __MODULE}). | |||||
-define(log_opt_level(__Level), {level, __MODULE}). | |||||
-define(log_opt_process(__Process), {process, __Process}). | |||||
-define(log_opt_output(__Output), {process, __Output}). | |||||
-define(log_init(__OPTIONS), fun() -> | |||||
lists:map(fun({Function, Argvs}) -> | |||||
com_log:Function(Argvs) | |||||
end, __OPTIONS) | |||||
end()). | |||||
-define(level_debug, 1). | |||||
-define(level_info, 2). | |||||
-define(level_error, 3). | |||||
-define(LOG_DEBUG(__DATA), ?LAGER_DEBUG("~p", [__DATA])). | |||||
-define(LOG_DEBUG(__FMT, __DATA), ?LAGER_DEBUG("common", __FMT, __DATA)). | |||||
-define(LOG_DEBUG(__FunModule, __FMT, __DATA), com_log:log_module(__FunModule, ?level_debug, io_lib:format("[DEBUG] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA))). | |||||
-define(LOG_INFO(__DATA), ?LOG_INFO("~p", [__DATA])). | |||||
-define(LOG_INFO(__FMT, __DATA), ?LOG_INFO("common", __FMT, __DATA)). | |||||
-define(LOG_INFO(__FunModule, __FMT, __DATA), com_log:log_module(__FunModule, ?level_info, io_lib:format("[INFO] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA))). | |||||
-define(LOG_ERROR(__DATA), ?LOG_ERROR("~p", [__DATA])). | |||||
-define(LOG_ERROR(__FMT, __DATA), ?LOG_ERROR("common", __FMT, __DATA)). | |||||
-define(LOG_ERROR(__FunModule, __FMT, __DATA), com_log:log_module(__FunModule, ?level_error, io_lib:format("[ERROR] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA))). |
@ -1,5 +0,0 @@ | |||||
-define(SECONDS_1_HOUR, 3600). %%一时的秒数 | |||||
-define(SECONDS_1_DAY, 86400). %%一天的时间(秒) | |||||
-define(SECONDS_1_WEEK, 604800). %%一周的时间(秒) | |||||
-define(SECONDS_60_MINIUTES, 3600). %%60分钟的秒数 | |||||
-define(DIFF_SECONDS_0000_1900, 62167219200). |
@ -1,484 +0,0 @@ | |||||
%%%------------------------------------------------ | |||||
%%% File : common.hrl | |||||
%%% Author : csj | |||||
%%% Created : 2010-09-15 | |||||
%%% Description: 公共定义 | |||||
%%%------------------------------------------------ | |||||
-define(ALL_SERVER_PLAYERS, 100000). | |||||
%%-define(SLICEWIDTH, 25). | |||||
%%-define(SLICEHEIGHT, 15). | |||||
-define(SLICEWIDTH, 15). | |||||
-define(SLICEHEIGHT, 9). | |||||
-define(SOLUT_X, 30). %% 默认手机分表率X | |||||
-define(SOLUT_Y, 20). %% 默认手机分表率Y | |||||
%%数据库模块选择 (db_mysql 或 db_mongo) | |||||
-define(DB_MODULE, db_mysql). | |||||
%%数据库模块(日志数据库) | |||||
-define(DB_LOG_MODULE, db_mysql_admin). | |||||
-define(DB_SERVER, mysql_dispatcher). | |||||
%%数据库模块(日志数据库) | |||||
-define(DB_SERVER_ADMIN, mysql_admin_dispatcher). | |||||
-define(DB_LOG_DELAY, 1). %延迟写日志(批量写,已做优化) | |||||
-define(DB_LOG_NORMAL, 0).%普通方式写数据库 (立即写) | |||||
%%mongo主数据库链接池 | |||||
-define(MASTER_POOLID, master_mongo). | |||||
%%mongo从数据库链接池 | |||||
-define(SLAVE_POOLID, slave_mongo). | |||||
%%Mysql数据库连接 | |||||
-define(DB_POOL, mysql_conn). | |||||
%%消息头长度 | |||||
-define(HEADER_LENGTH, 4). %%消息头长度 2Byte 长度 + 2Byte 消息编号 | |||||
%% 心跳包时间间隔 | |||||
-define(HEART_TIMEOUT, 5 * 60 * 1000). %%心跳包超时时间 | |||||
%% 最大心跳包检测失败次数 | |||||
-define(HEART_TIMEOUT_TIME, 2). %%心跳包超时次数 | |||||
-define(TCP_TIMEOUT, 1000). % 解析协议超时时间 | |||||
%% 每个场景的工作进程数 | |||||
-define(SCENE_WORKER_NUMBER, 5). | |||||
%% 代理进程数 | |||||
-define(SCENE_AGENT_NUMBER, 30). | |||||
%% 每个场景的最多容纳人数 | |||||
-define(SCENE_PLAYER_MAX_NUMBER, 50). | |||||
%% 最大分场景数 | |||||
-define(SCENE_MAX_NUMBER, 70). | |||||
-define(GRID_CANGO, 1). % 可走格子 | |||||
-define(GRID_SHADE, 2). % 阴影格子 | |||||
-define(GRID_BLOCK, 3). % 障碍格子 | |||||
-define(ETS_SCENE_MAP_INFO, ets_map_info). %地图信息表 | |||||
%%安全校验 | |||||
-define(TICKET, "SDFSDESF123DFSDF"). | |||||
%%tcp_server监听参数 | |||||
-define(TCP_OPTIONS, [binary, {packet, 0}, {active, false}, {reuseaddr, true}, {nodelay, false}, {delay_send, true}, {send_timeout, 5000}, {keepalive, true}, {exit_on_close, true}]). | |||||
-define(RECV_TIMEOUT, 5000). | |||||
%%出师等级限制 | |||||
-define(FINISHED_MASTER_LV, 35). | |||||
%%徒弟未汇报时间 | |||||
-define(UNREPORT_DAYS, 3). | |||||
%%师傅未登陆时间 | |||||
-define(UNLOGIN_DAYS, 3). | |||||
%%人物和宠物死亡后的最低血量 | |||||
-define(LIMIT_HP, 10). | |||||
%%自然对数的底 | |||||
-define(E, 2.718281828459). | |||||
%% --------------------------------- | |||||
%% Logging mechanism | |||||
%% Print in standard output | |||||
-define(PRINT(Format, Args), | |||||
io:format(Format, Args)). | |||||
-define(TEST_MSG(Format, Args), | |||||
logger:test_msg(?MODULE, ?LINE, Format, Args)). | |||||
-define(DEBUG(Format, Args), | |||||
logger:debug_msg(?MODULE, ?LINE, Format, Args)). | |||||
-define(INFO_MSG(Format, Args), | |||||
logger:info_msg(?MODULE, ?LINE, Format, Args)). | |||||
-define(WARNING_MSG(Format, Args), | |||||
logger:warning_msg(?MODULE, ?LINE, Format, Args)). | |||||
-define(ERROR_MSG(Format, Args), | |||||
logger:error_msg(?MODULE, ?LINE, Format, Args)). | |||||
-define(CRITICAL_MSG(Format, Args), | |||||
logger:critical_msg(?MODULE, ?LINE, Format, Args)). | |||||
%% log event manager name | |||||
-define(LOGMODULE, logger_mgr). | |||||
-define(INIT_SCENE_ID, 101). %%新手村 | |||||
-define(INIT_SCENE_XY, {10, 10}). %%新建帐号位置 | |||||
%性别 | |||||
-define(GENDER_ANY, 0). | |||||
-define(GENDER_MALE, 1). | |||||
-define(GENDER_FEMALE, 2). | |||||
%%玩家状态 | |||||
-define(PLAYER_NORMAL_STATE, 0). %%正常 | |||||
-define(PLAYER_BATTLE_STATE, 1). %%战斗 | |||||
%职业 | |||||
-define(CAREER_F, 1). %战士 | |||||
-define(CAREER_M, 2). %法师 | |||||
-define(CAREER_D, 3). %射手 | |||||
-define(CAREER_ANY, 4). %各职业通用 | |||||
-define(CAREER_PET, 5). %宠物 | |||||
-define(CAREER_MOUNT, 6). %战骑 | |||||
%% 性别 | |||||
-define(SEX_ANY, 0). % 男女通用 | |||||
-define(SEX_MALE, 1). % 男 | |||||
-define(SEX_FEMALE, 2). % 女 | |||||
%VIP类型定义 | |||||
-define(VIP_NOT, 0). %不是VIP | |||||
-define(VIP_EXPERIENCE, 1). %VIP钟点卡(试用装) | |||||
-define(VIP_DAY, 11). %VIP日卡 | |||||
-define(VIP_WEEK, 12). %VIP周卡 | |||||
-define(VIP_MONTH, 13). %VIP月卡 | |||||
-define(VIP_HALF_YEAR, 21). %VIP半年卡 | |||||
-define(VIP_YEAR, 22). %VIP年卡 | |||||
-define(VIP_FOREVER, 99). %VIP终身卡 | |||||
-define(ELEMENT_PLAYER, 1). %% 玩家 | |||||
-define(ELEMENT_MONSTER, 2). %% 怪物 | |||||
-define(ELEMENT_ALL, 3). %% 玩家,怪物 | |||||
-define(ELEMENT_PET, 4). %% 宠物 | |||||
-define(EXP_DUNGEON, 399). | |||||
%% 攻击目标类型 | |||||
-define(DEST_SINGLE, 0). % 单体攻击 | |||||
-define(DEST_ATTACK, 1). % 自身为中心 | |||||
-define(DEST_DEFEND, 2). % 目标为中心 | |||||
-define(DEST_GROUND, 3). % 地面为中心 | |||||
%%打开发送消息客户端进程数量 | |||||
-define(SEND_MSG, 1). | |||||
%%player.switch开关位定义(32位) | |||||
-define(SW_PET_BIT, 16#00000001). %宠物 | |||||
-define(SW_MOUNT_BIT, 16#00000002). %座骑 | |||||
-define(SW_GUILD_BIT, 16#00000004). %帮派 | |||||
-define(SW_RELATION_BIT, 16#00000000). %关系 16#00000008 | |||||
-define(SW_SKILL_BIT, 16#00000010). %技能 | |||||
-define(SW_CAMP_BIT, 16#00000020). %阵营 | |||||
-define(SW_MER_BIT, 16#00000040). %经脉 | |||||
-define(SW_BIT7, 16#00000080). | |||||
-define(SW_BIT8, 16#00000100). | |||||
-define(SW_BIT9, 16#00000200). | |||||
-define(SW_BIT10, 16#00000400). | |||||
-define(SW_BIT11, 16#00000800). | |||||
-define(SW_BIT12, 16#00001000). | |||||
-define(SW_BIT13, 16#00002000). | |||||
-define(SW_BIT14, 16#00004000). | |||||
-define(SW_BIT15, 16#00008000). | |||||
-define(SW_BIT16, 16#00010000). | |||||
-define(SW_BIT17, 16#00020000). | |||||
-define(SW_BIT18, 16#00040000). | |||||
-define(SW_BIT19, 16#00080000). | |||||
-define(SW_BIT20, 16#00100000). | |||||
-define(SW_BIT21, 16#00200000). | |||||
-define(SW_BIT22, 16#00400000). | |||||
-define(SW_BIT23, 16#00800000). | |||||
-define(SW_BIT24, 16#01000000). | |||||
-define(SW_BIT25, 16#02000000). | |||||
-define(SW_BIT26, 16#04000000). | |||||
-define(SW_BIT27, 16#08000000). | |||||
-define(SW_BIT28, 16#10000000). | |||||
-define(SW_BIT29, 16#20000000). | |||||
-define(SW_BIT30, 16#40000000). | |||||
-define(SW_BIT31, 16#80000000). | |||||
%% 联盟进程的工作进程数 | |||||
-define(MON_LIMIT_NUM, 100000000). %% 怪物数量限制数 | |||||
-define(DIFF_SECONDS_1970_1900, 2208988800). | |||||
-define(DIFF_SECONDS_0000_1900, 62167219200). | |||||
-define(ONE_DAY_SECONDS, 86400). %%一天的时间(秒) | |||||
-define(ONE_DAY_MILLISECONDS, 86400000). %%一天时间(毫秒) | |||||
-define(COMMON_ATTR_SPEED, 1200). %默认攻速 | |||||
-define(COMMON_MOVE_SPEED, 7). %默认移动速度 | |||||
-define(COMMON_MOVE_PATROL, 3). %默认巡逻速度 | |||||
-define(COMMON_MOVE_SURROUND, 3). %默认漫游速度 | |||||
-define(DEFAULT_NAME, "匿名"). | |||||
%%ETS | |||||
-define(ETS_SERVER, ets_server). | |||||
-define(ETS_GET_SERVER, ets_get_server). | |||||
-define(ETS_GET_SCENE, ets_get_scene). | |||||
-define(ETS_SYSTEM_INFO, ets_system_info). %% 系统配置信息 | |||||
-define(ETS_MONITOR_PID, ets_monitor_pid). %% 记录监控的PID | |||||
-define(ETS_STAT_SOCKET, ets_stat_socket). %% Socket送出数据统计(协议号,次数) | |||||
-define(ETS_STAT_DB, ets_stat_db). %% 数据库访问统计(表名,操作,次数) | |||||
-define(ETS_SYS_ANNONUCE, sys_announce). | |||||
%% -define(ETS_BASE_MON, ets_base_mon). %% 基础_怪物信息 | |||||
%% -define(ETS_MONGROUP, ets_mongroup). %% 基础_怪物信息 | |||||
-define(ETS_NPC, temp_npc). %% 基础_NPC/怪物信息 | |||||
-define(ETS_TEMP_SCENE, temp_scene). %% 基础_场景信息 | |||||
-define(ETS_SCENE, ets_scene). %% 本节点场景实例 | |||||
-define(ETS_NPC_LAYOUT, npc_layout). %% 实例-场景NPC布局 | |||||
-define(ETS_TEMP_MON_LAYOUT, temp_mon_layout). %% 基础_场景怪物布局 | |||||
-define(SECNE_MON, scene_mon). %% 场景中怪物保存,可以用作ETS,可以用这dict key | |||||
-define(SECNE_DROP, scene_drop). %% 场景中怪物怪物掉落 | |||||
-define(MON_STATE_TIMER_KEY, mon_state_timer_key). %% 怪物状态的TimerKey | |||||
-define(DUNGEON_MON_STATE_TIMER_KEY, dungeon_mon_state_timer_key). %% 怪物状态的TimerKey | |||||
-define(ETS_TEMP_GUILD_LEVEL, temp_guild_level). %%帮派等级配置 | |||||
-define(MON_STATE_SPEED_7, 143). %% 怪物状态管理 143 毫秒一轮询,每一秒7步 | |||||
-define(MON_STATE_SPEED_BIAS_7, 202). %% 怪物状态管理 202 毫秒一轮询,每一秒7步(斜线) | |||||
-define(MON_STATE_SPEED_3, 333). %% 怪物状态管理 333 毫秒一轮询,每一秒3步 | |||||
-define(MON_STATE_SPEED_BIAS_3, 470). %% 怪物状态管理 470 毫秒一轮询,每一秒3步(斜线) | |||||
-define(BUFF_TIMER_TIME, 200). %buff技能计时器刷新时间 | |||||
-define(SKILL_TIMER_KEY, skill_timer_key). %% 技能状态的TimerKey | |||||
-define(MON_STATE_1_GUARD, 1). | |||||
-define(MON_STATE_2_TRYATT, 2). | |||||
-define(MON_STATE_3_MOVE, 3). | |||||
-define(MON_STATE_4_FIGHT, 4). | |||||
-define(MON_STATE_5_RETURN, 5). | |||||
-define(MON_STATE_6_DEAD, 6). | |||||
-define(MON_STATE_7_CHANT, 7). | |||||
-define(PLAYER_STATE_TIMER_KEY, player_state_timer_key). %% 玩家状态的TimerKey | |||||
-define(PLAYER_STATE_LOOP_TIME, 500). %% 玩家状态管理 500 毫秒先 | |||||
-define(MON_SKILL_TIMER_LIST, mon_skill_timer_list). %% 怪物技能状态的列表 | |||||
-define(MON_SKILL_TIMER_LOOP_TIME, 250). %% 怪物技能管理 250 毫秒先 | |||||
-define(ETS_ONLINE, ets_online). %% 本节点在线玩家 | |||||
-define(ETS_ONLINE_SCENE, ets_online_scene). %% 本节点场景中玩家 | |||||
%% -define(ETS_BASE_SCENE_POSES, ets_base_scene_poses). %% 基本_场景坐标表 | |||||
-define(ETS_BASE_SCENE_MON, ets_base_scene_mon). %% 基础_场景怪物信息 | |||||
-define(ETS_BASE_SCENE_NPC, ets_base_scene_npc). %% 基础_场景NPC信息 | |||||
-define(ETS_SCENE_MON, ets_mon). %% 本节点场景中怪物 | |||||
-define(ETS_SCENE_NPC, ets_npc). %% 本节点场景中NPC | |||||
-define(ETS_DUNGEON_DAILY, dungeon_daily). %% 玩家每日副本记录 | |||||
-define(ETS_DUNGEON_FINISH, dungeon_finish). %% 玩家已经完成的副本记录 | |||||
-define(ETS_DUNGEON_MASTER, dungeon_master). %% 玩家已经完成的副本记录 | |||||
-define(ETS_OPERA, opera). %% 玩家已经完成的副本记录 | |||||
-define(ETS_SCENE_GIFT, scene_gift). %% 玩家已经领取过的场景礼包 | |||||
-define(ETS_BLACKLIST, ets_blacklist). %% 黑名单记录表 | |||||
-define(ETS_GOODS_ONLINE, ets_goods_online). %% 在线物品表 | |||||
-define(ETS_GOODS_EQUIP, ets_goods_equip). %% 装备物品类型表 | |||||
-define(ETS_GUILD, ets_guild). %% 联盟 | |||||
-define(ETS_GUILD_MEMBER, ets_guild_member). %% 联盟成员 | |||||
-define(ETS_GUILD_APPLY, ets_guild_apply). %% 联盟申请 | |||||
-define(ETS_GUILD_INVITE, ets_guild_invite). %% 联盟邀请 | |||||
-define(ETS_MOUNT, ets_mount). %%座骑ETS表名 | |||||
-define(ETS_ACTIVITY, ets_activity). %%活跃度 | |||||
-define(ETS_CONTACT, ets_contact). | |||||
-define(ETS_RELATION, ets_relation). %%关系ETS表名 | |||||
-define(ETS_RELATION_AGENT, ets_relation_agent). %%玩家关系代理进程ets | |||||
-define(ETS_TEAM, ets_team). %%队伍表ETS | |||||
-define(ETS_TEAM_MEMBER, ets_team_member). %%队伍成员表ETS | |||||
-define(ETS_TEMP_SHOP, ets_temp_shop). %% 商城模版表 | |||||
-define(ETS_SHOP_LOG, ets_shop_log). %% 商城购买物品记录 | |||||
-define(ETS_NPC_SHOP_LOG, ets_npc_shop_log). %% npc商店购买物品记录 | |||||
-define(ETS_RAND_SHOP, rand_shop). %% 随机商城记录 | |||||
-define(ETS_TPL_TASK, tpl_task). %%角色任务模板 | |||||
%-define(ETS_TASK_DAILY_FINISH, ets_task_daily_finish). %%日常任务完成进度 | |||||
-define(ETS_TASK_PROCESS, task_process). %% 角色任务记录 | |||||
-define(ETS_TASK_FINISH, task_finish). %% 角色任务历史记录 | |||||
-define(ETS_TASK_QUERY_CACHE, ets_task_query_cache). %% 当前所有可接任务 | |||||
-define(ETS_TASK_DETAIL, ets_task_datil). %%任务模板子表 | |||||
-define(ETS_TASK_MASTER, task_master).%玩家师门令,刷新列表 | |||||
-define(ETS_HEAVEN, heaven).%天道令数据 | |||||
-define(ETS_TASK_HEAVEN, task_heaven).%玩家天道数据记录表 | |||||
-define(ETS_TASK_DAILY, task_daily).%日常任务统计表 | |||||
-define(ETS_MOUNT_LEVEL_STAR, ets_mount_lv_star).%%坐骑星阶外观绑定表 | |||||
%新手引导 | |||||
-define(ETS_LEADER, ets_newbie_leader).%玩家新手引导记录表 | |||||
-define(ONE_DAY_MSECONDS, (24 * 60 * 60 * 1000)). % 一天的毫秒数 | |||||
-define(ONE_HOUR_SECONDS, (60 * 60)). % 一小时的秒数 | |||||
-define(ONE_HOUR_MSECONDS, (60 * 60 * 1000)). % 一小时的毫秒数 | |||||
-define(ONE_MINUTE_SECONDS, 60). % 一分钟的秒数 | |||||
-define(ONE_MINUTE_MSECONDS, (60 * 1000)). % 一分钟的毫秒数 | |||||
-define(START_NOW, {-1, 0, 0}). %% {-1, 0, 0}:表示从当前时间开始 | |||||
-define(START_TOMORROW, {-2, 0, 0}). %% {-2, 0, 0}:表示从每日零点开始 | |||||
%% 通知客户端刷新 | |||||
-define(REFRESH_ROLE_ATTRI, 1). %刷新人物属性 | |||||
-define(REFRESH_BAG, 2). %刷新背包 | |||||
-define(REFRESH_P_EQUIP, 3). %武将装备 | |||||
-define(REFRESH_MONEY, 4). %刷新三种货币 | |||||
-define(REFRESH_GOODS_INFO, 5). %刷新物品信息 | |||||
-define(REFRESH_R_EQUIP, 6). %玩家装备 | |||||
-define(REFRESH_ROLE_POWER, 7). %刷新人物体力条 | |||||
-define(REFRESH_ROLE_HP, 8). %刷新人物血条 | |||||
-define(REFRESH_PAR_ATTRI, 9). %刷新武将属性 | |||||
-define(REFRESH_PAR_HP, 10). %刷新武将血条 | |||||
-define(REFRESH_STORE, 11). %刷新仓库 | |||||
-define(REFRESH_TREA, 12). %刷新淘宝仓库 | |||||
-define(REFRESH_DAN, 13). % 刷新丹药仓库 | |||||
%% 角色战斗力的调节参数 | |||||
%-define(ROLE_BATTLE_CAPACITY_CONTROLLED_PARA, -242). | |||||
-define(HURT_CALL_BACK, 0). %玩家受到伤害后 触发反伤技能 | |||||
-define(HURT_NOT_CALL_BACK, 1). %玩家受到伤害后不触发反伤技能 | |||||
%% 体力的增减 | |||||
-define(PLAYER_POWER_LIMIT, 200). % 玩家体力值上限(固定值) | |||||
-define(ADD_POWER_PER_30_MIN, 5). % (自动回复)体力增加 | |||||
-define(POWER_INCREASE, 40). % (购买)体力增加 | |||||
-define(POWER_DECREASE, 20). % (关卡)体力消耗 | |||||
-define(POWER_BUFF, 50). % (体力buff)12、18点系统赠予50点体力buff | |||||
-define(COST_BUY_POWER, 20). % 购买体力固定花费的元宝 | |||||
%% 背包、仓库默认格子数 | |||||
-define(DEFAUL_BAG_CELL, 36 * 2). | |||||
-define(DEFAULT_STORE_CELL, 24). | |||||
%% VIP等级 | |||||
-define(VIP_LV_0, 0). % 0级,表示不是vip | |||||
-define(VIP_LV_1, 1). % 体验vip | |||||
-define(VIP_LV_2, 2). % 日vip | |||||
-define(VIP_LV_3, 3). % 周vip | |||||
-define(VIP_LV_4, 4). % 月vip | |||||
-define(VIP_LV_5, 5). % 半年vip | |||||
-define(VIP_LV_6, 6). % 至尊vip | |||||
-define(VIP_TITLE_CHG_MAX_TIMES, 3). % vip称号最多只能修改3次 | |||||
-define(VIP_TITLE_MAX_LENGTH, 18). % vip称号上限6个汉字 | |||||
-define(VIP_INFINATE_TIME, 2000000000). % 至尊VIP有效时间(无限) | |||||
-define(BOOKING_GIFT, 181000005). %预定礼包 | |||||
% 定时更新称号(单位:秒)为18分钟 | |||||
-define(UPDATE_TITLE_TIMER, 18 * 60 * 1000). | |||||
%% 游戏中流通的货币 | |||||
-define(MONEY_T_GOLD, 1). %% 元宝 | |||||
-define(MONEY_T_BGOLD, 2). %% 绑定元宝 | |||||
-define(MONEY_T_COIN, 3). %% 铜钱 | |||||
-define(MONEY_T_BCOIN, 4). %% 绑定铜钱 | |||||
-define(MONEY_T_COUPON, 5). %% 礼券 | |||||
-define(MONEY_T_HONOR, 6). %% 积分/礼券 | |||||
-define(MONEY_T_EXCHANGE, 7). %% 兑换 | |||||
%% 物品、装备相关宏 | |||||
-define(LOCATION_BAG, 0). % 背包位置 | |||||
-define(LOCATION_PLAYER, 1). % 玩家身上 | |||||
-define(LOCATION_PET, 2). % 宠物 | |||||
-define(LOCATION_TREA, 4). % 淘宝仓库 5页300格 | |||||
-define(LOCATION_WINGS, 5). % 衣柜 | |||||
-define(LOCATION_HOLY_PLATFORM, 6). % 圣坛 | |||||
-define(LOCATION_MAIL, 11). % 虚拟位置:邮件(用于标记邮件中的附件) | |||||
-define(LOCATION_MARKET, 12). % 虚拟位置:市场(用于标记市场中挂售的物品) | |||||
-define(LOCATION_PARTNER_TRANSFORM, 20). % 武将装备转档仓库 | |||||
-define(TenMinute, 10 * 60 * 1000). | |||||
%% 返回结果: | |||||
-define(RESULT_OK, 1). %% 成功 | |||||
-define(RESULT_FAIL, 0). %% 失败 | |||||
-define(DELAY_CALL, 5000). | |||||
%% -define(ETS_TEMP_GOODS, temp_goods). %% 物品类型表 | |||||
-define(ETS_COMPOSE_RULE, ets_compose_rule). %% 宝石合成规则表 | |||||
-define(ETS_GOODS_INLAY, ets_goods_inlay). %% 宝石镶嵌规则表 | |||||
-define(ETS_MARKET_GOODS_ONLINE, ets_market_goods_online). %% 市场的上架物品信息表 | |||||
-define(ETS_MARKET_GOODS_ATTR, ets_market_goods_attr). %% 市场的上架物品的附加属性信息表 | |||||
-define(ETS_GOODS_DROP, ets_goods_drop). %% 物品掉落表 | |||||
-define(ETS_DROP_TYPE, ets_drop_type). %% 物品掉落类型 | |||||
-define(ETS_DROP_NUM, ets_drop_num). %% 物品掉落上限值 | |||||
-define(ETS_DROP_CONTENT, ets_drop_content). %% 物品掉落包中物品 | |||||
-define(ETS_MARKET_SELLING, ets_mk_selling). %% 市场上架物品表 | |||||
-define(ETS_MARKET_REQUEST, ets_mk_request). %% 市场求购物品表 | |||||
-define(GLOBAL_MARK_PROCESS, g_market_process). %% 市场/拍卖行 | |||||
-define(ETS_PET_INFO, ets_pet_info). %% 宠物 | |||||
-define(ETS_GOODS_BUFF, ets_goods_buff). | |||||
-define(ETS_ZIP_PROTO, ets_zip_proto). | |||||
% 32位有符号数的最大值 | |||||
-define(MAX_S32, 2147483647). | |||||
% 16位有符号数的最大值 | |||||
-define(MAX_S16, 32767). | |||||
% 8位有符号数的最大值 | |||||
-define(MAX_S8, 127). | |||||
% 8位无符号数的最大值 | |||||
-define(MAX_U8, 255). | |||||
%% 宠物 | |||||
-define(PET_REST, 0). % 宠物休息 | |||||
-define(PET_FIGHTING, 1). % 出战 | |||||
-define(PET_NOT_EXIST, 2). % 不存在 | |||||
%% 换装 | |||||
-define(DEFAULT_T_WEAPON, 0). % 武器 | |||||
-define(DEFAULT_T_ARMOR, 0). % 盔甲 | |||||
-define(DEFAULT_T_FASHION, 0). % 时装 | |||||
-define(DEFAULT_T_WINGS, 0). % 翅膀 | |||||
-define(DEFAULT_T_WEAPONACCESSORIES, 0). % 武饰 | |||||
-define(DEFAULT_T_MOUNT, 0). % 战骑 | |||||
%%经脉 | |||||
-define(ETS_MERIDIAN, player_meridian).%经脉模板表 | |||||
-define(ETS_TPL_BONES, base_bones).%筋骨模板表 | |||||
%%副本物件 | |||||
-define(CONDITION_NULL, 1). | |||||
-define(CONDITION_END, 2). | |||||
-define(CONDITION_MON_DEAD, 3). | |||||
-define(CONDITION_NULLEND, 4). | |||||
%% 互动通知右边圆圈图标类型 | |||||
-define(NOTICE_ICON_TYPE_FRIEND, 1). %% 好友 | |||||
-define(NOTICE_ICON_TYPE_GUILD, 2). %% 帮派 | |||||
-define(NOTICE_ICON_TYPE_MAIL, 3). %% 邮件 | |||||
-define(NOTICE_ICON_TYPE_GIFT, 4). %% 礼物 | |||||
-define(NOTICE_ICON_TYPE_FIGHT, 5). %% 打架 | |||||
-define(NOTICE_ICON_TYPE_FLOWER, 6). %% 送花 | |||||
%%定义需要做协议压缩的协议号 | |||||
-define(ZIP_PROTO, [12002, 12003, 12007, 12010, 12012, 12013, 12015, 13000, 13001, 13002, 13003, 13007, 14001, 14002 | |||||
, 14003, 14005, 15000, 15002, 15004, 15015, 15021, 15026, 19002, 19011, 20001, 21000, 25001, 30006 | |||||
, 30601, 30701, 35002, 40001, 40005, 44000, 45001, 45006, 45008, 50001]). | |||||
-define(ZONE_POS, [{0, 0}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}, {-1, 1}]). | |||||
-record(scene_map_info, { | |||||
map_id, | |||||
grid_row, | |||||
grid_col, | |||||
grid_type | |||||
}). | |||||
-define(PLAYER_EXIT_UNORMAL, 0). %玩家正常退出标识 | |||||
-define(ALL_CAMP_TYPE, [1, 2, 3]). %所有阵营的类别 | |||||
%%充值处理状态 | |||||
-define(HANDLE_CHARGE_ORDER, 1). % 已处理充值订单 | |||||
-define(UNHANDLE_CHARGE_ORDER, 0). % 未处理充值订单 | |||||
%%充值订单状态 | |||||
-define(CHARGE_ORDER_STATUS_SUCCESSFUL, 1). | |||||
-define(CHARGE_ORDER_STATUS_FAILED, 0). | |||||
%%充值渠道 | |||||
-define(CHARGE_CHANEL_GM, 50). %GM指令渠道 | |||||
-define(CHARGE_CHANEL_4399_SHOU_YOU_BI, 1). %4399手游币 | |||||
-define(CHARGE_CHANEL_SHEN_ZHOU_XING, 2). %移动神州行 | |||||
-define(CHARGE_CHANEL_LIAN_TONG, 3). %联通 | |||||
-define(CHARGE_CHANEL_ALIPAY, 4). %支付宝 |
@ -1,28 +0,0 @@ | |||||
-ifndef(__META__HRL__). | |||||
-define(__META__HRL__, true). | |||||
-define(parse_transform(__MODULE), -compile({parse_transform, __MODULE})). | |||||
-record(attribute, {line :: integer(), name :: atom(), value :: any()}). | |||||
-record(function, {line :: integer(), name :: any(), args_count :: any(), clauses :: any()}). | |||||
-record(clause, {line :: integer(), args :: any(), guard :: any(), body :: any()}). | |||||
-record(tuple, {line :: integer(), elements :: any()}). | |||||
-record(atom, {line :: integer(), value :: any()}). | |||||
-record(var, {line :: integer(), value :: any()}). | |||||
-record(integer, {line :: integer(), value :: any()}). | |||||
-record(meta_mod, {module :: atom(), | |||||
file :: list(), | |||||
includes = [] :: list(), | |||||
exports = [] :: list(), | |||||
records = [] :: list(), | |||||
attributes = [] :: list(), | |||||
forms = [] :: list(), | |||||
eof = {eof, 999} :: {eof, integer()}, | |||||
export_all = false :: boolean()}). | |||||
-endif. |
@ -1,2 +0,0 @@ | |||||
-compile({parse_transform, module_class}). | |||||
-include("module_class_def.hrl"). |
@ -1,10 +0,0 @@ | |||||
-define(TYPE, class_attribute). | |||||
-define(QUALIFIER(__QUALIFIER), -?TYPE(__QUALIFIER)). | |||||
-define(PRIVATE, private). | |||||
-define(PROTECTED, protected). | |||||
-define(PUBLIC, public). | |||||
-define(FINAL, final). | |||||
-define(RELOAD, reload). | |||||
-define(ABSTRACT, abstract). | |||||
-define(EXTENDS(__CLASS), {extends, __CLASS}). | |||||
-define(OVERRIDE, override). |
@ -1,232 +0,0 @@ | |||||
%%%------------------------------------------------ | |||||
%%% File : record.erl | |||||
%%% Author : csj | |||||
%%% Created : 2010-09-15 | |||||
%%% Description: record | |||||
%%%------------------------------------------------ | |||||
-include("table_to_record.hrl"). | |||||
%%战斗属性 战斗相关属性的率一般为 万分比值*10000, | |||||
%% 发给客户端显示使用 万分比值*10000/100,显示为等级 | |||||
-record(battle_attr, { | |||||
x = 0, %% X 坐标 | |||||
y = 0, %% Y 坐标 | |||||
direct_x = 0, %% 朝向x坐标 | |||||
direct_y = 0, %% 朝向y坐标 | |||||
career = 1, %% 职业(参考common.hrl定义) | |||||
skill_cd_all = 0, %% 对所有技能的CD, 冷冻到期时间(毫秒) | |||||
buff_timer_start = false, %% buff计时器是否开启 true.开启 false.关闭 | |||||
skill_cd_list = [], %% 技能使用CD,格式[{SkillId, CdTime},...], CdTime为冷冻到期时间(毫秒) | |||||
link_skill_buff = [], %% 能触发后续技能的buff列表 | |||||
delay_skill_buff = [], %% 延迟触发buff | |||||
timer_buff = [], %% 时间触发类buff | |||||
hurted_buff = [], %% 被击触发类buff | |||||
skill_buff = [], %% 技能特殊状态Buff/单次有效,过期还原/需发到客户端[{BufId, 过期时间},...] 毫秒, | |||||
buff1 = [], %% 技能加战斗属性BUF列表/单次有效,过期还原 [{BufId, 过期时间},...] 毫秒 | |||||
buff2 = [], %% 技能加血力法量BUF列表/周期性, 过期保留 [{BufId, CD到期时间, 剩余次数},...] 毫秒 | |||||
sing_expire = 0, %% 吟唱到期时间(毫秒), 目前只对怪有效, 0为不在吟唱时间内 | |||||
use_combopoint = 0, %% 是否使用了combopoint增加属性攻击值(0未用, 其他为使用的点数) | |||||
combopoint_max = 0, %% 最大连击点数 | |||||
combopoint = 0, %% 连击点数(技能消耗/获得的属性,可额外增加伤害率或防御率) | |||||
hit_point = 0, %% 生命 | |||||
hit_point_max = 0, %% 生命上限 | |||||
magic = 0, %% 法力值 | |||||
magic_max = 0, %% 法力值上限 | |||||
anger = 0, %% 怒气值 | |||||
anger_max = 0, %% 怒气值上限 | |||||
attack = 0, %% 普通攻击力 | |||||
attack_ratio = 0, %% 普通攻击力增加伤害率(Buff附加值, 初始为0) | |||||
defense = 0, %% 普通防御力 | |||||
defense_ratio = 0, %% 普通防御力增加防御率(Buff附加值, 初始为0) | |||||
abs_damage = 0, %% 绝对伤害值 | |||||
fattack = 0, %% 仙攻值 | |||||
fattack_ratio = 0, %% 仙攻值增加伤害率(Buff附加值, 初始为0) | |||||
mattack = 0, %% 魔攻值 | |||||
mattack_ratio = 0, %% 魔攻值增加伤害率(Buff附加值, 初始为0) | |||||
dattack = 0, %% 妖攻值 | |||||
dattack_ratio = 0, %% 妖攻值增加伤害率(Buff附加值, 初始为0) | |||||
fdefense = 0, %% 仙防值 | |||||
fdefense_ratio = 0, %% 仙防值增加防御率(Buff附加值, 初始为0) | |||||
mdefense = 0, %% 魔防值 | |||||
mdefense_ratio = 0, %% 魔防值增加防御率(Buff附加值, 初始为0) | |||||
ddefense = 0, %% 妖防值 | |||||
ddefense_ratio = 0, %% 妖防值增加防御率(Buff附加值, 初始为0) | |||||
speed = 0, %% 移动速度 | |||||
attack_speed = 0, %% 攻击速度 | |||||
hit_ratio = 1, %% 命中等级(万分比) | |||||
dodge_ratio = 1, %% 闪避等级(万分比) | |||||
crit_ratio = 1, %% 暴击等级(万分比) | |||||
tough_ratio = 1, %% 坚韧等级(万分比) | |||||
frozen_resis_ratio = 0, %% 冰冻抗性率(帮派技能引入) | |||||
weak_resis_ratio = 0, %% 虚弱抗性率(帮派技能引入) | |||||
flaw_resis_ratio = 0, %% 破绽抗性率(帮派技能引入) | |||||
poison_resis_ratio = 0, %% 中毒抗性率(帮派技能引入) | |||||
avoid_attack_ratio = 0, %% 受到普攻免伤害率(Buff附加值, 初始为0) | |||||
avoid_fattack_ratio = 0, %% 受到仙攻免伤率(Buff附加值, 初始为0) | |||||
avoid_mattack_ratio = 0, %% 受到魔攻免伤率(Buff附加值, 初始为0) | |||||
avoid_dattack_ratio = 0, %% 受到妖攻免伤率(Buff附加值, 初始为0) | |||||
avoid_crit_attack_ratio = 0, %% 受到普攻暴击免伤害率(Buff附加值, 初始为0) | |||||
avoid_crit_fattack_ratio = 0, %% 受到仙攻暴击免伤率(Buff附加值, 初始为0) | |||||
avoid_crit_mattack_ratio = 0, %% 受到魔攻暴击免伤率(Buff附加值, 初始为0) | |||||
avoid_crit_dattack_ratio = 0, %% 受到妖攻暴击免伤率(Buff附加值, 初始为0) | |||||
ignore_defense = 0, %% 攻方忽略防方普防值(武魂引入) | |||||
ignore_fdefense = 0, %% 攻方忽略防方仙防值(武魂引入) | |||||
ignore_mdefense = 0, %% 攻方忽略防方魔防值(武魂引入) | |||||
ignore_ddefense = 0, %% 攻方忽略防方妖防值(武魂引入) | |||||
status_stop = 0, %% 石化状态 | |||||
status_silent = 0, %% 沉默状态[能普攻,不能技能] | |||||
status_unstoptable = 0, %% 免役控制 | |||||
status_unattrackable = 0, %% 不能发起攻击[普通或者技能都不可以] | |||||
change_appearance = 0, %% 外观变换 | |||||
energy = {}, %% 能量球, | |||||
passive_skill_attr = [], %% 职业被动分流, | |||||
hurt_call_back = 0, %% 受击反弹伤害百分比 | |||||
passive_hurt_rate = 0, %% 反伤百分比增加比率(被动技能) | |||||
control_radio = 0, %% 技能产生控制的几率 | |||||
walk_path = [], %% 行走路径,格式[DestX,DestY,Len,<<WalkPath>>] | |||||
move_destination = {0, 0}, %% 移动的目的点 | |||||
ai_init_id = 0, %% 初始的AI,用于重置 | |||||
clock_time = 143, %% 初始的时钟(一秒钟走7步,1000/7) | |||||
demage_buff_list = [], %% 伤害buff列表 | |||||
remove_buff_list = [], %% 移除buff列表 | |||||
attr_freeze_probability = 0, %% 受到冰冻的概率 | |||||
hp_cover_callback = 0, %% 回复效果 | |||||
is_rush_success = 0, %% 标记玩家是否冲锋成功 0.默认状态 1.冲锋成功 2.冲锋失败 | |||||
fight_pos = {1, 1}, %% 攻击对方时,站在对方的方位参数 1,0/1,1/1,-1/0,1/0,-1/-1,0/-1,1/-1,-1 | |||||
return_steps = 0, %% 在返回时,记录返回的步数(主要用于怪物返回的瞬移) | |||||
move_speed_queue = {{0, []}, {0, []}},%%移动速度buff效果队列 | |||||
damage_reduction = {0, 0, 0, ""}, %%当前吸收伤害盾吸收数值 | |||||
damage_reduction_queue = [], %%伤害吸收队列 | |||||
invincible = 0, %%无敌状态 | |||||
reduce_dot_damage = 0, %%忽略dot千分比伤害 | |||||
abs_crit_ratio = 1, %%暴击率真实值 | |||||
real_defense = 0 %%实际的物理防御力 | |||||
}). | |||||
%%用户的其他附加信息(对应player.other) | |||||
-record(player_other, { | |||||
skill_list = [], % 技能列表[{SkillId, Level}, ...] | |||||
skill_point = {0, 0}, % 技能点 | |||||
socket = undefined, % 当前用户的socket | |||||
pid = undefined, % 用户进程Pid | |||||
pid_goods = undefined, % 物品模块进程Pid | |||||
pid_send = [], % 消息发送进程Pid(可多个) | |||||
pid_battle = undefined, % 战斗进程Pid | |||||
pid_scene = undefined, % 当前场景Pid | |||||
pid_dungeon = undefined, % 当前副本进程 | |||||
pid_task = undefined, % 当前任务Pid | |||||
pid_mount = undefined, % 当前座骑Pid | |||||
node = undefined, % 进程所在节点 | |||||
blacklist = false, % 是否受黑名单监控 | |||||
pk_mode = 0, % 0-不强制pk模式 1-强制和平模式 2-强制自由pk模式 3-强制帮会pk模式 | |||||
goods_ets_id = 0, % 物品ets表ID | |||||
equip_current = [], % 影响玩家外观装备 | |||||
role_suit = [], % 套装列表 | |||||
weapon_strenLv = 0, % 武器强化等级 | |||||
armor_strenLv = 0, % 盔甲强化等级 | |||||
fashion_strenLv = 0, % 时装强化等级 | |||||
wapon_accstrenLv = 0, % 武饰强化等级 | |||||
wing_strenLv = 0, % 翅膀强化等级 | |||||
mount_fashion = 0, % 坐骑外观 | |||||
team_id = 0, % 队伍ID, 0为无队伍 | |||||
team_leader = 0, % 是否队长1是,其他不是 | |||||
pet_facade = 0, % 宠物外观 | |||||
pet_status = 0, % 0宠物休息, 1出战, 2不存在 | |||||
pet_quality_lv = 0, % 宠物品阶 | |||||
pet_name = <<"">>, % 宠物名字 | |||||
step_check_tasks = [], % 玩家移动时候是否需要检查任务的任务列表 | |||||
hardware_info = {} %玩家硬件信息 | |||||
}). | |||||
%%任务进度(用于在杀怪,采集等动作时保存对应的未完成任务与已完成任务) | |||||
-record(task_process_info, { | |||||
task_unfinsh = [], %%未完成的任务 | |||||
task_fin = [] %%已完成任务 | |||||
}). | |||||
%%怪物掉落 | |||||
-record(mon_drop_goods, { | |||||
drop_id = 0, %% 掉落物实例ID | |||||
uid = 0, %% 玩家ID | |||||
mon_id = 0, %% 掉落产生ID | |||||
goods_id = 0, %% 物品ID | |||||
goods_num = 0, %% 掉落数量 | |||||
x = 0, %% 掉落的X左边 | |||||
y = 0, %% 掉落的Y坐标 | |||||
expire_time = 0 %% 掉落失效时间 | |||||
}). | |||||
%% 购买npc商店日志 | |||||
-record(ets_npc_shop_log, { | |||||
key, | |||||
buy_num, %% | |||||
buy_time %% | |||||
}). | |||||
%% 购买商城日志 | |||||
-record(ets_shop_log, { | |||||
key, | |||||
buy_num, %% | |||||
buy_time %% | |||||
}). | |||||
%% 购买商城日志 | |||||
-record(ets_special_shop_log, { | |||||
key, | |||||
buy_num, %% | |||||
buy_time %% | |||||
}). | |||||
%% 队伍信息 | |||||
-record(team, { | |||||
tid = 0, %%队伍ID | |||||
leader_id = 0, %%队长ID | |||||
leader_nick = <<>>, %%队长名字 | |||||
leader_level = 0, %%队长的等级 | |||||
direct_join = 0, %%直接加入队伍 | |||||
invite_allow = 0, %%成员可发邀请 | |||||
max_num = 0, %%最大队员数 | |||||
member_ids = [] %%成员ID列表 | |||||
}). | |||||
%% 成员信息 | |||||
-record(team_member, { | |||||
uid = 0, %%角色ID | |||||
tid = 0, %%队伍ID | |||||
level = 0, %%队长的等级 | |||||
nick = <<>>, %%名字 | |||||
force = 0, %%战斗力 | |||||
camp = 0, %%阵营 | |||||
career = 0, %%职业 | |||||
gender = 0 %%性别 | |||||
}). | |||||
-record(energy, { | |||||
attack = <<"{}">>, %%攻击时回复的能量系数k | |||||
injured, %%被攻击时回复的能量系数k | |||||
crit, %%暴击回复的能量系数k | |||||
battle_recover, %%战斗时回复每秒的能量系数 k | |||||
normal_recover, %%离开战斗时每秒回复的能量系数 k | |||||
last_reflesh_time, %%最近一次计算能量球的时间 | |||||
energy_val, %%玩家当前的能量值 | |||||
max_energy, %%玩家能量值上限 , | |||||
freeze_second = 0, %%能量值暂停衰减的时间 | |||||
attack_callback_rate = 1, %%攻击回复能量值比 | |||||
injured_rate = 1000, %%受击回复能量比例 | |||||
recover_percent = 0 %%回复能量百分比 | |||||
}). | |||||
-record(ets_scene_slice, { | |||||
id = 0, | |||||
obj = [] | |||||
}). | |||||
-record(hardware_info, { | |||||
os = 0,%%手机操作系统,如:0.未知 1.android 2.iphone | |||||
os_version = <<"">>,%%操作系统版本号,如:2.3.4 | |||||
device = <<"">>,%%设备名称,如:三星GT-S5830 | |||||
device_type = 0,%%设备类型,如:0.未知 1.android 2.iPhone 3.iPad | |||||
screen = <<"">>,%%屏幕分辨率,如:480*800 | |||||
mno = 0,%%移动网络运营商(mobile network operators),0.未知 1.中国移动 2.中国电信 3.中国联通 | |||||
nm = 0 %%联网方式(Networking mode),如:0.未知 1.3G 2.WIFI 3.2G | |||||
}). |
@ -1,188 +1,17 @@ | |||||
%% 常用atom定为macro | |||||
-define(TRUE, true). | |||||
-define(FALSE, false). | |||||
-define(BREAK, break). | |||||
-define(BREAK(Value), {?BREAK, Value}). | |||||
-define(CONTINUE, continue). | |||||
-define(CONTINUE(Value), {?CONTINUE, Value}). | |||||
-define(UNDEFINED, undefined). | |||||
%% 三目元算符 | %% 三目元算符 | ||||
-define(ITE(Cond, Then, That), case Cond of true -> Then; _ -> That end). | |||||
-define(IIF(Cond, Then, That), case Cond of true -> Then; _ -> That end). | |||||
%%汉字unicode编码范围 0x4e00 - 0x9fa5 | %%汉字unicode编码范围 0x4e00 - 0x9fa5 | ||||
-define(UNICODE_CHINESE_BEGIN, (4 * 16 * 16 * 16 + 14 * 16 * 16)). | -define(UNICODE_CHINESE_BEGIN, (4 * 16 * 16 * 16 + 14 * 16 * 16)). | ||||
-define(UNICODE_CHINESE_END, (9 * 16 * 16 * 16 + 15 * 16 * 16 + 10 * 16 + 5)). | -define(UNICODE_CHINESE_END, (9 * 16 * 16 * 16 + 15 * 16 * 16 + 10 * 16 + 5)). | ||||
-compile({parse_transform, module_strengthen}). | |||||
-define(ifdo(__CONDS, __DO), ?func(case __CONDS of ?true -> __DO;_ -> false end)()). | |||||
-define(ifdo_else(__CONDS, __DO, _ELSE), ?func(case __CONDS of ?true -> __DO;_ -> _ELSE end)()). | |||||
-define(inline(__FUN, __ARGCOUNT), -compile({inline, [__FUN / __ARGCOUNT]})). | |||||
-define(format(__FORMAT, __DATA), io_lib:format(__FORMAT, __DATA)). | |||||
-define(PRINT(Format, Args), | |||||
io:format(Format, Args)). | |||||
%% format_record(record名, record数据) -> [{#record.field, record_field_value}] | %% format_record(record名, record数据) -> [{#record.field, record_field_value}] | ||||
-define(format_record(__RECORD_NAME, __RECORD_DATA), | |||||
-define(recordToKvList(RecordName, RecordData), | |||||
fun() -> | fun() -> | ||||
__Fields = record_info(fields, __RECORD_NAME), | |||||
[_ | __DATA] = tuple_to_list(__RECORD_DATA), | |||||
{__RECORD_NAME, lists:zip(__Fields, __DATA)} | |||||
end()). | |||||
-define(block(__BLOCK), begin __BLOCK end). | |||||
-define(CONFIG(__KEY), ?CONFIG(__KEY, undefined)). | |||||
-define(CONFIG(__KEY, __DEF), (fun() -> | |||||
case application:get_env(__KEY) of | |||||
{ok, Val} -> Val; | |||||
_ -> __DEF | |||||
end | |||||
end)()). | |||||
-define(CONFIG(__KEY, __SUBKEY, __DEF), (fun() -> | |||||
case application:get_env(__KEY) of | |||||
{ok, Val} when is_list(Val) -> | |||||
proplists:get_value(__SUBKEY, Val, __DEF); | |||||
_ -> __DEF | |||||
end | |||||
end)()). | |||||
-define(LOG_DEBUG(__DATA), ?LOG_DEBUG("~p", [__DATA])). | |||||
-define(LOG_DEBUG(__FMT, __DATA), io:format("[DEBUG] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA)). | |||||
-define(LOG_ERROR(__DATA), ?LOG_ERROR("~p", [__DATA])). | |||||
-define(LOG_ERROR(__FMT, __DATA), io:format("[ERROR] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA)). | |||||
-define(LOG_INFO(__DATA), ?LOG_INFO("~p", [__DATA])). | |||||
-define(LOG_INFO(__FMT, __DATA), io:format("[INFO] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [com_type:to_list(self()), | |||||
com_type:to_list(?MODULE), | |||||
com_type:to_list(?LINE)] ++ __DATA)). | |||||
-define(LAGER_DEBUG(__DATA), ?LAGER_DEBUG("~p", [__DATA])). | |||||
-define(LAGER_DEBUG(__FORMAT, __DATA), ?LARGER_LOG(debug, __FORMAT, __DATA)). | |||||
-define(LAGER_INFO(__DATA), ?LARGER_LOG(info, "~p", [__DATA])). | |||||
-define(LAGER_INFO(__FORMAT, __DATA), ?LARGER_LOG(info, __FORMAT, __DATA)). | |||||
-define(LAGER_WARNING(__DATA), ?LARGER_LOG(warning, "~p", [__DATA])). | |||||
-define(LAGER_WARNING(__FORMAT, __DATA), ?LARGER_LOG(warning, __FORMAT, __DATA)). | |||||
-define(LAGER_ERROR(__DATA), ?LARGER_LOG(error, "~p", [__DATA])). | |||||
-define(LAGER_ERROR(__FORMAT, __DATA), ?LARGER_LOG(error, __FORMAT, __DATA)). | |||||
-define(LARGER_LOG(__LEVEL, __FORMAT, __DATA), lager:log(__LEVEL, self(), "M(~p)L(~p)S(~p) ~n" ++ __FORMAT, [?MODULE, ?LINE, self()] ++ __DATA)). | |||||
-define(debug_kv(__K_V_LIST), lists:foldl(fun({K, V}, Str) -> ?format("~s ~p(~p)", [Str, K, V]) end, "", __K_V_LIST)). | |||||
-define(return(__RETURN), throw(__RETURN)). | |||||
-define(exit(__EXIT), {'EXIT', __EXIT}). | |||||
-define(exit(__BASE, __REASON), ?exit({__BASE, __REASON})). | |||||
-define(tmlm(__TAG, __MODULE, __LINE, __MSG), {__TAG, {__MODULE, __LINE}, __MSG}). | |||||
-define(err(__ERR), ?err_match(?MODULE, ?LINE, __ERR)). | |||||
-define(err_match(__ERR), ?err_match(_, _, __ERR)). | |||||
-define(err_match(__MODULE, __LINE, __ERR), ?tmlm(err, __MODULE, __LINE, __ERR)). | |||||
-define(ok(__OK), ?ok_match(?MODULE, ?LINE, __OK)). | |||||
-define(ok_match(__OK), ?ok_match(_, _, __OK)). | |||||
-define(ok_match(__MODULE, __LINE, __OK), ?tmlm(ok, __MODULE, __LINE, __OK)). | |||||
-define(notknow(__NOTKNOW), ?notknow_match(?MODULE, ?LINE, __NOTKNOW)). | |||||
-define(notknow_match(__NOTKNOW), ?notknow_match(_, _, __NOTKNOW)). | |||||
-define(notknow_match(__MODULE, __LINE, __NOTKNOW), ?tmlm(notknow, __MODULE, __LINE, __NOTKNOW)). | |||||
-define(pack_sendbinary(__Binary), {?MODULE, ?LINE, __Binary}). | |||||
-define(noreply(__State), {noreply, __State}). | |||||
-define(stop(__Reason, __NewState), {stop, __Reason, __NewState}). | |||||
-define(self, self()). | |||||
-define(msg(__MSG), {msg, ?MODULE, ?LINE, __MSG}). | |||||
-define(send_msg(__MSG), ?send_msg(?self, __MSG)). | |||||
-define(send_msg(__SENDER, __MSG), (__SENDER ! __MSG)). | |||||
-define(func(__Fun), fun() -> __Fun end). | |||||
-define(get_value(__KEY, __LIST), ?get_value(__KEY, __LIST, ?undefined)). | |||||
-define(get_value(__KEY, __LIST, __DEFAULT), common:get_value(__KEY, __LIST, __DEFAULT)). | |||||
%% base | |||||
-define(amc(__MFA, __Options, Module, Line), fun() -> | |||||
case catch __MFA of | |||||
?exit(Way, _) -> | |||||
ErrMsg = ?get_value(Way, __Options, {Way, undefined}), | |||||
Debug = ?get_value(debug, __Options, not_defined), | |||||
?LAGER_ERROR("M(~p)L(~p) D(~p) ErrMsg(~p) stacktrace(~p)", [Module, Line, Debug, ErrMsg, erlang:get_stacktrace()]), | |||||
error({undef, __MFA}); | |||||
Ret -> Ret | |||||
end | |||||
end()). | |||||
%% api | |||||
-define(amc(__MFA), ?amc(__MFA, [], ?MODULE, ?LINE)). | |||||
%% api | |||||
-define(amc(__MFA, __Options), ?amc(__MFA, __Options, ?MODULE, ?LINE)). | |||||
-define(catch_exp(__EXP), fun() -> catch __EXP end()). | |||||
-define(SYSTE_PROCESS(__TRUE_OR_FLASE), erlang:process_flag(trap_exit, __TRUE_OR_FLASE)). | |||||
-record(boot, {module :: atom(), type :: boot_type(), hasname = true :: boolean(), params :: any()}). | |||||
-define(boot_type_supervisor, supervisor). | |||||
-define(boot_type_worker, worker). | |||||
-define(boot_type_simple_worker, simple_worker). | |||||
-type boot_type() :: ?boot_type_simple_worker | ?boot_type_supervisor | ?boot_type_worker. | |||||
-define(MATH_INT32_MAX, 4294967296). | |||||
-define(cast_int(__Val), com_type:to_integer(__Val)). | |||||
-define(cast_str(__Val), com_type:to_list(__Val)). | |||||
-define(cast_erl(__Val), com_type:to_list(__Val)). | |||||
-define(record_key_val_get(__RECORDNAME, __RECORDDATA, __KEY), (fun() -> | |||||
case erlang:is_integer(__KEY) of | |||||
true -> | |||||
erlang:element(__KEY, __RECORDDATA); | |||||
false -> | |||||
Fields = record_info(fields, __RECORDNAME), | |||||
case com_lists:position(__KEY, Fields) of | |||||
{error, Error} -> | |||||
{error, Error}; | |||||
Position -> | |||||
erlang:element(Position + 1, __RECORDDATA) | |||||
end | |||||
end | |||||
end)()). | |||||
-define(record_key_val_set(__RECORDNAME, __RECORDDATA, __KEY, __VAL), (fun() -> | |||||
case erlang:is_integer(__KEY) of | |||||
true -> | |||||
erlang:setelement(__KEY, __RECORDDATA, __VAL); | |||||
false -> | |||||
Fields = record_info(fields, __RECORDNAME), | |||||
case com_lists:position(__KEY, Fields) of | |||||
{error, Error} -> | |||||
{error, Error}; | |||||
Position -> | |||||
erlang:setelement(Position + 1, __RECORDDATA, __VAL) | |||||
end | |||||
end | |||||
end)()). | |||||
Fields = record_info(fields, RecordName), | |||||
[_ | Data] = tuple_to_list(RecordData), | |||||
{RecordName, lists:zip(Fields, Data)} | |||||
end()). |
@ -1,7 +1,7 @@ | |||||
-define(SECS_MIN, 60). %%一分钟的秒数 | |||||
-define(SECS_HOUR, 3600). %%一小时的秒数 | |||||
-define(SECS_DAY, 86400). %%一天的时间(秒) | |||||
-define(SECS_WEEK, 604800). %%一周的时间(秒) | |||||
-define(DAYS_NO_LEAP_YEAR, 365). %% 平年天数 | |||||
-define(DAYS_LEAP_YEAR, 366). %% 闰年天数 | |||||
-define(SECS_1970, 62167219200). %%utc 1970年经历过的秒数 | |||||
-define(SECS_MIN, 60). %% 一分钟的秒数 | |||||
-define(SECS_HOUR, 3600). %% 一小时的秒数 | |||||
-define(SECS_DAY, 86400). %% 一天的时间(秒) | |||||
-define(SECS_WEEK, 604800). %% 一周的时间(秒) | |||||
-define(DAYS_NO_LEAP_YEAR, 365). %% 平年天数 | |||||
-define(DAYS_LEAP_YEAR, 366). %% 闰年天数 | |||||
-define(SECS_1970, 62167219200). %% utc 1970年经历过的秒数 |
@ -1,29 +0,0 @@ | |||||
-module(meta_session). | |||||
-include("meta.hrl"). | |||||
%% parse transform 'meta_session' | |||||
-export([parse_transform/2, funstring_get/1]). | |||||
parse_transform(Forms, _Options) -> | |||||
case meta:new_from_forms(Forms) of | |||||
{ok, Meta} -> | |||||
Module = meta:get_modulename(Meta), | |||||
{ok, MetaGet} = meta:add_func(Meta, funstring_get(Module)), | |||||
{ok, MetaSet} = meta:add_func(MetaGet, funstring_set(Module)), | |||||
{ok, MetaDel} = meta:add_func(MetaSet, funstring_del(Module)), | |||||
MetaFinal = MetaDel, | |||||
meta:to_forms(MetaFinal); | |||||
Error -> | |||||
io:format("parse_transform error-----------> ~p ~n", [Error]), | |||||
Forms | |||||
end. | |||||
funstring_get(Module) -> | |||||
"get(Key, Default) -> com_util:dic_get({" ++ Module ++ ",Key},Default).". | |||||
funstring_set(Module) -> | |||||
"set(Key, Value) -> com_util:dic_set({" ++ Module ++ ",Key},Value).". | |||||
funstring_del(Module) -> | |||||
"del(Key) -> com_util:dic_erase({" ++ Module ++ ",Key}).". |