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])
예제 #2
0
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")
예제 #4
0
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)
예제 #6
0
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)