16 卡牌服务端(增加GM命令设置开服天 ServerDay;优化OpenFunc命令不受开服天限制;)
3个文件已修改
1个文件已添加
81 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ServerDay.py 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
@@ -121,7 +121,7 @@
            
    GameWorld.DebugLog("GM处理任务开启功能: needMissionIDList=%s" % needMissionIDList, curPlayer.GetPlayerID())
    #最后强制触发一次
    GameFuncComm.DoFuncOpenLogic(curPlayer)
    GameFuncComm.DoFuncOpenLogic(curPlayer, checkServerDay=False)
    return
def __GetOpenFuncLimit(curPlayer, openFuncIDList):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ServerDay.py
New file
@@ -0,0 +1,72 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.ServerDay
#
# @todo:服务器天
# @author hxp
# @date 2025-11-25
# @version 1.0
#
# 详细描述: 服务器天
#
#-------------------------------------------------------------------------------
#"""Version = 2025-11-25 19:30"""
#-------------------------------------------------------------------------------
import GameWorld
import ShareDefine
import GameWorldEvent
import PlayerSignDay
import GameFuncComm
import DBDataMgr
import ChPlayer
import time
def OnExec(curPlayer, cmdList):
    if not cmdList:
        GameWorld.DebugAnswer(curPlayer, "设置开服天: ServerDay 第几天")
        GameWorld.DebugAnswer(curPlayer, "重置开服天: ServerDay 1")
        __printServerDay(curPlayer)
        return
    value = cmdList[0]
    if value <= 1:
        __clearOpenServerDay(curPlayer)
    elif value > 1:
        __setOpenServerDay(curPlayer, value)
    GameFuncComm.DoFuncOpenLogic(curPlayer)
    __printServerDay(curPlayer)
    ChPlayer.Sync_OpenServerDay(curPlayer)
    return True
def __printServerDay(curPlayer):
    ServerDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
    IsMixServer = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_IsMixServer)
    MixDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_MixServerDay) + 1
    OpenWeekday = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_OpenServerWeekday)
    GameWorld.DebugAnswer(curPlayer, '开服星期%s, 天数:%s 是否合服:%s, 合服天数:%s' % (OpenWeekday, ServerDay, IsMixServer, MixDay))
    return
def __clearOpenServerDay(curPlayer):
    #重置开服天,设置非合服
    GameWorld.DebugAnswer(curPlayer, "重置开服天")
    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerWeek, 0)
    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerDay, 0)
    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_IsMixServer, 0)
    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_MixServerDay, 0)
    curTime = int(time.time())
    GameWorldEvent.SetInitOpenServerTime(curTime)
    PlayerSignDay.ResetDaySign(curPlayer)
    return
def __setOpenServerDay(curPlayer, serverDay):
    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerDay, serverDay - 1)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -49,7 +49,7 @@
def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
def DoFuncOpenLogic(curPlayer):
def DoFuncOpenLogic(curPlayer, checkServerDay=True):
    '''执行触发功能开启逻辑
    @param finishMissionIDList: 完成的任务ID列表
    '''
@@ -87,7 +87,7 @@
            continue
        
        limitOpenDay = ipyData.GetLimitOpenDay()
        if limitOpenDay and serverDay < limitOpenDay:
        if limitOpenDay and serverDay < limitOpenDay and checkServerDay:
            continue
        
        # 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -85,6 +85,7 @@
import PlayerXiangong
import PlayerBillboard
import PlayerViewCache
import GameFuncComm
import PlayerMail
import PlayerHero
import PlayerTree
@@ -244,7 +245,7 @@
    
    # 常规过天
    if onEventType == ShareDefine.Def_OnEventType:
        GameFuncComm.DoFuncOpenLogic(curPlayer)
        #清空每日事件奖励
        curPlayer.SetDayProcessGameEventCount(0)