Announcement

Collapse
No announcement yet.

Point and Click Adventure Toolkit

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

    #76
    Hey
    I've hit a bit of a wall where if I add an inventory item using Blueprint, it doesn't update the Inventory UI.

    I have an example where I pick up a coat and it adds the coat item to my inventory. In my case, when the character picks up the coat, he should also get another inventory item - a wallet - that he finds in the pockets, so I want 2 inventory items added to the player, the coat and the wallet. In the BP for the coat, I have an override for Pickup where I go to a Get PNC Character node and split out a Recieve Item node and put in "wallet" in the item name. It seems like the inventory actually has the wallet as I split out a print statement to see my inventory, but the UI doesn't update to display it.

    Is there something I have to do to update the inventory with the new item, or is there another way to do this?

    Here's my full Pickup Function

    EDIT: I found the fix for this. In the forest demo, the shopkeeper gives the player a Match, so looking through his blueprint I saw that in order to add an item to the player's inventory you need to Get PNC Controller and then use Add Inventory Item from that controller instead of directly from the Actor's Blueprint.
    Last edited by dbokser; 09-23-2020, 03:16 AM.

    Comment


      #77
      UE4.25.3 Support Released
      Hi All,
      Additional Support for UE4.25.3 has been added and released on the marketplace.

      This update is to address some issues with packaging the project for both packaging and running the packaged build.

      The update is focused around refactoring some code to workaround engine issues/limitations. This had been introduced due to some of the new platform changes being made over the past few releases.

      Changes:
      • Enabled Event Driven Loader in the default project settings: With this disabled, some of the animation compression setting assets were not being properly loaded after packaging a build. Enabling this has resolved this issue and should no longer assert when running a packaged build.
      • Collapsed BPFL_SaveGameHelpers into BPFL_SaveGame function libraries: With the Event Driven Loader Enabled, there were additional package build issues relating to cross function library dependencies causing Cycle Node errors in the build process. Moving these helpers in to the same function library has resolved this issues. If your own projects make use of these libraries elsewhere, you should be able to replace missing nodes with the same node but from the new library location.
      • Moved Advanced Cursor update functionality to the Player Controller: The Advanced Cursor was also causing some build issues with the event driven loader enabled. This has been addressed by moving the Cursor update functionality back into the player controller tick update. Part of this change was also refactoring and cleaning up the code to be clearer easier to work from an external class. This change also no longer requires the Software cursor to be removed from the project settings when running on mobile devices, however this may still be ideal for mobile projects.
      To see what has changes in this update, simply run "Find In Blueprints" (from Menu -> Window -> Find In Blueprints menu) and Search the Project for "Update 1.2". This should show you a bunch of comments and descriptions for the changes.

      If there are any further issues, feature requests, or regressions, please don't hesitate to reach out to the support email: aaronscott.marketplace@gmail.com

      Aaron
      CCG Toolkit | Mutliplayer Card Game Framework: On the Marketplace | Support Thread

      Point and Click Adventure Toolkit | Adventure Game Framework: On the Marketplace | Support Thread

      Comment


        #78
        I was trying to generate a build in UE 4.25.3 and I found out the crash and fortunately I checked and you had the fix ready to help me, thanks!

        I have one question related to the engine that I couldn't find any solution checking the forum or the documentation. I'm trying to create a gameplay puzzle that happens across different Levels (e.g. something happen in Level 1 and that allows to unlock a door in Level 2). I'm using StateStrings to persist then something happens and track the progress of the game, but since the StateStrings are isolated per Level I can't use them for create a puzzle between different Levels (following the example: I add a StateString in Level 1 indicating that the first event happened and I want to check that StateString in Level 2). I see that I can use the function `Get Scene State by Name` and set there a specific SceneName to check for their StateStrings, but I'd want a way to do it more generic, like having global StateStrings across all the levels. Because there are some puzzles where I don't want to be checking the SceneName of a specific Level but check a StateString independing on the Level that was created. Is that possible? (I hope I explained it well..) Thanks!

        Comment


          #79
          Originally posted by fegabe View Post
          I was trying to generate a build in UE 4.25.3 and I found out the crash and fortunately I checked and you had the fix ready to help me, thanks!

          I have one question related to the engine that I couldn't find any solution checking the forum or the documentation. I'm trying to create a gameplay puzzle that happens across different Levels (e.g. something happen in Level 1 and that allows to unlock a door in Level 2). I'm using StateStrings to persist then something happens and track the progress of the game, but since the StateStrings are isolated per Level I can't use them for create a puzzle between different Levels (following the example: I add a StateString in Level 1 indicating that the first event happened and I want to check that StateString in Level 2). I see that I can use the function `Get Scene State by Name` and set there a specific SceneName to check for their StateStrings, but I'd want a way to do it more generic, like having global StateStrings across all the levels. Because there are some puzzles where I don't want to be checking the SceneName of a specific Level but check a StateString independing on the Level that was created. Is that possible? (I hope I explained it well..) Thanks!
          Not exactly sure about global StateStrings but you should be able to just use "add state strings to scene" in level 1 and then check it in your other level with "branch" and "container" for example to unlock a door in level 2. I usually work with inventory items if I want something to effect all levels without using strings but maybe that's not a solution for your problem.

          Comment


            #80
            Originally posted by bandcrasher View Post

            Not exactly sure about global StateStrings but you should be able to just use "add state strings to scene" in level 1 and then check it in your other level with "branch" and "container" for example to unlock a door in level 2. I usually work with inventory items if I want something to effect all levels without using strings but maybe that's not a solution for your problem.
            I tried using "add state strings to scene" with an invented scene name like "global" but since this wasn't a real scene that was previously saved, it didn't work. I guess that I could tweak how internally is implemented to make it working but I wanted to ask if there was another way to properly solve the problem. I could check in level 2 if there is a StateString created in another level, but I'll need something more generic in the future, like in one level adding a StateString and in multiple other levels checking if that StateString was created regardless in which level was it done.

            What do you mean by "container"?

            Thanks for your reply!

            Comment


              #81
              Originally posted by fegabe View Post

              I tried using "add state strings to scene" with an invented scene name like "global" but since this wasn't a real scene that was previously saved, it didn't work. I guess that I could tweak how internally is implemented to make it working but I wanted to ask if there was another way to properly solve the problem. I could check in level 2 if there is a StateString created in another level, but I'll need something more generic in the future, like in one level adding a StateString and in multiple other levels checking if that StateString was created regardless in which level was it done.

              What do you mean by "container"?

              Thanks for your reply!
              Hey fegabe (and thanks for jumping in bandcrasher)

              You are right, state strings only work when they are tied to a specific level, OR the same scene manager is used across multiple levels.

              Level States should also be possible through the same methods, as long as the Scene Name is consistent across your project. here is an example for "General" that can be accessed by GetSceneStateByName().

              Click image for larger version

Name:	Capture.JPG
Views:	13
Size:	156.9 KB
ID:	1823877You can always create your own solution but this should work without actually being tied to a specific scene.

              Hope this helps!

              Aaron
              CCG Toolkit | Mutliplayer Card Game Framework: On the Marketplace | Support Thread

              Point and Click Adventure Toolkit | Adventure Game Framework: On the Marketplace | Support Thread

              Comment


                #82
                UE4.25.3 Update Resubmission

                Hi All,

                Just a quick update on the recent release. There were a couple of "missing" nodes from in the BP_SceneManagerBase blueprint due to the heavy refactoring of the Save Game Helpers and the silent failure of the change.

                An update has been submitted with this fixed, but for those who have recently pulled down the update, these changes can be easily changed locally.

                1. Open the BP_SceneManagerBase blueprint
                2. Navigate to the AddStateStringToScene() function, and find the missing space after the branch false execution, and add GetSceneStateByName() function and connect the outputs like shown below:
                Click image for larger version  Name:	AddStateString.JPG Views:	0 Size:	136.8 KB ID:	1823884

                3. Navigate to the RemoveStateStringFromScene(), and find the missing space after the branch false execution, and add GetSceneStateByName() function and connect the outputs like shown below:
                Click image for larger version  Name:	RemoveStateString.JPG Views:	0 Size:	149.0 KB ID:	18238854. And you are done!

                As always, please let me know If there are any further issues or feature requests. Support email: aaronscott.marketplace@gmail.com

                Aaron
                CCG Toolkit | Mutliplayer Card Game Framework: On the Marketplace | Support Thread

                Point and Click Adventure Toolkit | Adventure Game Framework: On the Marketplace | Support Thread

                Comment


                  #83
                  Originally posted by Prototype6143 View Post

                  Hey fegabe (and thanks for jumping in bandcrasher)

                  You are right, state strings only work when they are tied to a specific level, OR the same scene manager is used across multiple levels.

                  Level States should also be possible through the same methods, as long as the Scene Name is consistent across your project. here is an example for "General" that can be accessed by GetSceneStateByName().

                  Click image for larger version

Name:	Capture.JPG
Views:	13
Size:	156.9 KB
ID:	1823877You can always create your own solution but this should work without actually being tied to a specific scene.

                  Hope this helps!

                  Aaron
                  Thank you Aaron! I had a similar solution to the one you're proposing using the name of the first Level to load but creating and saving it before as you did its much better.

                  I love your asset by the way, it's a great way to also learn Unreal since it's really well done.

                  Regards

                  Comment

                  Working...
                  X