Announcement

Collapse
No announcement yet.

Action RPG Inventory System

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by exphrasis View Post
    Thanks a lot for taking the time to explain all this. I'm still struggling to figure out where to set my modified durability. Tried in a couple different ways but still no success.

    For now I have everything working on the UI side, and loot to world item still keeps its durability.
    If I understood well, what you're suggesting to do is to (ignoring events from the controller for now), first set durability in equipmentinventorycomponent>SetInventoryItem.

    Then, change that variable and set it (to add or remove values to it dynamically), in inventorymanagercomponent>updateequippedstats (I imagine ?).

    I also don't understand why you added Inventory Slot, since items alreay have ' equipment slot ' by default in the item list ?

    Thank you again for taking the time to share all this with us and I appreciate you going out of your way to help.
    Ill try to explain how my logic works a bit more to try to help, I set the items durability inside the items actor then pass it back to the inventory now this probably isn't the best way, to save on bandwidth you mite only want to update it in the inventory when you open it, As you can actually see the Durability on my items i need to update it to display the current Durability, but as i removed the default hotbar i made my own which is a extension of the characters inventory, I also removed the main-hand slot and inside the equipment inventory component i do a on-rep of the selected item rather than than a on-rep of the main-hand skeletal mesh.

    I added a Inventory Slot variable to the item so i can return the slot number to locate the item in the characters inventory, inside the item actor when its spawned it the i can cast the update the item directly using the Inventory Slot variable, the equipment slots are only used to restrict items to a slot but you could make a simple function to return the inventory item slot using them seeing each type is limited to a inventory slot, but for my type of inventory this wont work as the equipped item can be in a number of slots.

    Its no problem i don't mind helping people willing to learn .
    Last edited by OverRated_AU; 06-08-2016, 04:53 AM.

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    The only reason the item would be spawning under the ground to start with, would be because the Random drop location is probably isn't getting the right actors location, and why are breaking the transform inside the function? you can just adjust the location within the Randomize Drop Location Function using the "Drop At Our Feet location"


    [MENTION=60211]exphrasis[/MENTION]

    When you get more in-depth you can do some think like this create a new structure to hold your data your passing to the world item then update the item to store the passed data.

    Now if you place items in the world your data will be set to whats in the items blueprint is rather than the item table for the following variables, you can add a check if you wish to use that data still or you can also add random stats for placed items to, what i did was create the random stats function in my blueprints library, the item list in my game will have the highest grade items so when you do weapon spawning you can spawn the best version of that item, when the world generated items will be random.


    [ATTACH=CONFIG]96550[/ATTACH]
    Thanks a lot for taking the time to explain all this. I'm still struggling to figure out where to set my modified durability. Tried in a couple different ways but still no success.

    For now I have everything working on the UI side, and loot to world item still keeps its durability.
    If I understood well, what you're suggesting to do is to (ignoring events from the controller for now), first set durability in equipmentinventorycomponent>SetInventoryItem.

    Then, change that variable and set it (to add or remove values to it dynamically), in inventorymanagercomponent>updateequippedstats (I imagine ?).

    I also don't understand why you added Inventory Slot, since items alreay have ' equipment slot ' by default in the item list ?

    Thank you again for taking the time to share all this with us and I appreciate you going out of your way to help.

    Leave a comment:


  • replied
    Originally posted by lunyBunny View Post
    Hi [MENTION=39476]Pirate[/MENTION]. I figured out the problem. The objects always were spawning under the terrain and below the ground. Then I added 45 more unreal units up in the Z axis connected in 'randomizedroplocation' node inside 'DropIten' function in 'InvetoryManagerComponent'. I do not know if it's the best way to achieve this, but it worked.
    The only reason the item would be spawning under the ground to start with, would be because the Random drop location is probably isn't getting the right actors location, and why are breaking the transform inside the function? you can just adjust the location within the Randomize Drop Location Function using the "Drop At Our Feet location"


    [MENTION=60211]exphrasis[/MENTION]

    When you get more in-depth you can do some think like this create a new structure to hold your data your passing to the world item then update the item to store the passed data.

    Now if you place items in the world your data will be set to whats in the items blueprint is rather than the item table for the following variables, you can add a check if you wish to use that data still or you can also add random stats for placed items to, what i did was create the random stats function in my blueprints library, the item list in my game will have the highest grade items so when you do weapon spawning you can spawn the best version of that item, when the world generated items will be random.


    Click image for larger version

Name:	Untitled-1.jpg
Views:	1
Size:	227.1 KB
ID:	1107833
    Last edited by OverRated_AU; 06-07-2016, 08:57 AM.

    Leave a comment:


  • replied
    Hi [MENTION=37744]ToxinGaming[/MENTION]
    I'd love testing his theory, you could demonstrate the node sequence using a screenshoot or a better explanation. I tried using a 'timer' function connected on the end of the 'eventBeginPlay' to try bypassing the 'event tick'. But I do not know what you mean by 'every X (<.05)'. This is an Branch using conditional 'float < float'? And what kind of timer function?


    -luny
    In your Set Timer by Function Name node, there is a time float that sets how often to run the function. That is what I meant by setting that value to 0.05 or less, but it actually should just be set to every couple of frames.

    But I actually tried testing this out on the default Inventory Player Controller and the default map that comes with the pack. It didn't seem to make a difference at all, so I would just ignore the timer function and keep it on the tick. The main reason you would want to take it off the tick function is that if you actually want to be able to stop and start the hit scans to save some client actions.

    Leave a comment:


  • replied
    Originally posted by Pirate View Post
    Make sure the item has IsDroppable set to True and a World Mesh assigned in your ItemList DataTable.


    Hi [MENTION=39476]Pirate[/MENTION]. I figured out the problem. The objects always were spawning under the terrain and below the ground. Then I added 45 more unreal units up in the Z axis connected in 'randomizedroplocation' node inside 'DropIten' function in 'InvetoryManagerComponent'. I do not know if it's the best way to achieve this, but it worked.

    Click image for larger version

Name:	OFecvHW.jpg
Views:	1
Size:	317.8 KB
ID:	1107776


    Originally posted by ToxinGaming View Post
    I think that in order to increase your frame rate, you will want to take what happens in the Event Tick in the InventoryPlayerController (along with removing the delay node) and put it into a function that operates on a timer so that every X (< .05) seconds it calls the Client Get Usable Actor Focus function, and start that timer at the end of the Event Begin Play.

    This is only theoretical, as I don't know if it will actually increase your frame rate, but I always heard that putting something onto Event Tick would almost always decrease your frame rate.


    Hi [MENTION=37744]ToxinGaming[/MENTION]
    I'd love testing his theory, you could demonstrate the node sequence using a screenshoot or a better explanation. I tried using a 'timer' function connected on the end of the 'eventBeginPlay' to try bypassing the 'event tick'. But I do not know what you mean by 'every X (<.05)'. This is an Branch using conditional 'float < float'? And what kind of timer function?


    -luny

    Leave a comment:


  • replied
    Originally posted by exphrasis View Post
    Yeah I was thinking of doing that with the bones ! What I meant is I can't figure out how to grab a specific item's durability and modify it. For instance say ' get equipped actor in head> get that actor's durability> modify the durability ' .

    The bench is neat, but it can be a pain to use stuff like that if there's the possibility of other players being around.
    Create a function in your player controller that can handle this and shot it back to the inventory manager component and cast to it from your character if you need to, If your using actors for armor as well you could set a variable to the following item equipped, you can do this in the equipment inventory component where it sets the mesh, I probably will only use a actor for main-hand you can still set durability on a mesh only item, what you need to do is create a function that handles setting the durability on both the actor and the UMG version of the item, what i did to save on loops was add a variable to my item list called Inventory Slot then in added item i grab the slot and set it on the item, Now this is handy as you can just break the item and get its location without any looping, So your function just wants to get the item change its durability and then adds it over the top of your old item, and depending on its durability do your own logic like damage Nerf or destroy the item, handle that in your weapon actor or in the player controller for mesh based items.


    Just a note make sure every one adds in a Is Falling check on the Input: Use Actor(Usable/Pickup/Container) or in mid air you can stop the character if you open a container lol.
    Last edited by OverRated_AU; 06-06-2016, 08:34 AM.

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    A great way to apply durability damage is to use the skeleton bones of the character, or you could setup collision boxes as well, I'm yet to set this up but i mite end up using Ramas Melee Weapon Plugin seeing its pretty much done for you, So you could adding some logic for which bones effect each part of equipment you have equipped.

    Yeah i think i mite go with repair kits but i do like the bench idea as well.
    Yeah I was thinking of doing that with the bones ! What I meant is I can't figure out how to grab a specific item's durability and modify it. For instance say ' get equipped actor in head> get that actor's durability> modify the durability ' .

    The bench is neat, but it can be a pain to use stuff like that if there's the possibility of other players being around.

    Leave a comment:


  • replied
    Originally posted by exphrasis View Post
    Yeah that did the trick. I ended up just duplicating the item amount and made an item durability macro and that worked as well. Still figuring out how to apply durability depending on which part is hit and depending on how long you have it equipped.

    Repair kits are actually a great idea ! As long as they're not a pain to craft and/or can be relatively easy to find, but then again that depends on how fast your items wear off I guess. I was having a discussion with somebody else on my team about how 'fun' repairing items can be or how painful it can be, depending on how it's set up. Definitely going to playtest that a ton hah !
    A great way to apply durability damage is to use the skeleton bones of the character, or you could setup collision boxes as well, I'm yet to set this up but i mite end up using Ramas Melee Weapon Plugin seeing its pretty much done for you, So you could adding some logic for which bones effect each part of equipment you have equipped.

    Yeah i think i mite go with repair kits but i do like the bench idea as well.

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    Make sure in the World Actor In Update Item Amount you also change that to also update the durability as your only passing the durability variable but nothing is actually setting it.

    For the repairing i mite ether have repair kits which you can just drag onto a item or ill mite add logic to my tool bench so you can repair with it not sure yet .
    Yeah that did the trick. I ended up just duplicating the item amount and made an item durability macro and that worked as well. Still figuring out how to apply durability depending on which part is hit and depending on how long you have it equipped.

    Repair kits are actually a great idea ! As long as they're not a pain to craft and/or can be relatively easy to find, but then again that depends on how fast your items wear off I guess. I was having a discussion with somebody else on my team about how 'fun' repairing items can be or how painful it can be, depending on how it's set up. Definitely going to playtest that a ton hah !
    Last edited by exphrasis; 06-05-2016, 08:51 PM.

    Leave a comment:


  • replied
    Originally posted by exphrasis View Post
    f
    Everything is working pretty well, as you said I'm having that issue when I drop items. Seems like the stats arn't carrying over when dropped. I linked my 'current durability ' in item to world item as you mentioned, but still having the same issue.
    I added a variable in world actor and linked it as such as well. :
    Make sure in the World Actor In Update Item Amount you also change that to also update the durability as your only passing the durability variable but nothing is actually setting it.

    For the repairing i mite ether have repair kits which you can just drag onto a item or ill mite add logic to my tool bench so you can repair with it not sure yet .

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    For the durability i incorporated it into the loot lists, what i did was in the item list i added a durability and a Max durability the max is needed when your creating the UMG logic as well, In the Loot Actor in GetRandomLootItems i added a GetRandomItemStats in here i did some random logic using the item stats, I also added some new variables to the loot lists like Min/Max grade and grade chance, To handle durability you can do this in a few ways from the player controller if its only a mesh based weapon or within the weapon if its a actor based weapon, I also added a hardness variable to the Usable Actor this will be used to apply different durability damage to your weapon if its a melee type, You also need to update the inventory item to world item and make sure you added your new stats you wish to carry over or when you pick your item up after dropping it the stats will just be set to the item list version of the weapon, In the next two weeks ill be working on some repair logic I'm still thinking up ideas on how i want this to be handled. Please let me know if i have missed any info you need.
    f
    Everything is working pretty well, as you said I'm having that issue when I drop items. Seems like the stats arn't carrying over when dropped. I linked my 'current durability ' in item to world item as you mentioned, but still having the same issue.
    I added a variable in world actor and linked it as such as well. :

    Click image for larger version

Name:	durability.jpg
Views:	1
Size:	663.2 KB
ID:	1107709

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    For the durability i incorporated it into the loot lists, what i did was in the item list i added a durability and a Max durability the max is needed when your creating the UMG logic as well, In the Loot Actor in GetRandomLootItems i added a GetRandomItemStats in here i did some random logic using the item stats, I also added some new variables to the loot lists like Min/Max grade and grade chance, To handle durability you can do this in a few ways from the player controller if its only a mesh based weapon or within the weapon if its a actor based weapon, I also added a hardness variable to the Usable Actor this will be used to apply different durability damage to your weapon if its a melee type, You also need to update the inventory item to world item and make sure you added your new stats you wish to carry over or when you pick your item up after dropping it the stats will just be set to the item list version of the weapon, In the next two weeks ill be working on some repair logic I'm still thinking up ideas on how i want this to be handled. Please let me know if i have missed any info you need.
    Thanks so much for the quick reply ! That's super helpful. I already had max durability and durability in the UMG side, but wasn't too sure where to put the rest so it would make sense. I'll give it a go !

    For the repair system, since you've already got ressources and all that, perhaps adding something in your furnace where you can drop the required ressources or tools you need for the repair in one tab and the item to repair in the other could be neat if that makes sense ?
    I'm personally a fan of simplicity so I'd probably just add a right click on the item => repair ? and show how much ressources you lose if you do accept the repairs.

    Leave a comment:


  • replied
    Originally posted by exphrasis View Post
    Crazy how fast you're tackling all this. feels like every week you've got full new awesome systems in your project
    I wanted to ask you how you tackled the durability for items ? I've been messing around with that but I'm unsure where to build that in a clean way if that makes sense.
    For the durability i incorporated it into the loot lists, what i did was in the item list i added a durability and a Max durability the max is needed when your creating the UMG logic as well, In the Loot Actor in GetRandomLootItems i added a GetRandomItemStats in here i did some random logic using the item stats, I also added some new variables to the loot lists like Min/Max grade and grade chance, To handle durability you can do this in a few ways from the player controller if its only a mesh based weapon or within the weapon if its a actor based weapon, I also added a hardness variable to the Usable Actor this will be used to apply different durability damage to your weapon if its a melee type, You also need to update the inventory item to world item and make sure you added your new stats you wish to carry over or when you pick your item up after dropping it the stats will just be set to the item list version of the weapon, In the next two weeks ill be working on some repair logic I'm still thinking up ideas on how i want this to be handled. Please let me know if i have missed any info you need.
    Last edited by OverRated_AU; 06-04-2016, 11:18 AM.

    Leave a comment:


  • replied
    Crafting

    Originally posted by OverRated_AU View Post
    [MENTION=331197]Lord Caine[/MENTION] i would think about a more generic crafting system which just takes items from your inventory rather than some type of sub-inventory.

    This is what i have been working on using the ARPG Inventory.


    Hi Overrated,

    That is exactly what my intentions are. I couldn't figure out how to get the item icon from the inventory to display in the hud. I finally figured that out this morning. I basically copied one of the hotbar slots and figured out what will was doing. My crafting system is going to be very simple to start. I will take just two items to make a third.

    Regards,

    Arthur

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    [MENTION=331197]Lord Caine[/MENTION] i would think about a more generic crafting system which just takes items from your inventory rather than some type of sub-inventory.

    This is what i have been working on using the ARPG Inventory.

    Crazy how fast you're tackling all this. feels like every week you've got full new awesome systems in your project
    I wanted to ask you how you tackled the durability for items ? I've been messing around with that but I'm unsure where to build that in a clean way if that makes sense.

    Leave a comment:

Working...
X