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