#!/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
|
|