From d57475ffe460133d146d377e66ed19ccb77b11a7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 20 十月 2025 17:22:00 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(寻宝支持定制第x次x抽必出)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py | 407 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 371 insertions(+), 36 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
index 715dbb1..f3dd9cc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -18,6 +18,76 @@
import IpyGameDataPY
import SkillCommon
import PlayerControl
+import ChNetSendPack
+import TurnAttack
+
+# 通用属性值字典key
+Def_AttrValue = "AttrValue_%s"
+
+#战斗单位属性通用接口, 仅配置需要指定函数的属性ID即可,没有的话通过通用接口可直接 GetAttrValue, SetAttrValue
+#同个属性Get, Set 写在一起,方便维护 [Get, Set]
+ObjProperty_AttrIDDict = {
+ ChConfig.AttrID_Atk:[lambda curObj:curObj.GetMaxAtk(), lambda curObj, value:curObj.SetMaxAtk(value)],
+ ChConfig.AttrID_Def:[lambda curObj:curObj.GetDef(), lambda curObj, value:curObj.SetDef(value)],
+ ChConfig.AttrID_MaxHP:[lambda curObj:GetMaxHP(curObj), lambda curObj, value:SetMaxHP(curObj, value)],
+ ChConfig.AttrID_HP:[lambda curObj:GetHP(curObj), lambda curObj, value:SetHP(curObj, value)],
+ ChConfig.AttrID_AtkSpeed:[lambda curObj:GetAtkSpeed(curObj), lambda curObj, value:SetAtkSpeed(curObj, value)],
+ ChConfig.AttrID_XP:[lambda curObj:GetXP(curObj), lambda curObj, value:SetXP(curObj, value)],
+ ChConfig.AttrID_StunRate:[lambda curObj:GetFaintRate(curObj), lambda curObj, value:SetFaintRate(curObj, value)],
+ ChConfig.AttrID_StunRateDef:[lambda curObj:GetFaintDefRate(curObj), lambda curObj, value:SetFaintDefRate(curObj, value)],
+ ChConfig.AttrID_SuperHitRate:[lambda curObj:GetSuperHitRate(curObj), lambda curObj, value:SetSuperHitRate(curObj, value)],
+ ChConfig.AttrID_SuperHitRateDef:[lambda curObj:GetSuperHitRateReduce(curObj), lambda curObj, value:SetSuperHitRateReduce(curObj, value)],
+ ChConfig.AttrID_ComboRate:[lambda curObj:GetComboRate(curObj), lambda curObj, value:SetComboRate(curObj, value)],
+ ChConfig.AttrID_ComboRateDef:[lambda curObj:GetComboDefRate(curObj), lambda curObj, value:SetComboDefRate(curObj, value)],
+ ChConfig.AttrID_MissRate:[lambda curObj:GetMissRate(curObj), lambda curObj, value:SetMissRate(curObj, value)],
+ ChConfig.AttrID_MissRateDef:[lambda curObj:GetMissDefRate(curObj), lambda curObj, value:SetMissDefRate(curObj, value)],
+ ChConfig.AttrID_ParryRate:[lambda curObj:GetParryRate(curObj), lambda curObj, value:SetParryRate(curObj, value)],
+ ChConfig.AttrID_ParryRateDef:[lambda curObj:GetParryRateDef(curObj), lambda curObj, value:SetParryRateDef(curObj, value)],
+ ChConfig.AttrID_SuckHPPer:[lambda curObj:GetSuckHPPer(curObj), lambda curObj, value:SetSuckHPPer(curObj, value)],
+ ChConfig.AttrID_SuckHPPerDef:[lambda curObj:GetSuckHPDefPer(curObj), lambda curObj, value:SetSuckHPDefPer(curObj, value)],
+ ChConfig.AttrID_FinalDamPer:[lambda curObj:GetFinalHurtPer(curObj), lambda curObj, value:SetFinalHurtPer(curObj, value)],
+ ChConfig.AttrID_FinalDamPerDef:[lambda curObj:GetFinalHurtReducePer(curObj), lambda curObj, value:SetFinalHurtReducePer(curObj, value)],
+ ChConfig.AttrID_PhyDamPer:[lambda curObj:GetPhyDamPer(curObj), lambda curObj, value:SetPhyDamPer(curObj, value)],
+ ChConfig.AttrID_PhyDamPerDef:[lambda curObj:GetPhyDamPerDef(curObj), lambda curObj, value:SetPhyDamPerDef(curObj, value)],
+ ChConfig.AttrID_MagDamPer:[lambda curObj:GetMagDamPer(curObj), lambda curObj, value:SetMagDamPer(curObj, value)],
+ ChConfig.AttrID_MagDamPerDef:[lambda curObj:GetMagDamPerDef(curObj), lambda curObj, value:SetMagDamPerDef(curObj, value)],
+ ChConfig.AttrID_NormalSkillPer:[lambda curObj:GetNormalSkillPer(curObj), lambda curObj, value:SetNormalSkillPer(curObj, value)],
+ ChConfig.AttrID_NormalSkillPerDef:[lambda curObj:GetNormalSkillPerDef(curObj), lambda curObj, value:SetNormalSkillPerDef(curObj, value)],
+ ChConfig.AttrID_AngerSkillPer:[lambda curObj:GetAngerSkillPer(curObj), lambda curObj, value:SetAngerSkillPer(curObj, value)],
+ ChConfig.AttrID_AngerSkillPerDef:[lambda curObj:GetAngerSkillPerDef(curObj), lambda curObj, value:SetAngerSkillPerDef(curObj, value)],
+ ChConfig.AttrID_SuperDamPer:[lambda curObj:GetSuperHitHurtPer(curObj), lambda curObj, value:SetSuperHitHurtPer(curObj, value)],
+ ChConfig.AttrID_SuperDamPerDef:[lambda curObj:GetSuperHitHurtDefPer(curObj), lambda curObj, value:SetSuperHitHurtDefPer(curObj, value)],
+ ChConfig.AttrID_CurePer:[lambda curObj:GetCurePer(curObj), lambda curObj, value:SetCurePer(curObj, value)],
+ ChConfig.AttrID_CurePerDef:[lambda curObj:GetCureDefPer(curObj), lambda curObj, value:SetCureDefPer(curObj, value)],
+ ChConfig.AttrID_ShieldPer:[lambda curObj:GetShieldPer(curObj), lambda curObj, value:SetShieldPer(curObj, value)],
+ ChConfig.AttrID_ShieldPerDef:[lambda curObj:GetShieldPerDef(curObj), lambda curObj, value:SetShieldPerDef(curObj, value)],
+ ChConfig.AttrID_DOTPer:[lambda curObj:GetDOTPer(curObj), lambda curObj, value:SetDOTPer(curObj, value)],
+ ChConfig.AttrID_DOTPerDef:[lambda curObj:GetDOTPerDef(curObj), lambda curObj, value:SetDOTPerDef(curObj, value)],
+}
+
+def GetAttrValue(gameObj, attrID):
+ ## 通用的获取属性
+ if attrID in ObjProperty_AttrIDDict:
+ return ObjProperty_AttrIDDict[attrID][0](gameObj)
+ return gameObj.GetDictByKey(Def_AttrValue % attrID)
+
+def SetAttrValue(gameObj, attrID, value, isNotify=True):
+ ## 通用的设置属性
+ if attrID in ObjProperty_AttrIDDict:
+ ObjProperty_AttrIDDict[attrID][1](gameObj, value)
+ else:
+ gameObj.SetDict(Def_AttrValue % attrID, value)
+
+ if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+ # 卡牌项目,暂不需要通知玩家相关的属性,因为最终都体现在卡牌上,全部由前端自己计算
+ return
+
+ if isNotify:
+ if attrID in ChConfig.CDBRefresh_AttrIDDict:
+ refreshType, isBig = ChConfig.CDBRefresh_AttrIDDict[attrID]
+ NotifyObjInfoRefresh(gameObj, refreshType, isBig)
+
+ return
# 关于血量的函数这里只包装最简单的超DWORD处理
@@ -35,7 +105,6 @@
if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
if isNotify == None:
isNotify = True
- gameObj.SetHP(value % ShareDefine.Def_PerPointValue, value / ShareDefine.Def_PerPointValue, isNotify)
else:
if isNotify == None:
isNotify = False
@@ -44,17 +113,28 @@
if IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", npcID) and not isByTime and value not in [GetMaxHP(gameObj), 0]:
#GameWorld.DebugLog("不能设置按时间掉血的怪物血量! id=%s,npciD=%s,value=%s,isByTime=%s" % (gameObj.GetID(), gameObj.GetNPCID(), value, isByTime))
return
- gameObj.SetHP(value % ShareDefine.Def_PerPointValue, value / ShareDefine.Def_PerPointValue, isNotify)
+
+ gameObj.SetHP(value % ShareDefine.Def_PerPointValue, value / ShareDefine.Def_PerPointValue, False)
+ if isNotify:
+ NotifyObjInfoRefresh(gameObj, IPY_GameWorld.CDBPlayerRefresh_HP, value)
return
-def SetHPFull(gameObj):
- SetHP(gameObj, GetMaxHP(gameObj))
+def SetHPFull(gameObj, isNotify=True):
+ SetHP(gameObj, GetMaxHP(gameObj), isNotify)
return
def SetBaseMaxHP(gameObj, value):
gameObj.SetBaseMaxHP(value % ShareDefine.Def_PerPointValue, value / ShareDefine.Def_PerPointValue)
return
-
+
+def GetXP(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_XP)
+def SetXP(gameObj, value, isNotify=True):
+ ## XP值,用作怒气值
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_XP, value)
+ if isNotify:
+ NotifyObjInfoRefresh(gameObj, IPY_GameWorld.CDBPlayerRefresh_XP, value)
+ return
+
def GetAngryValue(curAngry):
return curAngry.GetAngryValue() + curAngry.GetAngryValueEx() * ShareDefine.Def_PerPointValue
def SetAngryValue(curAngry, value):
@@ -152,13 +232,6 @@
gameObj.SetDict(ChConfig.Def_PlayerKey_CurState, 0)
return
-def GetPetDamPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
-def SetPetDamPer(gameObj, value):
- gameObj.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
- if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
- PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_PetDamPer, value)
- return
-
def GetLastHurtValue(gameObj):
## 最后一击伤害值
hurt = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_LastHurtValue)
@@ -169,38 +242,300 @@
gameObj.SetDict(ChConfig.Def_PlayerKey_LastHurtValueEx, value / ShareDefine.Def_PerPointValue)
return
-def GetBloodShiledHurt(gameObj):
- ## 伤害值用于血盾抵消
- hurt = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_BloodShiledHurt)
- hurtEx = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_BloodShiledHurtEx)
- return hurtEx * ShareDefine.Def_PerPointValue + hurt
-def SetBloodShiledHurt(gameObj, value):
- gameObj.SetDict(ChConfig.Def_PlayerKey_BloodShiledHurt, value % ShareDefine.Def_PerPointValue)
- gameObj.SetDict(ChConfig.Def_PlayerKey_BloodShiledHurtEx, value / ShareDefine.Def_PerPointValue)
+def GetLastBeHurtValue(gameObj):
+ ## 最后一次受伤值
+ return 0
+ #hurt = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_LastBeHurtValue)
+ #hurtEx = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_LastBeHurtValueEx)
+ #return hurtEx * ShareDefine.Def_PerPointValue + hurt
+def SetLastBeHurtValue(gameObj, value):
+ #gameObj.SetDict(ChConfig.Def_PlayerKey_LastBeHurtValue, value % ShareDefine.Def_PerPointValue)
+ #gameObj.SetDict(ChConfig.Def_PlayerKey_LastBeHurtValueEx, value / ShareDefine.Def_PerPointValue)
return
-def GetSuperHitHurtPer(gameObj): return 0
-def SetSuperHitHurtPer(gameObj, value): return
-def GetSuperHitHurtDefPer(gameObj): return 0
-def SetSuperHitHurtDefPer(gameObj, value): return
+def GetBloodShiledHurt(gameObj):
+ ## 伤害值用于血盾抵消
+ return 0
+def SetBloodShiledHurt(gameObj, value):
+ return
-def GetComboDefRate(gameObj): return 0
-def SetComboDefRate(gameObj, value): return
+## ---------------------------------------------------------
+def ClearBattleEffect(gameObj):
+ gameObj.ClearBattleEffect()
+ # 其他py层自定义战斗属性,由于EffGetSet中不是所有属性接口均通用,固这里先手动调用
+ SetPetDamPer(gameObj, 0)
+ SetFinalHurtPer(gameObj, 0)
+ SetFinalHurtReducePer(gameObj, 0)
+ SetAtkSpeed(gameObj, 0)
+ SetSuperHitRateReduce(gameObj, 0)
+ SetSuperHitReduce(gameObj, 0)
+ SetFaintRate(gameObj, 0)
+ SetFaintDefRate(gameObj, 0)
+ SetComboRate(gameObj, 0)
+ SetComboDefRate(gameObj, 0)
+ SetComboDamPer(gameObj, 0)
+ SetAtkBackRate(gameObj, 0)
+ SetAtkBackDefRate(gameObj, 0)
+ SetSuckHPPer(gameObj, 0)
+ SetSuckHPDefPer(gameObj, 0)
+ SetAtkBackHP(gameObj, 0)
+ SetCurePer(gameObj, 0)
+ SetCureDefPer(gameObj, 0)
+ SetPetStrengthenPer(gameObj, 0)
+ SetPetWeakenPer(gameObj, 0)
+ SetDamageBackRate(gameObj, 0)
+ SetSuperHitHurtPer(gameObj, 0)
+ SetSuperHitHurtDefPer(gameObj, 0)
+ return
+
+def GetPetDamPer(gameObj): return 0
+def SetPetDamPer(gameObj, value):
+ return
+
+def GetFinalHurtPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_FinalDamPer)
+def SetFinalHurtPer(gameObj, value):
+ ## 最终伤害百分比
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_FinalDamPer, value)
+ if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+ PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_FinalDamPer, value)
+ return
+
+def GetFinalHurtReducePer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_FinalDamPerDef)
+def SetFinalHurtReducePer(gameObj, value):
+ ## 最终伤害减免百分比
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_FinalDamPerDef, value)
+ return
+
+def GetPhyDamPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_PhyDamPer)
+def SetPhyDamPer(gameObj, value):
+ ## 物理增伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_PhyDamPer, value)
+ return
+
+def GetPhyDamPerDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_PhyDamPerDef)
+def SetPhyDamPerDef(gameObj, value):
+ ## 物理减伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_PhyDamPerDef, value)
+ return
+
+def GetMagDamPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_MagDamPer)
+def SetMagDamPer(gameObj, value):
+ ## 法术增伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_MagDamPer, value)
+ return
+
+def GetMagDamPerDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_MagDamPerDef)
+def SetMagDamPerDef(gameObj, value):
+ ## 法术减伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_MagDamPerDef, value)
+ return
+
+def GetNormalSkillPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_NormalSkillPer)
+def SetNormalSkillPer(gameObj, value):
+ ## 普技增伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_NormalSkillPer, value)
+ return
+
+def GetNormalSkillPerDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_NormalSkillPerDef)
+def SetNormalSkillPerDef(gameObj, value):
+ ## 普技减伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_NormalSkillPerDef, value)
+ return
+
+def GetAngerSkillPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_AngerSkillPer)
+def SetAngerSkillPer(gameObj, value):
+ ## 怒技增伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_AngerSkillPer, value)
+ return
+
+def GetAngerSkillPerDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_AngerSkillPerDef)
+def SetAngerSkillPerDef(gameObj, value):
+ ## 怒技减伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_AngerSkillPerDef, value)
+ return
+
+def GetDOTPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_DOTPer)
+def SetDOTPer(gameObj, value):
+ ## 持续增伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_DOTPer, value)
+ return
+
+def GetDOTPerDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_DOTPerDef)
+def SetDOTPerDef(gameObj, value):
+ ## 持续减伤
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_DOTPerDef, value)
+ return
+
+def GetShieldPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_ShieldPer)
+def SetShieldPer(gameObj, value):
+ ## 强化护盾
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_ShieldPer, value)
+ return
+
+def GetShieldPerDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_ShieldPerDef)
+def SetShieldPerDef(gameObj, value):
+ ## 弱化护盾
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_ShieldPerDef, value)
+ return
+
+def GetFaction(gameObj):
+ faction = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_Faction)
+ if faction:
+ return faction
+ if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+ return gameObj.GetFaction()
+ return gameObj.GetCountry()
+def SetFaction(gameObj, value):
+ gameObj.SetDict(ChConfig.Def_Obj_Dict_Faction, value)
+ if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+ gameObj.SetFaction(value)
+ return
+
+def GetAtkSpeed(gameObj): return 0
+def SetAtkSpeed(gameObj, value):
+ ## 攻击速度
+ return
+
+def GetMissRate(gameObj): return gameObj.GetMiss()
+def SetMissRate(gameObj, value):
+ ## 闪避概率
+ gameObj.SetMiss(value)
+ return
+def GetMissDefRate(gameObj): return gameObj.GetHit()
+def SetMissDefRate(gameObj, value):
+ ## 抗闪避率 = 命中
+ gameObj.SetHit(value)
+ return
+def GetSuperHitRate(gameObj): return gameObj.GetSuperHitRate()
+def SetSuperHitRate(gameObj, value):
+ ## 暴击概率
+ gameObj.SetSuperHitRate(value)
+ return
+def GetSuperHitRateReduce(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_SuperHitRateDef)
+def SetSuperHitRateReduce(gameObj, value):
+ ## 抗暴击概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_SuperHitRateDef, value)
+ return
+
+def GetSuperHitReduce(gameObj): return 0
+def SetSuperHitReduce(gameObj, value):
+ ## 暴击固定伤害减免 - 暴击时附加固定伤害减免,与 atkObj.GetSuperHit() 相对
+ return
+
+def GetSuperHitHurtPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_SuperDamPer)
+def SetSuperHitHurtPer(gameObj, value):
+ ## 强化暴伤 - 暴击时的总伤害加成,与 SuperHitHurtDefPer 相对,注意与暴击固定伤害区分
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_SuperDamPer, value)
+ return
+def GetSuperHitHurtDefPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_SuperDamPerDef)
+def SetSuperHitHurtDefPer(gameObj, value):
+ ## 弱化暴伤 - 暴击时的总伤害减免
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_SuperDamPerDef, value)
+ return
+
+def GetParryRate(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_ParryRate)
+def SetParryRate(gameObj, value):
+ ## 格挡概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_ParryRate, value)
+ return
+
+def GetParryRateDef(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_ParryRateDef)
+def SetParryRateDef(gameObj, value):
+ ## 抗格挡概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_ParryRateDef, value)
+ return
+
+def GetFaintRate(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_StunRate)
+def SetFaintRate(gameObj, value):
+ ## 击晕概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_StunRate, value)
+ return
+def GetFaintDefRate(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_StunRateDef)
+def SetFaintDefRate(gameObj, value):
+ ## 抗击晕概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_StunRateDef, value)
+ return
+
+def GetComboRate(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_ComboRate)
+def SetComboRate(gameObj, value):
+ ## 连击概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_ComboRate, value)
+ return
+def GetComboDefRate(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_ComboRateDef)
+def SetComboDefRate(gameObj, value):
+ ## 抗连击概率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_ComboRateDef, value)
+ return
+def GetComboDamPer(gameObj): return 0
+def SetComboDamPer(gameObj, value):
+ ## 连击伤害
+ return
def GetAtkBackRate(gameObj): return 0
-def SetAtkBackRate(gameObj, value): return
+def SetAtkBackRate(gameObj, value):
+ ## 反击概率
+ return
def GetAtkBackDefRate(gameObj): return 0
-def SetAtkBackDefRate(gameObj, value): return
+def SetAtkBackDefRate(gameObj, value):
+ ## 抗反击概率
+ return
-def GetSuckHPPer(gameObj): return 0
-def SetSuckHPPer(gameObj, value): return
-def GetSuckHPDefPer(gameObj): return 0
-def SetSuckHPDefPer(gameObj, value): return
+def GetSuckHPPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_SuckHPPer)
+def SetSuckHPPer(gameObj, value):
+ ## 吸血比率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_SuckHPPer, value)
+ return
+def GetSuckHPDefPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_SuckHPPerDef)
+def SetSuckHPDefPer(gameObj, value):
+ ## 抗吸血比率
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_SuckHPPerDef, value)
+ return
+def GetAtkBackHP(gameObj): return 0
+def SetAtkBackHP(gameObj, value):
+ ## 吸血固定值
+ return
-def GetCureDefPer(gameObj): return 0
-def SetCureDefPer(gameObj, value): return
+def GetCurePer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_CurePer)
+def SetCurePer(gameObj, value):
+ ## 强化治疗
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_CurePer, value)
+ return
+def GetCureDefPer(gameObj): return gameObj.GetDictByKey(Def_AttrValue % ChConfig.AttrID_CurePerDef)
+def SetCureDefPer(gameObj, value):
+ ## 弱化治疗
+ gameObj.SetDict(Def_AttrValue % ChConfig.AttrID_CurePerDef, value)
+ return
def GetPetStrengthenPer(gameObj): return 0
-def SetPetStrengthenPer(gameObj, value): return
+def SetPetStrengthenPer(gameObj, value):
+ ## 强化灵兽
+ return
def GetPetWeakenPer(gameObj): return 0
-def SetPetWeakenPer(gameObj, value): return
+def SetPetWeakenPer(gameObj, value):
+ ## 弱化灵兽
+ return
+
+def GetDamageBackRate(gameObj): 0
+def SetDamageBackRate(gameObj, value):
+ ## 反弹伤害
+ return
+
+def NotifyObjInfoRefresh(gameObj, refreshType, value, isBig=False):
+ ##0418通知对象属性刷新
+ sendPack = ChNetSendPack.tagObjInfoRefresh()
+ sendPack.Clear()
+ sendPack.ObjID = gameObj.GetID()
+ sendPack.ObjType = gameObj.GetGameObjType()
+ sendPack.RefreshType = refreshType
+ if isBig:
+ sendPack.Value = value % ShareDefine.Def_PerPointValue
+ sendPack.ValueEx = value / ShareDefine.Def_PerPointValue
+ else:
+ sendPack.Value = value
+ sendPack.ValueEx = 0
+ #turnFight = TurnAttack.GetTurnFightMgr().getTurnFight(gameObj.GetTFGUID())
+ #if turnFight:
+ # turnFight.addBatPack(sendPack)
+ # return
+ gameObj.NotifyAll(sendPack.GetBuffer(), sendPack.GetLength())
+ return
--
Gitblit v1.8.0