From 676d0d627868fc1c2e04bcdf7e43396d283d88b5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 21 八月 2018 14:46:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/master'

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 2 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 5962869..60877cc 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
@@ -1921,7 +1921,7 @@
 # @param curMission 任务实例
 # @param curConditionNode 节点信息
 # @return 返回值, 是否判断成功
-# @remarks  <Have_Money value="期望值" check="查找对话中的货币" moneytype="货币类型 1元宝2礼券3银两" type="__Eval+替换的名字"/>
+# @remarks  <Have_Money value="期望值" check="查找对话中的货币" moneytype="货币类型 1元宝2礼券3银两" type="__Eval+替换的名字" maxItem="需要物品数量" itemID="20410"/>
 def ConditionType_Have_Money(curPlayer, curMission, curConditionNode):
     #格式<have_money value="" type="" moneytype=""/>
     value = curConditionNode.GetAttribute("value")
@@ -1930,6 +1930,13 @@
         conditionValue = int(value)
     elif check != "":
         conditionValue = int(QuestRunnerValue.GetNPCTalkReplaceValue(curPlayer, curMission, check))
+    
+    maxItemCnt = GameWorld.ToIntDef(curConditionNode.GetAttribute("maxItem"), 0)
+    itemID = GameWorld.ToIntDef(curConditionNode.GetAttribute("itemID"), 0)
+    if maxItemCnt and itemID: #未收集的道具个数乘以单价
+        haveCnt = ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptItem, itemID)
+        conditionValue = max(0, maxItemCnt-haveCnt)*value
+        
     conditionType = curConditionNode.GetAttribute("type")
     moneyType = int(curConditionNode.GetAttribute("moneytype"))
     goldValue = curPlayer.GetGold()
@@ -3655,7 +3662,7 @@
 # @param curMission 任务实例
 # @param curActionNode节点信息
 # @return 返回值无意义
-# @remarks  <Del_Money form_value="是否取对话的值" value="form_value为空取" moneytype="1元宝2礼券3银两" /> 
+# @remarks  <Del_Money form_value="是否取对话的值" value="form_value为空取" moneytype="1元宝2礼券3银两" maxItem="需要物品数量" itemID="20410"/> 
 def DoType_Del_Money(curPlayer, curMission, curActionNode):
     #扣钱
     #格式<del_money form_value = ""value="" moneytype=""/>
@@ -3665,6 +3672,12 @@
         value = int(QuestRunnerValue.GetNPCTalkReplaceValue(curPlayer, curMission, form_value))
     else:
         value = int(curActionNode.GetAttribute("value"))    
+    
+    maxItemCnt = GameWorld.ToIntDef(curActionNode.GetAttribute("maxItem"), 0)
+    itemID = GameWorld.ToIntDef(curActionNode.GetAttribute("itemID"), 0)
+    if maxItemCnt and itemID: #未收集的道具个数乘以单价
+        haveCnt = ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptItem, itemID)
+        value = max(0, maxItemCnt-haveCnt)*value
     
     moneytype = int(curActionNode.GetAttribute("moneytype"))
     
@@ -6011,6 +6024,17 @@
     key = curActionNode.GetAttribute("key")
     curMission.SetProperty(key, PlayerMagicWeapon.GetMWActiveCntTotal(curPlayer))
     return
+
+##设置坐骑总等级
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Horsetotallv key="" />
+def DoType_Set_Horsetotallv(curPlayer, curMission, curActionNode):
+    key = curActionNode.GetAttribute("key")
+    curMission.SetProperty(key, PlayerHorse.GetHorseSumLV(curPlayer))
+    return
 #---------------------------------------------------------------------
 ##DoType_调度器
 # @param curPlayer 玩家实例
@@ -7105,6 +7129,39 @@
     soulID = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
     return bool(PlayerMagicWeapon.GetIsActiveMWSoul(curPlayer, soulID))
 
+##S级通关X层娲皇遗迹
+# @param None
+# @return None <Passqueenrelecs value="lineID"/>
+def ConditionType_Passqueenrelecs(curPlayer, curMission, curActionNode):
+    lineID = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    grade = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [ChConfig.Def_FBMapID_QueenRelics])
+    maxGrade = len(FBCommon.GetFBLineGrade(ChConfig.Def_FBMapID_QueenRelics, lineID))
+    return grade >=maxGrade
+
+##坐骑总等级
+# @param None
+# @return None <Horsetotallv value="lv"/>
+def ConditionType_Horsetotallv(curPlayer, curMission, curActionNode):
+    totallv = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    return PlayerHorse.GetHorseSumLV(curPlayer) >= totallv
+
+##2阶强化防具套装件数
+# @param None
+# @return None <Mwsoul value="id"/>
+def ConditionType_SuitPlus(curPlayer, curMission, curActionNode):
+    needCnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    
+    equipSuitTypeDict = IpyGameDataPY.GetFuncEvalCfg('EquipSuitType')
+    groupCnt = 0 #2阶强化防具套装件数
+    for groupType, equipIndexList in equipSuitTypeDict.items():
+        for i in equipIndexList:
+            suiteInfo = ChEquip.GetSuiteInfoByPlace(curPlayer, i)
+            for suiteType, lv in suiteInfo.items():
+                if lv >= 2 and groupType == 1 and suiteType == 2:
+                    groupCnt +=1
+    return groupCnt >= needCnt
+
+
 ##激活法宝,确认与成就逻辑后使用
 # @param None
 # @return None <Active_Magicweapon id="法宝ID"/>

--
Gitblit v1.8.0