From 94374c183c35fc4ba13ec7c675b35dd49b3a1386 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 23 八月 2018 16:02:42 +0800
Subject: [PATCH] fix:脱机掉落公式支持

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 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 3459869..0c3ecdd 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
@@ -1935,10 +1935,13 @@
     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
+        conditionValue = max(0, maxItemCnt-haveCnt)*conditionValue
         
     conditionType = curConditionNode.GetAttribute("type")
     moneyType = int(curConditionNode.GetAttribute("moneytype"))
+    
+    #GameWorld.Log('    conditionValue=%s,maxItemCnt=%s,itemID=%s'%(conditionValue,maxItemCnt,itemID))
+    
     goldValue = curPlayer.GetGold()
     goldPaperValue = curPlayer.GetGoldPaper()
     silverValue = PlayerControl.GetSilver(curPlayer)
@@ -1949,6 +1952,8 @@
         return QuestRunnerValue.GetEval(conditionType, goldPaperValue, conditionValue)
     elif moneyType == IPY_GameWorld.TYPE_Price_Silver_Money:
         return QuestRunnerValue.GetEval(conditionType, silverValue, conditionValue)
+    elif moneyType == ShareDefine.TYPE_Price_Gold_Paper_Money:
+        return QuestRunnerValue.GetEval(conditionType, goldValue + goldPaperValue, conditionValue)
     else:
         GameWorld.Log("任务 = %s , moneytype = %s填错拉" % (curMission.GetMissionID() , moneyType) , curPlayer.GetPlayerID())
         return
@@ -3681,21 +3686,26 @@
     
     moneytype = int(curActionNode.GetAttribute("moneytype"))
     
-    if moneytype not in ChConfig.Def_MoneyType_All:
-        GameWorld.Log("##异常moneytype = %s填错拉" % (moneytype))
-        return
+#    if moneytype not in ChConfig.Def_MoneyType_All:
+#        GameWorld.Log("##异常moneytype = %s填错拉" % (moneytype))
+#        return
     
     curMissionID = 0
     if curMission == None:
         curMissionID = 0
     else:
         curMissionID = curMission.GetMissionID()
-        
-    #付钱
-    if not PlayerControl.PayMoney(curPlayer, moneytype, value, ChConfig.Def_Cost_MissionDel, {"MissionID":curMissionID}):
+    costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, moneytype, value)
+    if not costMoneyList:
         GameWorld.Log("##付费异常,玩家金钱不足,任务missionID = %s" % (curMissionID) , curPlayer.GetPlayerID())
         EventShell.DoExitEvent(curPlayer)
         return
+    #付钱
+    for moneyType, moneyNum in costMoneyList:
+        if not PlayerControl.PayMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_Cost_MissionDel, {"MissionID":curMissionID}):
+            GameWorld.Log("##付费异常,玩家金钱不足,任务missionID = %s" % (curMissionID) , curPlayer.GetPlayerID())
+            EventShell.DoExitEvent(curPlayer)
+            return
     
     GameWorld.Login_Interface_GoldRec(curPlayer , 0 , 0 , 'MissionID_%s_Cost' % (curMissionID), moneytype, value)
     return

--
Gitblit v1.8.0