From 11c9a3b5846401523e4dafc17f2a074a712730da Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 三月 2026 18:27:10 +0800
Subject: [PATCH] 526 【挑战】PVP群英榜-后端(本服群英榜;优化机器人表支持按功能加载不同的机器人;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 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 667d289..96a507b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -29,9 +29,11 @@
import PlayerControl
import FunctionNPCCommon
import PlayerActBuyCountGift
-import PlayerActLoginNew
+import OpenServerActivity
+import GameLogic_Qunying
import PlayerActTask
import ItemControler
+import PlayerMingge
import PlayerTravel
import PlayerHorse
import PlayerArena
@@ -42,14 +44,21 @@
# 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可
FuncOpenLogicDict = {
ShareDefine.GameFuncID_Arena:lambda curObj:PlayerArena.DoArenaOpen(curObj),
+ ShareDefine.GameFuncID_Qunying:lambda curObj:GameLogic_Qunying.DoQunyingOpen(curObj),
ShareDefine.GameFuncID_Shop:lambda curObj:FunctionNPCCommon.DoShopOpen(curObj),
ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj),
ShareDefine.GameFuncID_Travel:lambda curObj:PlayerTravel.DoTravelOpen(curObj),
+ ShareDefine.GameFuncID_Mingge:lambda curObj:PlayerMingge.DoMinggeOpen(curObj),
+ ShareDefine.GameFuncID_OSA_MainLevel:lambda curObj:OpenServerActivity.DoOSA_MainLevelOpen(curObj),
+ ShareDefine.GameFuncID_OSA_HeroCall:lambda curObj:OpenServerActivity.DoOSA_HeroCallOpen(curObj),
+ ShareDefine.GameFuncID_OSA_HeroTrain:lambda curObj:OpenServerActivity.DoOSA_HeroTrainOpen(curObj),
+ ShareDefine.GameFuncID_OSA_BeautyTrain:lambda curObj:OpenServerActivity.DoOSA_BeautyTrainOpen(curObj),
+ ShareDefine.GameFuncID_OSA_MinggeTrain:lambda curObj:OpenServerActivity.DoOSA_MinggeTrainOpen(curObj),
}
def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
-def DoFuncOpenLogic(curPlayer):
+def DoFuncOpenLogic(curPlayer, checkServerDay=True):
'''执行触发功能开启逻辑
@param finishMissionIDList: 完成的任务ID列表
'''
@@ -87,14 +96,18 @@
continue
limitOpenDay = ipyData.GetLimitOpenDay()
- if limitOpenDay and serverDay < limitOpenDay:
+ if limitOpenDay and serverDay < limitOpenDay and checkServerDay:
+ continue
+
+ limitManLevel = ipyData.GetLimitManLevel()
+ if limitManLevel and PlayerControl.GetMainLevelPassValue(curPlayer) < limitManLevel:
continue
# 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环
befValue, updValue = GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, 1)
if befValue == updValue:
continue
- GameWorld.DebugLog(" 功能开启:funcID=%s,befValue=%s(%s),updValue=%s(%s)"
+ GameWorld.DebugLog(" 功能开启: funcID=%s,befValue=%s(%s),updValue=%s(%s)"
% (funcID, befValue, str(bin(befValue)[2:]), updValue, str(bin(updValue)[2:])), curPlayer.GetPlayerID())
if funcID in FuncOpenLogicDict:
@@ -108,7 +121,6 @@
if openFuncIDList:
Sync_FuncOpenState(curPlayer, openFuncIDList)
PlayerActTask.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
- PlayerActLoginNew.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
PlayerActBuyCountGift.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
return
--
Gitblit v1.8.0