%%%------------------------------------------------------------------- %%% @author liushl %%% @doc %%% 跳一跳 %%% @end %%%------------------------------------------------------------------- -author("liushl"). -define(JUMP_ACT_TICKET, "666JKLSDFRTYABJK666"). %% 事件类型 -define(JUMP_ACT_EVENT_COMMON, 0). %% -define(JUMP_ACT_EVENT_MATCH, 1). %% 匹配 -define(JUMP_ACT_EVENT_PLAY, 2). %% 跳一跳 %% 玩法模式 -define(JUMP_ACT_PATTERN_SINGLE, 1). %% 单人模式 -define(JUMP_ACT_PATTERN_MULTIPLE, 2). %% 多人模式 -define(JUMP_ACT_PRC_DATA, jump_info). %% 玩法数据 -define(JUMP_ACT_SCENE, 20010). %% 活动场景 -define(JUMP_ACT_MATCH_TIME_4, 5 ). %% 4人匹配开始时间 -define(JUMP_ACT_WAIT_TIME, 20 ). %% 即使玩家没有进来,20秒后也强制开始 -define(JUMP_ACT_READY_TIME, 3 ). %% 5秒倒计时开始 -define(JUMP_ACT_END_TIME, 5 ). %% 5秒倒计时结束 -define(JUMP_ACT_JUMP_TIME, custom_act_jump_act:data_cfg(jump_time, 15)). %% 15秒跳跃超时 -define(JUMP_ACT_MAX_LIFE, custom_act_jump_act:data_cfg(jump_life, 3)). %% 每个人最大生命值 -define(JUMP_ACT_MAX_MATCH, custom_act_jump_act:data_cfg(jump_day_max, 0)). %% 每个人最大匹配次数 -define(JUMP_ACT_MAX_AWARD, custom_act_jump_act:data_cfg(jump_everyday_times, 0)). %% 每个人最大奖励次数 -define(JUMP_ACT_MATCH_MIN_NUM, custom_act_jump_act:data_cfg(jump_min_num, 3)). %% 最少开始人数 -define(JUMP_ACT_MATCH_MAX_NUM, custom_act_jump_act:data_cfg(jump_max_num, 4)). %% 最大开始人数 -define(JUMP_ACT_MATCH_WAIT_TIME, custom_act_jump_act:data_cfg(jump_wait, 180)). %% 达到最少人数后多久开始 -define(JUMP_ACT_SINGLE_LEFT, custom_act_jump_act:data_cfg(jump_single_life, 100)). %% 单人模式100条命 -define(JUMP_ACT_SINGLE_PLAY, custom_act_jump_act:data_cfg(jump_single_everyday_times, 10)). %% 单人模式每日匹配次数 %% 跳跃进度 -define(JUMP_PROGRESS_NONE, 0). %% 未跳跃 -define(JUMP_PROGRESS_PRE, 1). %% 准备跳跃 -define(JUMP_PROGRESS_JUMP, 2). %% 跳跃中 %% 跳跃结果 -define(JUMP_ACT_JUMP_SUCCESS, 1). %% 成功 -define(JUMP_ACT_JUMP_FAIL, 0). %% 失败 %% 每日计数器 -define(JUMP_ACT_COUNTER_DAILY_COUNT, 1). %% 终生计数器 -define(JUMP_ACT_COUNTER_LIFE_COUNT, 1). %% 活动管理 -record(jump_act_center, { room_id = 1 %% 房间编号-递增 , act_data = #{} %% #{sub_type => #jump_act_act{}} }). -record(jump_act_act, { sub_type = 0 %% 定制活动子类型 , ref_state %% 活动定时器 , end_time = 0 %% 单场活动结束 , match_list = [] %% 匹配列表:匹配成功后,房间数据存于进程字典 , match_ref %% 匹配成功倒计时:满3人后180s倒计时, , match_time = 0 %% 匹配成功时间 , temp_room = [] %% 临时数据,存放离线时在玩法中的玩家信息[{role_id,room_id}|_] , rooms = #{} }). %% 玩家管理 -record(jump_act_state, { sub_type = 0 %% 定制活动子类型 , ref_state %% 活动定时器 , end_time = 0 %% 单场活动结束 , match_list = [] %% 匹配列表:匹配成功后,房间数据存于进程字典 , match_ref %% 匹配成功倒计时:满3人后180s倒计时, , match_time = 0 %% 匹配成功时间 , room_id = 1 %% 房间编号-递增 , temp_room = [] %% 临时数据,存放离线时在玩法中的玩家信息[{role_id,room_id}|_] }). %% 台子 -record(jump_act_step, { x = 0 %% 台子坐标 , y = 0 , radius = 0 %% 台子半径 , model = 0 %% 台子模型 }). %% 房间数据 进程字典 -record(jump_act_room, { id = 0 %% 房间编号 , pattern = 0 %% 模式:1单人|2多人 , begin_time= 0 %% 开始时间 , scene_pool= 0 %% 房间分线id , roles = [] %% 参与玩家列表[#jump_act_role{}] , all_enter = [] %% 开始标识,为空的时候表明玩家全部进来 , ref_act %% 玩法定时器 %% 满4人后5s倒计时/15秒跳跃超时计时 , round = 0 %% 轮次 , step_coming %% 预告台子 , step_foot %% 当前脚下台子 %% 下一个台子 , x = 0 %% 下一个台子坐标 , y = 0 , radius = 0 %% 下一个台子半径 , model = 0 %% 下一个台子模型 , step_end = 0 %% 是否该地图最后一个台子 , map_id = 0 %% 地图id , jump_status = 0 %% 跳跃结果:1成功|0失败 , jump_role = 0 %% 当前可跳跃玩家 , jump_time = 0 %% 跳跃超时时间:15s超时 , jump_progress = 0 %% 跳跃进度 }). %% 玩家 -record(jump_act_role, { role_id = 0 %% 玩家id , node = 0 %% 节点信息 , server_num = 0 %% 服务器信息 , figure %% 玩家信息 , life = 0 %% 命 , can_get_award = false %% 是否能获得奖励 , award_info = [] %% 结算奖励 , stop_round = 0 %% 止步轮次 , rank = 0 %% 排名 , is_out = 0 %% 是否已经离开活动场景:离开活动场景则结算 , is_online = 0 %% 是否在线 }).