From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py | 69 ++++++----------------------------
1 files changed, 12 insertions(+), 57 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 a61fc98..87be5dd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -24,67 +24,31 @@
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 FunctionNPCCommon
import PlayerActBuyCountGift
import PlayerActLoginNew
import PlayerActTask
import IPY_GameWorld
import ItemCommon
import ItemControler
+import PlayerHorse
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),
+ ShareDefine.GameFuncID_Shop:lambda curObj:FunctionNPCCommon.DoShopOpen(curObj),
+ ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj),
}
-
-## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个
-## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个
-## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个
-
-# 功能开启后升级逻辑 需要处理的函数 {功能ID:执行函数, ...}
-#FuncLVUpLogicDict = {
-# ShareDefine.GameFuncID_Pet:lambda curObj:PlayerPet.DoLVUPLogic_Pet(curObj),
-# }
-
-# 功能开启需要同步到GameServer的
-FuncOpenNotifyGameServer = [ShareDefine.GameFuncID_Championship, ShareDefine.GameFuncID_MineArea]
def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
-def DoFuncOpenLogic(curPlayer, finishMissionIDList=[]):
+def DoFuncOpenLogic(curPlayer):
'''执行触发功能开启逻辑
@param finishMissionIDList: 完成的任务ID列表
'''
@@ -98,11 +62,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())
@@ -137,16 +101,6 @@
if openFuncIDList:
Sync_FuncOpenState(curPlayer, openFuncIDList)
- notifyGameServerFuncIDList = []
- for funcID in openFuncIDList:
- if funcID not in FuncOpenNotifyGameServer:
- continue
- notifyGameServerFuncIDList.append(funcID)
- if notifyGameServerFuncIDList:
- GameWorld.DebugLog("notifyGameServerFuncIDList=%s" % notifyGameServerFuncIDList)
- msgInfo = str(notifyGameServerFuncIDList)
- GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "FuncOpen", msgInfo, len(msgInfo))
-
PlayerActTask.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
PlayerActLoginNew.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
PlayerActBuyCountGift.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
@@ -155,6 +109,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