源战役
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

122 linhas
4.9 KiB

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