hxp
2019-02-13 5685e4d493ef5b7570bc20b6037fc2c8603cab85
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetMixServer.py
@@ -21,9 +21,6 @@
import GameWorld
import PlayerDBGSEvent
import PlayerEventCounter
import GameWorldActionTeHui
import GameWorldMixServerCampaign
import PlayerBillboard
import ShareDefine
import GMCommon
#---------------------------------------------------------------------
@@ -36,18 +33,13 @@
def OnExec(curPlayer, cmdList):
    
    if len(cmdList) <= 0:
        GameWorld.DebugAnswer(curPlayer, 'SetMixServer 合服状态(0-非合服,1-合服), 合服时的开服天(选填默认15)')
        GameWorld.DebugAnswer(curPlayer, 'SetMixServer 合服状态(0-非合服,1-合服) 合服时的开服天(选填默认15)')
        return
    
    isMix = cmdList[0]
    curDay = cmdList[1] if len(cmdList) > 1 else 15
    
    if isMix:
        #(清世界等级)
        PlayerDBGSEvent.SetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv, 0)
        #通知地图服务器当前世界等级
        GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_WorldAverageLv, 0)
        #设置合服(默认设置开服天为15天)
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer, 1)
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay, 0)
@@ -58,7 +50,6 @@
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay, 0)
    PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay, curDay)
    openDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
    isMixServer = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer)
    mixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay)
@@ -67,29 +58,14 @@
    GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_IsMixServer, isMixServer)
    GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_MixServerDay, mixServerDay)
    
    PlayerEventCounter.Sync_OpenServerDay(curPlayer)
    GameWorldMixServerCampaign.UpdateMixServerCampaignState(True)
    # 清除合服活动相关排行榜
    for copyType in GameWorldMixServerCampaign.Def_MixAward_Billboard_Copy_Dict.values():
        PlayerBillboard.ClearBillboardByIndex(copyType)
    for billboardCampaignType in ShareDefine.Def_MixCampaign_Billboard_Dict.values():
        PlayerBillboard.ClearBillboardByIndex(billboardCampaignType)
    # 重置数据记录及领奖状态
    for campaignType in ShareDefine.Def_Campaign_Type_List:
        GameWorld.GetGameWorld().SetDict(ShareDefine.Def_Notify_WorldKey_MixServerCampaignSaveData % campaignType, 0)
        GameWorld.GetGameWorld().SetDict(ShareDefine.Def_Notify_WorldKey_MixServerCampaignGetAward % campaignType, 0)
    # 清除特惠活动数据
    GameWorldActionTeHui.OnGMClearTeHui()
    # 刷新一次活动
    tick = GameWorld.GetGameWorld().GetTick()
    GMCommon.ActionControlRefresh(tick)
    
    PlayerEventCounter.Sync_OpenServerDay(curPlayer)
    GameWorld.DebugAnswer(curPlayer, '设置合服状态成功!当前开服天数:%s, 是否合服:%s, 当前合服天数:%s' 
                          % (openDay, isMixServer, mixServerDay))
                          % (PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay) + 1,
                             PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer),
                             PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay) + 1))
    return