#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GM.Commands.SetMixServer  
 | 
#  
 | 
# @todo:ÉèÖúϷþ  
 | 
# @author hxp  
 | 
# @date 2014-12-02  
 | 
# @version 1.1  
 | 
#  
 | 
# @change: "2014-12-03 18:30" hxp Ôö¼Ó¿ª·þ¡¢ºÏ·þ»î¶¯ÖØÖà  
 | 
#  
 | 
# ÏêϸÃèÊö: ÉèÖúϷþ  
 | 
#  
 | 
#--------------------------------------------------------------------  
 | 
"""Version = 2014-12-03 18:30"""  
 | 
  
 | 
import GameWorld  
 | 
import PlayerDBGSEvent  
 | 
import PlayerEventCounter  
 | 
import GameWorldActionTeHui  
 | 
import GameWorldMixServerCampaign  
 | 
import PlayerBillboard  
 | 
import ShareDefine  
 | 
import GMCommon  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
## Ö´ÐÐÂß¼  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param cmdList ²ÎÊý  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(curPlayer, cmdList):  
 | 
      
 | 
    if len(cmdList) <= 0:  
 | 
        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)  
 | 
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServerInitOK, 0)  
 | 
    else:  
 | 
        #ÖØÖÿª·þÌ죬ÉèÖ÷ǺϷþ  
 | 
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer, 0)  
 | 
        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)  
 | 
      
 | 
    GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_ServerDay, openDay)  
 | 
    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)  
 | 
      
 | 
    GameWorld.DebugAnswer(curPlayer, 'ÉèÖúϷþ״̬³É¹¦£¡µ±Ç°¿ª·þÌìÊý:%s, ÊÇ·ñºÏ·þ:%s, µ±Ç°ºÏ·þÌìÊý:%s'   
 | 
                          % (openDay, isMixServer, mixServerDay))  
 | 
    return  
 | 
  
 |