Say I want to show a hud message for a specific class that the player picks, how would I go about that using verse? I know the class designer in the fortnite digest has the “GetMembersOfClass” and “IsOfClass” but I’m not sure how to actually make a function using those two in order to achieve this.
I’m fairly certain those two functions are broken, or I haven’t been able to get them to work appropriately. Instead, I’ve opted to listen to “ClassSwitchedEvent” on my individual class_and_team_selector_devices. If you do this, you can store a map of player and ints and approriately assign an int based on the specific ClassSwitchedEvent that fired, and thus later reference the map do your “call a function in verse for a player that’s in a specific class” end goal.
Heres a snippet of code you can modify to implement what I suggest. You’ll notice I have 4 different classes that each fire a different method when switched to, and then prints the appropriate log. You’ll be able to apply this same concept for what you are currently trying to build. Good luck.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.
# A Verse-authored creative device that can be placed in a level
class_change_debugger_device := class(creative_device):
@editable
NoSpectateClassChange : class_and_team_selector_device = class_and_team_selector_device{}
@editable
SpectateClassChange : class_and_team_selector_device = class_and_team_selector_device{}
@editable
LobbyClassChange : class_and_team_selector_device = class_and_team_selector_device{}
@editable
RemoveInvinsibilityClassChange : class_and_team_selector_device = class_and_team_selector_device{}
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
NoSpectateClassChange.ClassSwitchedEvent.Subscribe(AlertClassChanged1)
SpectateClassChange.ClassSwitchedEvent.Subscribe(AlertClassChanged2)
LobbyClassChange.ClassSwitchedEvent.Subscribe(AlertClassChanged3)
RemoveInvinsibilityClassChange.ClassSwitchedEvent.Subscribe(AlertClassChanged4)
AlertClassChanged1(Agent:agent):void=
if (Player := player[Agent]):
Print("Class Changed NoSpectateClassChange ")
AlertClassChanged2(Agent:agent):void=
if (Player := player[Agent]):
Print("Class Changed SpectateClassChange ")
AlertClassChanged3(Agent:agent):void=
if (Player := player[Agent]):
Print("Class Changed LobbyClassChange ")
AlertClassChanged4(Agent:agent):void=
if (Player := player[Agent]):
Print("Class Changed RemoveInvinsibilityClassChange ")
Thank you for replying, we just used the ClassChangedEvent for the Class Selector UI Device