| | |
| | | import IpyGameDataPY
|
| | | import ChConfig
|
| | | import ChEquip
|
| | | import PassiveBuffEffMng
|
| | | import SkillCommon
|
| | | import SkillShell
|
| | |
|
| | | '''
|
| | | 神兽编号: 1~20,上线后不可修改
|
| | |
| | | ## 设置神兽是否助战状态
|
| | | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, dogzID - 1, 1 if isFight else 0)
|
| | | Sync_DogzHelpbattleState(curPlayer, dogzID, isFight)
|
| | | |
| | | # 设置成功后才能刷技能
|
| | | PassiveBuffEffMng.PlayerDogzSkill(curPlayer)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | # 保存计算值
|
| | | PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Dogz, allAttrList)
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Dogz, fightPowerEx)
|
| | | |
| | | # 技能属性,从Def_CalcAttrFunc_Dogz获取
|
| | | skillAttrList = CalcDogzBattleSkillAttr(curPlayer)
|
| | | PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSkill, skillAttrList)
|
| | | return
|
| | |
|
| | | # 助战神兽技能属性,必须在 SetDogzIsHelpFight后调用
|
| | | def CalcDogzBattleSkillAttr(curPlayer):
|
| | | skillAttrList = [{} for _ in range(4)]
|
| | | skillManager = curPlayer.GetSkillManager()
|
| | |
|
| | | for i in range(0 , skillManager.GetSkillCount()):
|
| | | curSkill = skillManager.GetSkillByIndex(i)
|
| | | if not curSkill:
|
| | | continue
|
| | | |
| | | if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
|
| | | continue
|
| | | |
| | | if not SkillCommon.isPassiveAttr(curSkill):
|
| | | continue
|
| | | |
| | | |
| | | for effectIndex in xrange(curSkill.GetEffectCount()):
|
| | | curEffect = curSkill.GetEffect(effectIndex)
|
| | | SkillShell.CalcBuffEffAttr(curPlayer, curEffect, skillAttrList)
|
| | | |
| | | |
| | | #GameWorld.DebugLog("神兽技能属性: skillFPEx=%s, %s" % ( skillFPEx, skillAttrList))
|
| | | return skillAttrList
|
| | |
|
| | |
|
| | | def Sync_DogzInfo(curPlayer):
|
| | | ## 同步神兽信息
|
| | | dogzInfoPack = ChPyNetSendPack.tagMCDogzInfo()
|