Can someone Tellme how i can Remove The Widget from the PlayerUi because evertime i try to do it it doesnt go away:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /UnrealEngine.com/Temporary/UI }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Fortnite.com/UI }
using { /Verse.org/Colors/NamedColors }
ToMessage(Text: string):message=“{Text}”
See Create Your Own Device Using Verse in Unreal Editor for Fortnite | Unreal Editor for Fortnite Documentation | Epic Developer Community for how to create a verse device.
MakePlayerStatsTableQuest(OldTable:CustomPlayer) := CustomPlayer:
PlayerKills := OldTable.PlayerKills
PlayerDeaths :=OldTable.PlayerDeaths
PlayerPoints :=OldTable.PlayerPoints
PlayerRank :=OldTable.PlayerRank
DailyKills:=OldTable.DailyKills
Quest:=OldTable.Quest
A Verse-authored creative device that can be placed in a level
DailyQuest := class(creative_device):
@editable Spawner : player_spawner_device= array{}
@editable Button : button_device = button_device{}
var QuestBackground: texture_block = texture_block{DefaultImage:= Quest_UI.Quest_Complete_Graphic}
var Text : text_block = text_block{DefaultTextColor:= White}
var QuestCanvas : canvas = canvas{}
var ResourceTextBlockPerAgent : [player]?text_block = map{}
var MaybeMyUIPerPlayer : [player]?canvas = map{}
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
Button.InteractedWithEvent.Subscribe(PrintStats)
for(S : Spawner):
S.SpawnedEvent.Subscribe(OnPlayerSpawn)
OnPlayerSpawn(Agent:agent):void=
if(Player:=player[Agent]):
RollNewQuest(Player)
if(FC:=Player.GetFortCharacter[]):
spawn:
AwaitElimi(FC)
spawn:
PlayTimeProgression(Player)
Elimination(Agent:agent):void=
if(FC:=Agent.GetFortCharacter[]):
spawn:
AwaitElimi(FC)
RollNewQuest(Player:player):void=
if(Stats:=PlayerStatsMap[Player]):
CheckQuest:= Stats.Quest
if(CheckQuest=0):
Quest:= GetRandomInt(5,7)
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentQuest:=PlayerStats.Quest
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
Quest := Quest
then:
InitUI(Player)
Print("Initilized UI")
else:
Print("Player already has Quest NR: {Stats.Quest}")
InitUI(Player)
Print("Initilizing UI RN")
PrintStats(Agent:agent):void=
if(Player:=player[Agent]):
if(Stats:= PlayerStatsMap[Player]):
Print("Player has gotten Quest NR{Stats.Quest}")
Print("Player has {Stats.DailyKills} Daily Kills!")
Print(" Players Daily PlayTime is {Stats.DailyPlayTime}")
QuestProgression(Player:player):void=
Print("Quest Progression Started")
if(Stats:= PlayerStatsMap[Player]):
CurrentQuest:= Stats.Quest
OldKills:= Stats.DailyKills
Print("CurrentQuest: {CurrentQuest}")
Print("CurrentKills: {OldKills}")
if(CurrentQuest=1):
Print("first One Succes full!")
if(OldKills<=13):
Print("Second One Succes full!")
if:
PlayerStats:=PlayerStatsMap[Player]
DailyKills:=PlayerStats.DailyKills +1
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyKills := DailyKills
Print("EichelKaswEichelKaswEichelKaswEichelKaswEichelKaswEichelKaswEichelKaswEichelKasw")
then:
InitUI(Player)
else if(OldKills= 14):
ResetQuestProgression(Player)
else if(CurrentQuest=2):
if(OldKills<=8):
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentKills:=PlayerStats.DailyKills
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyKills := CurrentKills +1
then:
InitUI(Player)
else if(OldKills=9):
ResetQuestProgression(Player)
else if(CurrentQuest=3):
if(OldKills<=3):
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentKills:=PlayerStats.DailyKills
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyKills := CurrentKills +1
then:
InitUI(Player)
else if(OldKills=4):
ResetQuestProgression(Player)
else if(CurrentQuest=4):
if(OldKills<=18):
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentKills:=PlayerStats.DailyKills
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyKills := CurrentKills +1
then:
InitUI(Player)
else if(OldKills=19):
ResetQuestProgression(Player)
ResetQuestProgression(Player:player):void=
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentKills:=PlayerStats.DailyKills
Quest:= PlayerStats.Quest
DailyPlayTime:= PlayerStats.DailyPlayTime
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyKills := CurrentKills - CurrentKills
Quest:= Quest - Quest
DailyPlayTime:= DailyPlayTime - DailyPlayTime
then:
Print("Quest finished!")
Print("Kills Reseted Current Quest Kills : {PlayerStats.DailyKills}")
Print("Quest Reseted Current Quest : {PlayerStats.Quest}")
Print("Removed Widget while Resetting!!")
RollNewQuest(Player)
AwaitElimi(FortCharacter : fort_character)<suspends>: void=
Print("Awaiting Kill")
Result := FortCharacter.EliminatedEvent().Await()
OnEliminaion(Result)
OnEliminaion(ElimResult : elimination_result):void=
Print("Kill received")
EliminatedCharacter := ElimResult.EliminatedCharacter
MaybeEliminatingCharacter := ElimResult.EliminatingCharacter
if:
EliminatingCharacter := MaybeEliminatingCharacter?
EliminatingCharacter <> EliminatedCharacter
Agent := EliminatingCharacter.GetAgent[]
Player := player[Agent]
then:
Print("Ready for Quest Progression")
QuestProgression(Player)
PlayTimeProgression(Player:player)<suspends>:void=
loop:
Sleep(5.0)
if(Stats:= PlayerStatsMap[Player]):
OldPlayTime:= Stats.DailyPlayTime
Quest:= Stats.Quest
if(Quest= 5):
if(OldPlayTime<=3):
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentPlayTime:=PlayerStats.DailyPlayTime
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyPlayTime := CurrentPlayTime +1
then:
else if(OldPlayTime=4):
ResetQuestProgression(Player)
else if(Quest= 6):
if(OldPlayTime<=8):
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentPlayTime:=PlayerStats.DailyPlayTime
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyPlayTime := CurrentPlayTime +1
then:
else if(OldPlayTime=9):
ResetQuestProgression(Player)
else if(Quest= 7):
if(OldPlayTime<=13):
if:
PlayerStats:=PlayerStatsMap[Player]
CurrentPlayTime:=PlayerStats.DailyPlayTime
set PlayerStatsMap[Player] = CustomPlayer:
MakePlayerStatsTableQuest<constructor>(PlayerStats)
DailyPlayTime := CurrentPlayTime +1
then:
else if(OldPlayTime=14):
ResetQuestProgression(Player)
CreateUI(Player:player,Goal:int): canvas=
Stats:= GetStats(Player)
Quest:= Stats.Quest
PlayTime:= Stats.DailyPlayTime
Kills:= Stats.DailyKills
var Amount : int=0
var Task : string = ""
if(Quest<=4):
set Amount = Kills
else:
set Amount = PlayTime
if(Quest<=4):
set Task = "Get {Goal} Kills"
else :
set Task = "Play for {Goal} minutes"
NewUi:= canvas:
Slots:= array:
canvas_slot:
Anchors:= anchors{Minimum:= vector2{X:=0.5, Y:= 0.5}, Maximum:=vector2{X:=0.5, Y:= 0.5}}
Offsets:= margin{Left:=-960.960938, Top:=-508.540527, Right:= 516.416443, Bottom:=134.094086}
Alignment:= vector2{X:=0.0, Y:=0.0}
ZOrder:= 0
SizeToContent:= false
Widget:= QuestBackground
canvas_slot:
Anchors:= anchors{Minimum:= vector2{X:=0.5, Y:= 0.5}, Maximum:=vector2{X:=0.5, Y:= 0.5}}
Offsets:= margin{Left:=-960.960938, Top:=-508.540527, Right:= 516.416443, Bottom:=134.094086}
Alignment:= vector2{X:=0.0, Y:=0.0}
ZOrder:= 0
SizeToContent:= false
Widget:= text_block:
DefaultTextColor:= White
DefaultText:= ToMessage("{Task}: {Amount}/{Goal}")
return NewUi
Cheese(Player:player,Goal:int):void=
var NewUi :DailyQuest=DailyQuest{}
NewUi.UpdateUI(Player,Goal)
UpdateUI(Player:player,Goal:int): void=
if(PlayerUI := GetPlayerUI[Player]):
NewUI:= CreateUI(Player,Goal)
PlayerUI.RemoveWidget(QuestCanvas)
set QuestCanvas = CreateUI(Player,Goal)
PlayerUI.AddWidget(QuestCanvas)
GetStats(Player:player):CustomPlayer =
PlayerStatsMap[Player] or CustomPlayer{}
InitUI(Player:player):void=
if(Stats:= PlayerStatsMap[Player]):
Quest:= Stats.Quest
if(PlayerUI:= GetPlayerUI[Player]):
PlayerUI.RemoveWidget(QuestBackground)
Print("Removed Widget!!")
if(Quest=1):
Cheese(Player,15)
else if(Quest =2):
Cheese(Player,10)
else if(Quest =3):
Cheese(Player,5)
else if(Quest =4):
Cheese(Player,20)
else if(Quest =5):
Cheese(Player,5)
else if(Quest =6):
Cheese(Player,10)
else if(Quest =7):
Cheese(Player,15)