%%%-------------------------------------- %%% @Module : supplication.hrl %%% @Author : WJQ %%% @Created : 2019.04.01 %%% @Description: 祈愿 %%%-------------------------------------- -define(SUPPLICATION_BRO_NUM, 50). %% 读取最新广播记录数 -define(SUPPLICATION_REWARD_LENGTH, 10). %% 奖励选择数量 -define(SUPPLICATION_REWARD_LV_LIST, [0,1,2,3]). %% 奖励等级列表 %% 奖励限制类型 -define(LIMIT_TYPE_PERSONAL, 1). %% 个人限制 -define(LIMIT_TYPE_GLOBAL, 2). %% 全服限制(本服) %% 数据库写入状态 -define(WSTATUS_SUCCESSS, 1). %% 写入成功 -define(WSTATUS_WAIT, 2). %% 待写入 -define(SAVE_DB_CD, 10). %% 写入数据库CD时间(秒) %% 任务完成状态 -define(UNFINISH, 0). %% 未完成 -define(FINISH, 1). %% 已完成但未领取奖励 -define(HAS_RECEIVE, 2). %% 已领取奖励 %% 广播设置 -define(BROADCAST, 1). %% 广播 -define(NO_BROADCAST, 0). %% 不广播 %% 玩家祈愿数据 -record(supplication, { sub_type = 0, %% 活动子类型 self_log = [], %% 个人抽奖记录 [reward_id,...] task_list = [], %% 任务列表 [#task_progress{}...] select_reward = [], %% 已选择奖励列表 [{RewardLv, [{Weight, {PosId, RewardId}},...]},...] count = 0, %% 已抽奖次数 counter = [], %% 抽中该奖励等级后抽奖次数 [{RewardLv, Count, GetTimes},...] time = 0 %% 数据记录时间 }). %% 玩家任务数据 -record(task_progress, { task_id = 0, %% 任务ID sub_type = 0, %% 活动子类型 progress = 0, %% 任务进度 extra = [], %% 额外数据 task_status = 0, %% 任务状态 write_time = 0, %% 最近一次更新写入数据库的时间 write_status = 0, %% 写入状态 1:写入成功 2:待写入 time = 0 %% 数据记录时间 }). %% 祈愿广播记录 -record(supplication_kf, { broadcast_list = [] %% 广播列表 [#broadcast{}] }). -record(supplication_local, { status = 0, %% 0未同步 1已同步 broadcast_list = [], %% 广播列表 [#broadcast{}] counter = [] %% 全服玩家抽中该奖励等级后抽奖次数 [{RewardLv, Count, GetTimes},...] }). %% 广播记录 -record(broadcast, { role_id = 0, %% 角色id role_name = "", %% 玩家名 server_num = 0, %% 服务器标识 reward_id = 0 %% 奖励ID }). %% 祈愿任务配置 -record(supplication_task_cfg, { task_id = 0, %% 任务ID module_id = 0, %% 模块ID sub_type = 0, %% 子类型 desc = "", %% 任务描述 condition = [], %% 任务完成条件 reward_list = [], %% 奖励 jump_cfg = [] %% 跳转配置 }). %% 祈愿奖励配置 -record(supplication_reward_cfg, { reward_id = 0, %% 奖励ID reward_lv = 0, %% 奖励等级 weight = 0, %% 权重 lv_min = 0, %% 等级下限 lv_max = 0, %% 等级上限 reward_list = [], %% 奖励 effect = 0, %% 特效 broadcast = 0 %% 广播 }). %% 祈愿常量配置 -record(supplication_constant_cfg, { key = 0, %% 键 value = [], %% 值 desc = "" %% 描述 }). %% ======================== %% SQL %% ======================== -define(SELECT_SUPPLICATION, <<"SELECT `sub_type`, `self_log`, `select_reward`, `count`, `counter`, `time` FROM `supplication` WHERE `role_id` = ~p">>). -define(SELECT_SUPPLICATION_TASK, <<"SELECT `task_id`, `sub_type`, `progress`, `extra`, `task_status`, `time` FROM `supplication_task` WHERE `role_id` = ~p">>). -define(SELECT_LATEST_BROADCAST, <<"SELECT `role_id`, `role_name`, `server_num`, `reward_id` FROM `supplication_broadcast` ORDER BY `id` LIMIT ~p ">>). -define(SELECT_SUPPLICATION_COUNTER, <<"SELECT `reward_lv`, `count`, `reward_count` FROM `supplication_counter`">>). -define(REPLACE_SUPPLICATION, <<"REPLACE INTO `supplication` (`role_id`, `sub_type`, `self_log`, `select_reward`, `count`, `counter`, `time`) VALUES (~p, ~p, '~s', '~s', ~p, '~s', ~p)">>). -define(REPLACE_SUPPLICATION_TASK, <<"REPLACE INTO `supplication_task` (`role_id`, `task_id`, `sub_type`, `progress`, `extra`, `task_status`, `time`) VALUES (~p, ~p, ~p, ~p, '~s', ~p, ~p)">>). -define(REPLACE_SUPPLICATION_COUNTER, <<"REPLACE INTO `supplication_counter` (`reward_lv`, `count`, `reward_count`) VALUES (~p, ~p, ~p)">>). -define(INSERT_BROADCAST, <<"INSERT INTO `supplication_broadcast` (`role_id`, `role_name`, `server_num`, `reward_id`) VALUES (~p, '~ts', ~p, ~p)">>). -define(DELETE_ALL_SUPPLICATION_TASK, <<"DELETE FROM `supplication_task` WHERE `role_id` = ~p AND `task_id` = ~p">>). -define(DELETE_OLD_BROADCAST, <<"DELETE FROM `supplication_broadcast` WHERE `id` NOT IN (SELECT * FROM (SELECT `id` FROM supplication_broadcast ORDER BY `id` DESC LIMIT ~p) AS `a`)">>). -define(DELETE_SUPPLICATION_COUNTER, <<"DELETE FROM `supplication_counter` WHERE `reward_lv` = ~p">>). -define(UPDATE_SUPPLICATION_TASK, <<"UPDATE `supplication_task` SET `progress` = ~p, `extra` = '~s', `task_status` = ~p WHERE `role_id` = ~p AND `task_id` = ~p">>).