Example #1
0
    private void OrganizeAfterToggle(InventoryHolder invHolder, int pos, bool equip)
    {
        int newPos = invHolder.FindFirstEmptySlot();

        invHolder.MoveItem(pos, newPos, 1);
        invHolder.ItemHolders[newPos].IsEquipped = equip;
    }
Example #2
0
    private void itemGive(InventoryHolder user, GameObject item, int stack)
    {
        GameObject newI = GameObject.Instantiate(item);

        newI.GetComponent <Item>().CurrentStack = stack;
        user.AddItemIfFree(item.GetComponent <Item>());
    }
        public static void StartTraid(Client sender, NetHandle pnj)
        {
            try
            {
                int             idtraite   = API.shared.getEntitySyncedData(pnj, "processedItemID");
                int             itemPrice  = API.shared.getEntitySyncedData(pnj, "ItemPrice");
                InventoryHolder ih         = API.shared.getEntityData(sender, "InventoryHolder");
                Item            itemtraite = ItemByID(idtraite);

                InventoryItem items = ih.Inventory.SingleOrDefault(ii => ii.Details.ID == itemtraite.ID);
                if (items == null)
                {
                    return;
                }
                int qtitem = items.Quantity;

                if (qtitem > 0)
                {
                    int price = qtitem * itemPrice;
                    ih.RemoveItemFromInventory(itemtraite, qtitem);
                    Players.Money.GiveMoney(sender, price);
                    API.shared.triggerClientEvent(sender, "display_subtitle", "Vous avez vendu votre ~r~" + itemtraite.Name.ToString() + " ~s~pour la somme de ~r~" + price.ToString() + "~s~$", 30000);
                }
            }
            catch (Exception e)
            {
                API.shared.consoleOutput("~r~[ERROR][INITFARM] : ~s~" + e.ToString());
            }
        }
Example #4
0
    public void CalculateArmor()
    {
        IInventoryItem       inventoryItem;
        InventoryHolder      inventoryHolder      = this.inventoryHolder;
        ProtectionTakeDamage protectionTakeDamage = this.takeDamage;

        if (inventoryHolder && protectionTakeDamage)
        {
            DamageTypeList damageTypeList = new DamageTypeList();
            for (int i = 36; i < 40; i++)
            {
                if (inventoryHolder.inventory.GetItem(i, out inventoryItem))
                {
                    ArmorDataBlock armorDataBlock  = inventoryItem.datablock as ArmorDataBlock;
                    ArmorDataBlock armorDataBlock1 = armorDataBlock;
                    if (armorDataBlock)
                    {
                        armorDataBlock1.AddToDamageTypeList(damageTypeList);
                    }
                }
            }
            if (protectionTakeDamage)
            {
                protectionTakeDamage.SetArmorValues(damageTypeList);
            }
        }
    }
        public static void UpdatePlayerInfo(Client player)
        {
            try
            {
                if (Players.Player.IsPlayerLoggedIn(player))
                {
                    Vector3 PlayerPos = API.shared.getEntityPosition(player);

                    InventoryHolder inventory = API.shared.getEntityData(player, "InventoryHolder");
                    UpdatePlayerMoney(player);
                    string pos = "[[" + PlayerPos.X.ToString() + "],[" + PlayerPos.Y.ToString() + "],[" + PlayerPos.Z.ToString() + "]]";

                    var invs = "";
                    foreach (InventoryItem ii in inventory.Inventory)
                    {
                        invs += "[" + ii.Details.ID.ToString() + "," + ii.Quantity.ToString() + "],";
                    }
                    char[] car         = { ',' };
                    var    inventaires = "[" + invs.TrimEnd(car) + "]";

                    int    hunger = API.shared.getEntitySyncedData(player, "PLAYER_HUNGRY");
                    int    drink  = API.shared.getEntitySyncedData(player, "PLAYER_THIRSTY");
                    int    health = API.shared.getPlayerHealth(player);
                    string query  = String.Format("UPDATE user SET position='{0}', inventory='{1}', hunger='{2}', thirst='{3}', health='{4}' WHERE name='{5}'", pos, inventaires, hunger, drink, health, player.socialClubName);
                    InsertQuery(query);
                }
            }
            catch (Exception e)
            {
                API.shared.consoleOutput("~r~[ERROR] : ~s~" + e.ToString());
            }
        }
Example #6
0
    private void CheckBeltUsage()
    {
        if (UIUnityEvents.shouldBlockButtonInput)
        {
            return;
        }
        if (!base.enabled)
        {
            return;
        }
        if (ConsoleWindow.IsVisible())
        {
            return;
        }
        Inventory inventory = this.inventory;

        if (!inventory)
        {
            return;
        }
        InventoryHolder inventoryHolder = inventory.inventoryHolder;

        if (!inventoryHolder)
        {
            return;
        }
        int num = HumanController.InputSample.PollItemButtons();

        if (num != -1)
        {
            inventoryHolder.BeltUse(num);
        }
    }
Example #7
0
    private static bool GetCharacterStuff(ref ConsoleSystem.Arg args, out Character character, out CameraMount camera, out ItemRepresentation itemRep, out ArmorModelRenderer armor)
    {
        character = null;
        itemRep   = null;
        armor     = null;
        camera    = CameraMount.current;
        if (!camera)
        {
            args.ReplyWith("Theres no active camera mount.");
            return(false);
        }
        character = IDBase.GetMain(camera) as Character;
        if (!character)
        {
            args.ReplyWith("theres no character for the current mounted camera");
            return(false);
        }
        armor = character.GetLocal <ArmorModelRenderer>();
        InventoryHolder local = character.GetLocal <InventoryHolder>();

        if (local)
        {
            itemRep = local.itemRepresentation;
        }
        return(true);
    }
 public void ItemSelected(Client sender, int index)
 {
     try
     {
         var Products = API.getEntityData(sender, "ProductsOfUsingShop");
         var item     = ItemByID(Products[index].Key);
         var price    = Products[index].Value;
         API.resetEntityData(sender, "ProductsOfUsingShop");
         if (Money.TakeMoney(sender, price))
         {
             InventoryHolder ih = API.shared.getEntityData(sender, "InventoryHolder");
             ih.AddItemToInventory(item, 1);
             UpdatePlayerMoney(sender);
             API.shared.triggerClientEvent(sender, "display_subtitle", "Item ajouté à votre inventaire", 3000);
         }
         else
         {
             API.shared.triggerClientEvent(sender, "display_subtitle", "Désolé, vous n'avez pas assez d'argent", 3000);
         }
     }
     catch (Exception e)
     {
         API.consoleOutput("~r~[ERROR][INITITEM] : ~s~" + e.ToString());
     }
 }
Example #9
0
 private void OnClientEventTrigger(Client sender, string eventName, object[] arguments)
 {
     if (eventName == "menu_handler_select_item")
     {
         if ((int)arguments[0] == 181)
         {
             var Products = API.getEntityData(sender, "ProductsOfUsingShop");
             var item     = ItemByID(Products[(int)arguments[1]].Key);
             var price    = Products[(int)arguments[1]].Value;
             API.resetEntityData(sender, "ProductsOfUsingShop");
             InventoryHolder ih = API.getEntityData(sender, "InventoryHolder");
             if (ih.CheckWeightInventory(item, 1))
             {
                 if (Money.TakeMoney(sender, price))
                 {
                     ih.AddItemToInventory(item, 1);
                     UpdatePlayerMoney(sender);
                     API.triggerClientEvent(sender, "display_subtitle", "L'arme a été ajouté à votre inventaire", 3000);
                 }
                 else
                 {
                     API.triggerClientEvent(sender, "display_subtitle", "Désolé, vous n'avez pas assez d'argent", 3000);
                 }
             }
             else
             {
                 API.triggerClientEvent(sender, "display_subtitle", "Désolé, vous n'avez pas assez de place dans votre inventaire.", 3000);
             }
         }
     }
 }
Example #10
0
        public override void Use(Client c)
        {
            int timeeffect = 32000; //32 sc

            API.shared.triggerClientEvent(c, "display_subtitle", "Un bon petit joint!", 3000);
            API.shared.playPlayerScenario(c, "world_human_drug_dealer");


/*
 *          object[] test = new object[4];
 *
 *          test[0] = c;
 *          test[1] = "WORLD_HUMAN_DRUG_DEALER";
 *          test[2] = 0;
 *          test[3] = true;
 *
 *          API.shared.sendNativeToAllPlayers(Hash.TASK_START_SCENARIO_IN_PLACE, test);
 */
            API.shared.triggerClientEvent(c, "smokeweedeveryday", timeeffect);
            API.shared.sleep(timeeffect);
            API.shared.stopPlayerAnimation(c);
            InventoryHolder ih = API.shared.getEntityData(c, "InventoryHolder");

            ih.RemoveItemFromInventory(this, 1);
        }
Example #11
0
    public void ToggleEquipAbility()
    {
        InventoryHolder invHolder    = ItemManager.Instance.GetInvHolder(itemsDisplay.CurrentPossessor);
        Equipment       itemToToggle = (Equipment)ItemManager.Instance.GetItemAt(itemsDisplay.SelectedPos, itemsDisplay.CurrentPossessor);

        itemToToggle.ToggleEquipAbility(PossessorSearcher.GetPossessor(itemsDisplay.CurrentPossessor));

        if (invHolder.ItemHolders[itemsDisplay.SelectedPos].IsEquipped)
        {
            OrganizeAfterToggle(invHolder, itemsDisplay.SelectedPos, false);
        }
        else
        {
            int equippedItemPos = invHolder.FindSameEquippedType(itemToToggle);

            if (equippedItemPos != InventoryHolder.POSITION_INVALID)
            {
                OrganizeAfterToggle(invHolder, equippedItemPos, false);
            }

            OrganizeAfterToggle(invHolder, itemsDisplay.SelectedPos, true);
        }

        itemsDisplay.DisplayAll();
    }
Example #12
0
    protected void Reload(EqpWeapon wep, InventoryHolder ih)
    {
        int bulletsToReload = wep.ClipSize - wep.CurrentAmmo;
        int rem             = ih.RemoveItem(wep.AmmoType.GetComponent <Item>(), bulletsToReload);

        wep.CurrentAmmo += rem;
    }
Example #13
0
 public BaseInventory(InventoryHolder holder, Dictionary <int, Item> items = null)
 {
     this.Holder = holder;
     if (items != null)
     {
         this.slots = items;
     }
 }
Example #14
0
 public static void InventoryHolder_TryGiveDefaultItems(InventoryHolder holder)
 {
     object[] args = new object[]
     {
         holder
     };
     Method.Invoke("RustExtended.RustHook.InventoryHolder_TryGiveDefaultItems", args);
 }
Example #15
0
 protected override void onTrigger(GameObject interactor)
 {
     if (interactor.GetComponent <InventoryHolder>())
     {
         SetInventoryGUIOn(true);
         m_currentInspector = interactor.GetComponent <InventoryHolder>();
     }
 }
        public override void Use(Client c)
        {
            //API.shared.sendNativeToPlayer(c, Hash.ADD_AMMO_TO_PED, args);
            API.shared.setPlayerWeaponAmmo(c, (WeaponHash)WHash, 20);
            InventoryHolder ih = API.shared.getEntityData(c, "InventoryHolder");

            ih.RemoveItemFromInventory(this, 1);
        }
Example #17
0
    public override void Refresh()
    {
        InventoryHolder inventoryHolder = base.inventoryHolder;

        if (inventoryHolder != null)
        {
            inventoryHolder.InventoryModified();
        }
    }
Example #18
0
        public Inventory(InventoryHolder owner)
        {
            this.owner = owner;

            for (int i = 0; i < items.Length; i++)
            {
                items[i] = null;
            }
        }
Example #19
0
    protected override void OnLocalPlayerPreRender()
    {
        InventoryHolder inventoryHolder = this.inventoryHolder;

        if (inventoryHolder)
        {
            inventoryHolder.InvokeInputItemPreRender();
        }
    }
Example #20
0
 public BeltUseEvent(InventoryHolder holder, int belt)
 {
     _holder = holder;
     _belt   = belt;
     if (holder.netUser != null)
     {
         _player = Fougerite.Server.GetServer().FindPlayer(holder.netUser.userID);
     }
 }
Example #21
0
        public static InventoryItem GetCurrentEquippedItem(Character character)
        {
            InventoryHolder component = character.GetComponent <InventoryHolder>();

            if ((component != null) && (component.itemRepresentation != null))
            {
                return((InventoryItem)component.inputItem);
            }
            return(null);
        }
Example #22
0
    private void itemEqp(InventoryHolder user, GameObject item, string slotName)
    {
        int itemCount = user.GetItemCount(item.GetComponent <Item>());

        if (itemCount < 1)
        {
            itemGive(user, item, 1);
        }
        user.ForceEquip(item.GetComponent <Item>(), slotName);
    }
        public static void StartFarming(Client sender)
        {
            try
            {
                if (Players.Player.IsOnProgress(sender))
                {
                    return;
                }
                InventoryHolder ih = API.shared.getEntityData(sender, "InventoryHolder");
                var             unprocessedItemID = API.shared.getEntityData(sender, "OnFarmZone");
                Item            itemfarm          = ItemByID(unprocessedItemID);

                if (ih.CheckWeightInventory(itemfarm))
                {
                    Players.Player.OnProgress(sender);
                    API.shared.triggerClientEvent(sender, "display_subtitle", "Vous commencez à ramasser du ~r~" + itemfarm.Name, 5000);
                    bool _exit = false;
                    int  count = 0;

                    while (!_exit)
                    {
                        API.shared.sleep(10000);
                        if (!API.shared.hasEntityData(sender.handle, "OnFarmZone"))
                        {
                            API.shared.triggerClientEvent(sender, "display_subtitle", "Récolte interrompue : Veuillez retourner dans la zone pour récolter.", 60000); _exit = true;
                            return;
                        }
                        else if (!ih.CheckWeightInventory(itemfarm))
                        {
                            _exit = true;
                        }
                        else if (sender.vehicle != null)
                        {
                            _exit = true;
                        }
                        count = count + 1;
                        ih.AddItemToInventory(itemfarm, 1);
                        API.shared.triggerClientEvent(sender, "display_subtitle", "Récolte en cours: Vous avez ramassé +1 ~r~" + itemfarm.Name, 5000);
                    }
                    API.shared.triggerClientEvent(sender, "display_subtitle", "Récolte terminée : Vous avez ramassé ~r~" + count.ToString() + " " + itemfarm.Name.ToString(), 60000);
                    Players.Player.OnProgress(sender, false);
                }
                else
                {
                    API.shared.triggerClientEvent(sender, "display_subtitle", "Vous inventaire est plein!", 60000);
                }
            }
            catch (Exception e)
            {
                API.shared.consoleOutput("~r~[ERROR][INITFARM] : ~s~" + e.ToString());
            }
        }
Example #24
0
        public override void OnOpen(Player player)
        {
            base.OnOpen(player);

            ContainerOpenPacket pk = new ContainerOpenPacket();

            pk.WindowId = this.Type;
            pk.Type     = this.Type;
            InventoryHolder holder = this.Holder;

            pk.Position = new Vector3(holder.X, holder.Y, holder.Z);
            player.SendPacket(pk);
        }
Example #25
0
 private void ClearSignals()
 {
     if (this._characterSignalee != null)
     {
         this._characterSignalee.signal_state -= this.stateSignalReceive;
     }
     if (this._holder != null)
     {
         this._holder.ClearItemRepresentation(this);
         this._holder = null;
     }
     this._characterSignalee = null;
 }
Example #26
0
        public override void Use(Client c)
        {
            if (c.vehicle == null)
            {
                API.shared.sendNotificationToPlayer(c, "Vous devez être dans un véhicule pour le réparer");
                return;
            }
            API.shared.setVehicleHealth(c.vehicle, 2000);
            InventoryHolder ih = c.getData("InventoryHolder");

            ih.RemoveItemFromInventory(this, 1);
            API.shared.sendNotificationToPlayer(c, "~g~ Véhicule Réparé");
        }
Example #27
0
        public override void Use(Client c)
        {
            int actualHealth = API.shared.getPlayerHealth(c);
            int NewHeath     = actualHealth + AmountToHeal;

            if (NewHeath > 100)
            {
                NewHeath = 100;
            }
            API.shared.setPlayerHealth(c, NewHeath);
            InventoryHolder ih = API.shared.getEntityData(c, "InventoryHolder");

            ih.RemoveItemFromInventory(this, 1);
        }
Example #28
0
    private void Update()
    {
        if (Target == null)
        {
            return;
        }
        InventoryHolder ih = Target.GetComponent <InventoryHolder>();

        if (ih == null)
        {
            return;
        }
        UpdateAmmo(ih.GetItemInSlot("Primary"), m_lastPrimary, m_primaryEquipmentIcon, m_primaryName, m_primaryCurrentClipText, m_primaryReserveAmmoText);
        //UpdateAmmo(ih.GetItemInSlot("Secondary"), m_lastSecondary, m_secondaryEquipmentIcon, m_secondaryName, m_secondaryCurrentClipText, m_secondaryReserveAmmoText);
    }
Example #29
0
        public override void Use(Client c)
        {
            int Thirst    = API.shared.getEntitySyncedData(c, "PLAYER_HUNGRY");
            int newThirst = Thirst + Food;

            if (newThirst > 100)
            {
                newThirst = 100;
            }
            API.shared.setEntitySyncedData(c, "PLAYER_HUNGRY", newThirst);
            API.shared.triggerClientEvent(c, "UpdateSurvival");
            InventoryHolder ih = API.shared.getEntityData(c, "InventoryHolder");

            ih.RemoveItemFromInventory(this, 1);
        }
 public override void Use(Client c)
 {
     if (!API.shared.isPlayerInAnyVehicle(c))
     {
         API.shared.triggerClientEvent(c, "display_subtitle", "Vous devez être dans un véhicule pour réparer ses pneus.");
     }
     else
     {
         for (var i = 0; i < 7; i++)
         {
             API.shared.popVehicleTyre(c.vehicle, i, false);
         }
         InventoryHolder ih = API.shared.getEntityData(c, "InventoryHolder");
         ih.RemoveItemFromInventory(this, 1);
     }
 }