Example #1
0
    /// <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);
    }
Example #2
0
    //推荐好友的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);
        }
    }
Example #4
0
    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);
        }
    }