From c5a175b19a16a9c5a95be6e0f6ecc157c3aa26ce Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 09 十月 2022 16:26:56 +0800
Subject: [PATCH] 9687 【后端】【越南】【主干】【BT7】野外根据境界动态刷怪(优化有选择境界难度时,随机任务击杀目标NPCID逻辑)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index 7438498..2a8e1a2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -3558,6 +3558,15 @@
     return
 
 def __GetRandNPCID(curPlayer, killNPCList, recordKey):
+    if not killNPCList:
+        return
+    
+    diffRealmLV = PlayerControl.GetDifficultyRealmLV(PlayerControl.GetRealmDifficulty(curPlayer))
+    realmMapIDList = IpyGameDataPY.GetFuncEvalCfg("RealmDifficulty", 1)
+    difficultyRealmList = IpyGameDataPY.GetFuncEvalCfg("RealmDifficulty", 2)
+    # 已选择境界难度 且 随机击杀怪物 时才需要 随机境界难度NPC
+    randRealmDiffNPC = (diffRealmLV in difficultyRealmList and recordKey == ChConfig.Def_Player_Dict_TaskLastKillNPCID)
+    
     heroLV = curPlayer.GetLV()
     ranNPCList = []
     returnNPC = None
@@ -3571,12 +3580,20 @@
         npcData = killNPC.NPCData
         if not npcData:
             continue
-        NPCLV = npcData.GetLV()
+        if randRealmDiffNPC:
+            if mapid not in realmMapIDList:
+                continue
+            npcID = killNPC.ID
+            realmNPCIpyData = IpyGameDataPY.GetIpyGameDataNotLog("NPCRealmStrengthen", npcID, diffRealmLV)
+            if not realmNPCIpyData:
+                continue
+            NPCLV = realmNPCIpyData.GetLV()
+        else:
+            NPCLV = npcData.GetLV()
+            if recordKey != ChConfig.Def_Player_Dict_TaskLastVisitNPCID and NPCLV < heroLV-30:
+                secondNPC = killNPC
+                continue
         if NPCLV > heroLV:
-            continue
-        
-        if recordKey != ChConfig.Def_Player_Dict_TaskLastVisitNPCID and NPCLV < heroLV-30:
-            secondNPC = killNPC
             continue
         #不和上次的NPCID相同
         if killNPC.ID == curPlayer.NomalDictGetProperty(recordKey):

--
Gitblit v1.8.0