hxp
2019-02-13 5685e4d493ef5b7570bc20b6037fc2c8603cab85
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
@@ -93,72 +93,6 @@
    return
##------------------------------------------------------------------------------
## 合服活动BOSS(勇者大陆)
#  @param npcRefresh 刷新的npc对象
#  @param tick 当前时间
#  @return None
def NPCRefresh_63(npcRefresh, tick): return __RefreshMixBoss(npcRefresh, tick)
def NPCRefresh_64(npcRefresh, tick): return __RefreshMixBoss(npcRefresh, tick)
def NPCRefresh_65(npcRefresh, tick): return __RefreshMixBoss(npcRefresh, tick)
## 合服活动BOSS(勇者大陆)
#  @param npcRefresh 刷新的npc对象
#  @param tick 当前时间
#  @return None
def __RefreshMixBoss(npcRefresh, tick):
    gameWorld = GameWorld.GetGameWorld()
    isMixServer = gameWorld.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_IsMixServer)
    mixDay = gameWorld.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay)
    refreshMark = npcRefresh.GetRefreshMark()
    # 配置
    mixBossInfo = ReadChConfig.GetEvalChConfig("MixBossInfo")
    curBossInfo = mixBossInfo.get(refreshMark)
    if not curBossInfo:
        #GameWorld.DebugLog("__RefreshMixBoss() hasn't configuration refreshMark(%s)"%refreshMark)
        return
    npcId, mixTime, refreshTimeList = curBossInfo
    # 合服期间
    if not isMixServer or mixDay < mixTime[0] or mixDay > mixTime[1]:
        #GameWorld.DebugLog("__RefreshMixBoss() no mix server")
        return
    # 一线刷新
    lineId = GameWorld.GetGameWorld().GetLineID()
    if lineId != 0:
        #GameWorld.DebugLog("__RefreshMixBoss() not in 1 line(%s), now"%lineId)
        return
    # 有怪
    if npcRefresh.GetCount() > 0:
        #GameWorld.DebugLog("__RefreshMixBoss() have mix server boss(%s), now"%refreshMark)
        return
    # 刷新时间匹配
    curTime = GameWorld.GetCurrentTime()
    if (curTime.hour, curTime.minute) not in refreshTimeList:
        #GameWorld.DebugLog("__RefreshMixBoss() npcId(%s) isn't refresh(%s) time(%s)"
        #                   % (npcId, str((curTime.hour, curTime.minute)), refreshTimeList))
        return
    # 刷新Tick 一分钟内不再刷新
    refreshTickKey = ChConfig.Map_NPC_WorldBossLastReBornTick % npcId
    lastRefreshTick = gameWorld.GetGameWorldDictByKey(refreshTickKey)
    if tick - lastRefreshTick <= 60 * 1000:
        #GameWorld.DebugLog("__RefreshMixBoss() not refresh inside minute, npcID(%s) tick(%s) lastTick(%s)"
        #                   % (npcId, tick, lastRefreshTick))
        return
    gameWorld.SetGameWorldDict(refreshTickKey, tick)
    # 刷新NPC
    npcRefresh.Refresh(npcId, ChConfig.Def_SuperBossAngryCount, 1, False)
    # 初始化NPC
    __InitNewBornNPC(npcRefresh, tick)
    GameWorld.DebugLog("__RefreshMixBoss() refresh mix server boss npcId(%s) success!!!" % (npcId))
    return
## 地图M个点随机刷N只怪
#  @param npcRefresh 刷新实例
#  @param tick 当前时间