From ff8efc0ccf9fa6d66d873673afd07d2adfd87252 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 18 十二月 2024 15:43:33 +0800
Subject: [PATCH] 10297 【越南】【英语】【砍树】【tqxbqy】轮回殿-服务端(增加GM命令: Lunhui)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/Player_Attack_NormalNPC.py |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/Player_Attack_NormalNPC.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/Player_Attack_NormalNPC.py
index f9231ca..85f948c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/Player_Attack_NormalNPC.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/Player_Attack_NormalNPC.py
@@ -32,6 +32,7 @@
 import SkillShell
 import ChNPC
 import GameObj
+import TurnAttack
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -62,9 +63,21 @@
 #  @remarks 函数详细说明.
 def GetTagRelation(curPlayer, curTagNormalNPC, skill, tick):
     defenderCampType = NPCCommon.GetFaction(curTagNormalNPC)
+    curFaction = curPlayer.GetFaction()
+    if curFaction and defenderCampType:
+        if curFaction == defenderCampType:
+            return ChConfig.Type_Relation_Friend , ChConfig.Def_PASysMessage_None
+        return ChConfig.Type_Relation_Enemy , ChConfig.Def_PASysMessage_None
     #不攻击正义的需要去保护的 这里有女神和守卫
-    if defenderCampType == ChConfig.CampType_Justice:
+    elif defenderCampType == ChConfig.CampType_Justice:
         return ChConfig.Type_Relation_Friend, ChConfig.Def_PASysMessage_None
+    
+    #私有木桩只能自己打自己的
+    if curTagNormalNPC.GetType() in [ChConfig.ntPriWoodPilePVE, ChConfig.ntPriWoodPilePVP]:
+        summonPlayerID = curTagNormalNPC.GetDictByKey(ChConfig.Def_NPC_Dict_PriWoodPilePlayerID)
+        if curPlayer.GetPlayerID() != summonPlayerID:
+            return ChConfig.Type_Relation_Friend , ChConfig.Def_PASysMessage_None
+        return ChConfig.Type_Relation_Enemy , ChConfig.Def_PASysMessage_None
     
     return ChConfig.Type_Relation_Enemy , ChConfig.Def_PASysMessage_None
 
@@ -79,7 +92,6 @@
 #  @return hurtType : HurtType 伤害结构体类 
 #  @remarks 函数详细说明.
 def DoAttack(curPlayer, curTagNormalNPC, skill, skillValue, skillPercent, skillHurtList, tick):
-    #finalHurtPer = SkillCommon.GetSkillFinalHurtPer(curPlayer, curTagNormalNPC, skill, tick)
 
     curTagNPCHPBeforeAtk = GameObj.GetHP(curTagNormalNPC)
     hurtType = AttackCommon.GetHurtHP(curPlayer, curTagNormalNPC, skill, skillValue, skillPercent, tick)
@@ -111,9 +123,13 @@
         return
     
     if GameObj.GetHP(curTagNormalNPC) <= 0:
+        if TurnAttack.SetKilled(curTagNormalNPC):
+            return
+        if not ChNPC.OnCheckCanDie(curPlayer, curTagNormalNPC, skill, tick):
+            return
         #执行击杀NPC逻辑
-        FBLogic.DoFB_Player_KillNPC(curPlayer , curTagNormalNPC , tick)
         NPCCommon.OnPlayerAttackNPCDie(curTagNormalNPC, curPlayer, skill)
+        FBLogic.DoFB_Player_KillNPC(curPlayer , curTagNormalNPC , tick)
         #NPC死亡
         curTagNormalNPCControl = NPCCommon.NPCControl(curTagNormalNPC)
         curTagNormalNPCControl.SetKilled()

--
Gitblit v1.8.0