源战役
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.

421 regels
15 KiB

1 maand geleden
  1. %%%-----------------------------------
  2. %%% @Module : lib_kf_1vn
  3. %%% @Email : ming_up@foxmail.com
  4. %%% @Created : 2018.1.24
  5. %%% @Description: 跨服1vN 头文件
  6. %%%-----------------------------------
  7. -define(KF_1VN_FREE, 0). %% 空闲
  8. -define(KF_1VN_SIGN, 1). %% 报名
  9. -define(KF_1VN_RACE_1_PRE, 2). %% 淘汰赛准备
  10. -define(KF_1VN_RACE_1, 3). %% 淘汰赛
  11. -define(KF_1VN_RACE_2_PRE, 4). %% 挑战赛准备
  12. -define(KF_1VN_RACE_2, 5). %% 挑战赛
  13. -define(KF_1VN_END, 6). %% 挑战赛
  14. -define(KF_1VN_STATE_WAIT, 0). %% 等待
  15. -define(KF_1VN_STATE_BET, 2). %% 押注
  16. -define(KF_1VN_STATE_MATCH, 1). %% 匹配
  17. -define(KF_1VN_STATE_FIGHT, 3). %% 战斗
  18. -define(KF_1VN_STATE_END, 4). %% 结束
  19. -define(KF_1VN_ROLE_WEED, 0). %% 淘汰
  20. -define(KF_1VN_ROLE_WAIT, 1). %% 等待战斗
  21. -define(KF_1VN_ROLE_FIGHT, 2). %% 对战中
  22. -define(KF_1VN_ROLE_SIGN, 3). %% 报名
  23. -define(KF_1VN_ROLE_FAIL, 4). %% 擂主失败
  24. -define (SIDE_CHALLENGER, 0). %% 挑战者
  25. -define (SIDE_DEF, 1). %% 擂主
  26. -define (KF_1VN_WIN_SIDE_A, 1). %% A方获胜
  27. -define (KF_1VN_WIN_SIDE_B, 2). %% B方获胜
  28. -define(KF_1VN_C_TYPE_PLAYER, 1). %% 真实玩家
  29. -define(KF_1VN_C_TYPE_ROBOT, 2). %% 机器人
  30. -define(KF_1VN_CFG_ENTER_LV, 1). %% 进入等级配置key
  31. -define(KF_1VN_CFG_RACE_1_XY, 2). %% 资格赛双方出生坐标配置key
  32. -define(KF_1VN_CFG_DEF_XY, 3). %% 擂主出生坐标配置key
  33. -define(KF_1VN_CFG_CHALLENGER_XY, 4). %% 挑战者出生坐标配置key
  34. -define(KF_1VN_CFG_PER_SCENE_XY, 5). %% 等待场景出生坐标配置key
  35. -define(KF_1VN_CFG_BET_TIME, 6). %% 竞猜时间配置key
  36. -define(KF_1VN_CFG_ACT_MIN_NUM, 7). %% 开活动的最低人数配置key
  37. -define(KF_1VN_CFG_AREA_MIN_NUM, 8). %% 每个区域的最低人数配置key
  38. -define(KF_1VN_CFG_AUCTION_MIN_LV, 9). %% 拍卖全服邮件最低等级(包含)
  39. -define(KF_1VN_CFG_RACE_1_SCENE, 10). %% 资格赛战斗场景配置key
  40. -define(KF_1VN_CFG_RACE_1_PRE_SCENE,11). %% 资格赛备战场景配置key
  41. -define(KF_1VN_CFG_RACE_2_SCENE, 12). %% 挑战赛战斗场景配置key
  42. -define(KF_1VN_CFG_RACE_2_PRE_SCENE,13). %% 挑战赛备战场景配置key
  43. -define(KF_1VN_CFG_VOUCHER, 14). %% 代金卷id配置key
  44. -define(KF_1VN_CFG_LOSER_SCORE, 15). %% 资格赛战败积分配置key
  45. -define(KF_1VN_CFG_WINNER_SCORE, 16). %% 资格赛胜利积分配置key
  46. -define(KF_1VN_CFG_RACE_1_TIMES, 17). %% 资格赛最多打几场
  47. -define(KF_1VN_CFG_EXP_RATIO, 18). %% 擂主经验值加成
  48. -define(KF_1VN_CFG_ALL_WIN_REWARD, 19). %% 擂主全胜奖励
  49. -define(KF_1VN_CFG_AUCTION_START_TIME, 20).%% 拍卖启动时间
  50. -define(KF_1VN_CFG_BET_COST, 21). %% 竞猜花费
  51. -define(KF_1VN_CFG_ENTER_MATCH_TIME,22). %% 进场景剩余多少时间不匹配
  52. -define(KF_1VN_CFG_OPEN_DAY, 23). %% 开服多少天后才能开启
  53. -define(KF_1VN_CFG_COMBAT_POWER, 24). %% 单位评分战力
  54. -define(KF_1VN_TYPE_RACE_1, 1). %% 资格赛
  55. -define(KF_1VN_TYPE_RACE_2, 2). %% 挑战赛
  56. -define(KF_1VN_LOSE, 1). %% 失败
  57. -define(KF_1VN_WIN, 2). %% 胜利
  58. -define(KF_1VN_ENTER, 1). %% 在场景中
  59. -define(KF_1VN_QUIT, 0). %% 不在场景中
  60. -define(KF_1VN_WAITING_TIME, 20). %% 战斗等待时间
  61. -define(KF_1VN_EXP_ADD_TIME, 5000). %% 增加经验间隔 5s
  62. -define(KF_1VN_WATCH_MAX_NUM, 100). %% 单场战斗观战人数上限
  63. -define(KF_1VN_SEND_OUT_TIME, 60). %% 活动结束多少秒退出场景
  64. -define(RACE_1_MATCH_COUNT, 2). %% 资格赛匹配到同一个人的次数
  65. -define(RACE_2_MATCH_COUNT, 5). %% 挑战赛随机难度列表次数
  66. -define(PRE_SCENE_XY_KEY, {621, pre_scene_xy_key}).
  67. %% 配置-1vN活动开启时间
  68. -record(kf_1vn_time_cfg, {
  69. id = 0, %% 活动唯一id
  70. open_week = [], %% 周几开启
  71. signtime = {0, 0}, %% 报名开启时间
  72. optime = {0, 0}, %% 活动开启时间
  73. race_1_pre = 0, %% 资格赛准备时间(s)
  74. race_1 = 0, %% 资格赛时间(s)
  75. race_1_m_time = 0, %% 资格赛匹配时间(s)
  76. race_1_b_time = 0, %% 资格赛战斗时间(s)
  77. race_2_pre = 0, %% 挑战赛准备时间(s)
  78. race_2 = 0, %% 挑战赛时间(s)
  79. race_2_m_time = 0, %% 挑战赛匹配时间(s)
  80. race_2_b_time = 0, %% 挑战赛战斗时间(s)
  81. bet_time = 0 %% 竞猜时间(s)
  82. }).
  83. %% 配置-1vN分组
  84. -record(kf_1vn_group, {
  85. id=0, %% 自增id
  86. hard=0, %% 难度评级
  87. robot_args=0, %% 机器人系数
  88. height=0 %% 人数权重
  89. }).
  90. %% 配置-1vN守擂匹配
  91. -record(kf_1vn_race_2_match, {
  92. stage=0, %% 阶段
  93. area=0, %% 赛区
  94. hard=0, %% 难度评级
  95. c_num=0, %% 挑战者人数
  96. hard_list = [], %% 难度评级列表
  97. all_hard = [] %% 难度评级上下限
  98. }).
  99. %% 配置-1vN拍卖匹配
  100. -record(kf_1vn_auction_cfg, {
  101. id=0, %% 自增id
  102. area=0, %% 赛区
  103. goods=[], %% 物品列表
  104. cost=[], %% 消耗
  105. ser_award=[] %% 全服奖励
  106. }).
  107. %% 进程记录
  108. %% 报名和竞猜记录
  109. -record(kf_1vn_role_sign, {
  110. server_id = 0, %% 服务器id
  111. id = 0, %% 玩家id
  112. name = "", %% 玩家名
  113. server_name = "", %% 服务器名
  114. lv = 0, %% 等级
  115. area = 0, %% 赛区
  116. battle_id = 0, %% 战斗id
  117. bet_side=0, %% 竞猜哪边胜
  118. combat_power=0, %% 战力
  119. race_1_seed=0 %% 种子选手
  120. }).
  121. %% 1vN角色基本信息
  122. -record(kf_1vn_role, {
  123. id = 0, %% 玩家id
  124. server_id=0, %% 服务器id
  125. server_num=0, %% 服务器数
  126. server_name = "", %% 服务器名
  127. figure=undefined, %% 形象
  128. attr=undefined, %% 属性
  129. combat_power=0, %% 战力
  130. score=0, %%分数
  131. win=0, %% 胜利次数
  132. race_1_times=0, %% 资格赛战斗次数
  133. race_1_match=0, %% 资格赛匹配次数,影响匹配参数
  134. race_1_match_record = [], %% 资格赛匹配记录[{role_id, time}]
  135. race_1_seed = 0, %% 种子选手
  136. win_streak= 0, %% 连胜次数
  137. enter=0, %% 是否在场景中
  138. area=0, %% 赛区
  139. out=0, %% 是否在资格赛中被淘汰
  140. pk=0, %% 是否在战斗中
  141. pk_time = 0, %% 战斗结束时间
  142. exp = 0, %% 已获取经验
  143. pk_pid = undefined, %% 战斗进程
  144. scene_pool_id = 0, %% 场景进程id
  145. race_2_turn=0, %% 擂台赛轮数
  146. race_2_time = 0, %% 擂台赛存活时间
  147. race_2_lose=0, %% 是否已经输了擂台赛
  148. race_2_match_heigh=0,%% 擂台赛匹配权重
  149. race_2_side = 0, %% 擂台赛身份
  150. race_2_bet_id = 0, %% 竞猜id
  151. race_2_battle_id = 0,%% 擂台赛战斗id
  152. watch_battle_id = 0, %% 观战id
  153. match_challenger = 0, %% 是否被选为该轮比赛的挑战者 0否 1是
  154. result = 0 %% 0未被选为挑战者,1挑战失败 2挑战胜利(用来排名用的)
  155. }).
  156. -record(kf_1vn_role_pk, {
  157. type = 0, %% ?KF_1VN_C_TYPE_PLAYER|?KF_1VN_C_TYPE_ROBOT
  158. id = 0, %% 玩家id
  159. server_id = 0, %% 服务器id
  160. name = "", %% 玩家名
  161. server_num = 0, %% 服务器数
  162. server_name = "", %% 服务器名
  163. scene_pool_id=0, %% 场景进程id
  164. career = 0, %% 职业
  165. sex= 1, %% 性别
  166. turn = 0, %% 转生
  167. picture = "", %% 头像
  168. picture_ver = 0, %% 头像版本
  169. area = 0, %% 赛区
  170. score = 0, %% 分数
  171. win = 0, %% 胜负
  172. win_streak = 0, %% 连胜
  173. race_1_times = 0, %% 资格赛次数
  174. attr=undefined, %% 属性
  175. combat_power = 0, %% 战力
  176. is_dead = 0, %% 是否死亡
  177. hard = 0, %% 难度评级
  178. enter = 0, %% 是否在场景中
  179. lv = 0 %% 等级
  180. }).
  181. -record(kf_1vn_score_rank, {
  182. rank = 0, %% 排名
  183. id = 0, %% 玩家id
  184. server_id=0, %% 服务器id
  185. server_num=0, %% 服务器数
  186. server_name = "", %% 服务器名
  187. name="", %% 玩家名
  188. guild_name="", %% 公会名
  189. vip =0, %% vip等级
  190. score=0, %% 分数
  191. win=0, %% 胜利次数
  192. lose=0, %% 失败次数
  193. combat_power = 0, %% 战力
  194. career=0 %% 职业
  195. }).
  196. %% 活动时间信息
  197. -record(kf_1vn_time, {
  198. sign_start = 0, %% 报名开始时间
  199. race_1_pre_start = 0, %% 资格赛等待开始时间
  200. race_1_start = 0, %% 淘汰赛开启时间
  201. race_1_end = 0, %% 淘汰赛结束时间
  202. race_2_pre_start = 0, %% 挑战赛准备开启时间
  203. race_2_start = 0, %% 挑战赛开启时间
  204. race_2_end = 0, %% 挑战赛结束时间
  205. show = 0 %% 展示时长
  206. }).
  207. %% 活动数据
  208. -record(kf_1vn_info, {
  209. ac_id=0,
  210. all_time = #kf_1vn_time{}, %% 整个活动开启的时间信息
  211. stage = 0, %% 活动阶段:0空闲 1报名 2淘汰赛 3挑战赛准备 4挑战赛 5展示 6聊天时间
  212. start_time = 0, %% 活动开启时间
  213. end_time = 0, %% 活动结束时间(0表示动态结束)
  214. state = 0, %% 活动状态(0空闲 1等待 2进行中 3押注 4战斗)
  215. ref=undefined %% 定时器
  216. }).
  217. %% 1vN 擂台赛记录
  218. -record(kf_1vn_race_2, {
  219. def_list=[], %% 擂主id列表
  220. challenger_list=[], %% 挑战者id列表
  221. match_list=[], %% 匹配列表
  222. battle_id = 1, %% 当前最大战斗id
  223. bet_m=#{}, %% 竞猜map
  224. def_rank=[], %% 擂主排行榜 格式 [#kf_1vn_def_rank{}]
  225. challenage_rank = [] %% 挑战者排行榜 格式 [#kf_1vn_challenger_rank{}]
  226. }).
  227. %% 1vN对战(匹配)列表
  228. -record(kf_1vn_race_2_match_info, {
  229. battle_id = 0, %% 战斗id
  230. status=0, %% 战斗状态
  231. scene_pool_id=0, %% 场景进程id
  232. copy_id=undefined,
  233. def_role=undefined, %% 擂主信息 格式 #kf_1vn_role{}
  234. challengers=[], %% 挑战者id 格式 [#kf_1vn_role{}]
  235. battle_win=0, %% 战斗胜负 1:擂主胜 2:挑战者胜
  236. watch_ids=[], %% 观战玩家id列表
  237. watch_num=0 %% 观战玩家数量
  238. }).
  239. -record(kf_1vn_def_rank, {
  240. rank = 0,
  241. id = 0,
  242. server_id=0,
  243. server_num=0,
  244. server_name = "",
  245. name="",
  246. guild_name="",
  247. vip =0,
  248. score=0,
  249. race_2_lose=0,
  250. race_2_turn=1,
  251. race_2_time=0,
  252. combat_power = 0,
  253. career = 0,
  254. enter=0
  255. }).
  256. -record(kf_1vn_challenger_rank, {
  257. rank = 0,
  258. id = 0,
  259. server_id=0,
  260. server_num=0,
  261. name="",
  262. guild_name="",
  263. vip =0,
  264. score=0,
  265. combat_power = 0,
  266. career = 0,
  267. enter=0,
  268. race_2_turn=1,
  269. result = 0, %% 1失败 2胜利
  270. race_2_time = 0 %% 存活时间
  271. }).
  272. %% 玩家记录
  273. -record(status_kf1vn, {
  274. area = 0,
  275. def_type=0, %% 1擂主 2挑战者
  276. turn = 0 %% 擂主存活轮次
  277. }).
  278. %% --------- mod_kf_1vn ---------------
  279. %% 活动总状态
  280. -record(act_state, {
  281. ac_id = 0,
  282. stage = 0,
  283. sub_stage = 0,
  284. optime = 0,
  285. edtime = 0,
  286. sub_edtime = 0,
  287. area_list = [],
  288. max_scene_pool = 0,
  289. sign_num = 0,
  290. sign_list = [], %% 报名信息 [{Id1, Lv},...]
  291. role_m = #{}, %% 参加玩家信息(全区域) #{Area1 => [#kf_1vn_role{},...],...}
  292. race_1_rank_m = #{}, %% 资格赛排行榜(全区域) #{Area1 => [#kf_1vn_score_rank{},...],...}
  293. race_2_m = #{}, %% 挑战赛信息(全区域) #{Area1 => [#kf_1vn_race_2{},...],...}
  294. def_num_m = #{},
  295. seed_num_m = #{},
  296. match_time = 0,
  297. battle_time = 0,
  298. match_ref = undefined,
  299. match_turn = 1,
  300. last_match_time = 0,
  301. exp_ref = undefined,
  302. sorted_sign_list = undefined, %% 有序的报名信息
  303. max_power = 10000000
  304. }).
  305. %% ---------- mod_kf_1vn_auction ----------
  306. %% 拍卖进程状态
  307. -record(auction_state, {
  308. issue=0,
  309. stage=0,
  310. auction_list=[],
  311. follow_list=[],
  312. ref = undefined,
  313. optime = 0,
  314. edtime = 0,
  315. past_list=[] %% 往期记录
  316. }).
  317. -record(auction, {
  318. id=0,
  319. area = 0,
  320. result=0,
  321. last_price=0,
  322. goods = [],
  323. cost = [],
  324. bidders = [], %% [#bidder{}, ...]
  325. rank = [], %% [#bidder{}, ...]
  326. min_rank_price = 0
  327. }).
  328. -record(bidder, {
  329. id=0, %% 玩家id
  330. server_id=0, %% 服id
  331. server_num=0, %% 服数
  332. name = "", %% 玩家名字
  333. price = 0, %% 玩家拍卖价格(包含代金卷)
  334. voucher = 0, %% 代金卷数量
  335. payment_refs = [] %% 预付款单据引用
  336. }).
  337. -record(past_auction, {
  338. issue=1,
  339. server_num=0,
  340. name="",
  341. price=0,
  342. goods=[]
  343. }).
  344. %% ------------- local_state ---------
  345. -record(local_state, {
  346. stage=0, %% 比赛阶段
  347. sub_stage=0,%% 比赛子阶段
  348. optime=0, %% 此阶段开启时间
  349. edtime=0, %% 此阶段结束时间
  350. sign_num=0, %% 报名人数
  351. def_num_m = #{}, %% 擂主人数
  352. sign_info = [], %% 本服报名名单 [{Id, 所属战区},....]
  353. race_1_rank_m = #{}, %% 资格赛排行榜
  354. def_rank_m = #{}, %% 擂主排行榜
  355. challenger_rank_m = #{}, %% 挑战者排行榜
  356. node = undefined,
  357. auction_stage=0,
  358. auction_edtime=0
  359. }).
  360. %% ------------ pk_state ------------
  361. -record(pk_state, {
  362. stage = 0,
  363. area = 0,
  364. battle_id = 0,
  365. side_a = undefined, %% #kf_1vn_role_pk{}
  366. side_b_list = [], %% [#kf_1vn_role_pk{},...]
  367. battle_time = 0,
  368. loading_time = 0,
  369. is_end = 0,
  370. scene_id=0,
  371. scene_pool_id=0,
  372. match_turn = 0,
  373. start_time = 0,
  374. optime=0,
  375. ref = undefined,
  376. max_power = 10000000,
  377. ready_time = 0,
  378. result = 0 %% 获胜方 1-A方 2-B方
  379. }).