| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package GM.Commands.Xiangong  | 
| #  | 
| # @todo:Ïɹ¬  | 
| # @author hxp  | 
| # @date 2024-09-04  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: Ïɹ¬  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #"""Version = 2024-09-04 16:30"""  | 
| #-------------------------------------------------------------------------------  | 
|   | 
| import GameWorld  | 
| import ShareDefine  | 
| import IpyGameDataPY  | 
| import PyDataManager  | 
| import GameXiangong  | 
| import ChConfig  | 
|   | 
| import random  | 
| import time  | 
|   | 
| #Â߼ʵÏÖ  | 
| ## Ö´ÐÐÂß¼  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param gmList [cmdIndex gmAccID msg]  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, gmList):  | 
|     ## ±¾·þ´¦Àí  | 
|     if not gmList:  | 
|         GameWorld.DebugAnswer(curPlayer, "²åÈëнúÏɹÙ: Xiangong a Ïɹ¬ID ¸öÊý [¿ÉÊÓÇø·þIDA ÖÁÇø·þIDB Ãû´Î ¿ÉÖ¸¶¨ID ...]")  | 
|         GameWorld.DebugAnswer(curPlayer, "Çå³ýÏɹ¬ÏɹÙ: Xiangong d Ïɹ¬ID")  | 
|         GameWorld.DebugAnswer(curPlayer, "Êä³öÏɹ¬ÏɹÙ: Xiangong p Ïɹ¬ID")  | 
|         GameWorld.DebugAnswer(curPlayer, "×¢£º²åÈëÖ¸¶¨ÏɹÙIDǰÌáµÃ¸ÃÍæ¼ÒÔÚ¿ç·þÓлº´æ")  | 
|         return  | 
|     return  | 
|   | 
| def OnGetMergeParam(curPlayer):  | 
|     playerID = curPlayer.GetPlayerID()  | 
|     serverGroupID = GameWorld.GetServerGroupID()  | 
|     return [serverGroupID, playerID]  | 
|   | 
| def OnMergeServerExec(gmList, tick):  | 
|     ## ¿ç·þ´¦Àí  | 
|       | 
|     serverGroupID = gmList[-2]  | 
|     playerID = gmList[-1]  | 
|       | 
|     gmList = gmList[:-2]  | 
|     if not gmList:  | 
|         return  | 
|       | 
|     value1 = gmList[0]  | 
|       | 
|     if value1 == "a":  | 
|         xiangongID = gmList[1] if len(gmList) > 1 else 0  | 
|         addCount = gmList[2] if len(gmList) > 2 else 1  | 
|         serverIDA = gmList[3] if len(gmList) > 3 else 1  | 
|         serverIDB = gmList[4] if len(gmList) > 4 else 9999  | 
|         order = gmList[5] if len(gmList) > 5 else None  | 
|         playerIDList = gmList[6:] if len(gmList) > 6 else []  | 
|           | 
|         serverIDList = [[serverIDA, serverIDB]]  | 
|           | 
|         ipyData = IpyGameDataPY.GetIpyGameData("Xiangong", xiangongID)  | 
|         if not ipyData:  | 
|             GameWorld.DebugAnswerCross(playerID, serverGroupID, "Ïɹ¬ID²»´æÔÚ:%s" % (xiangongID))  | 
|             return  | 
|           | 
|         syncDict = {}  | 
|         for _ in xrange(addCount):  | 
|             if playerIDList:  | 
|                 addPlayerID = playerIDList.pop(0)  | 
|             else:  | 
|                 addPlayerID = random.randint(1000, 2000)  | 
|             GameXiangong.AddXiangongPlayer(xiangongID, addPlayerID, serverIDList, order, syncDict)  | 
|         GameXiangong.SendNewXiangongPlayerToClientServer(syncDict)  | 
|           | 
|         gameRecMgr = PyDataManager.GetDBGameRecDataManager()  | 
|         recDataList = gameRecMgr.GetGameRecDataList(ShareDefine.Def_GameRecType_Xiangong, xiangongID)  | 
|         GameWorld.DebugAnswerCross(playerID, serverGroupID, "²åÈëнúÏɹÙ:%s, ÏɹÙID:%s, ÏɹÙ×ÜÊý:%s" % (addCount, xiangongID, len(recDataList)))  | 
|         return  | 
|       | 
|     if value1 == "d":  | 
|         xiangongID = gmList[1] if len(gmList) > 1 else 0  | 
|         ipyData = IpyGameDataPY.GetIpyGameData("Xiangong", xiangongID)  | 
|         if not ipyData:  | 
|             GameWorld.DebugAnswerCross(playerID, serverGroupID, "Ïɹ¬ID²»´æÔÚ:%s" % (xiangongID))  | 
|             return  | 
|         gameRecMgr = PyDataManager.GetDBGameRecDataManager()  | 
|         delCount = gameRecMgr.DelGameRecDataByTypeID(ShareDefine.Def_GameRecType_Xiangong, xiangongID)  | 
|         GameWorld.DebugAnswerCross(playerID, serverGroupID, "Çå³ýÏɹ¬ÏɹÙ:%s, ÏɹÙID:%s" % (delCount, xiangongID))  | 
|         GameWorld.DebugAnswerCross(playerID, serverGroupID, "Èç¹ûÒª»ñµÃÕýÈ·µÄչʾÏɹÙÇëÖØµÇ")  | 
|         return  | 
|       | 
|     if value1 == "p":  | 
|         xiangongID = gmList[1] if len(gmList) > 1 else 0  | 
|         startIndex = gmList[2] if len(gmList) > 2 else 0  | 
|         gameRecMgr = PyDataManager.GetDBGameRecDataManager()  | 
|         recDataList = gameRecMgr.GetGameRecDataList(ShareDefine.Def_GameRecType_Xiangong, xiangongID)  | 
|         GameWorld.DebugAnswerCross(playerID, serverGroupID, "Ïɹ¬ID:%s, ÏɹÙ×ÜÊý:%s" % (xiangongID, len(recDataList)))  | 
|         curTime = int(time.time())  | 
|         for i, recData in enumerate(recDataList[startIndex:startIndex + 20], startIndex):  | 
|             xgPlayerID = GameXiangong.GetXGPlayerID(recData)  | 
|             serverIDList = recData.GetUserDataByKey(ChConfig.Def_RecDataKey_ServerIDList)  | 
|             addTime = recData.GetTime()  | 
|             passDays = GameWorld.GetDiff_Day(curTime, addTime) + 1  | 
|             GameWorld.DebugAnswerCross(playerID, serverGroupID, " %s,ID:%s,ÌìÊý:%s,Çø·þ:%s" % (i, xgPlayerID, passDays, serverIDList))  | 
|         return  | 
|       | 
|     return  | 
|   |