コード例 #1
0
        public void itemRemove(InventoryModEvent e)
        {
            string name = e.Inventory.name;

            if (name == "WoodBoxLarge(Clone)" || name == "WoodBox(Clone)" || name == "Furnace(Clone)")
            {
                CheckWalloot(e);
            }
        }
コード例 #2
0
 private void OnItemRemoved(InventoryModEvent e)
 {
     if (e.Player != null)
     {
         if (WaitingUsers.ContainsKey(e.Player.UID))
         {
             e.Cancel();
             e.Player.MessageFrom("AuthMe", red + YouNeedToBeLoggedIn);
         }
     }
 }
コード例 #3
0
        public void OnItemRemoved(InventoryModEvent ir)
        {
            //ir.Player.Message("remove " + ir.Inventory.slotCount);

            if (IsPlayerInShop(ir.Player))
            {
                string ItemComprado = ir.ItemName;

                foreach (var line in File.ReadAllLines(PricesFile))
                {
                    if (ItemComprado == "Rock")
                    {
                        ir.Player.MessageFrom(Name, yellow + "You can´t buy a Rock");
                        ir.Cancel();
                        //ir.Player.Damage(20f);
                        DamagePlayer(ir.Player);
                        break;
                    }
                    string[] pares = line.ToString().Split(new char[] { '=' });
                    string   item  = pares[0];
                    int      price = Convert.ToInt32(pares[1]);

                    if (ItemComprado == item)
                    {
                        //tiene dinero suficiente?
                        if (ir.Player.Inventory.HasItem("Paper", price))
                        {
                            ir.Player.MessageFrom(Name, green + "You have buy " + white + ItemComprado + green + " whit " + white + price + green + " Papers");
                            ir.Player.Inventory.RemoveItem("Paper", price);
                            int freeslots = ir.FInventory.FreeSlots;
                            ir.FInventory.AddItem("Rock", freeslots);

                            file = new System.IO.StreamWriter(LogFile, true);
                            file.WriteLine("[" + DateTime.Now.ToString() + "] " + ir.Player.Name + " has bought a " + ItemComprado + " for " + price + " papers");
                            file.Close();
                            Server.GetServer().BroadcastFrom(Name, ir.Player.Name + " has bought a " + ItemComprado + " for " + price + " papers");
                            break;
                        }
                        else
                        {
                            ir.Cancel();
                            //ir.Player.Notice(" ", "You don´t have enougth Papers :(", 5);
                            ir.Player.MessageFrom(Name, orange + "You don´t have enougth Papers " + white + ItemComprado + " (" + price + " Papers)");
                            //ir.Player.Damage(20f);
                            DamagePlayer(ir.Player);
                            break;
                        }
                    }
                }
            }
        }
コード例 #4
0
ファイル: AntiWallLootModule.cs プロジェクト: samvds/CSharp
        public void CheckWalloot(InventoryModEvent e)
        {
            User looter = e.Player;

            if (looter == null)
            {
                return;
            }
            if (IsWallooting(e.Player, e.Inventory))
            {
                Notify(looter, e.Inventory);
                Server.GetServer().BroadcastFrom(Name, "[color red]" + looter.Name + "[color red] has been kicked for wallooting");
                looter.Disconnect();
            }
        }
コード例 #5
0
        public void CheckWalloot(InventoryModEvent e)
        {
            User looter = e.Player;

            if (looter == null)
            {
                return;
            }
            if (IsWallooting(e.Player, e.Inventory))
            {
                ItemDataBlock block = DatablockDictionary.GetByName(e.ItemName);
                e.Inventory.AddItemAmount(block, 1);
                Notify(looter, e.Inventory);
                Server.GetServer().BroadcastFrom(Core.Name, "[color yellow]☢ [color red]Player: [color yellow]" + looter.Name + "[color red] has been kicked for wall looting.");
                looter.Disconnect();
            }
        }
コード例 #6
0
ファイル: DetectionClass.cs プロジェクト: samvds/CSharp
 public void ItemRemoved(InventoryModEvent e)
 {
     try
     {
         if (e.Player != null)
         {
             Fougerite.Player player = (Fougerite.Player)e.Player;
             if (player.IsOnline)
             {
                 Vector3 location = player.Location;
                 float   d        = Vector3.Distance(e.Inventory.transform.position, location);
                 if (d > MaxlootDist)
                 {
                     if (BroadcastAdmins)
                     {
                         NotifyAdmin(player.Name + yellow + " Is Maybe using longdistance looting dist: " + (Math.Round(d)));
                     }
                     string line = DateTime.Now + " [AntiAutoLoot] " + player.Name + "-" + player.SteamID + " Tried to loot from " + (Math.Round(d)) + " max dist = " + MaxlootDist + "";
                     file = new System.IO.StreamWriter(ppath, true);
                     file.WriteLine(line);
                     file.Close();
                     string message = Broadcast.Replace("{Player}", player.Name);
                     Server.GetServer().Broadcast(message);
                     player.Message(WarningMessage);
                     Logger.LogWarning(player.Name + " Tried to loot from an unreachable container");
                     e.Cancel();
                     player.Disconnect();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Logger.LogError("[AntiCrackLoot] ERROR: " + ex);
     }
 }
コード例 #7
0
        /*public void OnItemAddedOxide(InventoryModEvent e)
         * {
         *  this.Invoke("OnItemAdded", new object[] { e.Inventory, e.Slot, e.Item });
         * }*/

        public void OnItemRemoved(InventoryModEvent e)
        {
            this.Invoke("On_ItemRemoved", new object[] { e });
        }
コード例 #8
0
 public void OnItemRemoved(InventoryModEvent e)
 {
     Invoke("On_ItemRemoved", e);
 }
コード例 #9
0
ファイル: HookTester.cs プロジェクト: Notulp/HookTester
 public void On_ItemRemoved(InventoryModEvent evt)
 {
     SetHookWorking("On_ItemRemoved");
     Broadcast(evt.Player.Name + " lost " + evt.Item.Amount + "x" + evt.Item.Name);
 }