hxp
2024-09-18 458f8ad37f944f5a4334dc9e522e6640e4aa2def
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/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