From e988d6e02bd04309a806c0bdee99aad200f64e36 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期五, 31 五月 2019 15:19:30 +0800 Subject: [PATCH] 6975 【2.0】【后端】日常界面调整(升级给活跃点) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 43 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 d0630c0..a203371 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py @@ -39,8 +39,12 @@ import PlayerGoldGift import PlayerEquipDecompose import PlayerFreeGoods - - +import FunctionNPCCommon +import PlayerGreatMaster +import IPY_GameWorld +import ItemCommon +import ItemControler +import PlayerTJG # 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可 @@ -57,6 +61,11 @@ ShareDefine.GameFuncID_FirstGoldTip:lambda curObj:PlayerGoldGift.DoFirstGoldOpen(curObj), ShareDefine.GameFuncID_EquipDecompose:lambda curObj:PlayerEquipDecompose.DoEquipDecomposeOpen(curObj), ShareDefine.GameFuncID_FreeGoods:lambda curObj:PlayerFreeGoods.DoFreeGoodsOpen(curObj), + ShareDefine.GameFuncID_OSSail:lambda curObj:FunctionNPCCommon.OSSaleOpenMail(curObj), + ShareDefine.GameFuncID_AddPoint:lambda curObj:PlayerControl.DoAddPointOpen(curObj), + ShareDefine.GameFuncID_Talent:lambda curObj:PlayerGreatMaster.DoTalentOpen(curObj), + ShareDefine.GameFuncID_TJG:lambda curObj:PlayerTJG.DoTJGOpen(curObj), + ShareDefine.GameFuncID_SuperGift:lambda curObj:FunctionNPCCommon.UpdataSuperGiftTime(curObj), #ShareDefine.GameFuncID_RunDaily:lambda curObj:FBCommon.DoFuncOpen_RunDaily(curObj), #ShareDefine.GameFuncID_RunFamily:lambda curObj:FBCommon.DoFuncOpen_RunFamily(curObj), #ShareDefine.GameFuncID_RefineExp:lambda curObj:Operate_PlayerBuyZhenQi.DoFuncOpen_RefineExp(curObj), @@ -117,6 +126,10 @@ if limitMissionID and not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID): continue + limitVIPLV = ipyData.GetLimitVIPLV() + if limitVIPLV and curPlayer.GetVIPLv() < limitVIPLV: + continue + # 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环 befValue, updValue = GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, 1) if befValue == updValue: @@ -145,6 +158,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, 0, [IPY_GameWorld.rptItem]) + Sync_FuncOpenState(curPlayer, [funcID]) + return + def Sync_FuncOpenState(curPlayer, syncFuncIDList=[], isSyncUnOpen=False): ## 通知功能首次触发情况 if not syncFuncIDList: @@ -165,6 +205,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