|
%%%-------------------------------------------------------------------
|
|
%%% @doc 学位-头文件
|
|
%%% Module: degree
|
|
%%% Created : 2019-11-25
|
|
%%% @Author: tyl
|
|
%%%-------------------------------------------------------------------
|
|
|
|
-define(DegreeOpenLv, 20). %% 学位系统开放等级
|
|
-define(ExpRatio, 20). %% 经验累积封顶倍数
|
|
|
|
%% 每日功课完成状态
|
|
-define(ClassUnFinish, 1). %% 未完成
|
|
-define(ClassUnReceive, 2). %% 未领取奖励
|
|
-define(ClassFinish, 3). %% 已完成
|
|
|
|
%% 每日功课随机数量
|
|
-define(RandClassWorkCount, 3).
|
|
|
|
%% 事件触发类型
|
|
-define(FIN_DEGREE_UPGRADE_DUN, 1).
|
|
-define(ADD_CLASSWORK_PROGRESS, 2).
|
|
|
|
%% 每日功课类型
|
|
-define(ClassWorkDun, 1). %% 副本
|
|
-define(ClassWorkKillMon, 2). %% 杀怪
|
|
-define(ClassworkMountUp, 3). %% 坐骑升星
|
|
|
|
%% 刷新数据
|
|
-define(RefreshType1, 1). %% 学位晋升副本状态刷新
|
|
-define(RefreshType2, 2). %% 日常功课任务状态刷新
|
|
|
|
%% 学位数据
|
|
-record(degree,{
|
|
degree_id = 0, %% 学位Id
|
|
degree_exp = 0, %% 学位经验
|
|
degree_max_exp = 0, %% 当前学位等级最大经验
|
|
dun_state = [], %% 副本完成状态[{DunId, State}]
|
|
daily_class = [], %% 日常任务完成情况 #daily_class{}
|
|
attr_list = [], %% 属性列表
|
|
power = 0 %% 战力
|
|
}).
|
|
|
|
%% 日常功课
|
|
-record(daily_class, {
|
|
class_status_map = #{}, %% 日常功课完成状态 #{ClassId => State} State:1,未完成 2,未领取 3,已完成
|
|
class_progress_map = #{} %% 日常功课完成进度 #{ClassId => [Type, Id, Num]} 学位晋升后进度需要清空
|
|
}).
|
|
|
|
%% ==================================== 后台配置 ===========================
|
|
%% 学位配置表
|
|
-record(degree_cfg, {
|
|
degree_id = 0, %% 学位Id
|
|
degree_name = "", %% 学位名称
|
|
icon = 0, %% 学位icon
|
|
attr_list = [], %% 属性列表
|
|
need_exp = 0, %% 升级需要经验
|
|
need_matrial = [], %% 收集材料列表
|
|
finish_dungeon = 0, %% 完成副本Id
|
|
description = "", %% 娱乐描述
|
|
is_tv = 0 %% 是否传闻
|
|
}).
|
|
|
|
%% 日常功课配置表
|
|
-record(degree_timetable_cfg, {
|
|
class_id = 0, %% 功课Id
|
|
class_name = "", %% 功课名称
|
|
class_desc = "", %% 功课描述
|
|
target = [], %% 完成目标,格式:[{Type, Id, Num}] 1.副本,2.击杀怪物,3.坐骑升星
|
|
award_exp = 0, %% 奖励经验
|
|
need_degree = 0 %% 学位等级限制
|
|
}).
|
|
|
|
%% ==================================== 数据库操作 ===========================
|
|
%% 学位相关
|
|
-define(SQL_SELECT_PLAYER_DEGREE, <<"SELECT `degree_id`, `degree_exp`, `dun_state` FROM player_degree WHERE `role_id` = ~p LIMIT 1">>).
|
|
-define(SQL_INSERT_PLAYER_DEGREE, <<"REPLACE INTO player_degree (`role_id`, `degree_id`, `degree_exp`, `dun_state`, `time`) VALUES (~p, ~p, ~p, '~ts', ~p)">>).
|
|
-define(SQL_UPDATE_PLAYER_DEGREE, <<"UPDATE player_degree SET `degree_id` = ~p, `degree_exp` = ~p, `dun_state` = '~ts', `time` = ~p WHERE `role_id` = ~p">>).
|
|
-define(SQL_UPDATE_PLAYER_DEGREE_EXP, <<"UPDATE player_degree SET `degree_exp` = ~p, `time` = ~p WHERE role_id = ~p">>).
|
|
-define(SQL_UPDATE_PLAYER_DEGREE_DUN_STATE, <<"UPDATE player_degree SET `dun_state` = '~ts', `time` = ~p WHERE role_id = ~p">>).
|
|
%% 日常功课相关
|
|
-define(SQL_SELECT_PLAYER_CLASSWORK, <<"SELECT `class_id`, `content`, `time` FROM player_degree_classwork WHERE `role_id` = ~p">>).
|
|
-define(SQL_INSERT_PLAYER_CLASSWORK, <<"REPLACE INTO player_degree_classwork (`role_id`, `class_id`, `content`, `time`) VALUES (~p, ~p, '~ts', ~p)">>).
|
|
-define(SQL_UPDATE_PLAYER_CLASSWORK_CONTENT, <<"UPDATE player_degree_classwork SET `content` = '~ts', `time` = ~p WHERE `role_id` = ~p and `class_id` = ~p">>).
|
|
|
|
%% Degree: dun_state格式 [{DunId, State}]
|
|
%% ClassWork: content格式 [ClassType, ClassWorkId, Num, State]
|
|
|
|
%% 4点清理日常功课
|
|
-define(SQL_DELETE_PLAYER_CLASSWORK, <<"TRUNCATE TABLE player_degree_classwork">>).
|