Beispiel #1
0
 /// <summary>
 /// 表示是否为批量商店购买文本
 /// </summary>
 /// <param name="text"></param>
 /// <param name="plr"></param>
 /// <param name="sign"></param>
 /// <returns>true为是, false为别的文本.</returns>
 public static bool CheckShopText(string text, TSPlayer plr, PSSign sign)
 {
     try
     {
         if (text.Contains("\n"))
         {
             var lines = text.Split("\n");
             if (lines[0].StartsWith("[") && lines[0].EndsWith("]"))
             {
                 var maintype = lines[0].SearchString("[", "]").ToLower();
                 if (maintype == "customer")
                 {
                     if (!text.StartsWith("[Customer]\n请勿修改所有已存在文本, 直接输入要购买/出售的数量.\n"))
                     {
                         plr.SendErrorMessage($"[C/66D093:<PowerfulSign>] 购买/出售格式无效, 请勿随意改动原有文本.");
                         plr.SendSignDataVisiting(sign);
                         return(true);
                     }
                     if (int.TryParse(lines[2], out int num) && num > 0)
                     {
                         var owner = sign.Account;
                         var cost  = sign.Shop.Price * num;
                         var item  = sign.Shop.Item;
                         var stack = sign.Shop.Stack * num;
                         if (sign.Shop.Type == PSSign_Shop.SELL)
                         {
                             plr.BuyItem(owner, sign, item, stack, cost);                                     //卖家卖就是玩家买
                         }
                         else
                         {
                             plr.SellItem(owner, sign, item, stack, cost);
                         }
                         plr.SendShopText(sign);
                     }
                     else
                     {
                         plr.SendErrorMessage($"[C/66D093:<PowerfulSign>] 购买/出售数量无效, 请输入大于0的正整数.");
                     }
                     return(true);
                 }
             }
         }
     }
     catch (Exception ex) { TShock.Log.ConsoleError(ex.Message); }
     return(false);
 }