From 6d52c69be5170f6518ac9be8aa05bae7bfd26b54 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 21 七月 2025 14:24:43 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(去除旧属性;优化命令Hero、PrintFightPower;优化武将技能战力计算;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py |  188 +++-------------------------------------------
 1 files changed, 15 insertions(+), 173 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index 47ec39f..3452d8a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -46,6 +46,7 @@
 import FBCommon
 import IpyGameDataPY
 import PyGameData
+import TurnAttack
 #---------------------------------------------------------------------
 GameWorld.ImportAll("Script\\Skill\\" , "GameSkills")
 GameWorld.ImportAll("Script\\Skill\\" , "GameBuffs")
@@ -634,42 +635,6 @@
         return False
         
     return True
-
-
-##弓和弩普攻技能
-# @param curPlayer 玩家实例
-# @param skillID 技能ID
-# @return 特别的普攻ID
-#===============================================================================
-# def GetBowNormalAttackID(curPlayer, skillID):
-#    #刷新人物攻击距离
-#    playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
-#    #获得当前人物使用的武器
-#    curUseWeapon = playerEquip.GetAt(ShareDefine.retWeapon)
-#    curUseWeapon2 = playerEquip.GetAt(ShareDefine.retWeapon2)
-#    #空手
-#    if curUseWeapon.IsEmpty() and curUseWeapon2.IsEmpty():
-#        return skillID
-#    
-#    if curUseWeapon.GetType() in [ChConfig.Def_ItemType_Crossbow, ChConfig.Def_ItemType_Bow]:
-#        curEffect = ItemCommon.GetItemEffectByEffectID(curUseWeapon, ChConfig.Def_Effect_WeaponAttack)
-#        if curEffect == None:
-#            GameWorld.DebugAnswer(curPlayer, '没有物品效果ID %s'%ChConfig.Def_Effect_WeaponAttack)
-#            return skillID
-#        
-#        return curEffect.GetEffectValue(0)
-#    
-#    if curUseWeapon2.GetType() in [ChConfig.Def_ItemType_Crossbow, ChConfig.Def_ItemType_Bow]:
-#        curEffect = ItemCommon.GetItemEffectByEffectID(curUseWeapon2, ChConfig.Def_Effect_WeaponAttack)
-#        if curEffect == None:
-#            GameWorld.DebugAnswer(curPlayer, '没有物品效果ID %s'%ChConfig.Def_Effect_WeaponAttack)
-#            return skillID
-#        
-#        return curEffect.GetEffectValue(0)
-#    
-#    return skillID
-#===============================================================================
-
 
 #===============================================================================
 # //B4 02 对象击退 #tagCMNPCBeatBack
@@ -2069,11 +2034,11 @@
     needBaseAttrID, needBaseAttrValue = GetSkillUpNeedAttr(stateSkillLV)
     if needBaseAttrID and needBaseAttrValue:
         baseAttrDict = {
-                            ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer),
-                            ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer),
-                            ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer),
-                            ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer),
-                            ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer),
+                            #ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer),
+                            #ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer),
+                            #ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer),
+                            #ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer),
+                            #ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer),
                          }
         if needBaseAttrID not in baseAttrDict:
             GameWorld.ErrLog('    技能升级属性点条件配置错误,curSkillTypeID=%s,needBaseAttrID=%s'%(curSkillTypeID, needBaseAttrID))
@@ -2206,11 +2171,11 @@
     if skillTypeID not in PyGameData.g_elemntSkillDict:
         return isNotify, hasChangeLV
     baseAttrDict = {
-                            ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer),
-                            ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer),
-                            ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer),
-                            ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer),
-                            ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer),
+                            #ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer),
+                            #ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer),
+                            #ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer),
+                            #ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer),
+                            #ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer),
                          }
     activeSkillLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementLV % skillTypeID)
     limitInfoList = PyGameData.g_elemntSkillDict[skillTypeID]
@@ -2629,8 +2594,8 @@
 # @remarks 刷新玩家场景状态
 def ProcessPlayerAreaState(curPlayer):
     #初始化所有的场景buff状态
-    playerControl = PlayerControl.PlayerControl(curPlayer)
-    playerControl.InitMapBuffState()
+    #playerControl = PlayerControl.PlayerControl(curPlayer)
+    #playerControl.InitMapBuffState()
     
     buffManager = curPlayer.GetMapBuff()
     
@@ -2656,89 +2621,6 @@
             callFunc(curPlayer, curEffect)
 
     return
-#---------------------------------------------------------------------
-##添加装备触发的Buff
-# @param curPlayer 玩家实例
-# @param curEquip 装备实例
-# @return 返回值无意义
-# @remarks 添加装备触发的Buff
-def RefreshSkillBuffByEquip(curPlayer, curEquip) :
-    #一般装备新增Buff
-    __DoEquip_AddBuff(curPlayer, curEquip)
-    return
-
-#---------------------------------------------------------------------
-##添加装备触发的Buff, 一般装备新增Buff
-# @param curPlayer 玩家实例
-# @param curEquip 装备实例
-# @return 返回值无意义
-# @remarks 添加装备触发的Buff, 一般装备新增Buff
-def __DoEquip_AddBuff(curPlayer, curEquip):
-    gameData = GameWorld.GetGameData()
-    playerVehicle = curPlayer.GetPlayerVehicle()
-    houseState = curPlayer.GetPlayerRidehorseState()
-    
-    for index in range(0 , curEquip.GetAddSkillCount()):
-        curSkillID = curEquip.GetAddSkill(index)
-        
-        if curSkillID == 0:
-            continue
-        
-        #通过技能ID获得使用技能
-        curSkill = gameData.GetSkillBySkillID(curSkillID)
-        
-        if curSkill == None :
-            GameWorld.Log("装备触发技能,物品表错误 curSkillID = %s"%(curSkillID) , curPlayer.GetPlayerID())
-            continue
-        
-        #骑马触发技能
-        houseSkill = ChConfig.Def_Skill_TypeID_Speed
-        curSkillType = curSkill.GetSkillTypeID()
-        
-        if not SkillCommon.IsBuff(curSkill):
-            continue
-        
-        if curSkillType in houseSkill:
-            #不使用,不添加buff
-            if playerVehicle != IPY_GameWorld.pvHorse :
-                continue
-            
-            if curSkillType == houseSkill[0] and houseState != IPY_GameWorld.prsNormal :
-                continue
-            
-            if curSkillType == houseSkill[1] and houseState != IPY_GameWorld.prsRun :
-                continue
-            
-        #添加Buff
-        BuffSkill.AddBuffNoRefreshState(curPlayer, IPY_GameWorld.bfEquipBuff, curSkill, 0, [], buffOwner = curPlayer)
-        
-    return
-#---------------------------------------------------------------------
-##刷新buff的效果
-# @param buffState Buff管理器
-# @param sameEffectCanWork 是否可以叠加相同效果, <sameEffectCanWork> : 效果是否可以叠加, 默认为否
-# @return 返回值无意义
-# @remarks 刷新buff的效果 (参数 -> buff管理器,是否叠加)
-def __RefreshSkillBuffEffect(buffState, sameEffectCanWork = False):
-    return
-    #===========================================================================
-    # buffState.ClearEffects()
-    # for buffIndex in range(0, buffState.GetBuffCount()):
-    #    curBuff = buffState.GetBuff(buffIndex)
-    #    buffValue = curBuff.GetValue()
-    #    curSkill = curBuff.GetSkill()
-    #    skillID = curSkill.GetSkillID()
-    #    if skillID == 0:
-    #        continue
-    #    
-    #    for effectIndex in range(0, curSkill.GetEffectCount()):
-    #        curEffect = curSkill.GetEffect(effectIndex)
-    #        effectID = curEffect.GetEffectID()
-    #        if effectID == 0:
-    #            continue
-    #        
-    #        buffState.AddEffect(curEffect, buffValue, skillID, curBuff.GetOwnerID(), curBuff.GetOwnerType())
-    #===========================================================================
 
 #---------------------------------------------------------------------
 ##计算效果值
@@ -2842,35 +2724,6 @@
     
     return ChConfig.Def_CalcAttrIndexDict[(isBaseEff, calcType)]
 
-
-##刷新玩家所有影响属性的Buff,添加时只重计算同类型BUFF,删除时刷新所有类型BUFF
-# @param curPlayer 玩家实例
-# @param buffType buff类型 -1代表全部刷性
-# @return 返回值无意义
-def RefreshPlayerBuffOnAttrAddEffect(curPlayer, buffType=-1):
-    return
-#===============================================================================
-#    GameWorld.DebugLog("Start RefreshPlayerBuffOnAttrAddEffect!!!")
-#    
-#    #[[BuffState, CanPileup]]
-#    if buffType == -1:
-#        buffRefreshList = [
-#            [curPlayer.GetBuffState(), False], [curPlayer.GetDeBuffState(), False],
-#            [curPlayer.GetAura(), False], [curPlayer.GetIncBuff(), True],
-#            [curPlayer.GetPassiveBuf(), True], [curPlayer.GetEquipBuff(), True],
-#                       ]
-#    else:    
-#        #只重计算改变的BUFF, 这里不防范非属性类型BUFF外层过滤
-#        buffManagerInfo = SkillCommon.GetBuffManagerByBuffType(curPlayer, buffType)
-#        buffRefreshList = [[buffManagerInfo[0],  buffManagerInfo[2]]]
-#        
-#    #执行刷新逻辑
-#    __DoRefreshBuff(buffRefreshList)
-# 
-#    return
-#===============================================================================
-
-
 # 通过技能ID删除buff对应的效果ID
 def ClearBuffEffectBySkillID(curObj, skillID, ownerID, ownerType):
     curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
@@ -2971,18 +2824,6 @@
     for i in effectIndexList:
         buffState.DeleteEffectByIndex(i)
         
-       
-
-##刷新管理器中的Buff
-# @param buffRefreshList Buff刷新列表[[BuffState, CanPileup]]
-# @return 返回值无意义
-# @remarks 按照叠加规则, 刷新指定管理中的Buff
-def __DoRefreshBuff(buffRefreshList):
-    for buffState, canPileUp in buffRefreshList:
-        __RefreshSkillBuffEffect(buffState, canPileUp)
-
-    return
-    
 
 ##计算行为BUFF对人物行为状态的改变
 # @param curPlayer 玩家实例
@@ -3653,7 +3494,8 @@
 
         #调用攻击惩罚逻辑
         BaseAttack.DoLogic_AttackResult(attacker, defender, None, tick)
-    
+        TurnAttack.OnTurnfightAttackResult(attacker, defender, curSkill)
+        
     return
 #---------------------------------------------------------------------
 ##释放普通技能

--
Gitblit v1.8.0