From 613652a797c383860180995af17e0a36e35bc2ef Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期六, 24 十一月 2018 14:15:01 +0800
Subject: [PATCH] 4710 【1.3】【后端】魔族法宝副本修改(老号处理)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py |   69 +++++++++++++++++++++++-----------
 1 files changed, 46 insertions(+), 23 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
index a90e2d1..8228b23 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -3939,7 +3939,7 @@
 # @remarks 自定义函数, 读数据库任务删除表, 删除任务
 def __DoLogic_DeleteMission(curPlayer, curMission):
     missionID = curMission.GetMissionID()
-    
+    GameWorld.Log("__DoLogic_DeleteMission---%s"%missionID)
     delMissionData = GameWorld.GetGameData().GetMissionDeleteByID(missionID)
     #任务删除表中无此任务
     if not delMissionData:
@@ -4984,30 +4984,53 @@
     if hasGotAward:
         GameWorld.DebugLog('领取环任务每轮奖励  已奖励 类型 %s'%taskType)
         return
-    runTaskAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward')
-    if taskType not in runTaskAwardDict:
-        GameWorld.DebugLog('领取环任务每轮奖励  RunTaskAward 没有配置类型的奖励 类型 %s'%taskType)
-        return
-    moneyNum = 0
-    specialAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 2)
-    if taskType in specialAwardDict:
-        rate, moneyCnt = specialAwardDict[taskType]
-        if GameWorld.CanHappen(rate):
-            moneyNum = moneyCnt
-            if taskType == QuestCommon.Def_Mission_Type_RunDaily:
-                PlayerControl.WorldNotify(0, 'CoinTaskReward', [curPlayer.GetName()])
-    moneyType, minMoney, maxMoney = runTaskAwardDict[taskType]
-    if not moneyNum:
-        moneyNum = random.randint(minMoney, maxMoney)
-    if moneyType == ShareDefine.TYPE_Price_Family_Contribution:
-        PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, moneyNum, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson)
-    else:
-        addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
-        PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
+    #物品奖励
+    itemList = []
+    itemAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 3, {})
+    if str(taskType) in itemAwardDict:
+        itemList = itemAwardDict[str(taskType)]
+        # 检查背包
+        needSpace = len(itemList)
+        packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+        if needSpace > packSpace:
+            PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
+            return
+        for itemID, itemCount, isBind in itemList:
+            ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
     
+    #给经验
+    giveExp = 0
+    expAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 4, {})
+    if str(taskType) in expAwardDict:
+        reExp = PlayerControl.GetPlayerReExp(curPlayer)
+        giveExp = eval(expAwardDict[str(taskType)])
+        PlayerControl.PlayerControl(curPlayer).AddExp(giveExp)
+    
+    #给钱
+    moneyType = 0
+    moneyNum = 0
+    runTaskMoneyAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward')
+    if taskType in runTaskMoneyAwardDict:
+        specialAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 2, {})
+        if taskType in specialAwardDict:
+            rate, moneyCnt = specialAwardDict[taskType]
+            if GameWorld.CanHappen(rate):
+                moneyNum = moneyCnt
+                if taskType == QuestCommon.Def_Mission_Type_RunDaily:
+                    PlayerControl.WorldNotify(0, 'CoinTaskReward', [curPlayer.GetName()])
+        moneyType, minMoney, maxMoney = runTaskMoneyAwardDict[taskType]
+        if not moneyNum:
+            moneyNum = random.randint(minMoney, maxMoney)
+        if moneyType == ShareDefine.TYPE_Price_Family_Contribution:
+            PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, moneyNum, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson)
+        else:
+            addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
+            PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
+        
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % taskType, moneyNum)
+        
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardState % taskType, 1)
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % taskType, moneyNum)
-    GameWorld.DebugLog('领取环任务每轮奖励成功  moneyType=%s, moneyNum=%s'%(moneyType, moneyNum))
+    GameWorld.DebugLog('领取环任务每轮奖励成功  moneyType=%s, moneyNum=%s, itemList=%s, giveExp=%s'%(moneyType, moneyNum, itemList, giveExp))
     
     #通知客户端
     NotifyRunEndAward(curPlayer, taskType)

--
Gitblit v1.8.0