hxp
2025-06-30 388823edfe6308cba6f76ca6dc4f20022c5cb2be
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/test_OnDay.py
@@ -33,22 +33,16 @@
#  @return None
#  @remarks 函数详细说明. 有的任务一天只能做限定次数,或有的操作一天只能做一次
#  用来刷新任务状态或其它
def OnExec(curPlayer,playerList):
def OnExec(curPlayer, gmList):
    __DoExecOnDay(gmList)
    return
def __DoExecOnDay(gmList):
    timeStr = GameWorld.GetCurrentDataTimeStr()
    tick = GameWorld.GetGameWorld().GetTick()
    if len(playerList) == 0:
        DoLogic_GM_OnDay( timeStr , tick )
        return
    count = playerList[0]
    if count > 5:
        return
    for i in range( count ):
        DoLogic_GM_OnDay( timeStr , tick )
    count = 1 if not gmList else min(gmList[0], 5)
    for _ in xrange(count):
        DoLogic_GM_OnDay(timeStr , tick)
    return
## 世界服务器执行  test_OnHour test_OnDay 一次 并通知在线所有玩家
@@ -56,25 +50,34 @@
#  @param tick     当前tick
#  @return 无返回值
#  @remarks 函数详细说明:世界服务器执行 test_OnHour test_OnDay 一次
def DoLogic_GM_OnDay( timeStr , tick ):
def DoLogic_GM_OnDay(timeStr , tick):
    playerManager = GameWorld.GetPlayerManager()
    
    for i in range( 0, playerManager.GetPlayerCount() ):
        curPlayer = playerManager.GetPlayerByIndex( i )
    for i in range(0, playerManager.GetPlayerCount()):
        curPlayer = playerManager.GetPlayerByIndex(i)
        
        if not curPlayer or curPlayer.IsEmpty():
            continue
        
        mapID = GameWorld.GetQueryPlayerMapID( curPlayer )
        mapID = GameWorld.GetQueryPlayerMapID(curPlayer)
        
        if not mapID:
            continue
        
        playerManager.MapServer_QueryPlayer( 0, 0, curPlayer.GetID(), mapID, 'GMDateTime', 'GMOnDay', len("GMOnDay"))
        playerManager.MapServer_QueryPlayer(0, 0, curPlayer.GetID(), mapID, 'GMDateTime', 'GMOnDay', len("GMOnDay"))
        
    GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_OnDayEx, 0)
    
    GameWorldProcess.OnHour( timeStr , tick )
    GameWorldProcess.OnDay( timeStr , tick )
    GameWorldProcess.OnHour(timeStr , tick)
    GameWorldProcess.OnDay(timeStr , tick)
    GameWorldProcess.OnDayEx(tick)
    return
def OnGetMergeParam(curPlayer):
    ## 跨服命令额外参数
    return []
def OnMergeServerExec(gmList, tick):
    ## 跨服执行命令
    __DoExecOnDay(gmList)
    return