From 5831ac5f8c886bf92182a8a40267881784eb6b4e Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 05 九月 2025 15:12:03 +0800 Subject: [PATCH] 16 卡牌服务端(优化功能开启命令限制的等级、境界;优化任务开启功能,完成任意任务可开启之前已完成任务可开启的功能;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py | 50 ++++++++------------------------------------------ 1 files changed, 8 insertions(+), 42 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 52d3a74..cf7afb1 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py @@ -24,21 +24,10 @@ import ChPyNetSendPack import GameWorld import NetPackCommon -#import PlayerGodWeapon -#import PlayerHorse -#import PlayerPet import ShareDefine import IpyGameDataPY import PlayerControl -import PlayerPrestigeSys -import PlayerBillboard -import PlayerTreasure import PlayerSignDay -#import PlayerGoldGift -#import PlayerEquipDecompose -#import PlayerCrossChampionship -#import PlayerFreeGoods -#import FunctionNPCCommon import PlayerActBuyCountGift import PlayerActLoginNew import PlayerActTask @@ -46,42 +35,18 @@ import ItemCommon import ItemControler import PlayerArena -#import PlayerLianTi -#import PlayerFaQi +import PlayerTask # 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可 FuncOpenLogicDict = { - ShareDefine.GameFuncID_Official:lambda curObj:PlayerPrestigeSys.DoOfficialOpen(curObj), - ShareDefine.GameFuncID_Billboard:lambda curObj:PlayerBillboard.DoBillboardOpen(curObj), ShareDefine.GameFuncID_SignDay:lambda curObj:PlayerSignDay.DoSignDayOpen(curObj), - ShareDefine.GameFuncID_Treasure:lambda curObj:PlayerTreasure.DoTreasureOpen(curObj), ShareDefine.GameFuncID_Arena:lambda curObj:PlayerArena.DoArenaOpen(curObj), - #ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj), - #ShareDefine.GameFuncID_GodWeapon:lambda curObj:PlayerGodWeapon.DoGodWeaponOpen(curObj), - #ShareDefine.GameFuncID_Pet:lambda curObj:PlayerPet.DoPetOpen(curObj), - #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_FaQi:lambda curObj:PlayerFaQi.DoFaQiOpen(curObj), - #ShareDefine.GameFuncID_LianTi:lambda curObj:PlayerLianTi.DoLianTiOpen(curObj), - #ShareDefine.GameFuncID_Championship:lambda curObj:PlayerCrossChampionship.DoChampionshipOpen(curObj), } - -## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个 -## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个 -## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个 - -# 功能开启后升级逻辑 需要处理的函数 {功能ID:执行函数, ...} -#FuncLVUpLogicDict = { -# ShareDefine.GameFuncID_Pet:lambda curObj:PlayerPet.DoLVUPLogic_Pet(curObj), -# } def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID) -def DoFuncOpenLogic(curPlayer, finishMissionIDList=[]): +def DoFuncOpenLogic(curPlayer): '''执行触发功能开启逻辑 @param finishMissionIDList: 完成的任务ID列表 ''' @@ -95,11 +60,11 @@ ipyData = ipyGameData.GetFuncOpenLVByIndex(i) funcID = ipyData.GetFuncId() limitMissionID = ipyData.GetLimitMissionID() - if limitMissionID and limitMissionID in finishMissionIDList: - if not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID): - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_MissionFinish % limitMissionID, 1) - GameWorld.DebugLog(" 设置功能开启所需任务完成: funcID=%s,limitMissionID=%s" % (funcID, limitMissionID), curPlayer.GetPlayerID()) - + if limitMissionID and not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID) \ + and PlayerTask.IsTaskFinish(curPlayer, limitMissionID): + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_MissionFinish % limitMissionID, 1) + GameWorld.DebugLog(" 设置功能开启所需任务完成: funcID=%s,limitMissionID=%s" % (funcID, limitMissionID), curPlayer.GetPlayerID()) + isOpen = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, True) if isOpen: #GameWorld.DebugLog(" 功能已经开启过, 不需要重复触发开启! funcID=%s" % (funcID), curPlayer.GetPlayerID()) @@ -142,6 +107,7 @@ ## 功能是否可用 def GetFuncCanUse(curPlayer, funcID): + if funcID < 0: return False return GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, True) ## 获取功能限制等级(等级条件为全局) -- Gitblit v1.8.0