ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_GetPlayerInfo.py
@@ -90,6 +90,10 @@
    if data == '%s'%GMCommon.Def_GMKey_PlayerName:        
        return GMCommon.Def_DoQueryLogDB, playerAccID
    accountData = DataServerPlayerData.tagDSAccount()
    accountData.ACCID = playerAccID
    accountData.adoLoad(userdb[UCN_DSAccount])
    collection = userdb[UCN_DBPlayer]   
    dbPlayer = DataServerPlayerData.tagDBPlayer()
    dbPlayer.IsDeleted = 0
@@ -101,6 +105,24 @@
        # 回复gm
        return GMCommon.Def_NoTag, ''
    
    roleDict = {}
    moneyMinusDict = {}
    collection = userdb[UCN_RoleNomalDict]
    docs = collection.find({'PlayerID':dbPlayer.PlayerID})
    if docs.count():
        obj = DataServerPlayerData.tagRoleNomalDict()
        doc = list(docs)[0]
        #有数据
        if doc.has_key('__PackSave'):
            for i in xrange(doc['Count']):
                obj.readRecord(doc['%s'%(i+1)])
                if obj.DictName.startswith("MoneyMinus_") and obj.DictValue > 0:
                    moneyMinusDict[int(obj.DictName[len("MoneyMinus_"):])] = -obj.DictValue # 货币负值
                    if 1 in moneyMinusDict and 2 in moneyMinusDict and 4 in moneyMinusDict:
                        break
                if obj.DictValue > 0:
                    roleDict[obj.DictName] = obj.DictValue
    playerInfo = {
                  'AccID':dbPlayer.AccID,   # 账号
                  'AccState':dbPlayer.AccState,  # 账号状态
@@ -109,39 +131,36 @@
                  'GMLV':dbPlayer.GMLevel,  #gm等级
                  
                  'Job':dbPlayer.Job,  # ְҵ
                  'Sex':dbPlayer.Sex,  # 性别
                  'LV':dbPlayer.LV,  #玩家等级
                  'LVEx':dbPlayer.LVEx,  #转生等级
                  'LV2':dbPlayer.LV2,  #大师等级
                  'ReincarnationLv':dbPlayer.ReincarnationLv,  #转生次数
                  'FightPower':dbPlayer.FightPower,  #战斗力
                  'OfficialRank':dbPlayer.OfficialRank,  #境界
                  'FightPower':dbPlayer.FightPowerEx * 100000000 + dbPlayer.FightPower,  #战斗力
                  'VIPLV':dbPlayer.VIPLv,  # vip等级
                  'TotalExp':dbPlayer.TotalExp,  # 总经验值
                  
                  'MapID':dbPlayer.MapID,  #当前地图id
                  'PosX':dbPlayer.PosX,   # 当前坐标
                  'PosY':dbPlayer.PosY,
                  'Gold':dbPlayer.Gold,   # 元宝
                  'GoldPaper':dbPlayer.GoldPaper,   # 绑钻
                  'Gold':moneyMinusDict[1] if 1 in moneyMinusDict else dbPlayer.Gold,   # 元宝
                  'GoldPaper':moneyMinusDict[2] if 2 in moneyMinusDict else dbPlayer.GoldPaper,   # 绑钻
                  'Silver':dbPlayer.Silver,  # 银两
                  'SilverPaper':moneyMinusDict[4] if 4 in moneyMinusDict else dbPlayer.SilverPaper,   # 神玉
                  
                  'ZhenQi':dbPlayer.ExAttr5,  # 真气
                  'FamilyName':dbPlayer.FamilyName,  # 家族名称
                  
                  'STR':dbPlayer.STR, #力量
                  'PNE':dbPlayer.PNE, #真元
                  'PHY':dbPlayer.PHY, #筋骨
                  'CON':dbPlayer.CON, #体魄
                  'FreePoint':dbPlayer.FreePoint, # 剩余点数
                  'LogoffTime':dbPlayer.LogoffTime, #离线时间
                  'LoginTime':dbPlayer.LoginTime,  # 上线时间
                  'OnlineTime':dbPlayer.OnlineTime,  # 累计上线时间
                  'LoginIP':dbPlayer.LoginIP,  #登入IP
                  'ClientVersion':accountData.ClientVersion,  #客户端版本号
                  
                  'WarehousePsw':dbPlayer.WarehousePsw, #仓库密码
                  'Online':0,
                  }
    
    # 需要额外同步的自定义货币
    CurrencyValueDict = {}
    for moneyType in [99, 98]:
        if moneyType == 99:
            moneyValue = dbPlayer.ExAttr11
        else:
            moneyValue = roleDict.get("PlayerCurrency_%s" % moneyType, 0)
        CurrencyValueDict['PlayerCurrency_%s' % moneyType] = moneyValue
    playerInfo.update(CurrencyValueDict)
    return GMCommon.Def_Success, playerInfo