源战役
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
4.0 KiB

1 개월 전
  1. %%%-------------------------------------------------------------------
  2. %%% @doc 学位-头文件
  3. %%% Module: degree
  4. %%% Created : 2019-11-25
  5. %%% @Author: tyl
  6. %%%-------------------------------------------------------------------
  7. -define(DegreeOpenLv, 20). %% 学位系统开放等级
  8. -define(ExpRatio, 20). %% 经验累积封顶倍数
  9. %% 每日功课完成状态
  10. -define(ClassUnFinish, 1). %% 未完成
  11. -define(ClassUnReceive, 2). %% 未领取奖励
  12. -define(ClassFinish, 3). %% 已完成
  13. %% 每日功课随机数量
  14. -define(RandClassWorkCount, 3).
  15. %% 事件触发类型
  16. -define(FIN_DEGREE_UPGRADE_DUN, 1).
  17. -define(ADD_CLASSWORK_PROGRESS, 2).
  18. %% 每日功课类型
  19. -define(ClassWorkDun, 1). %% 副本
  20. -define(ClassWorkKillMon, 2). %% 杀怪
  21. -define(ClassworkMountUp, 3). %% 坐骑升星
  22. %% 刷新数据
  23. -define(RefreshType1, 1). %% 学位晋升副本状态刷新
  24. -define(RefreshType2, 2). %% 日常功课任务状态刷新
  25. %% 学位数据
  26. -record(degree,{
  27. degree_id = 0, %% 学位Id
  28. degree_exp = 0, %% 学位经验
  29. degree_max_exp = 0, %% 当前学位等级最大经验
  30. dun_state = [], %% 副本完成状态[{DunId, State}]
  31. daily_class = [], %% 日常任务完成情况 #daily_class{}
  32. attr_list = [], %% 属性列表
  33. power = 0 %% 战力
  34. }).
  35. %% 日常功课
  36. -record(daily_class, {
  37. class_status_map = #{}, %% 日常功课完成状态 #{ClassId => State} State:1,未完成 2,未领取 3,已完成
  38. class_progress_map = #{} %% 日常功课完成进度 #{ClassId => [Type, Id, Num]} 学位晋升后进度需要清空
  39. }).
  40. %% ==================================== 后台配置 ===========================
  41. %% 学位配置表
  42. -record(degree_cfg, {
  43. degree_id = 0, %% 学位Id
  44. degree_name = "", %% 学位名称
  45. icon = 0, %% 学位icon
  46. attr_list = [], %% 属性列表
  47. need_exp = 0, %% 升级需要经验
  48. need_matrial = [], %% 收集材料列表
  49. finish_dungeon = 0, %% 完成副本Id
  50. description = "", %% 娱乐描述
  51. is_tv = 0 %% 是否传闻
  52. }).
  53. %% 日常功课配置表
  54. -record(degree_timetable_cfg, {
  55. class_id = 0, %% 功课Id
  56. class_name = "", %% 功课名称
  57. class_desc = "", %% 功课描述
  58. target = [], %% 完成目标,格式:[{Type, Id, Num}] 1.副本,2.击杀怪物,3.坐骑升星
  59. award_exp = 0, %% 奖励经验
  60. need_degree = 0 %% 学位等级限制
  61. }).
  62. %% ==================================== 数据库操作 ===========================
  63. %% 学位相关
  64. -define(SQL_SELECT_PLAYER_DEGREE, <<"SELECT `degree_id`, `degree_exp`, `dun_state` FROM player_degree WHERE `role_id` = ~p LIMIT 1">>).
  65. -define(SQL_INSERT_PLAYER_DEGREE, <<"REPLACE INTO player_degree (`role_id`, `degree_id`, `degree_exp`, `dun_state`, `time`) VALUES (~p, ~p, ~p, '~ts', ~p)">>).
  66. -define(SQL_UPDATE_PLAYER_DEGREE, <<"UPDATE player_degree SET `degree_id` = ~p, `degree_exp` = ~p, `dun_state` = '~ts', `time` = ~p WHERE `role_id` = ~p">>).
  67. -define(SQL_UPDATE_PLAYER_DEGREE_EXP, <<"UPDATE player_degree SET `degree_exp` = ~p, `time` = ~p WHERE role_id = ~p">>).
  68. -define(SQL_UPDATE_PLAYER_DEGREE_DUN_STATE, <<"UPDATE player_degree SET `dun_state` = '~ts', `time` = ~p WHERE role_id = ~p">>).
  69. %% 日常功课相关
  70. -define(SQL_SELECT_PLAYER_CLASSWORK, <<"SELECT `class_id`, `content`, `time` FROM player_degree_classwork WHERE `role_id` = ~p">>).
  71. -define(SQL_INSERT_PLAYER_CLASSWORK, <<"REPLACE INTO player_degree_classwork (`role_id`, `class_id`, `content`, `time`) VALUES (~p, ~p, '~ts', ~p)">>).
  72. -define(SQL_UPDATE_PLAYER_CLASSWORK_CONTENT, <<"UPDATE player_degree_classwork SET `content` = '~ts', `time` = ~p WHERE `role_id` = ~p and `class_id` = ~p">>).
  73. %% Degree: dun_state格式 [{DunId, State}]
  74. %% ClassWork: content格式 [ClassType, ClassWorkId, Num, State]
  75. %% 4点清理日常功课
  76. -define(SQL_DELETE_PLAYER_CLASSWORK, <<"TRUNCATE TABLE player_degree_classwork">>).