0% found this document useful (0 votes)
8 views6 pages

Fortnite PinPad Device Script

pincodedevice FORTNITE UEFN

Uploaded by

sapyks
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views6 pages

Fortnite PinPad Device Script

pincodedevice FORTNITE UEFN

Uploaded by

sapyks
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

using { /Fortnite.

com/Devices }
using { /[Link]/Simulation }
using { /[Link]/Temporary/Diagnostics }
using { /[Link]/Temporary/UI}
using { /[Link]/Temporary/SpatialMath}
using { /[Link]/UI }
using { /[Link]/Colors }
using { /[Link]/Colors/NamedColors }

pinpad_device := class(creative_device):

var StuffPerAgent : [agent]?tuple(canvas,text_block,string) = map{}

@editable AssignPinPadButton : button_device = button_device{}


@editable FailTrigger : trigger_device = trigger_device{}
@editable SuccessTrigger : trigger_device = trigger_device{}

@editable PIN : int = 0

# Runs when the device is started in a running game


OnBegin<override>()<suspends>:void=
[Link](AddPinPad)

S2M<localizes>(S:string):message="{S}"

AddPinPad(A:agent):void=
if(Stuff:=StuffPerAgent[A]?):
#Do not assign
else:
Val:=MakeCanvas()
if:
PlayerUI:=GetPlayerUI[player[A]]
then:

[Link](Val(0),player_ui_slot{InputMode:=ui_input_mode.All})
if(set StuffPerAgent[A] = option{(Val(0),Val(1),"")}){}

RemovePinPad(A:agent):void=
if(Stuff:=StuffPerAgent[A]?):
if:
PlayerUI:=GetPlayerUI[player[A]]
then:
[Link](Stuff(0))
if(set StuffPerAgent[A] = false){}

MakeCanvas():tuple(canvas,text_block)=
Button0 := button_loud{DefaultText:=S2M("0")}
[Link]().Subscribe(Add0)
Button1 := button_loud{DefaultText:=S2M("1")}
[Link]().Subscribe(Add1)
Button2 := button_loud{DefaultText:=S2M("2")}
[Link]().Subscribe(Add2)
Button3 := button_loud{DefaultText:=S2M("3")}
[Link]().Subscribe(Add3)
Button4 := button_loud{DefaultText:=S2M("4")}
[Link]().Subscribe(Add4)
Button5 := button_loud{DefaultText:=S2M("5")}
[Link]().Subscribe(Add5)
Button6 := button_loud{DefaultText:=S2M("6")}
[Link]().Subscribe(Add6)
Button7 := button_loud{DefaultText:=S2M("7")}
[Link]().Subscribe(Add7)
Button8 := button_loud{DefaultText:=S2M("8")}
[Link]().Subscribe(Add8)
Button9 := button_loud{DefaultText:=S2M("9")}
[Link]().Subscribe(Add9)
Delete := button_regular{DefaultText:=S2M("Delete")}
[Link]().Subscribe(DeleteLastChar)
Enter := button_regular{DefaultText:=S2M("Enter")}
[Link]().Subscribe(EnterFunc)
NumTB := text_block{DefaultText:=S2M(""),DefaultTextColor:=White}

MyCanvas:= canvas:
Slots:=array:
canvas_slot:

Anchors:=anchors{Minimum:=vector2{X:=0.5,Y:=0.5},Maximum:=vector2{X:=0.5,Y:=0.5}}
Alignment:=vector2{X:=0.5,Y:=0.5}
SizeToContent:=true
Widget:=overlay:
Slots:=array:
overlay_slot:
#Outside ColorBlock
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Fill

Widget:=color_block{DefaultColor:=MakeColorFromSRGB(0.05,0.05,0.05),DefaultDesiredS
ize:=vector2{X:=655.0,Y:=660.0}}
overlay_slot:
HorizontalAlignment:=horizontal_alignment.Center
VerticalAlignment:=vertical_alignment.Bottom
Padding:=margin{Bottom:=20.0}
Widget:=overlay:
Slots:=array:
#PinPad ColorBlock
overlay_slot:

HorizontalAlignment:=horizontal_alignment.Fill

VerticalAlignment:=vertical_alignment.Fill

Widget:=color_block{DefaultColor:=MakeColorFromSRGB(0.0,0.01,0.50)}
#PinPad
overlay_slot:

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center

Padding:=margin{Top:=20.0,Left:=20.0,Bottom:=20.0,Right:=20.0}
Widget:=stack_box:
Orientation:=[Link]
Slots:=array:
#1-3 Stack
stack_box_slot:
HorizontalAlignment:=horizontal_alignment.Fill

VerticalAlignment:=vertical_alignment.Fill

Padding:=margin{Top:=25.0,Bottom:=25.0}
Widget:=stack_box:

Orientation:=[Link]
Slots:=array:
stack_box_slot:

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
Widget:=Button1
stack_box_slot:
Widget:=Button2

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center

Padding:=margin{Left:=20.0,Right:=20.0}
stack_box_slot:
Widget:=Button3

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
#4-6
stack_box_slot:

HorizontalAlignment:=horizontal_alignment.Fill

VerticalAlignment:=vertical_alignment.Fill

Padding:=margin{Top:=25.0,Bottom:=25.0}
Widget:=stack_box:

Orientation:=[Link]
Slots:=array:
stack_box_slot:

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
Widget:=Button4
stack_box_slot:

Distribution:=option{1.0}
Widget:=Button5
HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center

Padding:=margin{Left:=20.0,Right:=20.0}
stack_box_slot:

Distribution:=option{1.0}
Widget:=Button6

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
#7-9
stack_box_slot:

HorizontalAlignment:=horizontal_alignment.Fill

VerticalAlignment:=vertical_alignment.Fill

Padding:=margin{Top:=25.0,Bottom:=25.0}
Widget:=stack_box:

Orientation:=[Link]
Slots:=array:
stack_box_slot:

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
Widget:=Button7
stack_box_slot:
Widget:=Button8

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center

Padding:=margin{Left:=20.0,Right:=20.0}
stack_box_slot:
Widget:=Button9

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
#Delete, 0 and Enter
stack_box_slot:

HorizontalAlignment:=horizontal_alignment.Fill

VerticalAlignment:=vertical_alignment.Fill
Padding:=margin{Top:=25.0,Bottom:=25.0}
Widget:=stack_box:

Orientation:=[Link]
Slots:=array:
stack_box_slot:

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
Widget:=Delete
stack_box_slot:
Widget:=Button0

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center

Padding:=margin{Left:=20.0,Right:=20.0}
stack_box_slot:
Widget:=Enter

Distribution:=option{1.0}

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center
#Text Block Stuff
overlay_slot:
HorizontalAlignment:=horizontal_alignment.Center
VerticalAlignment:=vertical_alignment.Top
Padding:=margin{Top:=20.0}
Widget:=overlay:
Slots:=array:
overlay_slot:

Widget:=color_block{DefaultColor:=Black,DefaultDesiredSize:=vector2{X:=400.0,Y:=32.
0}}

HorizontalAlignment:=horizontal_alignment.Fill

VerticalAlignment:=vertical_alignment.Fill
overlay_slot:
Widget:=NumTB

HorizontalAlignment:=horizontal_alignment.Center

VerticalAlignment:=vertical_alignment.Center

return (MyCanvas,NumTB)

Add0(WM:widget_message):void=AddNum(0,WM)
Add1(WM:widget_message):void=AddNum(1,WM)
Add2(WM:widget_message):void=AddNum(2,WM)
Add3(WM:widget_message):void=AddNum(3,WM)
Add4(WM:widget_message):void=AddNum(4,WM)
Add5(WM:widget_message):void=AddNum(5,WM)
Add6(WM:widget_message):void=AddNum(6,WM)
Add7(WM:widget_message):void=AddNum(7,WM)
Add8(WM:widget_message):void=AddNum(8,WM)
Add9(WM:widget_message):void=AddNum(9,WM)

EnterFunc(WM:widget_message):void=
Print("Enter")
PinAsString:string="{PIN}"
if(Stuff:=StuffPerAgent[[Link]]?):
if(PinAsString=Stuff(2)):
Print("SUCCESS: {PIN} = {Stuff(2)}")
[Link]([Link])
else:
Print("FAIL: {PIN} != {Stuff(2)}")
[Link]([Link])

RemovePinPad([Link])

AddNum(Num:int,WM:widget_message):void=
if(Stuff:=StuffPerAgent[[Link]]?):
var String:string=Stuff(2)
set String += "{Num}" #Add a new number
if(set StuffPerAgent[[Link]] = option{(Stuff(0),Stuff(1),String)}){}
UpdateUI(WM)

UpdateUI(WM:widget_message):void=
if(Stuff:=StuffPerAgent[[Link]]?):
var String:string=Stuff(2)
TB:=Stuff(1)
[Link](S2M("{String}"))

DeleteLastChar(WM:widget_message):void=
if(Stuff:=StuffPerAgent[[Link]]?):
var String: string = Stuff(2)
var UpdatedString : string = ""
for(Index->S:String):
if(Index = [Link]-1):
#This the last character, remove it
else:
set UpdatedString += "{S}"
if(set StuffPerAgent[[Link]] =
option{(Stuff(0),Stuff(1),UpdatedString)}){}
UpdateUI(WM)

You might also like