Example #1
0
 public bool Rollback(PlayerBusiness player)
 {
     //退回晶币
     if (m_coin > 0)
     {
         player.AddCoin(m_coin, FinanceType.IntoScene);
     }
     return true;
 }
Example #2
0
        /// <summary>
        /// 进入扣除
        /// </summary>
        /// <param name="player"></param>
        public override bool IntoPart(PlayerBusiness player)
        {
            if (BurdenManager.GoodsCount(player.B0, m_elements[0]) > 0)
            {
                //请先处理包袱中的【守护凭证】后再进入
                player.Call(ClientCommand.IntoSceneR, false, null,TipManager.GetMessage(ClientReturn.ProBusiness1));
                return false;
            }

            Dictionary<string, Variant> dic = new Dictionary<string, Variant>();
            Variant v = new Variant();
            v.Add("Number1", 1);
            v.Add("EndTime", this.EndTime.AddHours(1));//活动结束后一个小时道具过期

            dic.Add(m_elements[0], v);

            if (BurdenManager.IsFullBurden(player.B0, dic))
            {
                //包袱满,请整理你的包袱再进行该操作
                player.Call(ClientCommand.IntoSceneR, false, null, TipManager.GetMessage(ClientReturn.ProBusiness2));
                return false;
            }

            bool pass = (m_part.Coin == 0 && m_part.Score == 0);
            if ((!pass) && m_part.Score > 0)
            {
                pass = player.AddScore(-m_part.Score, FinanceType.Part);
            }
            if ((!pass) && m_part.Coin > 0)
            {
                pass = player.AddCoin(-m_part.Coin, FinanceType.Part);
            }
            if (!pass)
            {
                player.Call(ClientCommand.IntoSceneR, false, null, m_part.CoinMsg);
                return false;
            }

            if (m_part.MaxInto > 0)
            {
                m_playerInto.SetOrInc(player.PID, 1);
            }

            //进入场景成功,发送道具
            player.AddGoods(dic, GoodsSource.Pro);
            player.MoreFight = 0;
            player.NoFight = 0;
            player.Call(ActivityCommand.GetDefendCardR, MainScene.Players.Count);
            //进入守护战争,记录活跃度
            player.AddAcivity(ActivityType.Pro, 1);
            return true;
        }
Example #3
0
 public bool Execute(PlayerBusiness player, out string msg)
 {
     //消耗晶币
     if (m_coin > 0)
     {
         if (!player.AddCoin(-m_coin, FinanceType.IntoScene))
         {
             msg = m_msg;
             return false;
         }
     }
     msg = null;
     return true;
 }
Example #4
0
 private static bool ResponseCompleted(Socket client, Order order, PlayerBusiness player)
 {
     int coin = order.Coin;
     //检查tokenID(状态由11变到12,准备充值,用于锁定)
     if (OrderAccess.Instance.IncOrderState(order.token, 11, 1, coin))
     {
         if (player.AddCoin(coin, FinanceType.BuyCoin))
         {
             //(状态由12变到13,充值成功)
             if (OrderAccess.Instance.IncOrderState(order.token, 12, 1))
             {
                 //成功
                 Send(client, OrderResult.Success);
                 try
                 {
                     //发送充值成功通知.
                     player.Call(MallCommand.CoinSuccess, order.token, coin, player.Coin);
                     UserNote note = new UserNote(player, PartCommand.Recharge, new object[] { coin });
                     Notifier.Instance.Publish(note);
                 }
                 catch { }
                 return true;
             }
         }
     }
     return false;
 }
Example #5
0
        /// <summary>
        /// 进入扣除
        /// </summary>
        /// <param name="player"></param>
        public virtual bool IntoPart(PlayerBusiness player)
        {
            bool pass = (m_part.Score == 0 && m_part.Coin == 0);

            if ((!pass) && m_part.Score > 0)
            {
                pass = player.AddScore(-m_part.Score, FinanceType.Part);
            }
            if ((!pass) && m_part.Coin > 0)
            {
                pass = player.AddCoin(-m_part.Coin, FinanceType.Part);
            }

            if (pass)
            {
                if (m_part.MaxInto > 0)
                {
                    m_playerInto.SetOrInc(player.PID, 1);
                }
            }
            else
            {
                player.Call(ClientCommand.IntoSceneR, false, null, m_part.CoinMsg);
            }
            return pass;
        }