/// <summary> /// 获得玩家附加信息 /// </summary> void getSdkInfo(int type, CallBack <Dictionary <string, PlatFormUserInfo> > cb) { string strArray = ""; if (type == 1) { //获得好友和待批转好友的sdk信息 FriendInfo[] infos = FriendsManagerment.Instance.getFriendList(); if (infos != null && infos.Length > 0) { for (int i = 0; i < infos.Length; i++) { strArray += infos [i].getUid() + ","; } } infos = FriendsManagerment.Instance.getRequestFriendList(); if (infos != null && infos.Length > 0) { for (int i = 0; i < infos.Length; i++) { strArray += infos [i].getUid() + ","; } } } else { FriendInfo[] infos = FriendsManagerment.Instance.getRecommendFriends(); if (infos != null && infos.Length > 0) { for (int i = 0; i < infos.Length; i++) { strArray += infos [i].getUid() + ","; } } } if (strArray == "") { cb(null); return; } strArray = strArray.Substring(0, strArray.Length - 1); SdkFPort fp = FPortManager.Instance.getFPort <SdkFPort> (); fp.getSdkInfo(strArray, cb); }
//推荐好友的sdk信息 //推荐好友回调 public void callBackByFind() { FriendInfo[] info = FriendsManagerment.Instance.getRecommendFriends(); if (info != null) { //获得查找的好友的sdk信息 SdkFPort fp = FPortManager.Instance.getFPort <SdkFPort> (); fp.getSdkInfo(info [0].getUid(), (dic) => { FriendsManagerment.Instance.setSdkInfo(dic, info); isShowRecommendButton(false); content3.reLoad(tapType); MaskWindow.UnlockUI(); }); } else { UiManager.Instance.createMessageWindowByOneButton(LanguageConfigManager.Instance.getLanguage("Friend_noRecommend"), null); isShowRecommendButton(true); } }
public override void read(ErlKVMessage message) { ErlArray data = message.getValue("msg") as ErlArray; if (data == null) { if (callback != null) { callback(false); callback = null; } return; } /* * [ * [rank_award,[76,1403193600,0]排名,领取最后期限,是否已经领取 * [super_box,[[1,1,1,5501],[2,1,1,5501],[3,1,1,5501]]],index,refreshTimes,multiple,rankAtRefresh * * [enemy,[[1,[[0,1,5373],[0,1,5355],[0,0,5388]]],[2,[[0,0,4746],[0,0,4804],[0,0,4613]]],[3,[[0,0,4150],[0,0,4431],[0,0,4008]]]]], * uid(0 is robot),hasChallenge,rank * [prestige,0], * [rank,5355], * [fight_num,9,168]time * * [war, 只有被人打我 * [ * [1403092973,281479271678949,2,0],time,uid,iswin(1 is win,2 lost),rankChange * [1403092966,281479271678949,2,0], * [1403092965,281479271678949,2,0], * [1403092965,281479271678949,2,0], * [1403092964,281479271678949,2,0]]]] * ] */ LaddersManagement.Instance.Award.M_clear(); ErlArray itemData; bool needSdkInfo = false; //是否需要请求sdk string key = string.Empty; for (int i = 0, length = data.Value.Length; i < length; i++) { itemData = data.Value [i] as ErlArray; key = itemData.Value [0].getValueString(); switch (key) { case "super_box": parseChest(itemData.Value [1] as ErlArray); break; case "enemy": parseEnemy(itemData.Value [1] as ErlArray); needSdkInfo = true; break; case "prestige": UserManager.Instance.self.prestige = StringKit.toInt(itemData.Value [1].getValueString()); break; case "rank": LaddersManagement.Instance.currentPlayerRank = StringKit.toInt(itemData.Value [1].getValueString()); break; case "fight_num": LaddersManagement.Instance.currentChallengeTimes = StringKit.toInt(itemData.Value [1].getValueString()); LaddersManagement.Instance.lastFightTime = StringKit.toInt(itemData.Value [2].getValueString()); break; case "rank_award": parseAward(itemData.Value[1] as ErlArray); break; case "war": parseRecord(itemData.Value [1] as ErlArray); break; case "free_refresh": LaddersManagement.Instance.currentRefreshEndTime = StringKit.toInt(itemData.Value[1].getValueString()); break; case "friend_fight": LaddersManagement.Instance.currentFriendHelpTimes = StringKit.toInt(itemData.Value[1].getValueString()); LaddersManagement.Instance.lastFriendHelpTime = StringKit.toInt(itemData.Value[2].getValueString()); break; case "max_fight_num": LaddersManagement.Instance.maxFightTime = StringKit.toInt(itemData.Value[1].getValueString()); break; case "buy_fight_num": LaddersManagement.Instance.buyFightCount = StringKit.toInt(itemData.Value [1].getValueString()); LaddersManagement.Instance.lastBuyFightTime = StringKit.toInt(itemData.Value [2].getValueString()); break; case "buy_invite_count": LaddersManagement.Instance.mBuyFriendFightCount = StringKit.toInt(itemData.Value[1].getValueString()); break; case "max_friend_fight": LaddersManagement.Instance.TotalApplyFriendHelpTimes = StringKit.toInt(itemData.Value [1].getValueString()); break; case "max_invite_num": LaddersManagement.Instance.BeInviteMaxNum = StringKit.toInt(itemData.Value [1].getValueString()); break; } } if (needSdkInfo == true) { SdkFPort sdkfp = FPortManager.Instance.getFPort <SdkFPort>(); LaddersPlayerInfo[] info = LaddersManagement.Instance.Players.M_getPlayers(); if (info != null && info.Length > 0) { string str = ""; for (int i = 0; i < info.Length; i++) { str += info[i].uid + ","; } if (str != "") { str = str.Substring(0, str.Length - 1); } sdkfp.getSdkInfo(str, sdkCallback); } else { sdkCallback(null); } } else { sdkCallback(null); } }
public override void read(ErlKVMessage message) { /* * [[4000,38,[281479271678950,真龙·安拉,[],2,36500,1,[3,[],[[11442,0,281479271679959,0,0],[11344,0,281479271679971,0,0],[2,0,281479271678953,0,0],[11237,0,281479271679953,0,0],[11226,0,281479271679982,0,0]]],44560,9,10]], * [290,0,[281479271678949,坠星的克劳瑞,[],4,911600,1,[3,[],[[],[],[4,0,281479271677953,0,0],[11442,0,281479271680955,0,0],[]]],13802,6,0]]]} */ ErlArray array = message.getValue("msg") as ErlArray; ErlArray itemArray; PvpOppInfo player; int ladderRank; int prestige; int medalSid; RankManagerment.Instance.ladderList.Clear(); for (int i = array.Value.Length - 1; i >= 0; i--) { itemArray = array.Value [i] as ErlArray; ladderRank = StringKit.toInt(itemArray.Value [0].getValueString()); prestige = StringKit.toInt(itemArray.Value [1].getValueString()); medalSid = StringKit.toInt(itemArray.Value [2].getValueString()); player = setOppInfo(itemArray.Value [3] as ErlArray); player.ladderRank = ladderRank; player.prestige = prestige; player.medalSid = medalSid; if (player.uid == UserManager.Instance.self.uid) { RankManagerment.Instance.myRank.Remove(type); RankManagerment.Instance.myRank.Add(type, ladderRank); } RankManagerment.Instance.ladderList.Add(player); } int nextUpdateTime = ServerTimeKit.getSecondTime() + 60; if (RankManagerment.Instance.nextTime.ContainsKey(type)) { RankManagerment.Instance.nextTime [type] = nextUpdateTime; } else { RankManagerment.Instance.nextTime.Add(type, nextUpdateTime); } //附加sdk信息 if (RankManagerment.Instance.ladderList != null && RankManagerment.Instance.ladderList.Count > 0) { string str = ""; for (int i = 0; i < RankManagerment.Instance.ladderList.Count; i++) { if (i != RankManagerment.Instance.ladderList.Count - 1) { str += RankManagerment.Instance.ladderList[i].uid + ","; } else { str += RankManagerment.Instance.ladderList[i].uid; } } //foreach (PvpOppInfo each in RankManagerment.Instance.ladderList) { // str += each.uid; //} if (str != "") { str = str.Substring(0, str.Length - 1); SdkFPort fp = FPortManager.Instance.getFPort <SdkFPort> (); fp.getSdkInfo(str, getSdkInfoCallBack); } else { getSdkInfoCallBack(null); } } else { getSdkInfoCallBack(null); } }