public bool Rollback(PlayerBusiness player) { //退回晶币 if (m_coin > 0) { player.AddCoin(m_coin, FinanceType.IntoScene); } return true; }
/// <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; }
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; }
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; }
/// <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; }