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