|
%%%--------------------------------------
|
|
%%% @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">>).
|