Exemplo n.º 1
0
        public FormItemEdit(OrderItem orderItem) : this()
        {
            this.OrderItem = orderItem;
            this.ItemBindingSource.DataSource = orderItem;
            List <Goods> goods = GoodsService.GetAll();

            if (goods.Count == 0)
            {
                GoodsService.Add(new Goods("apple", 100.0));
                GoodsService.Add(new Goods("egg", 200.0));
                goods = GoodsService.GetAll();
            }
            goodsBindingSource.DataSource = goods;
        }
Exemplo n.º 2
0
        protected override bool OnPlayerChatHooked(PlayerInfo playerInfo, string message)
        {
            if (message == QueryListCmd)
            {
                List <GoodsDto> dtos = _goodsService.GetAll("Price ASC");

                if (dtos.Count == 0)
                {
                    SdtdConsole.Instance.SendMessageToPlayer(playerInfo.SteamID, "[00FF00]暂无商品信息");
                }
                else
                {
                    SdtdConsole.Instance.SendMessageToPlayer(playerInfo.SteamID, "[00FF00]商品列表:");

                    StringBuilder returnCmd = new StringBuilder();
                    int           index     = 1;
                    foreach (var item in dtos)
                    {
                        returnCmd.Append(string.Format("pm {0} \"[00FF00]{1}: {2}\"\r\n", playerInfo.SteamID, index, FormatCmd(playerInfo, QueryListTips, item)));
                        ++index;
                    }
                    SdtdConsole.Instance.SendCmd(returnCmd.ToString());
                }
            }
            else
            {
                GoodsDto goodsDto = _goodsService.GetDataByID(message);
                if (goodsDto == null)
                {
                    return(false);
                }
                else
                {
                    int playerScore = _scoreInfoService.GetPlayerScore(playerInfo.SteamID);
                    if (playerScore < goodsDto.Price)// 积分不足
                    {
                        SdtdConsole.Instance.SendMessageToPlayer(playerInfo.SteamID, FormatCmd(playerInfo, BuyFailTips, goodsDto));
                    }
                    else
                    {
                        _scoreInfoService.DeductPlayerScore(playerInfo.SteamID, goodsDto.Price);

                        string cmdPrefix = "give";

                        switch (goodsDto.GoodsType)
                        {
                        case "物品":
                            if (GiveItemBlockToBackpack)
                            {
                                cmdPrefix = "gi";
                            }
                            SdtdConsole.Instance.SendCmd(string.Format("{0} {1} {2} {3} {4}",
                                                                       cmdPrefix, playerInfo.EntityID, goodsDto.Content, goodsDto.Amount, goodsDto.Quality));
                            break;

                        case "方块":
                            if (GiveItemBlockToBackpack)
                            {
                                cmdPrefix = "gb";
                            }
                            SdtdConsole.Instance.SendCmd(string.Format("{0} {1} {2} {3}",
                                                                       cmdPrefix, playerInfo.EntityID, goodsDto.Content, goodsDto.Amount));
                            break;

                        case "实体":
                            for (int i = 0; i < goodsDto.Amount; ++i)
                            {
                                SdtdConsole.Instance.SendCmd(string.Format("se {0} {1}",
                                                                           playerInfo.EntityID, goodsDto.Content));
                            }
                            break;

                        case "指令":
                            for (int i = 0; i < goodsDto.Amount; ++i)
                            {
                                SdtdConsole.Instance.SendCmd(FormatCmd(playerInfo, goodsDto.Content, goodsDto));
                            }
                            break;

                        default:
                            throw new Exception("无效商品类型");
                        }

                        SdtdConsole.Instance.SendGlobalMessage(FormatCmd(playerInfo, BuySucceedTips, goodsDto));

                        // 记录购买
                        Log.Info(string.Format("玩家: {0} SteamID: {1} 购买了: {2}", playerInfo.PlayerName, playerInfo.SteamID, goodsDto.GoodsName));
                    }
                }
            }
            return(true);
        }