When I build the program written below, it crashes like this.
I wrote ‘Construct()’ on line 18 of the program and when I build it, it crashes.
Does anyone know the cause of this problem?
Unhandled Exception: 0x80000003
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
user32
user32
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
UnrealEditorFortnite_Win64_Shipping
kernel32
ntdll
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
Othello := class(creative_device):
@editable var TileAsset : creative_prop_asset := DefaultCreativePropAsset
var TileGrid : []?creative_prop = array{}
@editable var Disc : []creative_prop = array{}
var Counter : int = 0
OnBegin<override>()<suspends>:void=
construct()
if(CONSTRUCT := Construct[]):
return CONSTRUCT
Construct()<transacts><decides>:void=
var bd : []int =
for(i :=0..90):
set Counter = 8
for(y := 0..7):
for(x := 0..7):
set bd[pos(x,y)] = 0
set bd[pos(3,3)] = 2
set bd[pos(4,3)] = 1
set bd[pos(3,4)] = 1
set bd[pos(4,4)] = 2
for(y := 0..7):
for(x := 0..7):
if(SETDISC := setDisc[x, y, bd[pos(x,y)]]):
SETDISC
pos(x:int ,y:int)<transacts>:int=
return (y+1) * 9 + x + 1
pos_y(p:int):int=
if(0<=p and p<=8):
return -1
else if(9<=p and p<=17):
return 0
else if(18<=p and p<=26):
return 1
else if(27<=p and p<=35):
return 2
else if(36<=p and p<=44):
return 3
else if(45<=p and p<=53):
return 4
else if(54<=p and p<=62):
return 5
else if(63<=p and p<=71):
return 6
else if(72<=p and p<=80):
return 7
else:
return 8
pos_x(p:int):int=
if(0<=p and p<=8):
return p - 1
else if(9<=p and p<=17):
return p - 10
else if(18<=p and p<=26):
return p - 19
else if(27<=p and p<=35):
return p - 28
else if(36<=p and p<=44):
return p - 37
else if(45<=p and p<=53):
return p - 46
else if(54<=p and p<=62):
return p - 55
else if(63<=p and p<=71):
return p - 64
else if(72<=p and p<=80):
return p - 73
else:
return p - 82
construct():void=
set TileGrid =
for (i := 0..63):
CreateTileForIndex(i)
CreateTileForIndex(Ind : int) : ?creative_prop=
if(0<=Ind and Ind<=7 ,XPos := float[Ind * 512.0-9000.0], YPos := float[512 * 0.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else if(8<=Ind and Ind<=15 ,XPos := float[(Ind-8) * 512.0-9000.0], YPos := float[512 * 1.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset,Transform)(0)
else if(16<=Ind and Ind<=23 ,XPos := float[(Ind-16) * 512.0-9000.0], YPos := float[512 * 2.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else if(24<=Ind and Ind<=31 ,XPos := float[(Ind-24) * 512.0-9000.0], YPos := float[512 * 3.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else if(32<=Ind and Ind<=39 ,XPos := float[(Ind-32) * 512.0-9000.0], YPos := float[512 * 4.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else if(40<=Ind and Ind<=47 ,XPos := float[(Ind-40) * 512.0-9000.0], YPos := float[512 * 5.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else if(48<=Ind and Ind<=55 ,XPos := float[(Ind-48) * 512.0-9000.0], YPos := float[512 * 6.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else if(56<=Ind and Ind<=63 ,XPos := float[(Ind-56) * 512.0-9000.0], YPos := float[512 * 7.0 - 2300.0 + 12.8]):
Transform := transform{Translation := vector3{X := XPos, Y := YPos, Z := 208.0},Rotation := IdentityRotation(), Scale := vector3{X := 0.95, Y:= 0.95, Z := 1.0} }
return SpawnProp(TileAsset, Transform)(0)
else:
return false
var cre : []creative_prop = array{}
# (x,y) のマスに石を置く
# d=0 : 石を消す
# d=1 : 黒石を置く
# d=2 : 白石を置く
setDisc(x:int, y:int, d:int)<transacts><decides>:void=
DiscTranslation := Disc[Dpos(x,y)].GetTransform().Translation
RandX := DiscTranslation.X
RandY := DiscTranslation.Y
RandZ := DiscTranslation.Z
DiscRotation := Disc[Dpos(x,y)].GetTransform().Rotation
NewDiscRotation := DiscRotation.ApplyRoll(PiFloat)
# d==0 の場合は下に隠す
if(d = 0):
Disc[Dpos(x,y)].TeleportTo[vector3{X := RandX, Y:= RandZ, Z := RandZ - 100.0}, IdentityRotation()]
else if(d = 2):
Disc[Dpos(x,y)].TeleportTo[DiscTranslation, NewDiscRotation]
else:
return
Dpos(x:int ,y:int)<transacts>:int=
return 8 * y + x