def playing_slaughter_house_on_timer_boss(id): playing = slaughter_house_types.PlayingManager.get(id) if playing == None: proxy.Logging.error( "[slaughter_house] PlayingManager.get(%d) failed." % id) return None facade_request.clear_scene_npcs(playing.get_scene(), 0, True) playing_config = slaughter_house_types.Config.get(playing.get_template()) if playing_config == None: proxy.Logging.error("[slaughter_house] slaughter_house_types.Config.get(%d) failed."\ % playing.get_template()) return None playing.boss_time_ = True monster_group = playing_config.monster_groups_[playing.group_ - 1] if monster_group == None: proxy.Logging.error("[slaughter_house] playing_config.monster_groups_[%d] is none."\ % (playing.group_ - 1)) return None rand_int = random.randint(0, len(playing_config.pos_) - 1) pos = playing_config.pos_[rand_int] facade_request.summon_npcs(playing.get_scene(), monster_group.boss_id_, monster_group.boss_num_,\ playing_config.boss_pos_[0], playing_config.boss_pos_[1])
def playing_slaughter_house_on_timer_boss(id): playing = slaughter_house_types.PlayingManager.get(id) if playing == None: proxy.Logging.error("[slaughter_house] PlayingManager.get(%d) failed." % id) return None facade_request.clear_scene_npcs(playing.get_scene(), 0, True) playing_config = slaughter_house_types.Config.get(playing.get_template()) if playing_config == None: proxy.Logging.error("[slaughter_house] slaughter_house_types.Config.get(%d) failed."\ % playing.get_template()) return None playing.boss_time_ = True monster_group = playing_config.monster_groups_[playing.group_ - 1] if monster_group == None: proxy.Logging.error("[slaughter_house] playing_config.monster_groups_[%d] is none."\ % (playing.group_ - 1)) return None rand_int = random.randint(0, len(playing_config.pos_) - 1) pos = playing_config.pos_[rand_int] facade_request.summon_npcs(playing.get_scene(), monster_group.boss_id_, monster_group.boss_num_,\ playing_config.boss_pos_[0], playing_config.boss_pos_[1])
def summon_next_group(playing_id): playing = slaughter_house_types.PlayingManager.get(playing_id) if playing == None: proxy.Logging.error( "[slaughter_house] PlayingManager.get(%d) failed." % playing_id) return None playing.boss_time_ = False facade_request.clear_scene_npcs(playing.get_scene(), 0, True) playing_config = slaughter_house_types.Config.get(playing.get_template()) if playing_config == None: proxy.Logging.error("[slaughter_house] slaughter_house_types.Config.get(%d) failed."\ % playing.get_template()) return None playing.group_ += 1 # 同步阶段给所有玩家 request = ccrequest.playing.ttypes.RequestPlayingSynchronizeScore() request.score_ = ccentity.playing.ttypes.PlayingScoreField( ccentity.playing.ttypes.PlayingScoreType.STAGE, 0, playing.group_) for actor_id in playing.get_actors(): request.actor_ = actor_id proxy.Request.request( ccrequest.ttypes.RequestType.REQUEST_PLAYING_SYNCHRONIZE_SCORE, request) proxy.Timer.remove(playing_id, "playing_slaughter_house_on_timer_boss") if playing.group_ == 8: # 最终BOSS rand_int = random.randint(0, len(playing_config.pos_) - 1) pos = playing_config.pos_[rand_int] facade_request.summon_npc(playing.get_scene(), playing_config.last_boss_id_,\ playing_config.boss_pos_[0], playing_config.boss_pos_[1]) elif playing.group_ > 8: end_playing(playing_id) return None else: monster_group = playing_config.monster_groups_[playing.group_ - 1] if monster_group == None: proxy.Logging.error("[slaughter_house] playing_config.monster_groups_[%d] is none."\ % (playing.group_ - 1)) return None # 招出各种普通怪 for pos in playing_config.pos_: facade_request.summon_npcs(playing.get_scene(), monster_group.monster1_id_,\ monster_group.monster1_num_, pos[0], pos[1], 10, 10) facade_request.summon_npcs(playing.get_scene(), monster_group.monster2_id_,\ monster_group.monster2_num_, pos[0], pos[1], 10, 10) proxy.Timer.add(playing_id, boss_interval_sec * 1000, 1, "playing_slaughter_house_on_timer_boss")
def summon_next_group(playing_id): playing = slaughter_house_types.PlayingManager.get(playing_id) if playing == None: proxy.Logging.error("[slaughter_house] PlayingManager.get(%d) failed." % playing_id) return None playing.boss_time_ = False facade_request.clear_scene_npcs(playing.get_scene(), 0, True) playing_config = slaughter_house_types.Config.get(playing.get_template()) if playing_config == None: proxy.Logging.error("[slaughter_house] slaughter_house_types.Config.get(%d) failed."\ % playing.get_template()) return None playing.group_ += 1 # 同步阶段给所有玩家 request = ccrequest.playing.ttypes.RequestPlayingSynchronizeScore() request.score_ = ccentity.playing.ttypes.PlayingScoreField( ccentity.playing.ttypes.PlayingScoreType.STAGE, 0, playing.group_) for actor_id in playing.get_actors(): request.actor_ = actor_id proxy.Request.request(ccrequest.ttypes.RequestType.REQUEST_PLAYING_SYNCHRONIZE_SCORE, request) proxy.Timer.remove(playing_id, "playing_slaughter_house_on_timer_boss") if playing.group_ == 8: # 最终BOSS rand_int = random.randint(0, len(playing_config.pos_) - 1) pos = playing_config.pos_[rand_int] facade_request.summon_npc(playing.get_scene(), playing_config.last_boss_id_,\ playing_config.boss_pos_[0], playing_config.boss_pos_[1]) elif playing.group_ > 8: end_playing(playing_id) return None else: monster_group = playing_config.monster_groups_[playing.group_ - 1] if monster_group == None: proxy.Logging.error("[slaughter_house] playing_config.monster_groups_[%d] is none."\ % (playing.group_ - 1)) return None # 招出各种普通怪 for pos in playing_config.pos_: facade_request.summon_npcs(playing.get_scene(), monster_group.monster1_id_,\ monster_group.monster1_num_, pos[0], pos[1], 10, 10) facade_request.summon_npcs(playing.get_scene(), monster_group.monster2_id_,\ monster_group.monster2_num_, pos[0], pos[1], 10, 10) proxy.Timer.add(playing_id, boss_interval_sec * 1000, 1, "playing_slaughter_house_on_timer_boss")
def end_playing(playing_id): playing = slaughter_house_types.PlayingManager.get(playing_id) if playing == None: proxy.Logging.error( "[slaughter_house] PlayingManager.get(%d) failed." % playing_id) return None facade_request.clear_scene_npcs(playing.get_scene(), 0, True) proxy.Timer.remove(playing_id, "playing_slaughter_house_on_timer_next_group") ranking = 1 for actor_rank in playing.ranking_.get_ranking(): actor = playing.get_actor(actor_rank.id_) if actor != None and actor.leaving_ == False: request = ccrequest.playing.ttypes.RequestPlayingActorComplete() request.playing_ = playing_id request.draw_award_ = ccentity.playing.ttypes.PlayingAwardField(\ ccentity.resource.ttypes.ResourceType.MIN, 0, 0) request.actor_ = actor_rank.id_ result = ccentity.playing.ttypes.PlayingResultField() result.award_count_ = 1 result.paid_award_count_ = 0 result.awarded_ = False # TODO: values_[0]中放入玩家名次 result.values_ = [] result.values_.append(ranking) ranking += 1 request.awards_ = [] request.result_ = result proxy.Request.request(ccrequest.ttypes.RequestType.REQUEST_PLAYING_ACTOR_COMPLETE,\ request) # 副本完成 request = ccrequest.playing.ttypes.RequestPlayingComplete() request.playing_ = playing_id result = ccentity.playing.ttypes.PlayingResultField() result.values_ = [] result.award_count_ = 1 result.paid_award_count_ = 0 result.awarded_ = False request.result_ = result request.awards_ = [] request.draw_award_ = ccentity.playing.ttypes.PlayingAwardField(\ ccentity.resource.ttypes.ResourceType.MIN, 0, 0) proxy.Request.request(ccrequest.ttypes.RequestType.REQUEST_PLAYING_COMPLETE,\ request) proxy.Logging.debug("[slaughter_house] end playing(%d)." % playing_id)
def end_playing(playing_id): playing = slaughter_house_types.PlayingManager.get(playing_id) if playing == None: proxy.Logging.error("[slaughter_house] PlayingManager.get(%d) failed." % playing_id) return None facade_request.clear_scene_npcs(playing.get_scene(), 0, True) proxy.Timer.remove(playing_id, "playing_slaughter_house_on_timer_next_group") ranking = 1 for actor_rank in playing.ranking_.get_ranking(): actor = playing.get_actor(actor_rank.id_) if actor != None and actor.leaving_ == False: request = ccrequest.playing.ttypes.RequestPlayingActorComplete() request.playing_ = playing_id request.draw_award_ = ccentity.playing.ttypes.PlayingAwardField(\ ccentity.resource.ttypes.ResourceType.MIN, 0, 0) request.actor_ = actor_rank.id_ result = ccentity.playing.ttypes.PlayingResultField() result.award_count_ = 1 result.paid_award_count_ = 0; result.awarded_ = False # TODO: values_[0]中放入玩家名次 result.values_ = [] result.values_.append(ranking); ranking += 1 request.awards_ = [] request.result_ = result proxy.Request.request(ccrequest.ttypes.RequestType.REQUEST_PLAYING_ACTOR_COMPLETE,\ request) # 副本完成 request = ccrequest.playing.ttypes.RequestPlayingComplete() request.playing_ = playing_id result = ccentity.playing.ttypes.PlayingResultField() result.values_ = [] result.award_count_ = 1 result.paid_award_count_ = 0; result.awarded_ = False request.result_ = result request.awards_ = [] request.draw_award_ = ccentity.playing.ttypes.PlayingAwardField(\ ccentity.resource.ttypes.ResourceType.MIN, 0, 0) proxy.Request.request(ccrequest.ttypes.RequestType.REQUEST_PLAYING_COMPLETE,\ request) proxy.Logging.debug("[slaughter_house] end playing(%d)." % playing_id)