From fc9a15f14791923a016e93525e1636b626bc5c6e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 05 二月 2025 18:20:14 +0800
Subject: [PATCH] 1111 【越南】【英语】【BT】【砍树】增加任务判断、设置某阶装备星级件数接口;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 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 f0d1a88..1a0c4ac 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
@@ -6021,6 +6021,37 @@
     curMission.SetProperty(key, ChEquip.GetTotalPlusLV(curPlayer, False))
     return
 
+##设置某阶达到X星级的件数
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Equiptstarcnt key="" id="" classLV="" star=""/>
+def DoType_Set_Equiptstarcnt(curPlayer, curMission, curActionNode):
+    key = curActionNode.GetAttribute("key")
+    questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
+    if questID != 0:
+        curMission = curPlayer.FindMission(questID)
+    classLV = GameWorld.ToIntDef(curActionNode.GetAttribute("classLV"), 0)
+    equipMaxClasslv = IpyGameDataPY.GetFuncCfg('EquipMaxClasslv')
+    classlVList = [classLV] if classLV else range(1, equipMaxClasslv+1)
+    
+    needStar = GameWorld.ToIntDef(curActionNode.GetAttribute("star"), 0)
+    totalCnt = 0
+    equipPlaceList = ChConfig.Pack_EquipPart_CanPlusStar[IPY_GameWorld.rptEquip]
+    for equipPlace in equipPlaceList:
+        for classLV in classlVList:
+            ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
+            if not ipyData:
+                continue
+            
+            equipStar = ChEquip.GetEquipPartStar(curPlayer, ipyData.GetGridIndex())
+            if equipStar >= needStar:
+                totalCnt += 1
+                
+    curMission.SetProperty(key, totalCnt)
+    return
+
 ##设置装备总星级
 # @param curPlayer 玩家实例
 # @param curMission 任务实例
@@ -7325,6 +7356,25 @@
     totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
     return ChEquip.GetTotalEquipStars(curPlayer) >= totalcnt
 
+##判断某阶星级达到X的件数是否达到
+# @param None
+# @return None <Classlvstar classLV="" star="" value="cnt"/>
+def ConditionType_Classlvstar(curPlayer, curMission, curActionNode):
+    classLV = GameWorld.ToIntDef(curActionNode.GetAttribute("classLV"), 0)
+    classLVList = [classLV] if classLV else xrange(1, IpyGameDataPY.GetFuncCfg('EquipMaxClasslv') + 1)
+    needStar = GameWorld.ToIntDef(curActionNode.GetAttribute("star"), 0)
+    totalCnt = 0
+    equipPlaceList = ChConfig.Pack_EquipPart_CanPlusStar[IPY_GameWorld.rptEquip]
+    for equipPlace in equipPlaceList:
+        for classLV in classLVList:
+            ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
+            if not ipyData:
+                continue
+            equipStar = ChEquip.GetEquipPartStar(curPlayer, ipyData.GetGridIndex())
+            if equipStar >= needStar:
+                totalCnt += 1
+    return totalCnt >= GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+
 ##装备宝石总等级
 # @param None
 # @return None <Equiptotalstone value="cnt"/>

--
Gitblit v1.8.0