Inventory system

Zadealer

New member
Hi … so I have an inventory grid which it have items.
What I need to do is … every time the user drag and drop an item from that grid to hotbar only.
The item will not disappear from the grid … no matter how many times he use it and how many times the item been drag and drop to hotbar. These items with in the grid will not disappear.
 
The default hotbar does just that. When you assign an item to the hotbar the item will stay in the Inventory. The Hotbar simply points to the item within the Inventory.

Whether the item should be removed when used is defined in the Item Action. You can write a custom Item Action that uses the item without removing it.

By default the hotbar will grey out the item but keep it in the slot you assigned it to when you remove the item from the Inventory.
 
what I'm trying to do is ... a separate inventory that has its skills (Like fireball, ice shot, etc.). (And these skills are treated as inventory Definition Items) (I know it sounds stupid enough but that is what came to my mind).

I have done it and it works very well with ultimate character control.
but the system treats it as inventory and I don't want that.
I want the skill to be dragged into Hotbar but never to disappear from the skill grid.
and the skills can not be dragged into the main inventory or storage or chests, ... etc.

I have an idea about it ... which make the default size limit of that object 99999999 and never show the number to the user.
but there is the part of dragging into other inventories.

I knew it's a basic idea of a skill system that should be done. but I tried different assets but I can't handle the animation/particle effect between the skill tree asset and the ultimate character control/ ultimate inventory system.

and there is another part of the story; which is the level system and experiences. still, I have NO clue how I implement it with the 3 systems (UCC/UIS/Bhaviour Design).
 
As you can imagined the Items where not designed to be skills. That being said a few devs did some really interesting things using ItemDefinitions as skills. Of course that needed some custom functionality specific to their games.

Inventory components can be placed anywhere, and you can have multiple ones. You can also have many (UIS)ItemCollections within an Inventory.
So you could desing your system with splitting the skills in another Inventory seperate from the player Inventory for your skills. Or you can keep the skills within the character Inventory but inside a special ItemCollection

You can prevent drag/drop or adding/removing items, using ItemRestrictions. These are scripts used to prevent certain items or amounts of items to be added to an Inventory or Item Collection

You shouldn't need to have a super high quantity of items, simply set the item to never be removed when used. And/or use a custom ItemRestctions to prevent the item from being removed.

Levels, Experience and stats are all out of scope for both UIS and UCC. These must be implemented by you. On this page I give some tips on how to get started with stats, but it all really depends on what you are trying to achieve:
 
simply set the item to never be removed when used
but how I can do it? from where do I select this option?

I even try to give it a high amount of value. but it seems that the character control equip the spell no matter the amount ... it just equip it all.

And/or use a custom ItemRestctions to prevent the item from being removed.
I checked the documentation and I was trying to figure it out ... but the editor gives me the null exception.
is the option "Prevent The Item From Being Remove" is available or should I create it?
 
but how I can do it? from where do I select this option?

I even try to give it a high amount of value. but it seems that the character control equip the spell no matter the amount ... it just equip it all.
When an item is equipped the entire amount is equipped.
If you check the integration demo scene you can equip the Fire Spell in the hotbar and it won't be removed from the Inventory when used.
Using an Item form the Hotbar is done using UIS ItemActions. Check the ItemActionSet to see how the magic use item action was setup.

The UCC magic spellls in the Integratio use a combination of UIS ItemAction and InventoryItemSetManager ItemSetRules to equip-> use -> unequip the magic item while keeping that item in the hotbar. Make sure to look at how we've setup the InventoryItemSetManager and the CharacterInventoryBridge components within the integration demo scene. That should give you a good starting point.

I checked the documentation and I was trying to figure it out ... but the editor gives me the null exception.
is the option "Prevent The Item From Being Remove" is available or should I create it?
I do not belive there is a built-in restriction for preventing remove, most use cases had restrictions to prevent adding items.
But it can be added creating your own custom restriction, simply inherit the IItemRestriction interface and follow the documentation instructions on how to make custom restrictions.
 
If you check the integration demo scene you can equip the Fire Spell in the hotbar and it won't be removed from the Inventory when used.
I did check it and I follow it step by step but I keep getting this warning.

The item failed to equip.
UnityEngine.Debug:LogWarning (object)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterUseItemAction:OnItemAbilityActive (Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility,bool) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/InventoryItemActions/CharacterUseItemAction.cs:113)
Opsive.Shared.Events.InvokableAction`2<Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility, bool>:Invoke (Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility,bool)
Opsive.Shared.Events.EventHandler:ExecuteEvent<Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility, bool> (object,string,Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility,bool)
Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:TryStopAbility (Opsive.UltimateCharacterController.Character.Abilities.Ability,bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:1459)
Opsive.UltimateCharacterController.Character.Abilities.Ability:StopAbility (bool,bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Ability.cs:695)
Opsive.UltimateCharacterController.Character.Abilities.Ability:StopAbility () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Ability.cs:672)
Opsive.UltimateCharacterController.Character.Abilities.Items.EquipUnequip:TryStopEquipUnequipAbility () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Items/EquipUnequip.cs:1154)
Opsive.UltimateCharacterController.Character.Abilities.Items.EquipUnequip:ItemEquipComplete (int,bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Items/EquipUnequip.cs:1137)
Opsive.Shared.Game.SchedulerBase:AddEventInternal<int, bool> (single,Opsive.Shared.Game.ScheduledEventBase/InvokeLocation,System.Action`2<int, bool>,int,bool)
Opsive.Shared.Game.SchedulerBase:ScheduleFixed<int, bool> (single,System.Action`2<int, bool>,int,bool)
Opsive.UltimateCharacterController.Character.Abilities.Items.EquipUnequip:ItemEquip (int,bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Items/EquipUnequip.cs:1063)
Opsive.Shared.Game.SchedulerBase:AddEventInternal<int, bool> (single,Opsive.Shared.Game.ScheduledEventBase/InvokeLocation,System.Action`2<int, bool>,int,bool)
Opsive.Shared.Game.SchedulerBase:ScheduleFixed<int, bool> (single,System.Action`2<int, bool>,int,bool)
Opsive.UltimateCharacterController.Character.Abilities.Items.EquipUnequip:Update () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Items/EquipUnequip.cs:654)
Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:UpdateAbilities (Opsive.UltimateCharacterController.Character.Abilities.Ability[]) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:809)
Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:UpdateUltimateLocomotion () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:740)
Opsive.UltimateCharacterController.Character.CharacterLocomotion:Move (single,single,single) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/CharacterLocomotion.cs:487)
Opsive.UltimateCharacterController.Game.KinematicObjectManager/KinematicCharacter:Move (bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Game/KinematicObjectManager.cs:237)
Opsive.UltimateCharacterController.Game.KinematicObjectManager:FixedUpdate () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Game/KinematicObjectManager.cs:880)

I ignore it at first but I think that's the issue.
 
I recheck items slots/ items abilities and ultimate character locomotion, and it all match the demo scene.
and I even check how the Hotbar equip the skill and it does match how it equips in the demo scene.

the problem is ... once the character equips the spell. it cannot unequip it. and I recheck the character locomotion and it is set exactly as the demo scene
 

Attachments

  • Screenshot 2022-02-21 193010.jpg
    Screenshot 2022-02-21 193010.jpg
    441.7 KB · Views: 8
  • Screenshot 2022-02-21 193049.jpg
    Screenshot 2022-02-21 193049.jpg
    358.1 KB · Views: 8
  • Screenshot 2022-02-21 193100.jpg
    Screenshot 2022-02-21 193100.jpg
    360.7 KB · Views: 8
Last edited:
The warning is probably what is causing you your issue.

The warning happens in the CharacterItemUseAction so perhaps it is not setup correctly. This is the one used in the demo scene
1645518794122.png
This ItemAction is used by the Hotbar.

Pay attention to the "Equippable Item Collection Index". It has a value of 1

This means we are going to equip that item within the Item Collection at index 1 within the list of Equippable Item Collections
1645518924990.png
In the case of the demo scene that is "Equippable".

The reason we equip to "Equippable" and not "Equippable Slots" is because the Magic Item should not take space in the character equipments slots used for weapons. (We also use "Equippable" for the body Item which is always equipped)

Another thing to watch out for is the Item Slot ID. It needs to match both in the Item prefab and the ItemSetRule. If you check the Fireball prefab within the integration demo, you'll see it uses SlotID 2, like the Item Set Rule for Magic.
1645519190352.png

Hopefully this gives you a better understanding of the structure and you'll be able to fix your issue
 
Well, I found out my idiotic mistake.
turns out that the equipable item collection is set to hidden, that’s what causes all the issues.
but I have 2 problems now.

1. even though I give the Hidden item category to the body and added the filter in the inventory, it keeps appearing. That’s why I set the equippable hidden in the first place.
2. When I use the skill, it returns to the user inventory and not to the skill inventory. How I can redirect it? So its return back to the skill inventory and not to the player inventory?

I’m SO grateful for ur help thus far ??
 
Last edited:
C#:
using Opsive.UltimateInventorySystem.Core.DataStructures;
using Opsive.UltimateInventorySystem.ItemActions;
using System;
using UnityEngine;

[Serializable]
public class SentMagicItemsToSkillsInventory : Opsive.UltimateInventorySystem.ItemActions.ItemAction
{
    [SerializeField] protected Opsive.UltimateInventorySystem.Core.InventoryCollections.Inventory m_playerInvetory;
    [SerializeField] protected Opsive.UltimateInventorySystem.Core.InventoryCollections.Inventory m_magicInvetory;

    protected override bool CanInvokeInternal(ItemInfo itemInfo, ItemUser itemUser)
    {
        if (itemInfo.Item.Category.name == "Magic")
        {
            return true;
        }
        return false;
    }

    protected override void InvokeActionInternal(ItemInfo itemInfo, ItemUser itemUser)
    {
        m_playerInvetory.RemoveItem(itemInfo);
        m_magicInvetory.AddItem(itemInfo);
    }
}

I have created this mini script, just a basic idea.
but the issue is ... at runtime, the player inventory and skill inventory are automatic set to none even tho I added them before the runtime.
I just want to know how to remove an item and that very same item is added to another inventory at the same time.

or is there an easier way to do so?
 
Last edited by a moderator:
1. even though I give the Hidden item category to the body and added the filter in the inventory, it keeps appearing. That’s why I set the equippable hidden in the first place.
the issue was in the grid tab since there is a tab to show ALL of the equipment and the "Body" is added to the ALL item category ... so the inventory was showing up the "Body"

I fix it by adding the Hidden item category to the hide item category which is located in the script called the item info category filter which is also located on the filter tabs.
 
the issue was in the grid tab since there is a tab to show ALL of the equipment and the "Body" is added to the ALL item category ... so the inventory was showing up the "Body"

I fix it by adding the Hidden item category to the hide item category which is located in the script called the item info category filter which is also located on the filter tabs.
Yes I believe that's the correct approach.

(I've added your code snippet within code brackets above, it's easier to read. You can do so next time using the three dots (on the right of the quotation marks) and then pressing "</>")
I have created this mini script, just a basic idea.
but the issue is ... at runtime, the player inventory and skill inventory are automatic set to none even tho I added them before the runtime.
I just want to know how to remove an item and that very same item is added to another inventory at the same time.

or is there an easier way to do so?
The reason the Inventory are set to null as soon as you press play is because ItemActionSet are scriptableObjects and your Inventories are inside a scene. Unity does not allow you to have prefabs or scriptableObject serialized reference to objects inside any scenes. It can only serialize references to other prefabs or scriptableObjects.

So instead of using
Code:
[SerializeField] protected Opsive.UltimateInventorySystem.Core.InventoryCollections.Inventory m_playerInvetory;

Do

[SerializeField] protected uint m_playerInvetoryID;

Then you can use the InventorySystemManager and an InventoryIdentifier component to get a reference of your Inventory anywhere in the code.
You can find the code example here:

You need both Inventories to have an InventoryIdentifier component (your player probably already has one) and those IDs must be Unique. the player Inventory is usually ID 1, so your magic inventory could be ID 2.

I hope that helps
 
well, that was so useful.
but there is an error ... when the spell is equipped, the spell cannot be moved to the skill.
and also when I abuse the system; like when I click many times on the skill, it keeps duplicating and nothing happens (no animation nor partical effect runs).

and in the photo (after I abuse the system) the spell stuck in the inventory item set manager.

here are the errors:
99 Life shot (2375888137) || ItemCollection Default (Main) || ItemStack(458974336)[ 99 Life shot (2375888137) in ItemCollection Default (Main)] cannot be moved to default because it was equitable.
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterInventoryBridge:MoveItemToDefault (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,int,int) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/CharacterInventoryBridge.cs:490)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterInventoryBridge:MoveEquip (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,int,int,bool) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/CharacterInventoryBridge.cs:535)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterUseItemAction:OnItemAbilityActive (Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility,bool) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/InventoryItemActions/CharacterUseItemAction.cs:124)
Opsive.Shared.Events.InvokableAction`2<Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility, bool>:Invoke (Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility,bool)
Opsive.Shared.Events.EventHandler:ExecuteEvent<Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility, bool> (object,string,Opsive.UltimateCharacterController.Character.Abilities.Items.ItemAbility,bool)
Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:TryStopAbility (Opsive.UltimateCharacterController.Character.Abilities.Ability,bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:1459)
Opsive.UltimateCharacterController.Character.Abilities.Ability:StopAbility (bool,bool) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Ability.cs:695)
Opsive.UltimateCharacterController.Character.Abilities.Ability:StopAbility () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Ability.cs:672)
Opsive.UltimateCharacterController.Character.Abilities.Items.Use:UseCompleteItem (int) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Items/Use.cs:836)
Opsive.UltimateCharacterController.Character.Abilities.Items.Use:OnItemUseComplete () (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/Abilities/Items/Use.cs:766)
Opsive.Shared.Events.InvokableAction:Invoke ()
Opsive.Shared.Events.EventHandler:ExecuteEvent (object,string)
Opsive.UltimateCharacterController.Character.AnimatorMonitor:ExecuteEvent (string) (at Assets/External/Opsive/UltimateCharacterController/Scripts/Character/AnimatorMonitor.cs:940)

72 Life shot (2710108003) || ItemCollection Skills (Main) || ItemStack is NULL cannot be moved to equippable because it was not in default first.
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterInventoryBridge:MoveItemToEquippable (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,int,int) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/CharacterInventoryBridge.cs:425)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterInventoryBridge:MoveEquip (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,int,int,bool) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/CharacterInventoryBridge.cs:532)
Opsive.UltimateCharacterController.Integrations.UltimateInventorySystem.CharacterUseItemAction:InvokeActionInternal (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,Opsive.UltimateInventorySystem.ItemActions.ItemUser) (at Assets/External/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts/InventoryItemActions/CharacterUseItemAction.cs:95)
Opsive.UltimateInventorySystem.ItemActions.ItemAction:InvokeAction (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,Opsive.UltimateInventorySystem.ItemActions.ItemUser) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/ItemActions/ItemAction.cs:97)
Opsive.UltimateInventorySystem.ItemActions.MultiItemAction:InvokeActionInternal (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,Opsive.UltimateInventorySystem.ItemActions.ItemUser) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/ItemActions/MultiItemAction.cs:60)
Opsive.UltimateInventorySystem.ItemActions.ItemAction:InvokeAction (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo,Opsive.UltimateInventorySystem.ItemActions.ItemUser) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/ItemActions/ItemAction.cs:97)
Opsive.UltimateInventorySystem.UI.Panels.ItemViewSlotContainers.ItemViewSlotsContainerItemActionBindingBase:InvokeActionInternal (int,int) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/UI/Panels/ItemViewSlotContainers/ItemViewSlotsContainerItemActionBindingBase.cs:267)
Opsive.UltimateInventorySystem.UI.Panels.ItemViewSlotContainers.ItemViewSlotsContainerCategoryItemActionSetBinding:UseItemAction (int,int) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/UI/Panels/ItemViewSlotContainers/ItemViewSlotsContainerCategoryItemActionSetBinding.cs:97)
Opsive.UltimateInventorySystem.UI.Panels.ItemViewSlotContainers.ItemViewSlotsContainerItemActionBindingBase:TriggerItemAction (Opsive.UltimateInventorySystem.UI.Item.ItemViewSlot) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/UI/Panels/ItemViewSlotContainers/ItemViewSlotsContainerItemActionBindingBase.cs:179)
Opsive.UltimateInventorySystem.UI.Panels.ItemViewSlotContainers.ItemViewSlotsContainerItemActionBindingBase:TriggerItemAction (int) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/UI/Panels/ItemViewSlotContainers/ItemViewSlotsContainerItemActionBindingBase.cs:160)
Opsive.UltimateInventorySystem.UI.Panels.Hotbar.ItemHotbar:UseItem (int) (at Assets/External/Opsive/UltimateInventorySystem/Scripts/UI/Panels/Hotbar/ItemHotbar.cs:92)
Opsive.UltimateInventorySystem.UI.Panels.Hotbar.ItemHotbarHandler:Update () (at Assets/External/Opsive/UltimateInventorySystem/Scripts/UI/Panels/Hotbar/ItemHotbarHandler.cs:77)


And here is my code:

C#:
using Opsive.UltimateInventorySystem.Core;
using Opsive.UltimateInventorySystem.Core.DataStructures;
using Opsive.UltimateInventorySystem.ItemActions;
using System;
using UnityEngine;

[Serializable]
public class SentMagicItemsToSkillsInventory : Opsive.UltimateInventorySystem.ItemActions.ItemAction
{
    [SerializeField] protected uint m_playerInvetoryID;
    [SerializeField] protected uint m_skillInvetoryID;

    protected override bool CanInvokeInternal(ItemInfo itemInfo, ItemUser itemUser)
    {
        /*
        if (itemInfo.Item.Category.name == "Magic")
        {
            return true;
        }
        return false;
        */

        return true;
    }

    protected override void InvokeActionInternal(ItemInfo itemInfo, ItemUser itemUser)
    {
        var playerInventoryIdentifier = InventorySystemManager.GetInventoryIdentifier(m_playerInvetoryID);
        var playerInventory = playerInventoryIdentifier.Inventory;

        var skillInventoryIdentifier = InventorySystemManager.GetInventoryIdentifier(m_skillInvetoryID);
        var skillInventory = skillInventoryIdentifier.Inventory;

        playerInventory.RemoveItem(itemInfo);
        skillInventory.AddItem(itemInfo);

        /*
        Debug.Log("playerInventory" + playerInventory);
        Debug.Log("skillInventory" + skillInventory);
        */
    }
}
 

Attachments

  • Screenshot 2022-02-22 194234.jpg
    Screenshot 2022-02-22 194234.jpg
    431.1 KB · Views: 7
Last edited:
and another question, please.
in the item description, there is a category attribute view set.
is there another version but for item definition and not item category?
 
The errors happen when you are trying to move the item between equipped and unequipped but it does not exist in the other item collection.

In the first error your item cannot be found within the equippable collection.
In the second error your item cannot be found within the default collection.

Also can you confirm you are using the latest UIS/UCC and integration packages? your error lines are different from mine. If you don't have the latest make sure to download it (We may also push an update this week or the next with some minor bug fixes if you prefer waiting)

I'm wondering if the issue is related to using two seperate Inventories...
Do keep in mind that using a spell is asynchronous. It takes time for the spell to start and finish. So if you move the item to another inventory before the spell has finished playing it could cause errors like those.
So it's possible that you are trying to use the item by equipping it while you're already using the item. If you can reproduce this in the demo scene do let me know so I can try it out for myself (be sure to use the latest version).

and another question, please.
in the item description, there is a category attribute view set.
is there another version but for item definition and not item category?
No, There is no reason to. ItemDefinitions within a category all have the same attributes, so there is no need to have an itemdefinition attribute view set.
Simply use the category attribute view set and create an Attribute view which proceduraly displays the attribute value of your item/itemDefinition/itemCategory however you wish.
Check the UIS demo scene, you'll see we use it to display Attack, Defense, Health, etc...
You can also create custom ItemViewModules instead of AttributeViewModules if you prefer. They are quite similar, item views display information about an item, attribute view display information about an attribute. Since Items contain attributes you can use item view modules to display information about attributes too. For example that's what I do when I display the item icon within an item view.

I hope that helps
 
I'm sorry for the late reply.
Also can you confirm you are using the latest UIS/UCC and integration packages? your error lines are different from mine. If you don't have the latest make sure to download it (We may also push an update this week or the next with some minor bug fixes if you prefer waiting)
sadly I'm not ... upgrade such systems and with their integration is not an easy job and I'm afraid that I can break the systems.
but no worries I will update it to the last version.
So it's possible that you are trying to use the item by equipping it while you're already using the item.
so the solution is to wait for the magic shot to finish then the item moves from one inventory to another.
but if what u r saying is true. so how does the same thing happen in the default inventory? I mean, when u use the spell, it automatically removes and added to the main inventory (Like in the demo, I can abuse the system by clicking on it multiple times and it wouldn't break).

I was thinking to make a filter tab called skills inside the inventory. should this be enough?

If you can reproduce this in the demo scene do let me know so I can try it out for myself (be sure to use the latest version).
sorry, but what do u mean by reproduced?

No, There is no reason to. ItemDefinitions within a category all have the same attributes, so there is no need to have an itemdefinition attribute view set.
what I'm trying to achieve here is ... a skill that cost mana and other skills which cost another type of mana.
so I think the solution to this problem is to make another item category which is inherent from magic class then.
 
I was thinking to make a filter tab called skills inside the inventory. should this be enough?
You could have a skill itemCollection within the same Inventory as the rest of your items. And then use ItemCollection Filters to hide them in the different Inventory UI Grids.

sorry, but what do u mean by reproduced?
Reproduce means you can replicate (get the same result) within the demo scene. So open the Integration demo scene and try out the Fire Ball magic item. And if you find any bugs with it do let me know how you were able to get them. This is a lot easier for me to reproduce/replicate the bug because I can follow your guided steps from the exact same start point.

what I'm trying to achieve here is ... a skill that cost mana and other skills which cost another type of mana.
so I think the solution to this problem is to make another item category which is inherent from magic class then.
Yes that's a good idea if you do not have a ton of mana types and if you aren't going to change the type of mana often.
Otherwise the solution is to create a custom Attribute View Module script that takes in the mana type attribute and changes the icon/color/etc..
 
You could have a skill itemCollection within the same Inventory as the rest of your items. And then use ItemCollection Filters to hide them in the different Inventory UI Grids.
well, I will stick to this method ... doing a separate inventory seems to be a quite drag process.

I'm so grateful for ur assistance thus far.
 
Top