From 530971bfbab8b0bab8fe7a13c4b84e68935b6e46 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 31 十月 2018 14:28:53 +0800
Subject: [PATCH] 4436 【后端】【1.2.0】功能预告界面修改,新增可领取奖励

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py |   33 +++++++++++++++++++++++++++++++--
 1 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
index f4244ea..28f1901 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -41,8 +41,9 @@
 import PlayerFreeGoods
 import FunctionNPCCommon
 import PlayerGreatMaster
-
-
+import IPY_GameWorld
+import ItemCommon
+import ItemControler
 
 
 # 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可
@@ -154,6 +155,33 @@
     
     return ipyData.GetLimitLV()
 
+def GetFuncOpenAward(curPlayer, funcID):
+    ## 领取功能开启奖励
+    ipyData = IpyGameDataPY.GetIpyGameData('FunctionForecast', funcID)
+    if not ipyData:
+        return
+    getState = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncAwardState, funcID)
+    if getState:
+        return
+    awardDict = ipyData.GetAward()
+    job = curPlayer.GetJob()
+    itemList = awardDict.get(str(job))
+    if not itemList:
+        return
+    # 检查背包
+    needSpace = len(itemList)
+    packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+    if needSpace > packSpace:
+        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
+        return
+    GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncAwardState, funcID, 1)
+    
+    # 给物品
+    for itemID, itemCount in itemList:
+        ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 1, [IPY_GameWorld.rptItem])
+    Sync_FuncOpenState(curPlayer, [funcID])
+    return
+    
 def Sync_FuncOpenState(curPlayer, syncFuncIDList=[], isSyncUnOpen=False):
     ## 通知功能首次触发情况
     if not syncFuncIDList:
@@ -174,6 +202,7 @@
         funcOpenState.Clear()
         funcOpenState.FuncID = funcID
         funcOpenState.State = openState
+        funcOpenState.AwardState = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncAwardState, funcID)
         funcStatePack.FuncStateList.append(funcOpenState)
     funcCount = len(funcStatePack.FuncStateList) 
     funcStatePack.FuncCount = funcCount

--
Gitblit v1.8.0