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/GM/Commands/OpenFunc.py | 22 +++++++++++++++++----- 1 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py index dd9af87..8cb4ac3 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py @@ -95,25 +95,37 @@ GameWorld.DebugLog("GM处理等级开启功能: openFuncID=%s,openFuncIDList=%s,needLV=%s" % (openFuncID, openFuncIDList, needLV), curPlayer.GetPlayerID()) # 优先处理升级 - if needLV: + if needLV > 1: preLV = needLV - 1 curPlayer.SetLV(preLV) PlayerControl.SetPlayerTotalExp(curPlayer, PlayerControl.GetTotalExpByPlayerLv(preLV)) PlayerControl.PlayerControl(curPlayer).PlayerLvUp() - + + # 获取等级需要的境界 + ipyDataMgr = IpyGameDataPY.IPY_Data() + for index in range(ipyDataMgr.GetRealmCount()): + realmIpyData = ipyDataMgr.GetRealmByIndex(index) + if realmIpyData.GetLv() > needRealmLV: + needRealmLV = realmIpyData.GetLv() + if realmIpyData.GetLVMax() >= needLV: + break + GameWorld.DebugLog("GM处理境界开启功能: needRealmLV=%s" % needRealmLV, curPlayer.GetPlayerID()) if needRealmLV: curPlayer.SetOfficialRank(max(ChConfig.Def_InitOfficialRank, needRealmLV - 1)) PlayerPrestigeSys.DoRealmLVUpLogic(curPlayer) + for limitMissionID in needMissionIDList: + if not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID): + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_MissionFinish % limitMissionID, 1) + GameWorld.DebugLog("GM处理任务开启功能: needMissionIDList=%s" % needMissionIDList, curPlayer.GetPlayerID()) #最后强制触发一次 - #if needMissionIDList: - GameFuncComm.DoFuncOpenLogic(curPlayer, needMissionIDList) + GameFuncComm.DoFuncOpenLogic(curPlayer) return def __GetOpenFuncLimit(curPlayer, openFuncIDList): - maxLV = PlayerControl.GetPlayerMaxLV(curPlayer) + maxLV = PlayerControl.GetOpenMaxLV() needLV = 0 needRealmLV = 0 needMissionIDList = [] -- Gitblit v1.8.0