Announcement

Collapse
No announcement yet.

Advanced Sessions Plugin

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

    A word to the "Add or modify extra settings"-node:

    I think this node is meant to take the input at "settings array" and add the settings of the input array "New or changed settings". But if there is a setting with the same name but different value in these arrays, It´s just logical to take the value of the "New or changed settings"-array, isn´t it? Because at the moment, it quite seems to me, that there is the one of the "settings array" taken in this case :/

    Ofc i may be wrong with it, but taking a look at that is worth it anyway.
    And sry for bad english ^^

    Comment


      Originally posted by FriendlyFire1 View Post
      A word to the "Add or modify extra settings"-node:

      I think this node is meant to take the input at "settings array" and add the settings of the input array "New or changed settings". But if there is a setting with the same name but different value in these arrays, It´s just logical to take the value of the "New or changed settings"-array, isn´t it? Because at the moment, it quite seems to me, that there is the one of the "settings array" taken in this case :/

      Ofc i may be wrong with it, but taking a look at that is worth it anyway.
      And sry for bad english ^^

      It takes an input array and compares it to an output array that already exists, if the key is already in it, it overwrites the value, if it is not then it adds the key/value.

      It is to be used when the new/add array might not have all of the keys in it, it was made pretty much to be a faster way to add values to the settings array when changing options as you don't have use a blueprint array loop or anything, you just throw the new key at the function and array and let it handle overwriting or adding the value depending on if it already exists or not.

      For example of you have a drop down filter for searching for servers and change it from one value to another you can throw the new value with the key name into that node and let it handle changing the correct index.

      It might not be useful for everyone, but it doesn't have to be used.


      Consider supporting me on patreon

      My Open source tools and plugins
      Advanced Sessions Plugin
      VR Expansion Plugin

      Comment


        Originally posted by mordentral View Post
        It takes an input array and compares it to an output array that already exists, if the key is already in it, it overwrites the value, if it is not then it adds the key/value.

        It is to be used when the new/add array might not have all of the keys in it, it was made pretty much to be a faster way to add values to the settings array when changing options as you don't have use a blueprint array loop or anything, you just throw the new key at the function and array and let it handle overwriting or adding the value depending on if it already exists or not.

        For example of you have a drop down filter for searching for servers and change it from one value to another you can throw the new value with the key name into that node and let it handle changing the correct index.

        It might not be useful for everyone, but it doesn't have to be used.
        Yeah that´s how i understood the function of this node too. But what I mean is, if a key already exists, it isn´t overwritten by the new value i think.

        Comment


          Originally posted by FriendlyFire1 View Post
          Yeah that´s how i understood the function of this node too. But what I mean is, if a key already exists, it isn´t overwritten by the new value i think.
          You would have to use the output array currently, I just looked at it and I was using a workaround for what I thought was a blueprint limitation that I have found a solution to recently.

          I'll remake the function to edit the original array as well.


          Consider supporting me on patreon

          My Open source tools and plugins
          Advanced Sessions Plugin
          VR Expansion Plugin

          Comment


            Originally posted by mordentral View Post
            You would have to use the output array currently, I just looked at it and I was using a workaround for what I thought was a blueprint limitation that I have found a solution to recently.

            I'll remake the function to edit the original array as well.
            That´s also not what I mean (I doubt I can express myself right ^^)
            What I want to say is, if you have an array of settings, and you want a new array with one setting changed, and you put the original array in the "settings array"-input and just this one changed setting as an array in the "New or changed settings"-input, the output-array is equal to the original one, because changing settings doesn´t work right i think.

            As example:

            [key/value]

            Original array:

            [A/1], [B/2], [C/3] -> "settings array"

            changed setting:

            [B/5] -> "New or changed settings"

            the output should be:

            [A/1], [B/5], [C/3],

            but it is:

            [A/1], [B/2], [C/3]

            Hope, you got now, what I want to say

            Comment


              Ah, I get you now, and I also found the issue, I was missing a reference designation when iterating over the keys and it wasn't updating the original key.

              Will upload a corrected version, also I did no set it to overwrite with the original array, I realized that I had it not doing that on purpose so that the filter array could be kept seperate.

              *Edit* Ok rebuilt it with the change and uploaded.
              Last edited by mordentral; 01-11-2016, 04:45 PM.


              Consider supporting me on patreon

              My Open source tools and plugins
              Advanced Sessions Plugin
              VR Expansion Plugin

              Comment


                Nice, thank you for correcting it so fast!

                Comment


                  Any tutorials on how to use this ??

                  Comment


                    Hi mordentral,

                    I have a feature request for your plugin and I'm really curious if this could be easily implemented and what you guys think about it.

                    So when inviting other players via steam, at the moment the typical steam overlay is shown ingame. The invited player can accept the invitation via the steam chat. So far so good and this works like a charm

                    But I have a suggestion: Could you implement a custom event into your "Advanced Friends Game Instance" that fires if you are getting an invitation from another player and that contains the same inputs as "Event On Session Invite Accepted"? This would be really nice because with this event we could implement our own UMG's for accepting invitations instead of using the steam chat.

                    EDIT: Another thing came to my mind: Would it be possible to get the steam avatar of a friend and draw it into a UMG widget?

                    Thanks for your super awesome plugin and best regards,
                    Daniel
                    Last edited by polygon; 01-14-2016, 05:36 AM.
                    Daniel Mihajlovic |Freelance 3D Artist | Showreel

                    Comment


                      Hey man,
                      marvelous plugin you have there, I'll definetly use it, BUT is the 4.10 plugin compatible with the 4.11 preview?

                      Alternatively, can you be bothered to compile this for 4.11?

                      Comment


                        Originally posted by polygon View Post
                        Hi mordentral,

                        I have a feature request for your plugin and I'm really curious if this could be easily implemented and what you guys think about it.

                        So when inviting other players via steam, at the moment the typical steam overlay is shown ingame. The invited player can accept the invitation via the steam chat. So far so good and this works like a charm

                        But I have a suggestion: Could you implement a custom event into your "Advanced Friends Game Instance" that fires if you are getting an invitation from another player and that contains the same inputs as "Event On Session Invite Accepted"? This would be really nice because with this event we could implement our own UMG's for accepting invitations instead of using the steam chat.

                        EDIT: Another thing came to my mind: Would it be possible to get the steam avatar of a friend and draw it into a UMG widget?

                        Thanks for your super awesome plugin and best regards,
                        Daniel
                        I am pretty sure that accepting invites is not exposed to the subsystem layer or I would have already added it, I will double check though. As for the steam avatar, no, I can't do it directly through the subsystem interface currently.

                        I have had a lot of various requests for things that aren't possible directly through the subsystem interface though, I may just bite the bullet and extend the plugin to support more steam specific functions as it is the big dog of subsystems and already has a clean accessible API.

                        I'll let you know if I decide to go ahead and just add more functionality for steam with steam only nodes.

                        Originally posted by adipFTW View Post
                        Hey man,
                        marvelous plugin you have there, I'll definetly use it, BUT is the 4.10 plugin compatible with the 4.11 preview?

                        Alternatively, can you be bothered to compile this for 4.11?
                        I don't think there are any major changes at all with the subsystems with 4.11, the last hurdle that had me changing code was when they were still half and half returning const net ids for players and were converting them over little by little each patch.

                        It *should* compile just fine with 4.11, however I stopped supporting preview releases as I had to re-compile with each patch they add. The moment that the new version comes out (comes out during a work day every time) I will batch rebuild the plugin and upload for 4.11. Turn around is usually within the hour of a new engine version.
                        Last edited by mordentral; 01-14-2016, 09:31 AM.


                        Consider supporting me on patreon

                        My Open source tools and plugins
                        Advanced Sessions Plugin
                        VR Expansion Plugin

                        Comment


                          Ok, you opened Pandora's box now Polygon.....

                          I'll start taking more advanced Steam requests now, I figured out a decent workflow for Steam Specific additions to the plugin.

                          However I Added this new blueprint node today:

                          static UTexture2D * GetSteamFriendAvatar(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId, SteamAvatarSize AvatarSize = SteamAvatarSize::SteamAvatar_Medium);

                          Takes in the controller with the friend, the uniquenetid of the friend, and the requested avatar size, returns a UTexture2D with the avatar. I'll upload it for 4.10 after it finishes building.

                          *Edit* I also added the event that triggers when an invite is received, you accept it by joining the session, there got both requests done ;p. I went line by line through the subsystem before and didn't see an InviteReceivedDelegate and the signature of it doesn't match the others entirely so it might be a new addition that I missed in 4.10.




                          For testing I just made an Image on the hud widget and created the brush with the "CreateBrushFromTexture" node from the image widget using the texture2d that my node returns. Ez PZ.
                          Last edited by mordentral; 01-14-2016, 04:40 PM.


                          Consider supporting me on patreon

                          My Open source tools and plugins
                          Advanced Sessions Plugin
                          VR Expansion Plugin

                          Comment


                            Hi mordentral,

                            thank you very, very, veeery much for your effort! This is so super awesome and I will test it on monday! The possibility to display steam avatars is so extremely useful and now we can design really cool steam friend widgets! Yeeehaaa!

                            EDIT: A very small request came to my mind recently: Would it be possible to get your own Steam ID? (In order to place your own avatar on the home screen of the main menu for example)

                            Best regards,
                            Daniel
                            Last edited by polygon; 01-15-2016, 09:36 AM.
                            Daniel Mihajlovic |Freelance 3D Artist | Showreel

                            Comment


                              I've made a slight change to the AdvancedSessionsLibrary.cpp , because otherwise it crashes for me if I don't have started the steam-client beforehand:

                              Code:
                              void UAdvancedSessionsLibrary::UniqueNetIdToString(const FBPUniqueNetId& UniqueNetId, FString &String)
                              {
                              	const FUniqueNetId * ID = UniqueNetId.GetUniqueNetId();
                              
                              	if ( !ID )
                              	{
                              		UE_LOG(AdvancedSessionsLog, Warning, TEXT("UniqueNetIdToString received a bad UniqueNetId!"));
                              		String = "ERROR, BAD UNIQUE NET ID";
                              	}
                              	else
                              	{
                              		String = ID->ToString();
                              	}
                              }
                              Thanks for this great plugin!

                              Comment


                                Originally posted by Braindrain85 View Post
                                I've made a slight change to the AdvancedSessionsLibrary.cpp , because otherwise it crashes for me if I don't have started the steam-client beforehand:

                                Code:
                                void UAdvancedSessionsLibrary::UniqueNetIdToString(const FBPUniqueNetId& UniqueNetId, FString &String)
                                {
                                	const FUniqueNetId * ID = UniqueNetId.GetUniqueNetId();
                                
                                	if ( !ID )
                                	{
                                		UE_LOG(AdvancedSessionsLog, Warning, TEXT("UniqueNetIdToString received a bad UniqueNetId!"));
                                		String = "ERROR, BAD UNIQUE NET ID";
                                	}
                                	else
                                	{
                                		String = ID->ToString();
                                	}
                                }
                                Thanks for this great plugin!
                                Whoops! Good catch, will fix.

                                Originally posted by polygon View Post
                                Hi mordentral,

                                thank you very, very, veeery much for your effort! This is so super awesome and I will test it on monday! The possibility to display steam avatars is so extremely useful and now we can design really cool steam friend widgets! Yeeehaaa!

                                EDIT: A very small request came to my mind recently: Would it be possible to get your own Steam ID? (In order to place your own avatar on the home screen of the main menu for example)

                                Best regards,
                                Daniel
                                There is already a node "GetUniqueNetID(APlayerController *PlayerController, FBPUniqueNetId &UniqueNetId)", pass in the player controller (0 for default player) and then use that unique net id to pass into the get steam avatar node.

                                I am uploading a newer version of the plugin with the ToString fix and a speed up to the get avatar node.

                                *Edit* Uploaded
                                Last edited by mordentral; 01-16-2016, 02:12 PM.


                                Consider supporting me on patreon

                                My Open source tools and plugins
                                Advanced Sessions Plugin
                                VR Expansion Plugin

                                Comment

                                Working...
                                X