From 3bc2e9aae7e595d5be896a9db4c909b76fa6f5be Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 11 七月 2025 14:16:29 +0800
Subject: [PATCH] 0312 物品叠加数量支持配置DWORD

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 389e148..d4639ce 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -448,6 +448,28 @@
     #NPC读表取
     return attack.GetHurtType()
 
+def GetAtkDistType(curObj):
+    ## 获取是近战还是远程,默认近战
+    if curObj.GetGameObjType() != IPY_GameWorld.gotNPC:
+        return ChConfig.AtkDistType_Short
+    
+    playerID = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_LineupPlayerID)
+    if not playerID:
+        return ChConfig.AtkDistType_Short
+    
+    heroID = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_HeroID)
+    if heroID:
+        heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
+        if heroIpyData:
+            return heroIpyData.GetAtkDistType()
+        
+    npcID = curObj.GetNPCID()
+    npcDataEx = NPCCommon.GetNPCDataEx(npcID)
+    if npcDataEx:
+        return npcDataEx.GetAtkDistType()
+    
+    return ChConfig.AtkDistType_Short
+
 ## 输入基础数值,返回增强后的值 - 技能加强
 #  @param value 基础值
 #  @param skill 技能
@@ -1624,7 +1646,7 @@
         return
     
     if curSkill and curSkill.GetFuncType() not in [ChConfig.Def_SkillFuncType_FbSkill,
-                                          ChConfig.Def_SkillFuncType_NormalAttack]:
+                                          ChConfig.Def_SkillFuncType_TurnNormaAttack]:
         return
     
     if attacker.GetDictByKey(ChConfig.Def_PlayerKey_FirstDefender):
@@ -2075,7 +2097,7 @@
     
     # --- 新增普通攻击的数值和技能攻击的数值,根据类型各自计算
     if atkObjType == IPY_GameWorld.gotPlayer:
-        if not curSkill or curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_NormalAttack:
+        if not curSkill or curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_TurnNormaAttack:
             atkSkillPer += PlayerControl.GetNormalHurtPer(atkObj)
             atkSkillValue += PlayerControl.GetNormalHurt(atkObj)
         elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
@@ -2211,7 +2233,7 @@
     elif not curSkill:
         hurtValue = eval(IpyGameDataPY.GetFuncCompileCfg("HurtFormula", 3))
         GameWorld.DebugLog("    普攻伤害=%s" % (hurtValue))
-    elif SkillCommon.isNormalAtkSkill(curSkill):
+    elif SkillCommon.isTurnNormalAtkSkill(curSkill):
         hurtValue = eval(IpyGameDataPY.GetFuncCompileCfg("HurtFormula", 1))
         GameWorld.DebugLog("    普攻技能伤害=%s" % (hurtValue))
     elif SkillCommon.isXPSkill(curSkill):
@@ -2795,7 +2817,7 @@
     if GameObj.GetHP(curObjDetel) > 0:
         return
     
-    if TurnAttack.SetKilled(curObjDetel):
+    if TurnAttack.SetTurnObjKilled(curObjDetel, atkObj):
         return
         
     #---玩家处理---

--
Gitblit v1.8.0