Announcement

Collapse
No announcement yet.

Action RPG Inventory System

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

  • replied
    Originally posted by Neutronux View Post
    Of course after the event. But all those names I wrote (Server_UseContainerItem, Server_MoveContainerItem, Server_TakeContainerItem, Server_DepositContainerItem, Server_EquipFromContainer, Server_UnequipToContainer, Server_SplitContainerItem and Server_SplitItemFromContainer) are exactly such events. So I'm not sure why you say no. I'm even not sure why you placed this in an inventory event (instead of the container events) as the character can never run away from it's controller that keeps the inventory component (that's modified by server events) but I think I have to take a look to the inventory events as well afterwards. Probably some "IsDeadAndWouldTinkerAtInventory" prevention?

    My inventory is setup similar to the ARPG inventory but its not the same asset, anyways my "UseInventoryItem" is used for all types of inventory's ranging from Containers to Sub-Inventory's which is why i have more variables on mine, and i was just giving you an example, there's more than one way to add extra security find the best way for your project!

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    No just call the check before the function after the event
    Of course after the event. But all those names I wrote (Server_UseContainerItem, Server_MoveContainerItem, Server_TakeContainerItem, Server_DepositContainerItem, Server_EquipFromContainer, Server_UnequipToContainer, Server_SplitContainerItem and Server_SplitItemFromContainer) are exactly such events. So I'm not sure why you say no. I'm even not sure why you placed this in an inventory event (instead of the container events) as the character can never run away from it's controller that keeps the inventory component (that's modified by server events) but I think I have to take a look to the inventory events as well afterwards. Probably some "IsDeadAndWouldTinkerAtInventory" prevention?

    Leave a comment:


  • replied
    Originally posted by Neutronux View Post
    Yep but even this unfocus is only called from the client. So both safeguards (move away or lost focus) are in clients hand.
    The only safety that really works is on OnActorUse where the server checks (once) itself via a linetrace if that actor is true or some dream of a hacked client. However the server never checks this again (for all those container use events). If it's open then it's open forever until the client is in the mood to tell the server he should close it.




    I hope everybody would make this hack proof. Cheating sucks.




    I think this have to be included into Server_UseContainerItem, Server_MoveContainerItem, Server_TakeContainerItem, Server_DepositContainerItem, Server_EquipFromContainer, Server_UnequipToContainer, Server_SplitContainerItem and Server_SplitItemFromContainer.
    No just call the check before the function after the event, this inventory is only a framework so of course there will be some holes and features you will have to fill in on your own.
    Last edited by OverRated_AU; 02-07-2017, 09:18 PM.

    Leave a comment:


  • replied
    Originally posted by OverRated_AU View Post
    from memory i added in a safeguard so if the client lost focus on the viewing container it would auto close it
    Yep but even this unfocus is only called from the client. So both safeguards (move away or lost focus) are in clients hand.
    The only safety that really works is on OnActorUse where the server checks (once) itself via a linetrace if that actor is true or some dream of a hacked client. However the server never checks this again (for all those container use events). If it's open then it's open forever until the client is in the mood to tell the server he should close it.


    if you really wanted to make this hack proof
    I hope everybody would make this hack proof. Cheating sucks.


    all you would need to do is to call the GetUsableActor and get its inventory component and compare it to ContainerInventory before allowing any interaction.
    I think this have to be included into Server_UseContainerItem, Server_MoveContainerItem, Server_TakeContainerItem, Server_DepositContainerItem, Server_EquipFromContainer, Server_UnequipToContainer, Server_SplitContainerItem and Server_SplitItemFromContainer.

    Leave a comment:


  • replied
    Originally posted by Neutronux View Post
    Server_CloseContainer possibility to cheat? If you move then it's called (only) from the client on the server (which sets the CurrentContainer to 0 that's used later by the UseContainer events that run on authority). Shouldn't this be something that's called even from the server and run on the server to avoid a modified client just wipes this event and runs miles away and still got permission from the clueless server to loot the container from there (as the UseContainer is still valid on the Server if the bad Client did not tell the Server: Please close it for me)? Or did I oversee something here?
    Yes you are correct but a client shouldn't be able to move away from the Container, from memory i added in a safeguard so if the client lost focus on the viewing container it would auto close it, if you really wanted to make this hack proof all you would need to do is to call the GetUsableActor and get its inventory component and compare it to ContainerInventory before allowing any interaction.

    Leave a comment:


  • replied
    Server_CloseContainer possibility to cheat? If you move then it's called (only) from the client on the server (which sets the CurrentContainer to 0 that's used later by the UseContainer events that run on authority). Shouldn't this be something that's called even from the server and run on the server to avoid a modified client just wipes this event and runs miles away and still got permission from the clueless server to loot the container from there (as the UseContainer is still valid on the Server if the bad Client did not tell the Server: Please close it for me)? Or did I oversee something here?

    Leave a comment:


  • replied
    Originally posted by Pirate View Post
    Also everyone it looks like they fixed one of the bugs in Unreal 4.15.

    You can now set your Container/Inventory/Equipment widgets back to enable window drag by default.
    They fixed the UMG bug that was causing the Container window to break and stop working after being dragged.

    Go into each of the widgets and simply set the bool IsWindowLocked to false by default.
    Hello
    What I did is:
    replace the Icon (image) for a Border. The Icon (image) wouldnt have the MouseButtonDoubleClick event (aka only allows MouseDown Events), yet the Border had :P, so replacing those "Palette" items did the trick. After that just replug the EventBinds (Mousedown, MouseUp, MouseMove, MouseDownDoubleClick), make sure the doubleclick was checking if was leftmouse, remove the bool of the RightMouseclickDown and make a new one for the double click and so on. It seems a better idea to keep it as a border I guess, since it has all the features image has and the mouseup/down/move/doubleclick events.

    I'll check again the mesh thingy.
    Last edited by Namesis; 02-03-2017, 04:13 PM.

    Leave a comment:


  • replied
    Also everyone it looks like they fixed one of the bugs in Unreal 4.15.

    You can now set your Container/Inventory/Equipment widgets back to enable window drag by default.
    They fixed the UMG bug that was causing the Container window to break and stop working after being dragged.

    Go into each of the widgets and simply set the bool IsWindowLocked to false by default.

    Leave a comment:


  • replied
    Originally posted by Namesis View Post
    I tried setting the inventory_slot with doubleclick instead of 1-rightClick. However, it seems that DoubleClick (right) works fine, but Left is never triggered. I tried searching around but couldnt find anything. I made a copy of a clean project and tried removing some functions (MouseDown/Up, Drag, Move, etc, as someone said on previous previous preeevious posts) leaving only mousedowndoubleclick, but still the double right click would trigger, the double left click wouldnt. Any insights [MENTION=39476]Pirate[/MENTION] .

    Another question: is it possible to make the mesh targetable, instead of the target capsule? in the editor it works, but on dediserver it doesnt. im starting to think that maybe the engine doesnt support this, but ill keep looking though
    If you look in the Inventory Slot Widget you would just need the Left click action to do the same as the right click which is to call the USE ITEM logic from the IMC. Not sure what you are doing but it is just as straight forward as having the UMG logic bound the same. The Drag shouldn't be interfering with the Left click as the drag only starts if you are holding and dragging.

    I don't see why not, again I'm not changing how Unreal works in the Demo. You would just want to make the mesh have the collision properties needed for the trace to hit it and then remove those settings from the Capsule.

    Leave a comment:


  • replied
    I tried setting the inventory_slot with doubleclick instead of 1-rightClick. However, it seems that DoubleClick (right) works fine, but Left is never triggered. I tried searching around but couldnt find anything. I made a copy of a clean project and tried removing some functions (MouseDown/Up, Drag, Move, etc, as someone said on previous previous preeevious posts) leaving only mousedowndoubleclick, but still the double right click would trigger, the double left click wouldnt. Any insights [MENTION=39476]Pirate[/MENTION] .

    Another question: is it possible to make the mesh targetable, instead of the target capsule? in the editor it works, but on dediserver it doesnt. im starting to think that maybe the engine doesnt support this, but ill keep looking though
    Last edited by Namesis; 02-02-2017, 11:37 PM.

    Leave a comment:


  • replied
    Originally posted by irvx View Post
    Very interested in purchasing this, as a novice in unreal I'm wondering before purchasing on 2 things, 1) I've see that you hold right click to look around, how would you disable this (is it easily done) and 2) would you be looking into creating a shop system or would I require starting my learning in unreal earlier than I had planned?

    Sorry for my noob-esk pre-purchase questions, you're work looks amazing.
    There is a tutorial video FPS Controls w/ UI Mode Toggle in my signature that will toggle the UI so your movement is more fps like normally.

    I will not be adding a shop system to the Inventory System, but regardless you will be required to learn unreal as you can't really make a game without learning .
    Plenty of people have easily created their own shop systems and there are a few on the marketplace. All assets on the marketplace will require some level of understanding of unreal if you want to start making changes and adding new features.

    Leave a comment:


  • replied
    Very interested in purchasing this, as a novice in unreal I'm wondering before purchasing on 2 things, 1) I've see that you hold right click to look around, how would you disable this (is it easily done) and 2) would you be looking into creating a shop system or would I require starting my learning in unreal earlier than I had planned?

    Sorry for my noob-esk pre-purchase questions, you're work looks amazing.

    Leave a comment:


  • replied
    Originally posted by Tylrin View Post
    I made a new tutorial of a System,
    that hides the Hotbar when not useing after a few seconds.

    https://youtu.be/qtzzKHYVGkg

    Originally posted by Tylrin View Post
    Looping Through Hotbar

    https://youtu.be/Xzm-alw3YZA
    Thank you for sharing

    Leave a comment:


  • replied
    Looping Through Hotbar

    https://youtu.be/Xzm-alw3YZA
    Last edited by Tylrin; 01-29-2017, 04:13 PM.

    Leave a comment:


  • replied
    Originally posted by Mathusala View Post
    As always you are quick with a helpful response. Thank you for the insight, I think what I am going to do is just try to build out from your extension with gathering, crafting, hunger, and time of day systems. I wish there was a better way for the products in the market place to play nice together but I understand why it is the way it is. Thank you.
    Hey Mathusala... I was pointed to your post in here by another community member... I'm the creator of the Multiplayer Survival Game Template so I can offer a little insight into things here.

    The MSGT is all modular, so you can disable each individual system in the template easily enough. This includes the inventory - you can simply not include that module in your controller. All the systems (hunger, thirst, etc.) have their own functions ro add and remove resources, as well as to increase/decrease drain speeds as appropriate. The things that you would lose by disabling the inventory is the stuff that is directly tied to the inventory, such as crafting, the hotbar, the armor system and so on. Obviously, some of this is covered by the excellent ARPG so you would be able to make use of it there. But it still could potentially save you a lot of time from recreating all the base survival systems yourself. If you'd like anymore info or clarification on this, please feel free to PM me and I can go into more detail. Don't want to fill up [MENTION=39476]Pirate[/MENTION]'s thread here with stuff about my own asset :P

    Leave a comment:

Working...
X