From f1788ddd849b6e3356571a8e7c6e844aafda1414 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 20 二月 2019 14:02:07 +0800
Subject: [PATCH] 6258 【后端】【2.0】技能升级功能(删除法宝技能升级)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
index a575402..2c2aee9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
@@ -90,6 +90,14 @@
 #  @remarks 函数详细说明.
 def OnNPCDie(curNPC,HurtType,HurtID):
     PassiveBuffEffMng.GetPassiveEffManager().RemovePassiveEff((curNPC.GetID(), IPY_GameWorld.gotNPC))
+    
+    # 召唤NPC死亡触发被动技能
+    owner = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, curNPC)
+    if owner:
+        owner.SetDict("summondie", curNPC.GetNPCID())
+        PassiveBuffEffMng.OnPassiveSkillTrigger(owner, None, None, ChConfig.TriggerType_SummonDie,
+                                                GameWorld.GetGameWorld().GetTick())
+        
     callFunc = GameWorld.GetExecFunc(NPCAI, "AIType_%d.%s"%(curNPC.GetAIType(), "OnDie"))
     if callFunc == None:
         return None
@@ -126,7 +134,13 @@
     callFunc(atkObj, curNPC, skill, tick)
     
     PlayerActivity.OnAttackNPCActivity(atkObj, curNPC)
-    
+
+def OnCheckCanDie(atkObj, curNPC, skill, tick):
+    callFunc = GameWorld.GetExecFunc(NPCAI, "AIType_%d.%s"%(curNPC.GetAIType(), "OnCheckCanDie"))
+    if callFunc == None:
+        return True
+    return callFunc(atkObj, curNPC, skill, tick)
+
 #---------------------------------------------------------------------
 ## 初始化NPC 
 #  @param tick 当前时间
@@ -344,7 +358,19 @@
     for curNPC in gameTruck_List:
         ProcessNPCAI(curNPC, tick)
     
+    # 宠物AI
+    ProcessPetAI(gameWorld, gameNPC, tick)
+    
+# 宠物AI需求减弱特殊处理, 减少性能消耗
+def ProcessPetAI(gameWorld, gameNPC, tick):
     #---处理宠物的AI---
+    #未到刷新间隔
+    if tick - gameWorld.GetTickByType(ChConfig.TYPE_Map_Tick_PetAITick) < \
+                ChConfig.TYPE_Map_Tick_Time[ChConfig.TYPE_Map_Tick_PetAITick]:
+        return
+    
+    gameWorld.SetTickByType(ChConfig.TYPE_Map_Tick_PetAITick, tick)
+    
     gamePet_List = []
     
     for index in range(0, gameNPC.GetPetCount()):

--
Gitblit v1.8.0