hxp
2024-11-18 db72112f4cb48a5ab83cde13b80d21fcaf429d7f
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
#!/usr/bin/python
# -*- coding: GBK -*-
#
#
##@package QueryDBLogicResult.py
#
# @todo:GameServerÏòDBÇëÇóµÄ»Ø¸´ÐÅÏ¢
 
import GameWorld
import IPY_GameServer
import ChConfig
 
#-------------------------------------------------------------------------
 
# //04 08 GameServerÏòDBÇëÇóµÄ»Ø¸´ÐÅÏ¢ tagDGQueryDBLogicResult
 
# struct tagDGQueryDBLogicResult
# {
#     tagHead    Head;
#     BYTE    Result;            //½á¹û£º1³É¹¦£»0ʧ°Ü
#     DWORD    ID;            //²éѯµÄID
#     BYTE    QueryType;        //²éѯµÄÀàÐÍ
#     DWORD    DataLen;
#     char    Data[DataLen];        //Ô­Ñù·µ»ØµÄ¸½¼ÓÊý¾Ý
#     DWORD    ResultSetLen;
#     char    ResultSet[ResultSetLen];    //½á¹û¼¯
# };
 
## DB·µ»Øµ½GameServerÐÅÏ¢
#  @param None None
#  @return None
def RecvDGDBLogicResult(index, tick):
    dbResultPack = IPY_GameServer.IPY_DGQueryDBLogicResult()
    result = dbResultPack.GetResult()  #½á¹û£º1³É¹¦£¬0ʧ°Ü
    if result == 0:
        return
    queryType = dbResultPack.GetQueryType()
    if queryType == 0:
        data = eval(dbResultPack.GetData())
        playerID = data['id'] #·¢ÆðÇëÇóµÄÍæ¼ÒID
        mapID = data['mapid']
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
        if not curPlayer:
            return
        
        data['playerData'] = dbResultPack.GetResultSet()
        dateStr = str(data)
        GameWorld.GetPlayerManager().MapServer_QueryPlayer(0, ChConfig.queryType_MirrorPlayer, playerID, mapID,
                        "PlayerMirror", dateStr, len(dateStr), curPlayer.GetRouteServerIndex())
    return