6494 子 【开发】【2.0】战斗公式增加普攻伤害和技能伤害 / 【后端】【2.0】战斗公式增加普攻伤害和技能伤害属性
| | |
| | | CDBPlayerRefresh_Water, # ˮ
|
| | | CDBPlayerRefresh_Fire, # 火
|
| | | CDBPlayerRefresh_Earth, # 土 205
|
| | | ) = range(146, 206)
|
| | | CDBPlayerRefresh_NormalHurt, # 属性普通攻击增伤:普通攻击附加的固定值伤害 206
|
| | | CDBPlayerRefresh_NormalHurtPer, # 属性普通攻击加成:普通攻击附加的伤害百分比 207
|
| | | CDBPlayerRefresh_FabaoHurt, # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
|
| | | CDBPlayerRefresh_FabaoHurtPer, # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
|
| | | ) = range(146, 210)
|
| | |
|
| | | TYPE_Price_Gold_Paper_Money = 5 # 金钱类型,(先用礼券,再用金子)
|
| | | TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
|
| | |
| | |
|
| | | # 改变技能伤害
|
| | | atkSkillPer, atkSkillValue = ChangeSkillHurt(atkObj, defObj, curSkill, atkSkillPer, atkSkillValue)
|
| | | |
| | | atkSkillPer = ChangeSkillHurtPer(atkObj, defObj, curSkill, atkSkillPer)
|
| | |
|
| | | # --- 新增普通攻击的数值和技能攻击的数值,根据类型各自计算
|
| | | if atkObjType == IPY_GameWorld.gotPlayer:
|
| | | if not curSkill or curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_NormalAttack:
|
| | | atkSkillPer += PlayerControl.GetNormalHurtPer(atkObj)
|
| | | atkSkillValue += PlayerControl.GetNormalHurt(atkObj)
|
| | | elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
|
| | | atkSkillPer += PlayerControl.GetFabaoHurtPer(atkObj)
|
| | | atkSkillValue += PlayerControl.GetFabaoHurt(atkObj)
|
| | | |
| | | # atkSkillPer 包含普攻,所以不是用技能增强处理
|
| | | atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
|
| | |
|
| | |
| | | Def_BuffValue_Count = 3 # buff记录的value个数
|
| | |
|
| | | #游戏对象属性--------------------------------------------
|
| | | Def_Calc_AllAttrType_MAX = 125
|
| | | Def_Calc_AllAttrType_MAX = 129
|
| | | #基本属性BUFF计算,顺序与 ObjProperty_AttrByIndex 对应,同时也为buff效果ID同步通知策划
|
| | | TYPE_Calc_AttrList = (
|
| | | #基础属性
|
| | | TYPE_Calc_Metal, # 金 1
|
| | | TYPE_Calc_Wood, # ľ 2
|
| | | TYPE_Calc_Water, # ˮ 3
|
| | | TYPE_Calc_Fire, # 火 4
|
| | | TYPE_Calc_Earth, # 土 5
|
| | |
|
| | | #战斗属性
|
| | | TYPE_Calc_AttrMaxHP, # 最大血量 6
|
| | | TYPE_Calc_AttrMaxMP, # 最大魔法值 7
|
| | | TYPE_Calc_AttrDEF, # 防御力 8
|
| | | TYPE_Calc_AttrHit, # 命中 9
|
| | | TYPE_Calc_AttrMiss, # 闪避 10
|
| | | TYPE_Calc_AttrATKMin, # 最小攻击力 11
|
| | | TYPE_Calc_AttrATKMax, # 最大攻击力 12
|
| | | TYPE_Calc_AttrHP, # 当前HP 13
|
| | | TYPE_Calc_AttrMP, # 当前MP 14
|
| | | #TYPE_Calc_AttrMATKMin, # 最小魔法攻击力 #废弃:NPC表字段代表境界 |
| | | #TYPE_Calc_AttrMATKMax, # 最大魔法攻击力 #废弃
|
| | | TYPE_Calc_Luck, # 气运 15
|
| | | TYPE_Calc_AttrHP, # 当前HP 5
|
| | | TYPE_Calc_AttrMP, # 当前MP 6
|
| | | TYPE_Calc_AttrMaxHP, # 最大血量 7
|
| | | TYPE_Calc_AttrMaxMP, # 最大魔法值 8
|
| | | TYPE_Calc_AttrATKMin, # 最小攻击力 9
|
| | | TYPE_Calc_AttrATKMax, # 最大攻击力 10
|
| | | TYPE_Calc_Earth, # 土 11 |
| | | TYPE_Calc_Luck, # 气运 12
|
| | | TYPE_Calc_AttrDEF, # 防御力 13
|
| | | TYPE_Calc_AttrHit, # 命中 14
|
| | | TYPE_Calc_AttrMiss, # 闪避 15
|
| | | TYPE_Calc_AttrSpeed, # 移动速度 16
|
| | | TYPE_Calc_AttrAtkSpeed, # 攻击速度 17
|
| | |
|
| | |
| | | TYPE_Calc_BaseDefAddPer, # 基础防御百分比
|
| | | TYPE_Calc_BaseHitAddPer, # 基础命中百分比
|
| | | TYPE_Calc_BaseMissAddPer, # 基础闪避百分比
|
| | | TYPE_Calc_GodWeaponMaxHPPer, # 神兵生命百分比 110
|
| | | TYPE_Calc_GodWeaponAtkPer, # 神兵攻击百分比
|
| | | TYPE_Calc_GodWeaponMaxHPPer, # 神兵生命百分比 |
| | | TYPE_Calc_GodWeaponAtkPer, # 神兵攻击百分比 105
|
| | | TYPE_Calc_StoneMaxHPPer, # 宝石生命百分比
|
| | | TYPE_Calc_StoneAtkPer, # 宝石攻击百分比
|
| | | TYPE_Calc_HPCureEnhance, # 血瓶恢复效果增加
|
| | | TYPE_Calc_OnlyFinalHurt, # 额外输出伤害 115
|
| | | TYPE_Calc_PVPAtkBackHP, # PVP攻击回血
|
| | | TYPE_Calc_OnlyFinalHurt, # 额外输出伤害 |
| | | TYPE_Calc_PVPAtkBackHP, # PVP攻击回血 110
|
| | | TYPE_Calc_HitSucessRate, # 命中成功率
|
| | | TYPE_Calc_MissSucessRate, # 闪避成功率
|
| | | TYPE_Calc_AtkInterval, # NPC攻击频率
|
| | | TYPE_Calc_FuncDef, # 功能层防御 120
|
| | | TYPE_Calc_CurePer, # 治疗效果加成,默认100%
|
| | | TYPE_Calc_FuncDef, # 功能层防御 |
| | | TYPE_Calc_CurePer, # 治疗效果加成,默认100% 115
|
| | | TYPE_Calc_BeHurtPer, # 加深受到伤害百分比
|
| | | TYPE_Calc_HorseAtkPer, # 坐骑攻击百分比
|
| | | TYPE_Calc_StoneBasePer, # 宝石基础属性百分比
|
| | | TYPE_Calc_RealmBasePer, # 境界基础属性百分比 125
|
| | | TYPE_Calc_PetSkillAtkRate, # 宠物技能攻击比例加成
|
| | | TYPE_Calc_RealmBasePer, # 境界基础属性百分比 |
| | | TYPE_Calc_PetSkillAtkRate, # 宠物技能攻击比例加成 120
|
| | | TYPE_Calc_WingHPPer, # 翅膀生命百分比
|
| | | TYPE_Calc_SuiteBasePer, # 套装基础属性百分比
|
| | | TYPE_Calc_PlusBaseAtkPer, # 强化基础攻击百分比
|
| | | TYPE_Calc_ProDef, # 当前防护值 130
|
| | | TYPE_Calc_ProDef, # 当前防护值 |
| | | TYPE_Calc_NormalHurt, # 普通攻击增伤 125
|
| | | TYPE_Calc_NormalHurtPer, # 普通攻击加成 |
| | | TYPE_Calc_FabaoHurt, # 法宝技能增伤 |
| | | TYPE_Calc_FabaoHurtPer, # 法宝技能加成 |
| | |
|
| | | ) = range(1, Def_Calc_AllAttrType_MAX)
|
| | |
|
| | |
|
| | |
| | |
|
| | | #---SetDict 玩家字典KEY,不存于数据库---
|
| | | # key的长度不能超过29个字节
|
| | | Def_PlayerKey_NormalHurt = "NormalHurt" # 属性普通攻击增伤:普通攻击附加的固定值伤害
|
| | | Def_PlayerKey_NormalHurtPer = "NormalHurtPer" # 属性普通攻击加成:普通攻击附加的伤害百分比
|
| | | Def_PlayerKey_FabaoHurt = "FabaoHurt" # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害
|
| | | Def_PlayerKey_FabaoHurtPer = "FabaoHurtPer" # 属性法宝技能加成:法宝技能攻击附加的伤害百分比
|
| | | Def_PlayerKey_AddBuffLayer = "addBuffLayer" # buff当前层数
|
| | | Def_PlayerKey_BuffHurtCnt = "BuffHurtCnt" # 持续buff掉血次数
|
| | | Def_PlayerKey_Zhansha = "zhansha" # 斩杀标志
|
| | |
| | | def GetFuncDef(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr % (ChConfig.TYPE_Calc_AttrDEF - 1))
|
| | | def SetFuncDef(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_CopyFuncAttr % (ChConfig.TYPE_Calc_AttrDEF - 1), value)
|
| | |
|
| | | #普通攻击增伤:普通攻击附加的固定值伤害
|
| | | def GetNormalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_NormalHurt)
|
| | | def SetNormalHurt(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_NormalHurt, value)
|
| | | #普通攻击加成:普通攻击附加的伤害百分比
|
| | | def GetNormalHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_NormalHurtPer)
|
| | | def SetNormalHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_NormalHurtPer, value)
|
| | | #法宝技能增伤:法宝技能攻击附加的固定值伤害
|
| | | def GetFabaoHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurt)
|
| | | def SetFabaoHurt(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurt, value)
|
| | | #法宝技能加成:法宝技能攻击附加的伤害百分比
|
| | | def GetFabaoHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurtPer)
|
| | | def SetFabaoHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurtPer, value)
|
| | |
|
| | | ## 计算功能背包物品属性
|
| | | # @param curPlayer 当前玩家
|
| | | # @param packType 背包类型
|
| | |
| | | CDBPlayerRefresh_Water, # ˮ
|
| | | CDBPlayerRefresh_Fire, # 火
|
| | | CDBPlayerRefresh_Earth, # 土 205
|
| | | ) = range(146, 206)
|
| | | CDBPlayerRefresh_NormalHurt, # 属性普通攻击增伤:普通攻击附加的固定值伤害 206
|
| | | CDBPlayerRefresh_NormalHurtPer, # 属性普通攻击加成:普通攻击附加的伤害百分比 207
|
| | | CDBPlayerRefresh_FabaoHurt, # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
|
| | | CDBPlayerRefresh_FabaoHurtPer, # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
|
| | | ) = range(146, 210)
|
| | |
|
| | | TYPE_Price_Gold_Paper_Money = 5 # 金钱类型,(先用礼券,再用金子)
|
| | | TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
|
| | |
| | | import IPY_PlayerDefine
|
| | | import ShareDefine
|
| | |
|
| | |
|
| | | #生物属性接口,顺序对应ChConfig.TYPE_Calc_AttrList
|
| | | #同个属性Get, Set 写在一起,方便维护 [Get, Set, 属性类型, 是否通知自身, 是否通知周围玩家]
|
| | | ObjProperty_AttrByIndex = [
|
| | |
| | | [lambda curObj:PlayerControl.GetWood(curObj), lambda curObj, value:PlayerControl.SetWood(curObj, value), ShareDefine.CDBPlayerRefresh_Wood, 1, 0], # ľ
|
| | | [lambda curObj:PlayerControl.GetWater(curObj), lambda curObj, value:PlayerControl.SetWater(curObj, value), ShareDefine.CDBPlayerRefresh_Water, 1, 0], # ˮ
|
| | | [lambda curObj:PlayerControl.GetFire(curObj), lambda curObj, value:PlayerControl.SetFire(curObj, value), ShareDefine.CDBPlayerRefresh_Fire, 1, 0], # 火
|
| | | [lambda curObj:PlayerControl.GetEarth(curObj), lambda curObj, value:PlayerControl.SetEarth(curObj, value), ShareDefine.CDBPlayerRefresh_Earth, 1, 0], # 土
|
| | |
|
| | | [lambda curObj:GameObj.GetHP(curObj), lambda curObj, value:GameObj.SetHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_HP, 1, 1], # 当前血量
|
| | | [lambda curObj:curObj.GetMP(), lambda curObj, value:curObj.SetMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MP, 0, 0], # 当前魔量
|
| | | [lambda curObj:GameObj.GetMaxHP(curObj), lambda curObj, value:GameObj.SetMaxHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_MaxHP, 1, 1], # 最大血量
|
| | | [lambda curObj:curObj.GetMaxMP(), lambda curObj, value:curObj.SetMaxMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MaxMP, 0, 0], # 最大魔量
|
| | | [lambda curObj:curObj.GetMinAtk(), lambda curObj, value:curObj.SetMinAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MINATK, 1, 0], # 最小攻击力
|
| | | [lambda curObj:curObj.GetMaxAtk(), lambda curObj, value:curObj.SetMaxAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MAXATK, 1, 0], # 最大攻击力
|
| | | [lambda curObj:PlayerControl.GetEarth(curObj), lambda curObj, value:PlayerControl.SetEarth(curObj, value), ShareDefine.CDBPlayerRefresh_Earth, 1, 0], # 土
|
| | | [lambda curObj:curObj.GetLuckValue(), lambda curObj, value:curObj.SetLuckValue(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckValue, 1, 0], # 气运
|
| | | [lambda curObj:curObj.GetDef(), lambda curObj, value:curObj.SetDef(value), IPY_PlayerDefine.CDBPlayerRefresh_DEF, 1, 0], # 防御力
|
| | | [lambda curObj:curObj.GetHit(), lambda curObj, value:curObj.SetHit(value), IPY_PlayerDefine.CDBPlayerRefresh_HIT, 1, 0], # 命中
|
| | | [lambda curObj:curObj.GetMiss(), lambda curObj, value:curObj.SetMiss(value), IPY_PlayerDefine.CDBPlayerRefresh_Miss, 1, 0], # 闪避
|
| | | [lambda curObj:curObj.GetMinAtk(), lambda curObj, value:curObj.SetMinAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MINATK, 1, 0], # 最小攻击力
|
| | | [lambda curObj:curObj.GetMaxAtk(), lambda curObj, value:curObj.SetMaxAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MAXATK, 1, 0], # 最大攻击力
|
| | | [lambda curObj:GameObj.GetHP(curObj), lambda curObj, value:GameObj.SetHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_HP, 1, 1], # 当前血量
|
| | | [lambda curObj:curObj.GetMP(), lambda curObj, value:curObj.SetMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MP, 0, 0], # 当前魔量
|
| | | #[lambda curObj:curObj.GetMAtkMin(), lambda curObj, value:curObj.SetMAtkMin(value), IPY_PlayerDefine.CDBPlayerRefresh_MAtkMin, 0, 0], # 最小魔攻
|
| | | #[lambda curObj:curObj.GetMAtkMax(), lambda curObj, value:curObj.SetMAtkMax(value), IPY_PlayerDefine.CDBPlayerRefresh_MAtkMax, 0, 0], # 最大魔攻
|
| | | [lambda curObj:curObj.GetLuckValue(), lambda curObj, value:curObj.SetLuckValue(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckValue, 1, 0], # 气运
|
| | | [lambda curObj:PlayerControl.GetSpeedNotBuff(curObj), lambda curObj, value:PlayerControl.SetSpeedNotBuff(curObj, value), 0, 0, 0], # 移动速度
|
| | | [lambda curObj:PlayerControl.GetAtkSpeed(curObj), lambda curObj, value:PlayerControl.SetAtkSpeed(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx1, 1, 1], # 攻击速度
|
| | |
|
| | |
| | | [lambda curObj:PlayerControl.GetSuiteBasePer(curObj), lambda curObj, value:PlayerControl.SetSuiteBasePer(curObj, value), 0, 0, 0], # 套装基础属性百分比
|
| | | [lambda curObj:PlayerControl.GetPlusBaseAtkPer(curObj), lambda curObj, value:PlayerControl.SetPlusBaseAtkPer(curObj, value), 0, 0, 0], # 强化基础攻击百分比
|
| | | [lambda curObj:PlayerControl.GetProDef(curObj), lambda curObj, value:PlayerControl.SetProDef(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_ExAttr4, 1, 0], # 当前防护值
|
| | | [lambda curObj:PlayerControl.GetNormalHurt(curObj), lambda curObj, value:PlayerControl.SetNormalHurt(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurt, 1, 0], # 属性普通攻击增伤
|
| | | [lambda curObj:PlayerControl.GetNormalHurtPer(curObj), lambda curObj, value:PlayerControl.SetNormalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurtPer, 1, 0], # 属性普通攻击加成
|
| | | [lambda curObj:PlayerControl.GetFabaoHurt(curObj), lambda curObj, value:PlayerControl.SetFabaoHurt(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurt, 1, 0], # 属性法宝技能增伤
|
| | | [lambda curObj:PlayerControl.GetFabaoHurtPer(curObj), lambda curObj, value:PlayerControl.SetFabaoHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurtPer, 1, 0], # 属性法宝技能加成
|
| | | ]
|
| | |
|
| | | ## 通过索引获得属性值
|