Announcement

Collapse
No announcement yet.

Action RPG Inventory System

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

    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 .

    Comment


      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.

      Comment


        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.

        Comment


          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.

          Comment


            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.

            Comment


              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
              lunybunny.com
              lunybunny.com

              Comment


                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.
                Marketplace Asset (Released): FPS Battle Royale Template with Gamesparks

                Twitter: Spyke_Dev | Discord

                Main Website

                Comment


                  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.

                  Comment


                    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.

                    Comment


                      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.

                      Comment


                        Hey everyone,

                        I'm sorry for the lack of responses the past week.

                        Just a quick update, the current version of the Action RPG Inventory System is already compatible with 4.12.
                        (I would personally hold off updating, because as of 4.12.1 many people are still experiencing crashes compiling blueprints and other little bugs introduced in 4.12)

                        I have also submitted the next update that removes all the Make InventoryItem nodes so that when you make changes to your InventoryItem structs you won't have to jump through a few places and hook up your new variables between the Break/Make InventoryItem nodes.

                        The update should be released by Epic whenever they feel like it.

                        Version 1.6 - Submitted June 8th 2016
                        ------- Update Notes -------

                        This update replaces all the Make InventoryItem nodes in the project with Set Member in struct nodes.

                         
                        Spoiler


                        With this update I will be removing support from 4.10 as 4.11 is a better base version and will keep supporting 4.11+ until a new version comes along that is a very drastic change.
                        Last edited by Pirate; 08-22-2016, 03:22 PM.
                        \\VANGUARD INTERACTIVE

                        Marketplace - Action RPG Inventory System | Multiplayer TopDown Kit | Advanced Social System
                        Multiplayer TopDown Kit Tutorials - Merging The Action RPG Inventory System | Removing the Fog of War
                        Action RPG Inventory Tutorials - Merging Into Your Project | Adding New Items | FPS Controls w/ UI Mode Toggle

                        Comment


                          Fantastic job, Pirate. I picked up this and your social system, and I'm getting to grips with using them. I've been adding new item types to expand out for what I need. One of these is an editable book (which I've been having multiple issues with, but have almost finished work on.)
                          I've got one remaining issue...
                          I can't seem to serialise the data back to the item in the inventory.

                          *removing the wall of picture as part of the edit*

                          *EDIT*
                          Heh. Well, to answer myself it's a limitation of my knowledge. For anyone else running into this same issue... "SetInventoryItem" is the solution.
                          Attached Files
                          Last edited by Dahak; 06-11-2016, 10:54 PM.

                          Comment


                            Is 4.12 updated?
                            Our Ghosts of War - The World's First World War 2 Survival Game
                            Twitter: @ourghostsofwar

                            Comment


                              Originally posted by PixelPerfectPolygons View Post
                              Is 4.12 updated?
                              I have been assured by Epic the most recent update I submitted will be updated tomorrow and this is when they will update it to download for 4.12. The current version will upgrade from 4.11 to 4.12 without issues.
                              \\VANGUARD INTERACTIVE

                              Marketplace - Action RPG Inventory System | Multiplayer TopDown Kit | Advanced Social System
                              Multiplayer TopDown Kit Tutorials - Merging The Action RPG Inventory System | Removing the Fog of War
                              Action RPG Inventory Tutorials - Merging Into Your Project | Adding New Items | FPS Controls w/ UI Mode Toggle

                              Comment


                                I have a few questions.

                                1. How do I get information how much amount of an item is in the inventory.
                                2. How do I get information which item is on which equip slot equipt.
                                3 How do I remove items from inventory that are inside inventory current with amount.
                                4 How do I add items to the inventory that is an default item?

                                Hope you can answer me those questions because I really need these functions.

                                Cheers,
                                Bander

                                Comment

                                Working...
                                X