示例#1
0
        private void ProcessMoney(S2CMoney s2cMoney)
        {
            string text                  = string.Empty;
            bool   is_change             = false;
            bool   show_cost_or_add_tips = false;
            int    change_money          = 0;

            foreach (PkgMoneyInfo money in s2cMoney.info)
            {
                show_cost_or_add_tips = false;
                text = string.Empty;
                switch (money.money_type)
                {
                case GameConst.MONEY_COIN:
                {
                    if (Coin != money.num)
                    {
                        show_cost_or_add_tips = true;
                        change_money          = (int)(money.num) - (int)(Coin);
                        Coin      = money.num;
                        is_change = true;
                    }
                    break;
                }

                case GameConst.MONEY_TRIGRAM_SP:
                {
                    if (TrigramSp != money.num)
                    {
                        if (TrigramSp < money.num)
                        {
                            uint add_sp      = money.num - TrigramSp;
                            var  localplayer = Game.Instance.GetLocalPlayer();
                            if (localplayer != null)
                            {
                                localplayer.ShowDamageEffect(FightEffectHelp.FightEffectType.AddSp, 0, (int)(add_sp));
                            }
                        }
                        TrigramSp = money.num;
                        is_change = true;
                    }
                    break;
                }

                case GameConst.MONEY_DIAMOND:
                {
                    if (Diamond != money.num)
                    {
                        show_cost_or_add_tips = true;
                        change_money          = (int)(money.num) - (int)(Diamond);
                        Diamond   = money.num;
                        is_change = true;
                    }
                    break;
                }

                case GameConst.MONEY_SOUL_CREAM:
                {
                    if (SoulCream != money.num)
                    {
                        show_cost_or_add_tips = true;
                        change_money          = (int)(money.num) - (int)(SoulCream);
                        SoulCream             = money.num;
                        is_change             = true;
                    }
                    break;
                }

                case GameConst.MONEY_SOUL_HOLY_WATER:
                {
                    if (SoulHolyWater != money.num)
                    {
                        show_cost_or_add_tips = true;
                        change_money          = (int)(money.num) - (int)(SoulHolyWater);
                        SoulHolyWater         = money.num;
                        is_change             = true;
                    }
                    break;
                }

                case GameConst.MONEY_COIN_BIND:
                {
                    if (BindCoin != money.num)
                    {
                        BindCoin  = money.num;
                        is_change = true;
                    }
                    break;
                }

                case GameConst.MONEY_DIAMOND_BIND:
                {
                    if (BindDiamond != money.num)
                    {
                        show_cost_or_add_tips = true;
                        change_money          = (int)(money.num) - (int)(BindDiamond);
                        BindDiamond           = money.num;
                        is_change             = true;
                    }
                    break;
                }

                case GameConst.MONEY_HANG_TIME:
                {
                    if (HangTime != money.num)
                    {
                        show_cost_or_add_tips = true;
                        int    value = Mathf.Abs((int)HangTime - (int)money.num);
                        string str   = CommonTool.SecondsToStr_2(value);

                        if (HangTime > money.num)
                        {
                            text = string.Format(DBConstText.GetText("BAG_LOST_HANG_TIME"), str);
                        }
                        else
                        {
                            text = string.Format(DBConstText.GetText("BAG_GET_HANG_TIME"), str);
                        }

                        HangTime  = money.num;
                        is_change = true;

                        ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_OFFLINE_HANGE_TIME_UPDATE, null);
                    }
                    break;
                }

                default:
                {
                    uint old_num = 0;
                    if (MoneyData.ContainsKey((ushort)money.money_type))
                    {
                        old_num = MoneyData[(ushort)money.money_type];
                    }

                    MoneyData[(ushort)money.money_type] = money.num;
                    if (old_num != money.num)
                    {
                        if (old_num < money.num)         //获得货币
                        {
                            var info = DBMoney.Instance.GetMoneyInfo(money.money_type);
                            if (info != null)
                            {
                                show_cost_or_add_tips = info.show_get;
                            }

                            change_money = (int)(money.num - old_num);
                        }
                        is_change = true;
                    }
                    break;
                }
                }

                if (Game.Instance.AllSystemInited)
                {
                    if (s2cMoney.op == GameConst.MONEY_OPERATE_NO_TIP)
                    {
                        show_cost_or_add_tips = false;  //一定不飘字
                    }
                    if (show_cost_or_add_tips && string.IsNullOrEmpty(text))
                    {
                        string goods_name = GoodsHelper.GetGoodsNameByTypeId_blackBkg(money.money_type);
                        if (change_money > 0)
                        {
                            text = string.Format(DBConstText.GetText("COMMON_ADD_ONE_MONEY_NUM"), goods_name, change_money);
                        }
                    }

                    if (string.IsNullOrEmpty(text) == false)
                    {
                        UINotice.Instance.ShowMessage(text);
                    }
                }
            }

            if (is_change == false)
            {
                return;
            }

            ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_MONEY_UPDATE, null);
        }