hxp
2018-09-11 46ce4580fdcf6c8e62ceeeaa52694d201ad50c50
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FamilyRobBoss.py
@@ -23,6 +23,10 @@
import PlayerActivity
import PlayerControl
import IpyGameDataPY
import SkillCommon
import PyGameData
import BuffSkill
import PlayerTJG
import NPCCommon
import ChConfig
import GameObj
@@ -81,6 +85,11 @@
    if not g_familyOwnerBossHurt:
        g_familyOwnerBossHurt = FamilyOwnerBossHurt()
    return g_familyOwnerBossHurt
def OnPlayerLogin(curPlayer):
    if GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyRobBoss):
        __DoCheckHorsePetRobBossKillCntBuff(curPlayer, GameWorld.GetGameWorld().GetTick())
    return
def IsHorsePetRobBoss(bossID):
    ## 是否骑宠争夺bossID
@@ -577,4 +586,58 @@
    return hurtPack
def OnFamilyKillHorsePetRobBossCntChange(tick):
    ## 仙盟击杀骑宠boss个数变更
    playerManager = GameWorld.GetPlayerManager()
    for i in xrange(playerManager.OnlineCount()):
        curPlayer = playerManager.OnlineAt(i)
        if curPlayer.IsEmpty():
            continue
        __DoCheckHorsePetRobBossKillCntBuff(curPlayer, tick)
    return
def __DoCheckHorsePetRobBossKillCntBuff(curPlayer, tick):
    familyID = curPlayer.GetFamilyID()
    if not familyID:
        return
    if PlayerTJG.GetIsTJG(curPlayer):
        return
    killCount = PyGameData.g_familyKillHorsePetRobBossCntDict.get(familyID, 0)
    skillTypeID = ChConfig.Def_SkillID_HorsePetRobBossKillCntBuff
    skillInfo = SkillCommon.FindBuffByID(curPlayer, skillTypeID)
    findBuff, buffManager, buffType, findSkill = skillInfo
    if not findSkill:
        return
    killLV = min(killCount, findSkill.GetSkillMaxLV())
    if findBuff:
        buffSkill = findBuff.GetSkill()
        if not buffSkill:
            return
        curBuffLV = buffSkill.GetSkillLV()
        if curBuffLV == killLV:
            #GameWorld.DebugLog("骑宠怨念buff等级不变: familyID=%s,killLV=%s,curBuffLV=%s" % (familyID, killLV, curBuffLV), curPlayer.GetPlayerID())
            return
    elif not killLV:
        #GameWorld.DebugLog("无骑宠怨念buff: familyID=%s,killLV=%s" % (familyID, killLV), curPlayer.GetPlayerID())
        return
    if not killLV:
        #GameWorld.DebugLog("删除骑宠怨念buff: familyID=%s,killLV=%s" % (familyID, killLV), curPlayer.GetPlayerID())
        BuffSkill.DelBuffBySkillID(curPlayer, skillTypeID, tick)
    else:
        #GameWorld.DebugLog("变更骑宠怨念buff等级: familyID=%s,killLV=%s" % (familyID, killLV), curPlayer.GetPlayerID())
        curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, killLV)
        BuffSkill.AddBuffNoRefreshState(curPlayer, buffType, curSkill, tick, [], curPlayer)
    return