예제 #1
0
 /*
  * {
  * "uid": 10411,
  * "toid": 1125,
  * "action": 3,
  * "result": 0,
  * "time": "今天 18:15:14",
  * "name": "Linda",
  * "headImg": "https://scontent.xx.fbcdn.net/v/t1.0-1/c15.0.50.50/p50x50/1379841_10150004552801901_469209496895221757_n.jpg?oh=ef2ea8eb8c792b56ff67f460f47f79dd&oe=5ADEBA33",
  * "crowns": 6,
  * "extra": {
  *  "friend": {
  *      "uid": 10411,
  *      "crowns": 6,
  *      "crownsUpdateTime": 0,
  *      "friendName": "Linda",
  *      "gender": 2,
  *      "headImg": "https://scontent.xx.fbcdn.net/v/t1.0-1/c15.0.50.50/p50x50/1379841_10150004552801901_469209496895221757_n.jpg?oh=ef2ea8eb8c792b56ff67f460f47f79dd&oe=5ADEBA33",
  *      "isEmpty": false,
  *      "isVip": false,
  *      "name": "Linda",
  *      "openId": "",
  *      "rank": 0,
  *      "recallCount": 0,
  *      "signature": "",
  *      "updateTime": "",
  *      "guild": null,
  *      "status": 0,
  *      "sendStatus": 0,
  *      "receiveStatus": 0,
  *      "buildings": [
  *          {
  *              "level": 2,
  *              "status": 0,
  *              "isShield": true
  *          },
  *          {
  *              "level": 1,
  *              "status": 0,
  *              "isShield": true
  *          },
  *          {
  *              "level": 0,
  *              "status": 0,
  *              "isShield": true
  *          },
  *          {
  *              "level": 0,
  *              "status": 0,
  *              "isShield": true
  *          },
  *          {
  *              "level": 3,
  *              "status": 0,
  *              "isShield": true
  *          }
  *      ],
  *      "islandId": 1,
  *      "head_frame": 0
  *  }
  * },
  * "read": false,
  * "isWanted": false,
  * "isVip": false,
  * "head_frame": 0
  * }
  * */
 private void AddFriendAction(MessageResponseData msg)
 {
     GameMainManager.instance.netManager.Friend(0, (ret, res) => {
         GameMainManager.instance.model.userData.friendInfo         = res.data.friends;
         GameMainManager.instance.model.userData.friendNotAgreeInfo = res.data.friendsNotAgree;
         EventDispatcher.instance.DispatchEvent(new UpdateFriendsEvent(UpdateFriendsEvent.UpdateType.AgreeFriend));
     });
 }
예제 #2
0
    /*
     * {
     * "uid": 0,
     * "toid": 1125,
     * "action": 11,
     * "result": 0,
     * "time": "",
     * "name": "",
     * "headImg": "",
     * "crowns": 0,
     * "extra": {
     * "task": {
     * "type": 10,
     * "status": 1,
     * "totalProgress": 800000,
     * "progress": 1011874,
     * "reward": {
     *  "type": "gold",
     *  "num": 50000,
     *  "name": ""
     * },
     * "name": "一个小目标",
     * "desc": "累计获得800K金币"
     * }
     * },
     * "read": false,
     * "isWanted": false,
     * "isVip": false,
     * "head_frame": 0
     * }
     */
    private void DailyTaskAction(MessageResponseData msg)
    {
        string           str  = string.Format("您已经完成了每日任务【{0}】快去领奖吧!", msg.extra["task"]["name"].ToString());
        PopupMessageData data = new PopupMessageData();

        data.headImg = msg.headImg;
        data.content = str;

        GameMainManager.instance.uiManager.OpenWindow(UISettings.UIWindowID.UIPopupMessageWindow, data);
    }
예제 #3
0
    /*
     * {
     *    "uid": 209,
     *    "toid": 315,
     *    "action": 2,
     *    "result": 0,
     *    "time": "今天 17:53:47",
     *    "name": "岳松",
     *    "headImg": "https://fb-s-c-a.akamaihd.net/h-ak-fbx/v/t1.0-1/p50x50/17799337_1013087895489876_7747316675865790869_n.jpg?oh=1f7e2a1c9b826d7cfdc5f3f51209ea55&oe=5AC84270&__gda__=1521541416_9c07b70aa926a7a1ff274119a0a13fbc",
     *    "crowns": 75,
     *    "extra":
     *        {
     *          "money": 318144985,
     *          "reward": 83039102
     *        },
     *    "read": false,
     *    "isWanted": false,
     *    "isVip": false,
     *    "head_frame": 0
     *  }
     */
    private void StealAction(MessageResponseData msg)
    {
        long reward = long.Parse(msg.extra["reward"].ToString());
        long money  = long.Parse(msg.extra["money"].ToString());

        string           str  = string.Format("<#1995BCFF>{0}</color>偷走了你<#1995BCFF>{1}</color>金币", msg.name, GameUtils.GetCurrencyString(reward));
        PopupMessageData data = new PopupMessageData();

        data.headImg = msg.headImg;
        data.content = str;
        GameMainManager.instance.uiManager.OpenWindow(UISettings.UIWindowID.UIPopupMessageWindow, data);

        GameMainManager.instance.model.userData.money = money;
        EventDispatcher.instance.DispatchEvent(new UpdateBaseDataEvent(UpdateBaseDataEvent.UpdateType.Money, 1));
    }
예제 #4
0
    private void PayAction(MessageResponseData msg)
    {
        //{"itemId": Item_id, "goods": [{"type": itemType, "count": count_extra, "num": count}]}
        //itemType: energy, money, props
        //count: 获得物品后的 物品总量
        //num:购买单件商品面值
        Debug.Log("购买发放物品:" + LitJson.JsonMapper.ToJson(msg.extra));
        RewardData[] rewards = LitJson.JsonMapper.ToObject <RewardData[]>(LitJson.JsonMapper.ToJson(msg.extra["goods"]));
        for (int i = 0; i < rewards.Length; i++)
        {
            RewardData rewardData = rewards[i];
            switch (rewardData.type)
            {
            case "energy":
                GameMainManager.instance.model.userData.energy = (int)rewardData.count;
                EventDispatcher.instance.DispatchEvent(new UpdateBaseDataEvent(UpdateBaseDataEvent.UpdateType.Energy, 1));
                break;

            case "money":
                GameMainManager.instance.model.userData.money = rewardData.count;
                EventDispatcher.instance.DispatchEvent(new UpdateBaseDataEvent(UpdateBaseDataEvent.UpdateType.Money, 1));
                break;

            case "props":    //通缉令
                GameMainManager.instance.model.userData.wantedCount = (int)rewardData.count;
                EventDispatcher.instance.DispatchEvent(new UpdateBaseDataEvent(UpdateBaseDataEvent.UpdateType.wanted, 1));
                break;

            case "vip":
                GameMainManager.instance.model.userData.isVip         = true;
                GameMainManager.instance.model.userData.vip_days      = (int)rewardData.count;
                GameMainManager.instance.model.userData.maxEnergy     = 60;
                GameMainManager.instance.model.userData.recoverEnergy = 8;
                EventDispatcher.instance.DispatchEvent(new UpdateBaseDataEvent(UpdateBaseDataEvent.UpdateType.vip, 1));
                break;
            }

            GameMainManager.instance.uiManager.CloseWindow(UISettings.UIWindowID.UIShopWindow);

            GetRewardWindowData getRewardWindowData = new GetRewardWindowData();
            getRewardWindowData.reward = rewardData;
            GameMainManager.instance.uiManager.OpenWindow(UISettings.UIWindowID.UIGetRewardWindow, getRewardWindowData);
        }
    }
예제 #5
0
    public void SendMsg(MessageResponseData msg)
    {
        switch (msg.action)
        {
        case 1:    //攻击
            AttackAction(msg);
            break;

        case 2:    //偷窃
            StealAction(msg);
            break;

        case 3:    //添加好友
            AddFriendAction(msg);
            break;

        case 4:    //支付
            PayAction(msg);
            break;

        case 7:    //获得碎片
            PieceAction(msg);
            break;

        case 10:    //系统通知
            NoticeAction(msg);
            break;

        case 11:    //完成每日任务
            //DailyTaskAction(msg);
            break;

        case 12:    //获得邮件通知
            MailAction(msg);
            break;

        default:
            Debug.LogAssertion(msg.action.ToString() + " websocket的返回没实现");
            break;
        }
    }
예제 #6
0
    private void AttackAction(MessageResponseData msg)
    {
        PopupMessageData data = new PopupMessageData();

        data.headImg = msg.headImg;

        string str = "";

        if ((bool)msg.extra["isShielded"])
        {
            str = string.Format("你成功防御了<#1995BCFF>{0}</color>的攻击", msg.name);
            GameMainManager.instance.model.userData.shields = Mathf.Max(0, GameMainManager.instance.model.userData.shields - 1);
            data.confirmHandle = () => {
                EventDispatcher.instance.DispatchEvent(new UpdateBaseDataEvent(UpdateBaseDataEvent.UpdateType.sheild, 0));
            };
        }
        else
        {
            int buildingIndex  = int.Parse(msg.extra["building_index"].ToString());
            int buildingStatus = int.Parse(msg.extra["building"]["status"].ToString());
            int level          = int.Parse(msg.extra["building"]["level"].ToString());
            if (buildingStatus == 2)
            {
                str = string.Format("<#1995BCFF>{0}</color>损坏了你的{1}", msg.name, GameMainManager.instance.configManager.islandConfig.GetBuildingName(buildingIndex));
            }
            else
            {
                str = string.Format("<#1995BCFF>{0}</color>摧毁了你的{1}", msg.name, GameMainManager.instance.configManager.islandConfig.GetBuildingName(buildingIndex));
            }
            GameMainManager.instance.model.userData.buildings[buildingIndex].status = buildingStatus;
            GameMainManager.instance.model.userData.buildings[buildingIndex].level  = level;
            data.confirmHandle = () => {
                EventDispatcher.instance.DispatchEvent(new UpdateBuildingEvent());
            };
        }

        data.content = str;


        GameMainManager.instance.uiManager.OpenWindow(UISettings.UIWindowID.UIPopupMessageWindow, data);
    }
    /*------------------------------------------------------------------------------------------------------------*/
    /// <summary>
    /// 引き継ぎ設定 確認処理
    /// </summary>
    /// <returns>The inherit setting.</returns>
    /// <param name="_ID">I.</param>
    /// <param name="_PASS">PAS.</param>
    public static IEnumerator CheckInheritSetting(string _ID, string _PASS)
    {
        // 仮待ち 1.5s
        yield return(new WaitForSeconds(1.5f));

        // リクエスト作成
        string          url_base  = Const.WebRequest.BASE_URL + "CheckInheritSetting/";
        string          url_param = "?id=" + _ID + "&pass="******"Error");
            // メッセージダイアログ表示
            GenericUIManager.Instance.ShowMessageDialog("InheritSetting", "Error");
        }
        else
        {
            if (request.responseCode == 200)
            {
                // cookieがあればヘッダーに設定
                WebRequestHeader.CookieHeaderSetting(request);
                // レスポンスからJson形式のテキストデータを取得する。
                string text = request.downloadHandler.text;
                MessageResponseData response = JsonUtility.FromJson <MessageResponseData>(text);
                cGameManager.Instance.UserData.MessageResData = response;

                // メッセージダイアログ表示
                GenericUIManager.Instance.ShowMessageDialog("InheritSetting", response.message);
            }
        }
    }
    /*------------------------------------------------------------------------------------------------------------*/
    /// <summary>
    /// 削除リクエスト
    /// </summary>
    /// <returns>The user account.</returns>
    /// <param name="_ID">I.</param>
    /// <param name="_PASS">PAS.</param>
    public static IEnumerator DeleteUserAccount(string _ID, string _PASS)
    {
        // リクエスト作成
        string          url_base  = Const.WebRequest.BASE_URL + "Delete/";
        string          url_param = "?id=" + _ID + "&pass="******"Error");
        }
        else
        {
            if (request.responseCode == 200)
            {
                WebRequestHeader.CookieHeaderSetting(request);
                // レスポンスからJson形式のテキストデータを取得する。
                string text = request.downloadHandler.text;
                MessageResponseData response = JsonUtility.FromJson <MessageResponseData> (text);
                Debug.Log(response.message);

                if (response.message != "")
                {
                    // ローカルから削除
                    cGameManager.Instance.UserData.DeleteData();
                    // メッセージダイアログ表示
                    GenericUIManager.Instance.ShowMessageDialog("DELETE", response.message);
                }
            }
        }
    }
예제 #9
0
 private void MailAction(MessageResponseData msg)
 {
     Debug.LogAssertion("邮件的wetsocket的返回没实现/n" + LitJson.JsonMapper.ToJson(msg));
 }
예제 #10
0
 private void PieceAction(MessageResponseData msg)
 {
 }
예제 #11
0
    override public void SetData(object obj)
    {
        data                = (MessageResponseData)obj;
        headFrame.sprite    = data.isVip ? headFrameSprites[1] : headFrameSprites[0];
        timeText.text       = data.time;
        startCountText.text = data.crowns.ToString();

        if (data.action == 1)//被攻击
        {
            string str = "";
            if ((bool)data.extra["isShielded"])
            {
                str = string.Format("你成功防御了<color=#BA7F00FF><size=110%>{0}</size></color>的攻击", data.name);
                button.gameObject.SetActive(false);
            }
            else
            {
                if ((int)data.extra["building"]["status"] == 2)
                {
                    str = string.Format("<color=#BA7F00FF><size=110%>{0}</size></color>损坏了你的{1}", data.name, GameMainManager.instance.configManager.islandConfig.GetBuildingName((int)data.extra["building_index"]));
                }
                else
                {
                    str = string.Format("<color=#BA7F00FF><size=110%>{0}</size></color>摧毁了你的{1}", data.name, GameMainManager.instance.configManager.islandConfig.GetBuildingName((int)data.extra["building_index"]));
                }
                button.gameObject.SetActive(true);
            }
            contentText.text = str;
        }
        else if (data.action == 2)//被偷窃
        {
            string str = "";
            str = string.Format("<color=#BA7F00FF><size=110%>{0}</size></color>偷走了{1}金币", data.name, data.extra["reward"]);
            button.gameObject.SetActive(false);
            contentText.text = str;
        }
        else if (data.action == 5)//通缉
        {
            string str = "";
            str = string.Format("<color=#BA7F00FF><size=110%>{0}</size></color>正在通缉<color=#BA7F00FF><size=110%>{1}</size></color>,帮助好友攻击可以获得300k奖金", data.name, data.extra["name"]);
            button.gameObject.SetActive(false);
            contentText.text = str;
        }
        else if (data.action == 6)//被通缉
        {
            string str = "";
            str = string.Format("<color=#BA7F00FF><size=110%>{0}</size></color>正在通缉你,战斗号角已经吹响!", data.name);
            button.gameObject.SetActive(false);
            contentText.text = str;
        }
        else
        {
            string str = "";
            button.gameObject.SetActive(false);
            contentText.text = str;
        }

        AssetLoadManager.Instance.LoadAsset <Texture2D>(data.headImg, (tex) =>
        {
            headImage.texture = tex;
        });
    }