コード例 #1
0
ファイル: MallHandler.cs プロジェクト: mengtest/TankTCP
    private void OnReqBuy(UserToken token, SocketModel model)
    {
        ReqBuy      req = SerializeUtil.Deserialize <ReqBuy>(model.message);
        AccountData acc = CacheManager.instance.GetAccount(token.accountid);
        ItemCfg     cfg = ConfigManager.instance.items[req.itemid];

        if (acc.diamond < cfg.Price)
        {
            TipsError tips = new TipsError();
            tips.code = (int)ECode.EBuyError;
            NetworkManager.Send <TipsError>(token, (int)MsgID.TipError, tips);
        }
        else
        {
            acc.diamond -= cfg.Price;

            ItemData item = new ItemData();
            item.account = token.accountid;
            item.itemid  = req.itemid;
            item.count   = 1;
            CacheManager.instance.AddItem(token.accountid, item);

            RspBuy rsp = new RspBuy();
            rsp.diamond      = acc.diamond;
            rsp.item         = new ItemDTO();
            rsp.item.id      = item.Id;
            rsp.item.account = item.account;
            rsp.item.itemid  = item.itemid;
            rsp.item.count   = item.count;
            rsp.item.slot    = item.slot;

            NetworkManager.Send <RspBuy>(token, (int)MsgID.RspBuy, rsp);
        }
    }
コード例 #2
0
ファイル: MainCitySys.cs プロジェクト: wangzeping1998/-
    public void RspBuy(GameMsg msg)
    {
        RspBuy rspBuy = msg.rspBuy;

        GameRoot.instance.SetPlayerDataByBuy(rspBuy);
        buyWind.SetWindowState(false);
        maincityWind.RefreshUI();
    }
コード例 #3
0
ファイル: BuySys.cs プロジェクト: XANkui/Server_DarkGod_XAN
    public void ReqBuy(MsgPack pack)
    {
        ReqBuy  data = pack.msg.reqBuy;
        GameMsg msg  = new GameMsg {
            cmd = (int)CMD.RspBuy
        };

        PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);

        if (playerData.diamond < data.cost)
        {
            msg.err = (int)ErrorCode.LackDiamond;
        }
        else
        {
            playerData.diamond -= data.cost;
            PshTaskPrgs pshTaskPrgs = null;
            switch (data.type)
            {
            case 0:

                playerData.power += 100;
                // 任务进度更新
                pshTaskPrgs = TaskSys.Instance.GetCalcTaskPrgs(playerData, 4);
                break;

            case 1:

                playerData.coin += 1000;
                // 任务进度更新
                pshTaskPrgs = TaskSys.Instance.GetCalcTaskPrgs(playerData, 5);
                break;
            }

            if (cacheSvc.UpdatePlayerData(playerData.id, playerData) == false)
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspBuy rspBuy = new RspBuy
                {
                    type    = data.type,
                    diamond = playerData.diamond,
                    coin    = playerData.coin,
                    power   = playerData.power
                };

                msg.rspBuy = rspBuy;

                // 并包处理
                msg.pshTaskPrgs = pshTaskPrgs;
            }
        }


        pack.session.SendMsg(msg);
    }
コード例 #4
0
ファイル: MallHandler.cs プロジェクト: mengtest/TankTCP
    private void OnRspBuy(SocketModel modle)
    {
        RspBuy rsp = SerializeUtil.Deserialize <RspBuy>(modle.message);

        CacheManager.instance.diamond = rsp.diamond;
        CacheManager.instance.items.Add(rsp.item);

        MessageBox.Show("购买成功");
    }
コード例 #5
0
ファイル: MainCitySys.cs プロジェクト: zht0222/Unity-DarkGod
    public void RspBuy(GameMsg msg)
    {
        RspBuy data = msg.val as RspBuy;

        GameRoot.Instance.SetPlayerDataByBuy(data);
        GameRoot.AddTips("购买成功");

        mainCityWnd.RefreshUI();
        buyWnd.SetWndState(false);
    }
コード例 #6
0
    public void RspBuy(GameMsg msg)
    {
        RspBuy rspBuy = msg.rspBuy;

        GameRoot.Instance.SetPlayerDataByBuy(rspBuy);
        GameRoot.AddTips("购买成功");

        mainCityWnd.RefreshUI();
        buyWnd.btnSure.interactable = true;
        buyWnd.SetWndState(false);
    }
コード例 #7
0
    public void ReqBuy(MsgPack pack)
    {
        ReqBuy     data = (ReqBuy)pack.msg;
        RspBuy     msg  = new RspBuy();
        PlayerData pd   = cacheSvc.GetPlayerDataBySession(pack.session);

        if (pd.Diamond < data.Cost)
        {
            msg.error = (int)ErrorCode.LackDiamond;
        }
        else
        {
            pd.Diamond -= data.Cost;
            PshTaskPrgs pshTaskPrgs = null;
            switch (data.Type)
            {
            case 0:
                pd.Power += 100;
                //任务进度数据更新
                pshTaskPrgs = TaskSys.Instance.GetTaskPrgs(pd, 4);
                break;

            case 1:
                pd.Coin += 1000;
                //任务进度数据更新
                pshTaskPrgs = TaskSys.Instance.GetTaskPrgs(pd, 5);
                break;
            }

            if (!cacheSvc.UpdatePlayerData(pd.Id, pd))
            {
                msg.error = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspBuy rspBuy = new RspBuy {
                    Type   = data.Type,
                    Dimond = pd.Diamond,
                    Coin   = pd.Coin,
                    Power  = pd.Power
                };
                msg = rspBuy;

                //并包处理
                //msg.pshTaskPrgs = pshTaskPrgs;
                if (pshTaskPrgs != null)
                {
                    pack.session.SendMsg(pshTaskPrgs);
                }
            }
        }
        pack.session.SendMsg(msg);
    }
コード例 #8
0
    public void RspBuy(GameMsg msg)
    {
        RspBuy data = msg.rspBuy;

        GameRoot.Instance.SetPlayerDataByBuy(data);
        mainCityWindow.RefreshUI();
        buyWindow.SetWindowState(false);
        GameRoot.AddTips("购买成功");
        if (msg.pshTaskPrgs != null)
        {
            PshTaskPrgs(msg);
        }
    }
コード例 #9
0
    public void ReqBuy(MsgPack pack)
    {
        ReqBuy  data = pack.msg.reqBuy;
        GameMsg msg  = new GameMsg {
            cmd = (int)CMD.RspBuy
        };
        PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session);

        if (pd.diamond < data.cost)
        {
            msg.err = (int)ErrorCode.LackDiamond;
        }
        else
        {
            pd.diamond -= data.cost;
            PshTaskPrgs pshTaskPrgs = null;
            switch (data.type)
            {
            case 0:
                pd.power += 100;
                //TaskSys.Instance.GetTaskPrgs(pd, 4); // 不让他发送了,网络并包流量优化
                pshTaskPrgs = TaskSys.Instance.GetTaskPrgs(pd, 4);     // 任务进度数据更新
                break;

            case 1:
                pd.coin    += 1000;
                pshTaskPrgs = TaskSys.Instance.GetTaskPrgs(pd, 5);     // 任务进度数据更新
                break;
            }
            if (!cacheSvc.UpdatePlayerData(pd.id, pd))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspBuy rspBuy = new RspBuy {
                    type   = data.type,
                    dimond = pd.diamond,
                    coin   = pd.coin,
                    power  = pd.power
                };
                msg.rspBuy = rspBuy;
                // 并包处理
                msg.pshTaskPrgs = pshTaskPrgs;
            }
        }
        pack.session.SendMsg(msg); // 发送的就是合并后的两个包
    }
コード例 #10
0
ファイル: MainCitySys.cs プロジェクト: yoyo-sincerely/DarkGod
    public void RspBuy(GameMsg msg)
    {
        RspBuy rspBuy = msg.rspBuy;

        GameRoot.Instance.SetPlayerDataByBuy(rspBuy);
        GameRoot.AddTips("购买成功");
        mainCityWnd.RefreshUI();
        buyWnd.SetWndState(false);
        // 检查是否存在 推送任务进度的响应
        if (msg.pshTaskPrgs != null)
        {
            GameRoot.Instance.SetPlayerDataByTaskPsh(msg.pshTaskPrgs);
            if (taskWnd.GetWndState())
            {
                taskWnd.RefreshUI();
            }
        }
    }
コード例 #11
0
    private void RspBuy(object sender, GameEventArgs e)
    {
        OnReceiveSCPacketBaseEventArgs ne = e as OnReceiveSCPacketBaseEventArgs;

        if (ne.msgID != CMD.RspBuy)
        {
            return;
        }
        RspBuy rspBuy = (RspBuy)ne.scPacketBase;

        PECommon.SetPlayerDataByBuy(rspBuy);
        GameEntry.UI.AddTips("购买成功");

        OnRefreshUIFormEventArgs eventArgs = ReferencePool.Acquire <OnRefreshUIFormEventArgs>();

        eventArgs.Fill(UIFormId.MainCityForm);
        GameEntry.Event.Fire(this, eventArgs);
        GameEntry.UI.CloseUIForm(UIFormId.BuyForm);
    }
コード例 #12
0
ファイル: GameRoot.cs プロジェクト: RedAWM/DarkGod
 public void SetPlayerDataByBuy(RspBuy data)
 {
     PlayerData.diamond = data.dimond;
     PlayerData.coin    = data.coin;
     PlayerData.power   = data.power;
 }
コード例 #13
0
 /// <summary>
 /// 根据交易数据更新玩家数据
 /// </summary>
 public void UpdataPlayerDataByBuy(RspBuy rspBuy)
 {
     playerDate.power   = rspBuy.power;
     playerDate.coin    = rspBuy.coin;
     playerDate.diamond = rspBuy.diamond;
 }
コード例 #14
0
 public static void SetPlayerDataByBuy(RspBuy data)
 {
     PlayerData.Diamond = data.Dimond;
     PlayerData.Coin    = data.Coin;
     PlayerData.Power   = data.Power;
 }