源战役
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

221 regels
9.9 KiB

%%%-------------------------------------------------------------------
%%% @doc 社团竞速-头文件
%%% Module : guild_race_rank.hrl
%%% Created : 2020-07-13
%%% @Author : tyl
%%%-------------------------------------------------------------------
-define(ONE_HOUR_SECOND, 60*60). %% 一小时秒数
-define(GUILD_TOP_RANK, [1,2,3]). %% 可获得人数扩张的社团排名
-define(DEFAULT_END_DAY, 7). %% 默认活动结束天数
-define(REWARD_RECEIVE_DAY, 8). %% 奖励可领取天数
-define(CHANGE_TYPE_OUT, 0). %% 退出社团
-define(CHANGE_TYPE_IN, 1). %% 进入社团
%% 是否第一次发放奖励
-define(FIRST_SEND_REWARD_NO, 0).
-define(FIRST_SEND_REWARD_YES, 1).
%% 是否已经开始结算
-define(START_REWARD_NO, 0).
-define(START_REWARD_YES, 1).
%% 任务计算类型
-define(TASK_TYPE_CALC, 1). %% 累计型
-define(TASK_TYPE_REPLACE, 2). %% 替换型
%% 任务状态
-define(TASK_NOT_FINISH, 0). %% 任务未完成
-define(TASK_FINISHED, 1). %% 任务完成
-define(TASK_HAS_RECEIVED, 2). %% 任务奖励已领取
%% 任务类型
-define(TASK_TYPE_CREATE_GUILD, 1). %% 创建社团
-define(TASK_TYPE_INVITE_ROLE, 2). %% 邀请玩家
-define(TASK_TYPE_POWER_UP, 3). %% 战力提升
-define(TASK_TYPE_LIVE_UP, 4). %% 活跃提升
-define(TASK_TYPE_GUILD_BOSS, 5). %% 社团幻魔
%% 是否已经领取奖励
-define(NOT_RECEIVE_REWARD, 0). %% 未领取奖励
-define(CAN_RECEIVE_REWARD, 1). %% 可领取奖励
-define(HAS_RECEIVE_REWARD, 2). %% 已领取奖励
%% 发放奖励的排名需求
-define(SEND_REWARD_RANK_NEED, 10). %% 称号奖励
-define(SEND_POWER_REWARD_RANK_NEED, %% 战力榜奖励(全员/团长专属)
data_guild_race_rank:get_guild_race_rank_kv_cfg(power_rank_top)
).
-define(SEND_LIVE_REWARD_RANK_NEED, %% 活跃榜奖励(全员/团长专属)
data_guild_race_rank:get_guild_race_rank_kv_cfg(active_rank_top)
).
%% 形象修改
-define(FIGURE_CHANGE_NAME, 1).
-define(FIGURE_CHANGE_VIP, 2).
-define(FIGURE_CHANGE_SUP_VIP, 3).
%% 社团竞速管理进程状态数据
-record(guild_race_rank_state, {
guild_rank_list = [] %% 公会排行
,member_rank_map = #{} %% 成员排名 #{guild_id =>[]...}
,old_guild_rank_list = [] %% 旧的成员排名,开服前一个小时将第一个社团扔进来(这个逻辑废弃)
,old_member_rank_map = #{} %% 旧的成员排名,开服前一个小时将第一个社团扔进来(这个逻辑废弃)
,disband_rank_list = [] %% 解散的社团列表[guild_id1,guild_id2...]
,leave_member_map = #{} %% 离开社团的成员#{guild_id=>[mem1,mem2]...}
,role_guild_map = #{} %% 第八天使用(存储第八天0点结算时玩家和社团的映射)
,ref = [] %% 定时器(每隔一小时发放一次奖励)
,start_reward = 0 %% 开始结算状态 0-未开启 1-已开启
,send_ref = [] %% 邮件发放定时器
,guild_task = #{} %% 团长任务#{guild=>[#guild_task{}...]}
}).
%% 社团榜单数据
-record(guild_rank, {
rank = 0 %% 排行
,guild_id = 0 %% 社团Id
,guild_name = "" %% 社团名称
,guild_lv = 0 %% 公会等级
,captain_id = 0 %% 团长Id
,captain_name = "" %% 团长名称
,limit_num = 0 %% 人数上限(包括增加人数)
,sum_power = 0 %% 社团总战力
,old_power = 0 %% 上一次结算的战力
,old_rank = 0 %% 上次结算的战力排行
,sum_live = 0 %% 社团总活跃值
,old_live = 0 %% 上次结算社团总活跃值
,live_rank = 0 %% 总活跃值排行(只存内存)
,old_live_rank = 0 %% 上次结算社团总活跃值排行(只存内存)
,time = 0 %% 社团创建时间
,is_first = 0 %% 是否是第一个创建社团(只存内存,重启后数据消失)
,create_id = 0 %% 创建者Id
}).
%% 成员榜单数据
-record(member_rank, {
rank = 0 %% 排名
,guild_id = 0 %% 社团Id
,role_id = 0 %% 角色Id
,role_name = "" %% 角色名称
,position = 0 %% 职位
,vip_lv = 0 %% vip等级
,sup_vip = 0 %% 特权贵族类型
,power = 0 %% 战力
,old_power = 0 %% 上一次结算的战力
,old_rank = 0 %% 上一次结算的排名
,live = 0 %% 活跃值
,old_live = 0 %% 上次结算活跃值
,received_power = 0 %% 是否已领取战力榜奖励
,received_live = 0 %% 是否已经领取活跃榜奖励
,received_captain_power = 0 %% 是否已经领取团长战力榜奖励
,received_captain_live = 0 %% 是否已经领取团长活跃榜奖励
}).
%% 团长任务
-record(guild_race_rank_task, {
task_id = 0 %% 任务Id
,progress = 0 %% 进度
,status = 0 %% 状态
}).
%% ==================================== 后台配置 ===========================
%% 常量配置
-record(guild_race_rank_kv_cfg, {
id = 0 %% Id
,key = "" %% 键
,value = "" %% 值
,remark = "" %% 备注
}).
%% 社团竞榜结算 - 个人奖励配置
-record(guild_race_rank_reward_cfg, {
id = 0 %% 主键Id
,rank_low = 0 %% 排名下限
,rank_high = 0 %% 排名上限
,reward = [] %% 个人奖励
,guild_rank = 0 %% 社团排名
}).
%% 社团竞榜结算 - 社团扩张人数配置
-record(guild_race_rank_expand_cfg, {
day = 0 %% 天数
,add_mem_num = 0 %% 增加成员数量
}).
%% 任务配置
-record(base_guild_race_rank_task, {
id = 0 %% 任务Id
,sequence = 0 %% 排序
,task_name = "" %% 任务名称
,task_desc = "" %% 任务描述
,reward = [] %% 奖励
,condition = [] %% 条件
,client_skip= [] %% 前端跳转
}).
%% ------------------------------ 数据库操作 ------------------------------------
-define(insert_guild_race_rank,
<<"replace into guild_race_rank (`guild_id`, `guild_name`, `guild_lv`, `captain_id`, `sum_power`, `old_power`, `old_rank`, `old_live`, `create_id`, `time`) values (~p, '~ts', ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
-define(select_guild_race_rank,
<<"select `guild_id`, `guild_name`, `guild_lv`, `captain_id`,`sum_power`,`old_power`, `old_rank`, `old_live`, `create_id`, `time` from guild_race_rank">>).
-define(delete_guild_race,
<<"delete from guild_race_rank where `guild_id` = ~p">>).
-define(update_guild_race_rank_power,
<<"update guild_race_rank set `sum_power` = ~p where `guild_id` = ~p">>).
-define(update_guild_race_rank_old_rank,
<<"update guild_race_rank set `old_rank` = ~p, `old_power` = ~p where `guild_id` = ~p">>).
-define(update_guild_race_rank_old_live,
<<"update guild_race_rank set `old_live` = ~p where `guild_id` = ~p">>).
-define(update_guild_race_rank_guild_name,
<<"update guild_race_rank set `guild_name` = '~ts' where `guild_id` = ~p">>).
-define(update_guild_race_rank_guild_lv,
<<"update guild_race_rank set `guild_lv` = ~p where `guild_id` = ~p">>).
-define(update_guild_race_rank_captain,
<<"update guild_race_rank set `captain_id` = ~p where `guild_id` = ~p">>).
%% 成员榜相关
-define(insert_guild_race_rank_member,
<<"replace into guild_race_rank_member (`role_id`, `guild_id`, `position`, `old_power`, `old_rank`, `old_live`, `received_power`, `received_live`, `received_captain_power`, `received_captain_live`) values (~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
-define(select_guild_race_rank_member,
<<"select `role_id`, `guild_id`, `position`, `old_power`, `old_rank`, `old_live`, `received_power`, `received_live`, `received_captain_power`, `received_captain_live` from guild_race_rank_member">>).
-define(delete_guild_race_rank_member,
<<"delete from guild_race_rank_member where `role_id` = ~p">>).
-define(delete_guild_race_rank_guild,
<<"delete from guild_race_rank_member where `guild_id` = ~p">>).
-define(update_guild_race_rank_member_position,
<<"update guild_race_rank_member set `position` = ~p where `role_id` = ~p">>).
-define(update_guild_race_rank_member_old_live,
<<"update guild_race_rank_member set `old_live` = ~p where `role_id` = ~p">>).
-define(update_guild_race_rank_member_received_power,
<<"update guild_race_rank_member set `received_power` = ~p where `role_id` = ~p">>).
-define(update_guild_race_rank_member_received_live,
<<"update guild_race_rank_member set `received_live` = ~p where `role_id` = ~p">>).
-define(update_guild_race_rank_member_received_captain_power,
<<"update guild_race_rank_member set `received_captain_power` = ~p where `role_id` = ~p">>).
-define(update_guild_race_rank_member_received_captain_live,
<<"update guild_race_rank_member set `received_captain_live` = ~p where `role_id` = ~p">>).
%% 玩家和社团映射
-define(insert_guild_race_rank_role,
<<"replace into guild_race_rank_role (`role_id`, `guild_id`) values ~ts">>).
-define(insert_guild_race_rank_role_value,
<<"(~p,~p)">>).
-define(select_guild_race_rank_role,
<<"select `role_id`, `guild_id` from guild_race_rank_role">>).
%% 从社团成员表获取团长Id
-define(select_guild_captain, <<"select id from guild_member where `position` = 1 and `guild_id` = ~p limit 1">>).
%% 团长任务
-define(insert_guild_race_rank_task,
<<"replace into guild_race_rank_task (`guild_id`, `task_id`, `progress`, `status`) values (~p,~p,~p,~p)">>).
-define(select_guild_race_rank_task,
<<"select `guild_id`, `task_id`, `progress`, `status` from guild_race_rank_task">>).
-define(update_guild_race_rank_task,
<<"update guild_race_rank_task set `status`=~p where `guild_id`=~p and `task_id`=~p">>).
-define(delete_guild_race_rank_task,
<<"delete from guild_race_rank_task where `guild_id`=~p">>).