Return to post
settings
{
main
{
Description: "Workshop Vectors Protoyping Tool A.K.A. Workshop in Workshop _ Press F to enter Workshop Mode, connect blocks to executor blocks to do things Red for input, Green for output, Order of paramaters from top to bottom. Ex. Vector(X, Y, Z) -> X(top) Y(middle) Z(bottom) Vector -> Out Made by SpadeInTheDirt"
}
modes
{
disabled Assault
{
Limit Roles: 2 Of Each Role Per Team
}
disabled Control
{
Limit Roles: 2 Of Each Role Per Team
}
disabled Escort
{
Limit Roles: 2 Of Each Role Per Team
}
disabled Hybrid
{
Limit Roles: 2 Of Each Role Per Team
}
Skirmish
{
Hero Limit: Off
Respawn Time Scalar: 30%
enabled maps
{
Workshop Chamber
}
}
}
heroes
{
General
{
Ability Cooldown Time: 0%
}
}
}
variables
{
global:
0: menuInfo
1: doAnUpdate
2: tempVals
3: upMenuInfo
4: blockInfos
5: blockSelectPossList
6: blockSelectionTextInfos
7: allCommands
9: counter
10: updatingCommands
11: tempAllCommands
12: nullEntityID
player:
0: rememberedFacing
1: cursorPos
2: numberTargetIndexes
3: entryPos
4: entryInfo
5: AclickTarget
6: clickTargets
7: tempCounter
8: insertToTargetsIndex
9: anotherTempCounter
10: selectedTargetInfo
11: blockToUpdate
12: nodeToUpdate
13: editMode
14: tempVals2
15: finalValues
16: tempVals8
17: i3
18: tempVal
19: tempVals5
20: indexPos
21: i2
22: i
23: tempVals
24: initChain
25: endChain
26: blocksNewest
27: blocksOld
28: BR
29: UH
30: anotherInsertToTargetsIndex
31: tempVals4
32: cancer
33: AAAA
34: page
35: blocksMenuTargets
36: tempCounter2
37: tempCounter3
38: tempVals6
39: tempVals7
40: tempVals3
41: toUpdate
42: tempCounter4_1
43: tempCounter4_2
44: nextToUpdate
45: tempVals9
46: tempCounter5
47: finalValuesFirstTwo
48: blocksCopy
49: badConnection
50: encounteredBlocks
51: workshopOn
52: othersVisible
}
subroutines
{
0: disableSchist
1: enableSchist
2: accessVal
3: doOperation
4: numberClickOff
5: openEntry
6: showBlock
7: updateChain
8: hideBlock
9: blockClickOn
10: closeEntry
11: blockClickOff
12: emptyClickOff
13: emptyClickOn
14: updateEntryInfo3
15: blockMenuClickOff
16: updateBlockSelectMenu
18: updateBlockOrderInfo
}
rule("INIT GLOBALccccccc")
{
event
{
Ongoing - Global;
}
actions
{
Global.nullEntityID = Last Created Entity;
Disable Inspector Recording;
Global.blockInfos = Array(Array(Array(Vector(0, 46, 5), Custom String("NUM"), Null, Array(Array(Vector(0, 0, 1.100), Null, Array(0,
Custom String("Click To Enter Number")), Null, 0), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
"Outputs Number value")), Null)), Null, 0, Array(False, Custom String("number block, drag to move")), 0, False), Array(Vector(
0, 46, 5), Custom String("BOOLEAN"), Null, Array(Array(Vector(0, 0, 1.100), Null, Array(0, Custom String(
"click to enter boolean")), Null, 1), Array(Vector(-1.450, 0, 1.100), Null, Array(-1, Custom String("outputs boolean value")),
Null)), Null, 0, Array(False, Custom String("boolean block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String(
"PLAYER"), Null, Array(Array(Vector(0, 0, 1.100), Null, Array(0, Custom String("click to enter player")), Null, 2), Array(
Vector(-1.200, 0, 1.100), Null, Array(-1, Custom String("outputs player value")), Null)), Null, 0, Array(False, Custom String(
"player block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("STRING"), Null, Array(Array(Vector(0, 0,
1.100), Null, Array(0, Custom String("click to enter string")), Null, 3), Array(Vector(-1.200, 0, 1.100), Null, Array(-1,
Custom String("outputs string value")), Null)), Null, 0, Array(False, Custom String("string block, drag to move")), String(""),
False)), Array(Array(Vector(0, 46, 5), Custom String("Add"), Null, Array(Array(Vector(0.800, 0, 1.500), Null, Array(1,
Custom String("First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null, Array(2, Custom String("second Input Value")),
Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String("outputs first Input Value + second")), Null)), Null, 1,
Array(0, Custom String("addition block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Sub"), Null, Array(
Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String("First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null,
Array(2, Custom String("Second Input Value")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
"outputs first Input Value - second")), Null)), Null, 1, Array(1, Custom String("subtraction block, drag to move")), 0, False),
Array(Vector(0, 46, 5), Custom String("Mul"), Null, Array(Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String(
"First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null, Array(2, Custom String("Second Input Value")), Null), Array(
Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String("outputs first Input Value x second")), Null)), Null, 1, Array(2,
Custom String("multiplication block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Div"), Null, Array(
Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String("First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null,
Array(2, Custom String("Second Input Value")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
"Outputs First Input Value/Second")), Null)), Null, 1, Array(3, Custom String("Division block, drag to move")), 0, False),
Array(Vector(0, 46, 5), Custom String("Norm"), Null, Array(Array(Vector(1.100, 0, 1.100), Null, Array(1, Custom String(
"Input Vector")), Null), Array(Vector(-1.100, 0, 1.100), Null, Array(-1, Custom String("Outputs the normalized input vector")),
Null)), Null, 1, Array(4, Custom String("Normalize block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String(
"Dot"), Null, Array(Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(
0.800, 0, 0.700), Null, Array(2, Custom String("Second Input Vector")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1,
Custom String("Outputs dot product of first and second input vectors")), Null)), Null, 1, Array(5, Custom String(
"dot product block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Cross"), Null, Array(Array(Vector(1.200,
0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(1.200, 0, 0.700), Null, Array(2,
Custom String("Second Input Vector")), Null), Array(Vector(-1.200, 0, 1.100), Null, Array(-1, Custom String(
"outputs cross product of first and second input vectors")), Null)), Null, 1, Array(6, Custom String(
"cross product block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Dir. Towards"), Null, Array(Array(
Vector(2, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(2, 0, 0.700), Null, Array(2,
Custom String("Second Input Vector")), Null), Array(Vector(-2, 0, 1.100), Null, Array(-1, Custom String(
"outputs direction from first input vector to second")), Null)), Null, 1, Array(7, Custom String(
"direction block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Vect. Towards"), Null, Array(Array(Vector(
2.100, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(2.100, 0, 0.700), Null, Array(2,
Custom String("Second Input Vector")), Null), Array(Vector(-2.100, 0, 1.100), Null, Array(-1, Custom String(
"outputs vector from first input vector to second")), Null)), Null, 1, Array(8, Custom String(
"vector towards block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("World Vect Of"), Null, Array(Array(
Vector(2.200, 0, 1.700), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(2.200, 0, 1.100), Null, Array(2,
Custom String("Input Player - Which Player's frame of reference to convert from")), Null), Array(Vector(2.200, 0, 0.500), Null,
Array(3, Custom String("Input Boolean - If true, rotates and translates vector to world perspective, else only rotation")),
Null), Array(Vector(-2.200, 0, 1.100), Null, Array(-1, Custom String(
"Converts a vector relative to a player to one relative to the world")), Null)), Null, 1, Array(9, Custom String(
"World Vector Of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Local Vect Of"), Null, Array(Array(
Vector(2.100, 0, 1.700), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(2.100, 0, 1.100), Null, Array(2,
Custom String("Input Player - which player's frame of reference to convert to")), Null), Array(Vector(2.100, 0, 0.500), Null,
Array(3, Custom String("Input Boolean - If true, rotates and translates vector to world perspective, else only rotation")),
Null), Array(Vector(-2.100, 0, 1.100), Null, Array(-1, Custom String(
"Converts a vector relative to the world to one relative to a player")), Null)), Null, 1, Array(10, Custom String(
"Local Vector Of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("X Comp"), Null, Array(Array(Vector(
1.250, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
Custom String("outputs the x component of the input vector")), Null)), Null, 1, Array(11, Custom String(
"x component block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Y Comp"), Null, Array(Array(Vector(
1.250, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
Custom String("outputs the y component of the input vector")), Null)), Null, 1, Array(12, Custom String(
"y component block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Z Comp"), Null, Array(Array(Vector(
1.250, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
Custom String("outputs the z component of the input vector")), Null)), Null, 1, Array(13, Custom String(
"z component block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Vector"), Null, Array(Array(Vector(
1.250, 0, 1.700), Null, Array(1, Custom String("Input Number - x comp")), Null), Array(Vector(1.250, 0, 1.100), Null, Array(2,
Custom String("Input Number - y comp")), Null), Array(Vector(1.250, 0, 0.500), Null, Array(3, Custom String(
"Input Number - z comp")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1, Custom String("Outputs Vector(x, y, z)")),
Null)), Null, 1, Array(14, Custom String("Vector Block, drag to move")), 0, False)), Array(Array(Vector(0, 46, 5),
Custom String("Horiz. Angle"), Null, Array(Array(Vector(2, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null),
Array(Vector(-2, 0, 1.100), Null, Array(-1, Custom String("outputs horizontal angle of input vector's direction")), Null)),
Null, 1, Array(15, Custom String("Horizontal Angle from direction block, drag to move")), 0, False), Array(Vector(0, 46, 5),
Custom String("Vert. Angle"), Null, Array(Array(Vector(1.800, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null),
Array(Vector(-1.800, 0, 1.100), Null, Array(-1, Custom String("Outputs vertical angle of input vector's direction")), Null)),
Null, 1, Array(16, Custom String("Vertical angle from direction block, drag to move")), 0, False), Array(Vector(0, 46, 5),
Custom String("Angle Dir."), Null, Array(Array(Vector(1.650, 0, 1.500), Null, Array(1, Custom String(
"Input number - Horizontal angle")), Null), Array(Vector(1.650, 0, 0.700), Null, Array(2, Custom String(
"Input number - Vertical angle")), Null), Array(Vector(-1.650, 0, 1.100), Null, Array(-1, Custom String(
"outputs direction from horizontal and vertical angles")), Null)), Null, 1, Array(17, Custom String(
"Direction from angles block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Pos. Of"), Null, Array(Array(
Vector(1.250, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
Custom String("outputs position of input player")), Null)), Null, 1, Array(18, Custom String(
"position of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Eye Pos."), Null, Array(Array(Vector(
1.250, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
Custom String("outputs eye position of input player")), Null)), Null, 1, Array(19, Custom String(
"Eye Position block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Facing Dir. Of"), Null, Array(Array(
Vector(2.150, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-2.150, 0, 1.100), Null, Array(-1,
Custom String("outputs facing direction of input player")), Null)), Null, 1, Array(20, Custom String(
"facing direction block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Velocity Of"), Null, Array(Array(
Vector(1.800, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.800, 0, 1.100), Null, Array(-1,
Custom String("Outputs velocity of input player")), Null)), Null, 1, Array(21, Custom String(
"Velocity Of Block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Throttle"), Null, Array(Array(Vector(
1.400, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.400, 0, 1.100), Null, Array(-1,
Custom String("Outputs throttle of input player")), Null)), Null, 1, Array(22, Custom String(
"Throttle Of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Angle Between"), Null, Array(Array(
Vector(2.300, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(2.300, 0, 0.700), Null,
Array(2, Custom String("Second Input Vector")), Null), Array(Vector(-2.600, 0, 1.100), Null, Array(-1, Custom String(
"Outputs angle between first and second input vectors")), Null)), Null, 1, Array(23, Custom String(
"Angle Between block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Angle Dif."), Null, Array(Array(
Vector(1.650, 0, 1.500), Null, Array(1, Custom String("First Input Number - angle")), Null), Array(Vector(1.650, 0, 0.700),
Null, Array(2, Custom String("Second Input Number - angle")), Null), Array(Vector(-1.650, 0, 1.100), Null, Array(-1,
Custom String("Ouputs difference between first input angle and second")), Null)), Null, 1, Array(24, Custom String(
"Angle Difference block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Distance"), Null, Array(Array(
Vector(1.450, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(1.450, 0, 0.700), Null,
Array(2, Custom String("Second Input Vector")), Null), Array(Vector(-1.450, 0, 1.100), Null, Array(-1, Custom String(
"outputs distance between first input vector and second")), Null)), Null, 1, Array(25, Custom String(
"distance between block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Sine"), Null, Array(Array(Vector(
0.850, 0, 1.100), Null, Array(1, Custom String("Input Number - angle")), Null), Array(Vector(-0.850, 0, 1.100), Null, Array(-1,
Custom String("outputs sine of input angle")), Null)), Null, 1, Array(26, Custom String("sine block, drag to move")), 0,
False), Array(Vector(0, 46, 5), Custom String("Cos"), Null, Array(Array(Vector(0.800, 0, 1.100), Null, Array(1, Custom String(
"Input Number - angle")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
"Outputs cosine of input angle")), Null)), Null, 1, Array(27, Custom String("cosine block, drag to move")), 0, False), Array(
Vector(0, 46, 5), Custom String("Tan"), Null, Array(Array(Vector(0.800, 0, 1.100), Null, Array(1, Custom String(
"Input Number - angle")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String("Outputs tan of input angle")),
Null)), Null, 1, Array(28, Custom String("Tan block, drag to move")), 0, False)), Array(Array(Vector(0, 46, 5), Custom String(
"Arcsine"), Null, Array(Array(Vector(1.350, 0, 1.100), Null, Array(1, Custom String("Input number")), Null), Array(Vector(
-1.350, 0, 1.100), Null, Array(-1, Custom String("outputs arcsine of input number")), Null)), Null, 1, Array(29, Custom String(
"arcsine block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Arccos"), Null, Array(Array(Vector(1.300, 0,
1.100), Null, Array(1, Custom String("Input number")), Null), Array(Vector(-1.300, 0, 1.100), Null, Array(-1, Custom String(
"outputs arccosine of input number")), Null)), Null, 1, Array(30, Custom String("arccosine block, drag to move")), 0, False),
Array(Vector(0, 46, 5), Custom String("Arctan"), Null, Array(Array(Vector(1.250, 0, 1.100), Null, Array(1, Custom String(
"Input number")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1, Custom String("outputs arctan of input number")),
Null)), Null, 1, Array(31, Custom String("Arctan block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String(
"Abs. Val."), Null, Array(Array(Vector(1.400, 0, 1.100), Null, Array(1, Custom String("Input number")), Null), Array(Vector(
-1.400, 0, 1.100), Null, Array(-1, Custom String("outputs absolute value of input number")), Null)), Null, 1, Array(32,
Custom String("absolute value block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Sign Of"), Null, Array(
Array(Vector(1.300, 0, 1.100), Null, Array(1, Custom String("input number")), Null), Array(Vector(-1.300, 0, 1.100), Null,
Array(-1, Custom String("outputs sign of input number ex. if negative, returns -1")), Null)), Null, 1, Array(33, Custom String(
"sign block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Modulo"), Null, Array(Array(Vector(1.400, 0,
1.500), Null, Array(1, Custom String("First Input number")), Null), Array(Vector(1.400, 0, 0.700), Null, Array(2,
Custom String("Second Input number")), Null), Array(Vector(-1.400, 0, 1.100), Null, Array(-1, Custom String(
"outputs first number modulo second (the remainder of the first number/the second)")), Null)), Null, 1, Array(34,
Custom String("Modulo block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Concat"), Null, Array(Array(
Vector(1.320, 0, 1.700), Null, Array(1, Custom String("Input Value - 0")), Null), Array(Vector(1.320, 0, 1.100), Null, Array(2,
Custom String("Input Value - 1")), Null), Array(Vector(1.320, 0, 0.500), Null, Array(3, Custom String("Input Value - 2")),
Null), Array(Vector(-1.320, 0, 1.100), Null, Array(-1, Custom String("outputs 0, 1 and 2 concatenated together")), Null)),
Null, 1, Array(35, Custom String("Concatenate Block, drag to move")), 0, False)), Array(Array(Vector(0, 46, 5), Custom String(
"Camera"), Null, Array(Array(Vector(0.800, 0, 2), Null, Array(1, Custom String("Input Player to start camera for")), Null),
Array(Vector(0, 0, 2), Null, Array(2, Custom String("Eye position of camera")), Null), Array(Vector(-0.800, 0, 2), Null, Array(
3, Custom String("Position for camera to look at")), Null)), Null, -1, Array(0, Custom String("Camera block, drag to move")),
0, True), Array(Vector(0, 46, 5), Custom String("Start Facing"), Null, Array(Array(Vector(0.800, 0, 2), Null, Array(1,
Custom String("Input player to start facing for")), Null), Array(Vector(0, 0, 2), Null, Array(2, Custom String(
"Direction to start facing")), Null), Array(Vector(-0.800, 0, 2), Null, Array(3, Custom String("Turn speed")), Null)), Null,
-2, Array(0, Custom String("start facing block, drag to move")), 0, True), Array(Vector(0, 46, 5), Custom String("Put Effect"),
Null, Array(Array(Vector(0.500, 0, 2), Null, Array(1, Custom String("Effect position")), Null), Array(Vector(-0.500, 0, 2),
Null, Array(2, Custom String("radius of effect")), Null)), Null, -3, Array(0, Custom String(
"sphere effect block, drag to move")), 0, True), Array(Vector(0, 46, 5), Custom String("Put Beam Effect"), Null, Array(Array(
Vector(0.500, 0, 2), Null, Array(1, Custom String("Start Position of Beam")), Null), Array(Vector(-0.500, 0, 2), Null, Array(2,
Custom String("End Position of Beam")), Null)), Null, -4, Array(0, Custom String("Beam effect block, drag to move")), 0, True),
Array(Vector(0, 46, 5), Custom String("Display Text"), Null, Array(Array(Vector(0.800, 0, 2), Null, Array(1, Custom String(
"Header Text")), Null), Array(Vector(0, 0, 2), Null, Array(2, Custom String("Subheader Text")), Null), Array(Vector(-0.800, 0,
2), Null, Array(3, Custom String("Text")), Null)), Null, -5, Array(0, Custom String("Display Info block, drag to move")), 0,
True), Array(Vector(0, 46, 5), Custom String("Put InWorld text"), Null, Array(Array(Vector(0.500, 0, 2), Null, Array(1,
Custom String("Text")), Null), Array(Vector(-0.500, 0, 2), Null, Array(2, Custom String("Position")), Null)), Null, -6, Array(
0, Custom String("Put Inworld text block, drag to move")), 0, True)));
Global.menuInfo = Array(Array(Array(False, Array(Custom String("- . |0 1 2 3 4 5 6 7 8 9|> X\n "))), Array(False, Array(
Custom String("|T F|> X\n "))), Array(True, 0), Array(False, Array(Custom String(
"` 1 2 3 4 5 6 7 8 9 0 - =\n q w e r t y u i o p [ ] \\ \n a s d f g h j k l ; '\n z x c v b n m , . /\n [==]\n > X\n
"),
Custom String(
"~ ! @ # $ % ^ & * ( ) _ +\n Q W E R T Y U I O P { } |\n A S D F G H J K L : \"\n Z X C V B N M < > ?\n [==]\n > X\n
")))),
Array(Array(Vector(3.140, 0, 1.800), Vector(2.770, 0, 1.800), Vector(2.120, 0, 1.800), Vector(1.690, 0, 1.800), Vector(1.250,
0, 1.800), Vector(0.800, 0, 1.800), Vector(0.310, 0, 1.800), Vector(-0.080, 0, 1.800), Vector(-0.570, 0, 1.800), Vector(-0.990,
0, 1.800), Vector(-1.450, 0, 1.800), Vector(-1.880, 0, 1.800), Vector(-2.460, 0, 1.800), Vector(-2.920, 0, 1.800)), Array(
Vector(0.570, 0, 1.800), Vector(0.220, 0, 1.800), Vector(-0.300, 0, 1.800), Vector(-0.740, 0, 1.800)), Array(Vector(0, 0,
10.620), Vector(0, 0, 9.880), Vector(0, 0, 9.140), Vector(0, 0, 8.400), Vector(0, 0, 7.660), Vector(0, 0, 6.920), Vector(0, 0,
6.180), Vector(0, 0, 5.140), Vector(0, 0, 4.700), Vector(0, 0, 3.960), Vector(0, 0, 3.220), Vector(0, 0, 2.480), Vector(0, 0,
1.740), Vector(0, 0, 1)), Array(Vector(3.100, 0, 4.450), Vector(2.750, 0, 4.450), Vector(2.300, 0, 4.450), Vector(1.750, 0,
4.450), Vector(1.290, 0, 4.450), Vector(0.820, 0, 4.450), Vector(0.300, 0, 4.450), Vector(-0.120, 0, 4.450), Vector(-0.550, 0,
4.450), Vector(-1.020, 0, 4.450), Vector(-1.460, 0, 4.450), Vector(-1.830, 0, 4.450), Vector(-2.370, 0, 4.450), Vector(2.960,
0, 3.840), Vector(2.300, 0, 3.840), Vector(1.760, 0, 3.840), Vector(1.250, 0, 3.840), Vector(0.790, 0, 3.840), Vector(0.300, 0,
3.840), Vector(-0.220, 0, 3.840), Vector(-0.610, 0, 3.840), Vector(-1.030, 0, 3.840), Vector(-1.520, 0, 3.840), Vector(-2.070,
0, 3.840), Vector(-2.600, 0, 3.840), Vector(-3.080, 0, 3.840), Vector(2.960, 0, 3.230), Vector(2.460, 0, 3.230), Vector(1.920,
0, 3.230), Vector(1.480, 0, 3.230), Vector(0.940, 0, 3.230), Vector(0.410, 0, 3.230), Vector(-0.010, 0, 3.230), Vector(-0.470,
0, 3.230), Vector(-0.920, 0, 3.230), Vector(-1.390, 0, 3.230), Vector(-1.870, 0, 3.230), Vector(2.960, 0, 2.620), Vector(2.460,
0, 2.620), Vector(1.970, 0, 2.620), Vector(1.460, 0, 2.620), Vector(0.910, 0, 2.620), Vector(0.480, 0, 2.620), Vector(-0.050,
0, 2.620), Vector(-0.730, 0, 2.620), Vector(-1.310, 0, 2.620), Vector(-1.890, 0, 2.620), Vector(2.690, 0, 2.010), Vector(2.960,
0, 1.400), Vector(2.510, 0, 1.400))), Array(Array(Array(-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0)), Array(Array(True, False,
69, 69)), Array(Append To Array(All Players(All Teams), Array(69, 69))), Array(Array(Custom String("`"), Custom String("1"),
Custom String("2"), Custom String("3"), Custom String("4"), Custom String("5"), Custom String("6"), Custom String("7"),
Custom String("8"), Custom String("9"), Custom String("0"), Custom String("-"), Custom String("="), Custom String("q"),
Custom String("w"), Custom String("e"), Custom String("r"), Custom String("t"), Custom String("y"), Custom String("u"),
Custom String("i"), Custom String("o"), Custom String("p"), Custom String("["), Custom String("]"), Custom String("\\"),
Custom String("a"), Custom String("s"), Custom String("d"), Custom String("f"), Custom String("g"), Custom String("h"),
Custom String("j"), Custom String("k"), Custom String("l"), Custom String(";"), Custom String("'"), Custom String("z"),
Custom String("x"), Custom String("c"), Custom String("v"), Custom String("b"), Custom String("n"), Custom String("m"),
Custom String(","), Custom String("."), Custom String("/"), Custom String(" "), 69, 69), Array(Custom String("~"),
Custom String("!"), Custom String("@"), Custom String("#"), Custom String("$"), Custom String("%"), Custom String("^"),
Custom String("&"), Custom String("*"), Custom String("("), Custom String(")"), Custom String("_"), Custom String("+"),
Custom String("Q"), Custom String("W"), Custom String("E"), Custom String("R"), Custom String("T"), Custom String("T"),
Custom String("U"), Custom String("I"), Custom String("O"), Custom String("P"), Custom String("{"), Custom String("}"),
Custom String("|"), Custom String("A"), Custom String("S"), Custom String("D"), Custom String("F"), Custom String("G"),
Custom String("H"), Custom String("J"), Custom String("K"), Custom String("L"), Custom String(":"), Custom String("\""),
Custom String("Z"), Custom String("X"), Custom String("C"), Custom String("V"), Custom String("B"), Custom String("N"),
Custom String("M"), Custom String("<"), Custom String(">"), Custom String("?"), Custom String(" "), 69, 69))));
disabled Create In-World Text(All Players(All Teams), Custom String("NUzzZLES YOW nECKY WECKY"), Vector(0, 46, 0), 8, Clip Against Surfaces,
Visible To Position and String, Yellow, Default Visibility);
Global.upMenuInfo = Array(Vector(0, 0, 10.620), Vector(0, 0, 9.880), Vector(0, 0, 9.140), Vector(0, 0, 8.400), Vector(0, 0, 7.660),
Vector(0, 0, 6.920), Vector(0, 0, 6.180), Vector(0, 0, 5.140), Vector(0, 0, 4.700), Vector(0, 0, 3.960), Vector(0, 0, 3.220),
Vector(0, 0, 2.480), Vector(0, 0, 1.740), Vector(0, 0, 1));
Global.tempVals = Global.menuInfo[1];
Global.tempVals[2] = Mapped Array(Global.upMenuInfo, Current Array Element + Vector(0, 0, 0.060 * (12 - Count Of(All Players(
All Teams)))));
Global.menuInfo[1] = Global.tempVals;
Global.blockSelectPossList = Array(Vector(-14.700, 46, 2.690), Vector(-14.700, 46, 1.980), Vector(-14.700, 46, 1.270), Vector(
-14.700, 46, 0.560), Vector(-14.700, 46, -0.150), Vector(-14.700, 46, -0.860), Vector(-14.700, 46, -1.570), Vector(-14.700, 46,
-2.280), Vector(-14.700, 46, -2.990), Vector(-14.700, 46, -3.700), Vector(-14.700, 46, -4.410), Vector(-14.700, 46, -5.120),
Vector(-14.700, 46, -5.830), Vector(-14.700, 46, -6.540), Vector(-14.700, 46, -7.250), Vector(-14.700, 46, -9.340), Vector(
-14.700, 46, -10.030));
Global.blockSelectionTextInfos = Array(Custom String(" _______________________\n "), Custom String(" _______________________\n "),
Custom String(" _______________________\n "), Custom String(" _______________________\n "), Custom String(
" _______________________\n "));
disabled Global.blockSelectPossList = Array(Null, Null);
For Global Variable(I, 0, 15, 1);
disabled Global.blockSelectionTextInfos = Mapped Array(Global.blockSelectionTextInfos, Custom String("{1}o-{0}\n ",
Global.blockInfos[Current Array Index][15 - Global.I - 1][1] ? Global.blockInfos[Current Array Index][15 - Global.I - 1][1] : String(
""), Current Array Element));
Global.blockSelectionTextInfos = Mapped Array(Global.blockSelectionTextInfos, Custom String("{1}{0}\n ",
Global.blockInfos[Current Array Index][15 - Global.I - 1][1] ? Custom String("o-{0}",
Global.blockInfos[Current Array Index][15 - Global.I - 1][1]) : String(""), Current Array Element));
End;
Global.blockSelectionTextInfos = Mapped Array(Global.blockSelectionTextInfos, Custom String(
"{1}_______________________\n {0}\n <\n >", Array(Custom String("VALUES"), Custom String("OPERATIONS PG1"), Custom String(
"OPERATIONS PG2"), Custom String("OPERATORS PG3"), Custom String("EXECUTORS"))[Current Array Index], Current Array Element));
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 0),
Global.blockSelectionTextInfos[0], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Green,
Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 1),
Global.blockSelectionTextInfos[1], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Red,
Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 2),
Global.blockSelectionTextInfos[2], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Red,
Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 3),
Global.blockSelectionTextInfos[3], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Red,
Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 4),
Global.blockSelectionTextInfos[4], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Purple,
Default Visibility);
"menu options"
Create In-World Text(All Players(All Teams), Icon String(Trashcan), Vector(18.500, 46, -11), 2, Clip Against Surfaces,
Visible To Position and String, White, Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.workshopOn), Icon String(Checkmark), Vector(17,
46, -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), !Current Array Element.workshopOn), Icon String(X), Vector(17, 46,
-11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.othersVisible), Icon String(Eye), Vector(15.500,
46, -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
Create In-World Text(Filtered Array(All Players(All Teams), !Current Array Element.othersVisible), Icon String(Circle), Vector(
15.500, 46, -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
}
}
rule("INIT PLAYER")
{
event
{
Ongoing - Each Player;
All;
All;
}
actions
{
"put effect command"
Create Effect(Is True For Any(Event Player.finalValues, Current Array Element[0] == -3) ? All Players(All Teams) : False, Sphere,
White, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -3))[1][0], First Of(Filtered Array(
Event Player.finalValues, Current Array Element[0] == -3))[1][1], Visible To Position and Radius);
"put beam command"
Create Beam Effect(Is True For Any(Event Player.finalValues, Current Array Element[0] == -4) ? All Players(All Teams) : False,
Good Beam, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -4))[1][0], First Of(Filtered Array(
Event Player.finalValues, Current Array Element[0] == -4))[1][1], White, Visible To Position and Radius);
"display info command"
Create HUD Text(Is True For Any(Event Player.finalValues, Current Array Element[0] == -5) ? Event Player : 0, First Of(
Filtered Array(Event Player.finalValues, Current Array Element[0] == -5))[1][0], First Of(Filtered Array(
Event Player.finalValues, Current Array Element[0] == -5))[1][1], First Of(Filtered Array(Event Player.finalValues,
Current Array Element[0] == -5))[1][2], Left, 1, White, White, White, Visible To and String, Default Visibility);
"inworld text"
Create In-World Text(Is True For Any(Event Player.finalValues, Current Array Element[0] == -6) ? All Players(All Teams) : False,
First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -6))[1][0], First Of(Filtered Array(
Event Player.finalValues, Current Array Element[0] == -6))[1][1], 2, Clip Against Surfaces, Visible To Position and String,
White, Default Visibility);
"entry text result"
Create In-World Text(Event Player.entryPos == True ? Event Player : False, Event Player.entryInfo[2],
Event Player.entryPos + Vector(0, 0, -0.500), 1.500, Clip Against Surfaces, Visible To Position and String, White,
Default Visibility);
"entry text"
Create In-World Text(Event Player.entryPos == True ? Event Player : False, Is Button Held(Event Player, Ability 1) ? Last Of(
Event Player.entryInfo[3]) : First Of(Event Player.entryInfo[3]), Event Player.entryPos, 1.500, Clip Against Surfaces,
Visible To Position and String, White, Default Visibility);
disabled Create HUD Text(Event Player, Custom String("{0}", Event Player.cursorPos + Vector(0, 0, 11)), Null, Null, Left, 0, Green, White,
White, Visible To and String, Default Visibility);
disabled Create HUD Text(Event Player, Custom String("{0}", Event Player.cursorPos), Null, Null, Left, 0, White, White, White,
Visible To and String, Default Visibility);
Event Player.clickTargets = Array(Null, Array(Array(Vector(18.500, 46, -9.800), Custom String(
"Trash can - move a block here to destroy")), Array(0, 1), 0), Array(Array(Vector(17, 46, -9.800), Custom String(
"Workshop On - Turn On/Off WiW effects")), Array(0, 2), 0), Array(Array(Vector(15.500, 46, -9.800), Custom String(
"Others Visible - Turn On/Off Visibility Of Other's workshops")), Array(0, 3), 0));
Event Player.othersVisible = True;
Event Player.workshopOn = True;
Event Player.entryPos = Null;
Event Player.selectedTargetInfo = Null;
Event Player.blocksNewest = Empty Array;
disabled Event Player.clickTargets = Empty Array;
disabled Event Player.clickTargets = Array();
"will flip to false on existence"
Event Player.editMode = True;
Event Player.cursorPos = Up + Down;
Chase Player Variable At Rate(Event Player, cursorPos, Vector(Max(-21, Min(21, Horizontal Facing Angle Of(Event Player))), 46, Max(
-11.750, Min(11.750, Null - Vertical Facing Angle Of(Event Player)))), 10000, Destination and Rate);
"CURSOR ALL"
disabled Create Effect(All Players(All Teams), Sphere, White, Event Player.cursorPos, 0.180, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), Custom String("{0}{1}", Hero Icon String(Hero Of(Event Player)), Event Player),
Event Player.cursorPos + Vector(0, 0, -0.500), 0.900, Clip Against Surfaces, Visible To and Position, White,
Default Visibility);
"CURSOR FOR OTHERS"
Create Effect(Remove From Array(All Players(All Teams), Event Player), Sphere, White, Event Player.cursorPos, 0.180,
Visible To Position and Radius);
"CURSOR FOR PLAYER"
Create Effect(Event Player, Sphere, Purple, Event Player.cursorPos, 0.180, Visible To Position and Radius);
"selection "
Create Effect(Event Player.selectedTargetInfo ? Event Player : Empty Array, Sphere, Yellow, Event Player.selectedTargetInfo[0],
0.350, Visible To Position and Radius);
"cursor target"
Create Effect(Event Player.AclickTarget ? Event Player : Empty Array, Sphere, Blue, Event Player.AclickTarget[0], 0.350,
Visible To Position and Radius);
"selection info"
disabled Create HUD Text(Event Player, Custom String("{0} | {1} | {2}", Event Player.selectedTargetInfo[1][0],
Event Player.selectedTargetInfo[1][1], Event Player.selectedTargetInfo[1][2]), Null, Null, Right, 0, Yellow, White, White,
Visible To and String, Default Visibility);
"click target info"
disabled Create HUD Text(Event Player, Custom String("{0} | {1} | {2}", Event Player.AclickTarget[1][0], Event Player.AclickTarget[1][1],
Event Player.AclickTarget[1][2]), Null, Null, Right, 0, Blue, White, White, Visible To and String, Default Visibility);
Call Subroutine(updateBlockSelectMenu);
"selection info"
disabled Create HUD Text(Count Of(Event Player.selectedTargetInfo) ? Event Player : 0, Custom String("{0}",
Event Player.selectedTargetInfo[0][1]), Null, Null, Right, 0, Yellow, White, White, Visible To and String, Default Visibility);
"click target info"
disabled Create HUD Text(Count Of(Event Player.AclickTarget) ? Event Player : 0, Custom String("{0}", Event Player.AclickTarget[0][1]),
Null, Null, Right, 0, Blue, White, White, Visible To and String, Default Visibility);
"selection info"
Create HUD Text(Count Of(Event Player.selectedTargetInfo) ? Event Player : 0, Null, Null, Custom String("{0}",
Event Player.selectedTargetInfo[0][1]), Right, 0, Yellow, Yellow, Yellow, Visible To and String, Default Visibility);
"click target info"
Create HUD Text(Count Of(Event Player.AclickTarget)
&& Event Player.AclickTarget != Event Player.selectedTargetInfo ? Event Player : 0, Null, Null, Custom String("{0}",
Event Player.AclickTarget[0][1]), Right, 1, Blue, Blue, Blue, Visible To and String, Default Visibility);
}
}
rule("MATCH TIME SCHIST")
{
event
{
Ongoing - Global;
}
conditions
{
Match Time <= 3500;
}
actions
{
Set Match Time(3599);
}
}
rule("TOGGLE EDIT MODE")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Interact) == False;
}
actions
{
Event Player.editMode = !Event Player.editMode;
}
}
rule("F START CAM")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Event Player.editMode == True;
}
actions
{
Event Player.blockToUpdate = -1;
Start Camera(Event Player, Vector(0, 63, 0.875), Vector(0, 0, 0.875), 0);
Disable Hero HUD(Event Player);
Event Player.rememberedFacing = Facing Direction Of(Event Player);
Set Facing(Event Player, Vector(0, 0, 1), To World);
Set Aim Speed(Event Player, 30);
Call Subroutine(disableSchist);
}
}
rule("F STOP CAM")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Event Player.editMode == False;
}
actions
{
Stop Camera(Event Player);
Enable Hero HUD(Event Player);
Set Facing(Event Player, Event Player.rememberedFacing, To World);
Set Aim Speed(Event Player, 100);
Call Subroutine(enableSchist);
Enable Inspector Recording;
Event Player.AAAA = First Of(Filtered Array(Event Player.initChain, First Of(Current Array Element) < 0))[1];
Event Player.AAAA = Mapped Array(First Of(Filtered Array(Event Player.blocksNewest, Current Array Element[5] < 0))[3], Count Of(
Current Array Element));
Event Player.AAAA = Mapped Array(First Of(Filtered Array(Event Player.blocksNewest, Current Array Element[5] < 0))[3],
Current Array Element[4]);
Disable Inspector Recording;
Event Player.selectedTargetInfo = Null;
Call Subroutine(closeEntry);
}
}
disabled rule("ummm")
{
event
{
Ongoing - Global;
}
actions
{
"X LEFT"
Create Effect(All Players(All Teams), Sphere, Blue, Vector(1, 46, 0), 0.500, Visible To Position and Radius);
"Z FORWARD"
Create Effect(All Players(All Teams), Sphere, Green, Vector(0, 46, 1), 0.500, Visible To Position and Radius);
}
}
rule("DISABLESCHIST subroutine")
{
event
{
Subroutine;
disableSchist;
}
actions
{
Set Primary Fire Enabled(Event Player, False);
Set Secondary Fire Enabled(Event Player, False);
Set Reload Enabled(Event Player, False);
Set Melee Enabled(Event Player, False);
Set Ultimate Ability Enabled(Event Player, False);
Set Ability 1 Enabled(Event Player, False);
Set Ability 2 Enabled(Event Player, False);
Set Jump Enabled(Event Player, False);
Set Crouch Enabled(Event Player, False);
Set Status(Event Player, Null, Rooted, 9999);
Set Status(Event Player, Null, Phased Out, 9999);
Stop Facing(Event Player);
disabled Stop Camera(Event Player);
Set Gravity(Event Player, 0);
Start Forcing Player Position(Event Player, Position Of(Event Player), True);
Wait(0.033, Ignore Condition);
Stop Forcing Player Position(Event Player);
}
}
rule("ENABLESCHIST")
{
event
{
Subroutine;
enableSchist;
}
actions
{
Set Primary Fire Enabled(Event Player, True);
Set Secondary Fire Enabled(Event Player, True);
Set Reload Enabled(Event Player, True);
Set Melee Enabled(Event Player, True);
Set Ultimate Ability Enabled(Event Player, True);
Set Ability 1 Enabled(Event Player, True);
Set Ability 2 Enabled(Event Player, True);
Set Jump Enabled(Event Player, True);
Set Crouch Enabled(Event Player, True);
Clear Status(Event Player, Rooted);
Clear Status(Event Player, Phased Out);
Set Gravity(Event Player, 100);
Stop Forcing Player Position(Event Player);
}
}
rule("ACCESSVAL SUBROUTINE")
{
event
{
Subroutine;
accessVal;
}
actions
{
disabled If(Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]][1]);
"switch structure courtesy of LazyLion : 3"
disabled If(True);
disabled Skip(2 * Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]][2] + 1);
disabled Else;
disabled Event Player.tempVal = Position Of(Event Player);
disabled Else;
disabled Event Player.tempVal = Facing Direction Of(Event Player);
disabled Else;
disabled Event Player.tempVal = 0;
disabled End;
disabled Else;
Event Player.tempVal = Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]][2];
disabled End;
"delete it"
disabled Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]] = Null;
disabled If(!Global.menuInfo[0]);
Small Message(All Players(All Teams), Event Player.endChain[Event Player.indexPos][2][Event Player.i3]);
Wait(0.100, Ignore Condition);
disabled Small Message(All Players(All Teams), Event Player.endChain[Event Player.indexPos][2][Event Player.i3]);
disabled Wait(0.100, Ignore Condition);
}
}
rule("DOOPERATION SUBROUTINE")
{
event
{
Subroutine;
doOperation;
}
actions
{
"switch structure courtesy of LazyLion : 3"
If(True);
Skip(2 * Event Player.endChain[Event Player.indexPos][1] + 1);
Else;
"op0: add"
Event Player.tempVal = Event Player.tempVals[0] + Event Player.tempVals[1];
Else;
"op1: subtract"
Event Player.tempVal = Event Player.tempVals[0] - Event Player.tempVals[1];
Else;
"op2: multiply"
Event Player.tempVal = Event Player.tempVals[0] * Event Player.tempVals[1];
Else;
"op3: divide"
Event Player.tempVal = Event Player.tempVals[0] / Event Player.tempVals[1];
Else;
"op4: normalize"
Event Player.tempVal = Normalize(Event Player.tempVals[0]);
Else;
"op5: dot product"
Event Player.tempVal = Dot Product(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op6: cross product"
Event Player.tempVal = Cross Product(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op7: direction towards"
Event Player.tempVal = Direction Towards(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op8: vector towards"
Event Player.tempVal = Vector Towards(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op9: world vector of"
Event Player.tempVal = Event Player.tempVals[2] ? World Vector Of(Event Player.tempVals[0], Event Player.tempVals[1],
Rotation And Translation) : World Vector Of(Event Player.tempVals[0], Event Player.tempVals[1], Rotation);
Else;
"op10: local vector of"
Event Player.tempVal = Event Player.tempVals[2] ? Local Vector Of(Event Player.tempVals[0], Event Player.tempVals[1],
Rotation And Translation) : World Vector Of(Event Player.tempVals[0], Event Player.tempVals[1], Rotation);
Else;
"op11: x comp"
Event Player.tempVal = X Component Of(Event Player.tempVals[0]);
Else;
"op12: y comp"
Event Player.tempVal = X Component Of(Event Player.tempVals[0]);
Else;
"op13: z comp"
Event Player.tempVal = X Component Of(Event Player.tempVals[0]);
Else;
"op14: vector"
Event Player.tempVal = Vector(Event Player.tempVals[0], Event Player.tempVals[1], Event Player.tempVals[2]);
Else;
"op15: horizontal angle of"
Event Player.tempVal = Horizontal Angle From Direction(Event Player.tempVals[0]);
Else;
"op16: vertical angle of"
Event Player.tempVal = Vertical Angle From Direction(Event Player.tempVals[0]);
Else;
"op17: direction from angles"
Event Player.tempVal = Direction From Angles(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op18: position of"
Event Player.tempVal = Position Of(Event Player.tempVal[0]);
Else;
"op19: eye position of Of"
Event Player.tempVal = Eye Position(Event Player.tempVals[0]);
Else;
"op20: facing direction Of"
Event Player.tempVal = Facing Direction Of(Event Player.tempVals[0]);
Else;
"op21: velocity of"
Event Player.tempVal = Velocity Of(Event Player.tempVals[0]);
Else;
"op22: throttle of"
Event Player.tempVal = Throttle Of(Event Player.tempVals[0]);
Else;
"op23: angle between vectors"
Event Player.tempVal = Angle Between Vectors(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op24: angle difference"
Event Player.tempVal = Angle Difference(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op25: distance between"
Event Player.tempVal = Distance Between(Event Player.tempVals[0], Event Player.tempVals[1]);
Else;
"op26: sin"
Event Player.tempVal = Sine From Degrees(Event Player.tempVals[0]);
Else;
"op27: cos"
Event Player.tempVal = Cosine From Degrees(Event Player.tempVals[0]);
Else;
"op28: tan"
Event Player.tempVal = Tangent From Degrees(Event Player.tempVals[0]);
Else;
"op29: arcsine"
Event Player.tempVal = Arcsine In Degrees(Event Player.tempVals[0]);
Else;
"op30: arccos"
Event Player.tempVal = Arccosine In Degrees(Event Player.tempVals[0]);
Else;
"op31: arctan"
Event Player.tempVal = Arctangent In Degrees(Event Player.tempVals[0], 1);
Else;
"op32: absolute value"
Event Player.tempVal = Absolute Value(Event Player.tempVals[0]);
Else;
"op33: sign"
Event Player.tempVal = Event Player.tempVals[0] > 0 ? 0 : (Event Player.tempVals[0] == 0 ? 0 : -1);
Else;
"op34: modulo"
Event Player.tempVal = Event Player.tempVals[0] % Event Player.tempVals[1];
Else;
"op35: concatenate"
Event Player.tempVal = Custom String("{0}{1}{2}", Event Player.tempVals[0], Event Player.tempVals[1], Event Player.tempVals[2]);
End;
}
}
rule("CHAIN")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
True == True;
}
actions
{
disabled Event Player.endChain = Mapped Array(Event Player.initChain, Current Array Element[3] ? Current Array Element : Null);
Event Player.endChain = Event Player.initChain;
disabled For Player Variable(Event Player, i, 0, Count Of(Event Player.endChain), 1);
disabled Modify Player Variable At Index(Event Player, endChain, Event Player.i, Append To Array, Event Player.i);
disabled End;
"for every layer of priorities (order from highest priority to 1) || ex. in A(B() + C(D(x))), prioritiy values = A:1, B:2, C:2, D:3 and x as a value has 0 for priority< CHECK FOR OK vs -1"
For Player Variable(Event Player, i, Last Of(Sorted Array(Event Player.endChain, Current Array Element[0]))[0], 0, -1);
disabled Big Message(All Players(All Teams), Custom String("bruh?"));
"for all operations on current priority level"
disabled While(Count Of(Filtered Array(Event Player.endChain, Current Array Element[0] == Event Player.i)) > 0);
"for all operations on current priority level"
While(Count Of(Filtered Array(Event Player.endChain, Current Array Element[0] == Event Player.i)));
"set the index to the i2 th value in endchain with the priority value at i"
Event Player.indexPos = Last Of(First Of(Filtered Array(Event Player.endChain,
Current Array Element[0] == Event Player.i && Current Array Element)));
"set the index to the i2 th value in endchain with the priority value at i"
disabled Event Player.indexPos = Last Of(Filtered Array(Event Player.endChain, Current Array Element[0] == Event Player.i)[0]);
Event Player.tempVals = Empty Array;
"fill tempvals with all the requested inputs of the operation"
For Player Variable(Event Player, i3, 0, Count Of(Event Player.endChain[Event Player.indexPos][2]), 1);
"access val goes to the value requested in endchain and outputs the corresponding value at tempval"
Call Subroutine(accessVal);
Event Player.tempVals[Event Player.i3] = Event Player.tempVal;
End;
"String() is like a null value - if trying to access 0th or nullth block, returns null (specifically string() as null and 0 display)"
disabled Event Player.tempVals = Mapped Array(Event Player.endChain[Event Player.indexPos][2],
Current Array Element ? Event Player.endChain[Current Array Element][2] : String(""));
"take tempvals and do operation to ouput to endTempVal"
Call Subroutine(doOperation);
"the operation becomes a value after executing it"
Event Player.endChain[Event Player.indexPos] = Array(0, False, Event Player.tempVal, Event Player.indexPos);
End;
End;
"for every output block"
For Player Variable(Event Player, i, 0, Count Of(Filtered Array(Event Player.endChain, Current Array Element[0] < 0)), 1);
disabled Big Message(All Players(All Teams), Custom String("?hurb"));
Event Player.indexPos = Last Of(Filtered Array(Event Player.endChain, Current Array Element[0] < 0)[Event Player.i]);
"String() is like a null value - if trying to access 0th or nullth block, returns null (specifically string() as null and 0 display)"
Event Player.tempVals = Mapped Array(Event Player.endChain[Event Player.indexPos][1],
Current Array Element ? Event Player.endChain[Current Array Element][2] : String(""));
disabled Event Player.tempVals = Mapped Array(Event Player.endChain[Event Player.indexPos][1],
Event Player.endChain[Current Array Element][2]);
Event Player.endChain[Event Player.indexPos] = Array(Event Player.endChain[Event Player.indexPos][0], Event Player.tempVals);
End;
Event Player.finalValues = Filtered Array(Event Player.endChain, First Of(Current Array Element) < 0);
disabled Event Player.finalValues = Mapped Array(Sorted Array(Filtered Array(Event Player.endChain, Count Of(Current Array Element) > 1),
Current Array Element[0]), Append To Array(Current Array Element, Current Array Index));
disabled Event Player.finalValues = Mapped Array(Filtered Array(Event Player.endChain, First Of(Current Array Element) < 0),
Append To Array(Current Array Element[0], Current Array Element[1]));
disabled Event Player.finalValuesFirstTwo = Mapped Array(Event Player.finalValues, Array Slice(Event Player.finalValues, 0, 2));
Wait(0.016, Ignore Condition);
Loop If Condition Is True;
"for all operations on current priority level"
disabled For Player Variable(Event Player, i2, 0, Count Of(Filtered Array(Event Player.endChain,
Current Array Element[0] == Event Player.i)), 1);
}
}
disabled rule("")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Reload) == True;
}
actions
{
disabled Create Effect(All Players(All Teams), Sphere, White, Event Player, 1, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), Custom String(" ye\n ye\n ye\n ye\n ye\n ye\n ye"), Vector(0, 46, 0), 1.500,
Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(0, 46, 0), Vector(0, 46, 6), White,
Visible To Position and Radius);
Create In-World Text(All Players(All Teams), Custom String(" ye\n ye\n ye\n ye\n ye"), Vector(6, 46, 0), 1.500,
Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(6, 46, 0), Vector(6, 46, 4.800), White,
Visible To Position and Radius);
Create In-World Text(All Players(All Teams), Custom String(" ye\n ye\n ye\n ye\n ye\n ye"), Vector(3, 46, 0), 1.500,
Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(3, 46, 0), Vector(3, 46, 5.400), White,
Visible To Position and Radius);
}
}
disabled rule("TEMP PLAYER INIT")
{
event
{
Ongoing - Each Player;
All;
All;
}
actions
{
Event Player.entryPos = True;
"number's info: {number, array of digits}"
Create In-World Text(Event Player.entryPos == True ? Event Player : False, Custom String("A|0 1 2 3 4 5 6 7 8 9|>X\n {0}",
Event Player.entryInfo[0]), Event Player.entryPos, 2, Clip Against Surfaces, Visible To Position and String, White,
Default Visibility);
disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.entryPos + Vector(4.500, 0, 1.600),
Event Player.entryPos + Vector(-4.500, 0, 1.600), White, Visible To Position and Radius);
disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.entryPos + Vector(3.125, 0, 2.500),
Event Player.entryPos + Vector(-3.125, 0, 2.500), White, Visible To Position and Radius);
Create Effect(Event Player.AclickTarget ? Event Player : Empty Array, Sphere, Blue, Event Player.AclickTarget[0], 0.500,
Visible To Position and Radius);
Event Player.clickTargets = Empty Array;
Create HUD Text(Event Player, Custom String("{0} | {1}", Event Player.AclickTarget, Event Player.AclickTarget[1]), Null, Null,
Left, 0, White, White, White, Visible To and String, Default Visibility);
}
}
rule("CLICK ON")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Primary Fire) == True;
Event Player.editMode == True;
Event Player.AclickTarget == True;
Event Player.selectedTargetInfo == False;
}
actions
{
"switch structure courtesy of LazyLion : 3"
If(True);
disabled Call Subroutine(openEntry);
Skip(2 * Event Player.AclickTarget[1][0] + 1);
Else;
Break;
Else;
Break;
Else;
disabled Break;
Call Subroutine(blockClickOn);
End;
disabled Create HUD Text(All Players(All Teams), Custom String("{0}", X Component Of(Event Player.cursorPos)), Null, Null, Right, 0, White,
White, White, Visible To, Default Visibility);
}
}
rule("CLICK OFF")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Primary Fire) == False;
Event Player.editMode == True;
disabled Event Player.AclickTarget == True;
}
actions
{
"switch structure courtesy of LazyLion : 3"
If(True);
disabled Break;
Skip(2 * Event Player.AclickTarget[1][0] + 1);
Else;
Call Subroutine(emptyClickOff);
Else;
Call Subroutine(numberClickOff);
Else;
Call Subroutine(blockClickOff);
Else;
Call Subroutine(blockMenuClickOff);
End;
disabled Create HUD Text(All Players(All Teams), Custom String("{0}", X Component Of(Event Player.cursorPos)), Null, Null, Right, 0, White,
White, White, Visible To, Default Visibility);
}
}
rule("NUMBERCLICKOFF subroutine")
{
event
{
Subroutine;
numberClickOff;
}
actions
{
Event Player.AAAA = Event Player.entryInfo[1];
"if was clicking on the same button"
disabled If(Event Player.selectedTargetInfo == Event Player.AclickTarget);
"accept button"
If(Event Player.AclickTarget[1][1] == Count Of(Event Player.numberTargetIndexes) - 2);
If(!Event Player.entryInfo[0]);
If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 3);
Event Player.entryInfo[0] = String("");
End;
End;
Event Player.tempVals4 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]];
Event Player.tempVals4[7] = Event Player.entryInfo[0];
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Event Player.tempVals4;
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Call Subroutine(hideBlock);
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Call Subroutine(showBlock);
Call Subroutine(closeEntry);
Call Subroutine(updateChain);
Event Player.selectedTargetInfo = Null;
"close button"
Else If(Event Player.AclickTarget[1][1] == Count Of(Event Player.numberTargetIndexes) - 1);
Call Subroutine(closeEntry);
Event Player.selectedTargetInfo = Null;
Else;
"number field"
If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 0);
"is entry for sign (-) and is the array empty"
If(First Of(Event Player.entryInfo[4])[Event Player.AclickTarget[1][1]] == -2);
If(Event Player.entryInfo[1] == Empty Array);
disabled Small Message(All Players(All Teams), Custom String("REEEE"));
Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, First Of(Event Player.entryInfo[4])
[Event Player.AclickTarget[1][1]]);
End;
"can afford more digits"
Else If(Count Of(Remove From Array(Remove From Array(Event Player.entryInfo[1], -1), -2)) < 7);
"theres a dot"
If(Array Contains(Event Player.entryInfo[1], -1));
"entry is a number and there are precision digits left (3 total)"
If(First Of(Event Player.entryInfo[4])[Event Player.AclickTarget[1][1]] >= 0 && Count Of(Event Player.entryInfo[1])
- Index Of Array Value(Event Player.entryInfo[1], -1) <= 3);
disabled Small Message(All Players(All Teams), Custom String("REEEE"));
Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, First Of(Event Player.entryInfo[4])
[Event Player.AclickTarget[1][1]]);
End;
"no dot"
Else;
disabled Small Message(All Players(All Teams), Custom String("REEEE"));
Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, First Of(Event Player.entryInfo[4])
[Event Player.AclickTarget[1][1]]);
End;
End;
If(Event Player.entryInfo[1] == Array(0, 0));
Event Player.entryInfo[1] = Array(0);
End;
If(Event Player.entryInfo[1] == Array(-2, 0, 0));
Event Player.entryInfo[1] = Array(-2, 0);
End;
Event Player.entryInfo[0] = 0;
"CAPPING PROBLEMS, DO DIVISION BEFOREHAND OR SOMETHING"
For Player Variable(Event Player, anotherTempCounter, 0, Count Of(Remove From Array(Remove From Array(Event Player.entryInfo[1],
-1), -2)), 1);
Event Player.entryInfo[0] += Remove From Array(Remove From Array(Event Player.entryInfo[1], -1), -2)
[Event Player.anotherTempCounter];
disabled Event Player.entryInfo[0] += Remove From Array(Event Player.entryInfo[1], -1)[Event Player.anotherTempCounter] / 1000;
Event Player.entryInfo[0] *= 10;
End;
Event Player.entryInfo[0] /= 10 ^ (Array Contains(Event Player.entryInfo[1], -1) ? Count Of(Event Player.entryInfo[1])
- Index Of Array Value(Event Player.entryInfo[1], -1) : 1);
Event Player.entryInfo[2] = Custom String("{0}{1}", (First Of(Event Player.entryInfo[1]) == -2 ? Round To Integer(
-100 * Event Player.entryInfo[0], Up) : Round To Integer(100 * Event Player.entryInfo[0], Down)) / 100, Absolute Value(
Event Player.entryInfo[0]) * 1000 % 10 != 0 ? Event Player.entryInfo[0] * 1000 % 10 : String(""));
If(First Of(Event Player.entryInfo[1]) == -2);
Event Player.entryInfo[0] *= -1;
End;
disabled Event Player.entryInfo[0] /= 10 ^ (Array Contains(Event Player.entryInfo[1], -1) ? Count Of(Event Player.entryInfo[1])
- Index Of Array Value(Event Player.entryInfo[1], -4) : -2);
Else If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 3);
Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, (Is Button Held(Event Player, Ability 1) ? Last Of(
Event Player.entryInfo[4]) : First Of(Event Player.entryInfo[4]))[Event Player.AclickTarget[1][1]]);
Event Player.entryInfo[0] = String("");
For Player Variable(Event Player, anotherTempCounter, 0, Count Of(Event Player.entryInfo[1]), 1);
Event Player.entryInfo[0] = Custom String("{0}{1}", Event Player.entryInfo[0],
Event Player.entryInfo[1][Event Player.anotherTempCounter]);
End;
Event Player.entryInfo[2] = Event Player.entryInfo[0];
"other fields"
Else;
Event Player.entryInfo[0] = (Is Button Held(Event Player, Ability 1) ? Last Of(Event Player.entryInfo[4]) : First Of(
Event Player.entryInfo[4]))[Event Player.AclickTarget[1][1]];
Event Player.entryInfo[2] = Event Player.entryInfo[0];
End;
End;
}
}
rule("EMPTYCLICKOFF subroutine")
{
event
{
Subroutine;
emptyClickOff;
}
actions
{
If(Event Player.selectedTargetInfo[1][0] == 2);
"click off from dragging a block"
If(Count Of(Event Player.selectedTargetInfo[1]) == 2);
If(Event Player.AclickTarget[1] == Array(0, 1));
Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Good Explosion, White, Event Player.AclickTarget[0], 1);
disabled Big Message(All Players(All Teams), Custom String("DELET THIS BFOR I DELET YOU"));
"remove all of block's connections"
If(Is True For Any(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3], Count Of(Current Array Element) >= 6));
Event Player.toUpdate = Array(Event Player.selectedTargetInfo[1][1]);
Event Player.tempVals6 = Event Player.blocksNewest[First Of(Event Player.toUpdate)];
Event Player.tempVals6[8] = False;
Event Player.blocksNewest[First Of(Event Player.toUpdate)] = Event Player.tempVals6;
Call Subroutine(updateBlockOrderInfo);
Call Subroutine(updateChain);
For Player Variable(Event Player, tempCounter5, 0, Count Of(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3]),
1);
If(Count Of(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5]) >= 6);
Destroy Effect(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][6]);
Event Player.tempVals6 = Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][4]][3];
Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][5]] = Array Slice(
Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][5]], 0,
4);
Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][4]] = Mapped Array(
Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][4]],
Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
Event Player.tempVals6 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3];
Event Player.tempVals6[Event Player.tempCounter5] = Array Slice(Event Player.tempVals6[Event Player.tempCounter5], 0, 4);
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Mapped Array(
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]],
Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
End;
End;
End;
"delete block"
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Call Subroutine(hideBlock);
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Event Player.selectedTargetInfo[1][1];
Enable Inspector Recording;
Disable Inspector Recording;
Else;
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Append To Array(Event Player.cursorPos, Array Slice(
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]], 1, 10));
"refresh block"
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Call Subroutine(hideBlock);
"refresh block"
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Good Explosion, White, Event Player.blocksNewest[Event Player.blockToUpdate][0], 1);
Call Subroutine(showBlock);
End;
Event Player.selectedTargetInfo = Null;
"click off from a node thats not a field"
Else If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0] != 0);
If(Count Of(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]]) > 4);
"play effects at nodes"
Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Good Explosion, White,
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][0] + Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][0],
1);
Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Good Explosion, White,
Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][0] + Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][3][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]][0],
1);
If(
Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][3][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]][2][0] < Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0]);
Event Player.toUpdate = Array(
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]);
Else;
Event Player.toUpdate = Array(Event Player.selectedTargetInfo[1][1]);
End;
Event Player.tempVals6 = Event Player.blocksNewest[First Of(Event Player.toUpdate)];
Event Player.tempVals6[8] = False;
Event Player.blocksNewest[First Of(Event Player.toUpdate)] = Event Player.tempVals6;
Call Subroutine(updateBlockOrderInfo);
Call Subroutine(updateChain);
Destroy Effect(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][6]);
Event Player.tempVals6 = Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][3];
Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]] = Array Slice(
Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]],
0, 4);
Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]] = Mapped Array(
Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]],
Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
Event Player.tempVals6 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3];
Event Player.tempVals6[Event Player.selectedTargetInfo[1][2]] = Array Slice(
Event Player.tempVals6[Event Player.selectedTargetInfo[1][2]], 0, 4);
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Mapped Array(
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]],
Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
End;
Event Player.selectedTargetInfo = Null;
End;
Else If(Event Player.AclickTarget[1] == Array(0, 2));
Event Player.workshopOn = !Event Player.workshopOn;
Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Good Explosion, White, Event Player.AclickTarget[0], 1);
Else If(Event Player.AclickTarget[1] == Array(0, 3));
Event Player.othersVisible = !Event Player.othersVisible;
Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Good Explosion, White, Event Player.AclickTarget[0], 1);
End;
disabled Event Player.tempVals5 = Event Player.blocksNewest[0][0];
}
}
rule("BLOCKCLICKED on subroutine")
{
event
{
Subroutine;
blockClickOn;
}
actions
{
disabled Small Message(All Players(All Teams),
Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0]);
"target is a node not a field"
If(Count Of(Event Player.AclickTarget[1])
> 2 && Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] != 0);
disabled Small Message(All Players(All Teams), Custom String("A"));
Event Player.selectedTargetInfo = Event Player.AclickTarget;
Else If(Count Of(Event Player.AclickTarget[1]) == 2);
disabled Small Message(All Players(All Teams), Custom String("B"));
Event Player.selectedTargetInfo = Event Player.AclickTarget;
Else;
disabled Call Subroutine(emptyClickOn);
disabled Event Player.selectedTargetInfo = Event Player.AclickTarget;
End;
}
}
rule("BLOCKCLICKED off subroutine")
{
event
{
Subroutine;
blockClickOff;
}
actions
{
"target is a node not a field"
If(Event Player.selectedTargetInfo[1][0] == 2 && Count Of(Event Player.AclickTarget[1])
> 2 && Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] != 0);
"sign of selected target was not the same as current target, do connection"
If((Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] > 0) != (
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0] > 0)
&& Event Player.selectedTargetInfo[1][1] != Event Player.AclickTarget[1][1] && Count Of(
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]]) < 6 && Count Of(
Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]]) < 6 && !Is True For Any(
Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3], Count Of(Current Array Element)
>= 6 && Current Array Element[4] == Event Player.selectedTargetInfo[1][1]));
Event Player.blocksCopy = Event Player.blocksNewest;
Event Player.tempVals7 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3];
Modify Player Variable At Index(Event Player, tempVals7, Event Player.selectedTargetInfo[1][2], Append To Array, Array(
Event Player.AclickTarget[1][1], Event Player.AclickTarget[1][2], Null));
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Mapped Array(
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]],
Current Array Index == 3 ? Event Player.tempVals7 : Current Array Element);
Event Player.tempVals7 = Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3];
Modify Player Variable At Index(Event Player, tempVals7, Event Player.AclickTarget[1][2], Append To Array, Array(
Event Player.selectedTargetInfo[1][1], Event Player.selectedTargetInfo[1][2], Null));
Event Player.blocksNewest[Event Player.AclickTarget[1][1]] = Mapped Array(
Event Player.blocksNewest[Event Player.AclickTarget[1][1]],
Current Array Index == 3 ? Event Player.tempVals7 : Current Array Element);
If(
Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] > Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0]);
Event Player.toUpdate = Array(Event Player.AclickTarget[1][1]);
Else;
Event Player.toUpdate = Array(Event Player.selectedTargetInfo[1][1]);
End;
Call Subroutine(updateBlockOrderInfo);
If(Event Player.badConnection);
Event Player.blocksNewest = Event Player.blocksCopy;
Else;
Call Subroutine(updateChain);
"refresh block"
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Call Subroutine(hideBlock);
"refresh block"
Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
Call Subroutine(showBlock);
End;
Event Player.selectedTargetInfo = Null;
Else;
Call Subroutine(emptyClickOff);
End;
"selected target was not a non node id 0 node but current target IS a node id 0"
disabled Else If(Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] == 0);
"target to select is a field and not nothing already clicked on"
Else If(
Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] == 0 && !Event Player.selectedTargetInfo);
"clicked on a field"
Event Player.selectedTargetInfo = Event Player.AclickTarget;
Call Subroutine(openEntry);
Else;
Call Subroutine(emptyClickOff);
End;
}
}
rule("OPEN NUMBER ENTRY subroutine")
{
event
{
Subroutine;
openEntry;
}
actions
{
Enable Inspector Recording;
If(!Event Player.entryPos);
Event Player.entryPos = Vector(0, 46, -11);
disabled Small Message(All Players(All Teams), Custom String("HEY FU CKO | {0} | {1} | {2}", Count Of(Global.menuInfo)));
disabled Event Player.entryPos = Vector(Max(-9.600, Min(9.600, X Component Of(Event Player.selectedTargetInfo[0]))), 46, Max(-8, Min(2.800,
Z Component Of(Event Player.selectedTargetInfo[0]))));
Event Player.entryInfo = Array(Null, Empty Array, String(""), String("Checkpoint"),
Global.menuInfo[2][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]]);
Call Subroutine(updateEntryInfo3);
Event Player.numberTargetIndexes = Empty Array;
disabled Create HUD Text(All Players(All Teams), Last Created Entity, Null, Null, Right, 0, White, White, White, None, Default Visibility);
disabled Small Message(All Players(All Teams), Custom String("HEY FU CKO | {0} | {1} | {2}", Count Of(
Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]]),
Count Of(Event Player.entryInfo[4]), Count Of(
Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]])
- Count Of(Event Player.entryInfo[4])));
For Player Variable(Event Player, tempCounter, Count Of(
Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]])
- Max(Count Of(First Of(Event Player.entryInfo[4])), Count Of(Last Of(Event Player.entryInfo[4]))), Count Of(
Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]]),
1);
Event Player.insertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2) ? Last Of(
Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(Event Player.clickTargets);
Modify Player Variable(Event Player, numberTargetIndexes, Append To Array, Event Player.insertToTargetsIndex);
">LOOK HERE FOR CLICK TARGETS STRUCTURE<"
Event Player.clickTargets[Event Player.insertToTargetsIndex] = Array(
Event Player.entryPos + Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][Event Player.tempCounter],
Array(1, Event Player.tempCounter - Count Of(
Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]])
+ Max(Count Of(First Of(Event Player.entryInfo[4])), Count Of(Last Of(Event Player.entryInfo[4])))),
Event Player.insertToTargetsIndex);
disabled Create Effect(All Players(All Teams), Sphere, Red, Event Player.clickTargets[Event Player.insertToTargetsIndex][0], 0.700,
Visible To);
End;
disabled Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array,
Event Player.entryInfo[4][Event Player.AclickTarget[1][1]]);
End;
Disable Inspector Recording;
}
}
rule("CLOSE NUMBER ENTRY subroutine")
{
event
{
Subroutine;
closeEntry;
}
actions
{
disabled Big Message(All Players(All Teams), Custom String("REEEE"));
If(Event Player.entryPos);
Event Player.entryPos = Null;
For Player Variable(Event Player, tempCounter, 0, Count Of(Event Player.numberTargetIndexes), 1);
Event Player.clickTargets[Event Player.numberTargetIndexes[Event Player.tempCounter]] = Array(
Event Player.numberTargetIndexes[Event Player.tempCounter]);
End;
End;
disabled Event Player.selectedTargetInfo = Null;
}
}
rule("HOME CURSOR TO TARGET")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Event Player.AclickTarget != First Of(Sorted Array(Filtered Array(Event Player.clickTargets, Distance Between(
Current Array Element[0], Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2), Distance Between(
Current Array Element[0], Event Player.cursorPos)));
}
actions
{
"click targets have [0] = pos, [1] = {box, value in box}, [2] = same value as index"
Event Player.AclickTarget = First Of(Sorted Array(Filtered Array(Event Player.clickTargets, Distance Between(
Current Array Element[0], Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2), Distance Between(
Current Array Element[0], Event Player.cursorPos)));
Wait(0.050, Ignore Condition);
Loop If Condition Is True;
disabled Wait(0.100, Ignore Condition);
}
}
disabled rule("HOME CURSOR UPDATE - NEWEST PRIORITY")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Event Player.AclickTarget != Last Of(Filtered Array(Event Player.clickTargets, Distance Between(Current Array Element[0],
Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2));
}
actions
{
"click targets have [0] = pos, [1] = {box, value in box}, [2] = same value as index"
Event Player.AclickTarget = Last Of(Filtered Array(Event Player.clickTargets, Distance Between(Current Array Element[0],
Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2));
Wait(0.016, Ignore Condition);
Loop If Condition Is True;
}
}
disabled rule("HOME CURSOR ON NOTHING")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Filtered Array(Event Player.clickTargets, Distance Between(Current Array Element[0], Event Player.cursorPos) <= 0.700 && Count Of(
Current Array Element) >= 2) == False;
}
actions
{
Event Player.AclickTarget = False;
}
}
disabled rule("CAM BLOCK EXISTS AND NOT IN EDIT MODE")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is True For Any(Event Player.initChain, Current Array Element[0] == -1) == True;
Event Player.editMode == False;
}
actions
{
disabled Small Message(All Players(All Teams), Custom String("ye cam"));
Enable Inspector Recording;
"end"
Start Camera(First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1))[1][0], First Of(Filtered Array(
Event Player.finalValues, Current Array Element[0] == -1))[1][1], First Of(Filtered Array(Event Player.finalValues,
Current Array Element[0] == -1))[1][2], 120);
disabled Event Player.AAAA = First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1));
disabled Event Player.AAAA = First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1))[1];
Disable Inspector Recording;
}
}
disabled rule("RELOAD PRESSED")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Reload) == True;
}
actions
{
For Player Variable(Event Player, tempCounter3, 0, Count Of(Event Player.blocksNewest), 1);
Event Player.blockToUpdate = Event Player.tempCounter3;
Call Subroutine(showBlock);
End;
disabled Event Player.selectedTargetInfo = Array(Vector(0, 46, 0), Array(2, 1, 1));
Call Subroutine(openEntry);
Wait(2, Ignore Condition);
}
}
disabled rule("")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Reload) == False;
}
actions
{
disabled Call Subroutine(openEntry);
For Player Variable(Event Player, tempCounter3, 0, Count Of(Event Player.blocksNewest), 1);
Event Player.blockToUpdate = Event Player.tempCounter3;
disabled Destroy In-World Text(Event Player.blocksNewest[Event Player.blockToUpdate][0][1]);
disabled For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[1][1]), 1);
disabled Destroy Effect(Event Player.blocksNewest[Event Player.blockToUpdate][1][Event Player.nodeToUpdate][1]);
disabled End;
Call Subroutine(hideBlock);
End;
disabled Wait(0.016, Ignore Condition);
disabled For Player Variable(Event Player, blockToUpdate, 0, Count Of(Event Player.blocksNewest), 1);
disabled Call Subroutine(showBlock);
disabled End;
disabled Wait(1, Ignore Condition);
}
}
disabled rule("MAKEBLOCK subroutine")
{
event
{
Subroutine;
showBlock;
}
actions
{
Create In-World Text(All Players(All Teams), Event Player.blocksNewest[Event Player.blockToUpdate][1],
Event Player.blocksNewest[Event Player.blockToUpdate][0], 1, Clip Against Surfaces, Visible To and String, White,
Default Visibility);
"set blocksold[L][2] = last text id"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate];
Event Player.tempVals2[2] = Last Text ID;
Event Player.blocksNewest[Event Player.blockToUpdate] = Event Player.tempVals2;
For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3]), 1);
"output node is green"
If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0] < 0);
Create Effect(All Players(All Teams), Sphere, Green,
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
1, Visible To);
"blocksold[L][3][M][1] = last created entity"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
Current Array Index == 1 ? Last Created Entity : Current Array Element);
Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
"input is red"
Else;
Create Effect(All Players(All Teams), Sphere, Red,
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
1, Visible To);
"blocksold[L][3][M][1] = last created entity"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
Current Array Index == 1 ? Last Created Entity : Current Array Element);
Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
End;
End;
}
}
rule("SHOWBLOCK subroutine")
{
event
{
Subroutine;
showBlock;
}
actions
{
disabled Wait(1, Ignore Condition);
disabled Create Beam Effect(All Players(All Teams), Good Beam,
Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][0] + Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][0],
Event Player.blocksNewest[Event Player.AclickTarget[1][1]][0] + Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][0],
White, None);
"if there is no intention to create a block"
If(Event Player.blockToUpdate != -1);
Create In-World Text(Filtered Array(All Players(All Teams),
Current Array Element.othersVisible || Current Array Element == Event Player),
Event Player.blocksNewest[Event Player.blockToUpdate][1], Event Player.blocksNewest[Event Player.blockToUpdate][0], 1.500,
Clip Against Surfaces, Visible To, White, Default Visibility);
"set blocksold[L][2] = last text id"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate];
Event Player.tempVals2[2] = Last Text ID;
Event Player.blocksNewest[Event Player.blockToUpdate] = Event Player.tempVals2;
Event Player.anotherInsertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2)
? Last Of(Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(
Event Player.clickTargets);
"set blocksold[L][4] = insertindexblahblahblah"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate];
Event Player.tempVals2[4] = Event Player.anotherInsertToTargetsIndex;
Event Player.blocksNewest[Event Player.blockToUpdate] = Event Player.tempVals2;
">LOOK HERE FOR CLICK TARGETS STRUCTURE< | node pos, {click type, node's block's index, node's index}"
Event Player.clickTargets[Event Player.anotherInsertToTargetsIndex] = Array(Array(
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Vector(0, 0, 0),
Event Player.blocksNewest[Event Player.blockToUpdate][6][1]), Array(2, Event Player.blockToUpdate),
Event Player.anotherInsertToTargetsIndex);
For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3]), 1);
Event Player.anotherInsertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2)
? Last Of(Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(
Event Player.clickTargets);
"blocksold[L][3][M][3] = anotherInsertToTargetsIndex"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
Current Array Index == 3 ? Event Player.anotherInsertToTargetsIndex : Current Array Element);
Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
disabled Wait(0.016, Ignore Condition);
">LOOK HERE FOR CLICK TARGETS STRUCTURE< | node pos, {click type, node's block's index, node's index}"
Event Player.clickTargets[Event Player.anotherInsertToTargetsIndex] = Array(Array(
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][1]), Array(2,
Event Player.blockToUpdate, Event Player.nodeToUpdate), Event Player.anotherInsertToTargetsIndex);
"output node is green"
If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0] < 0);
disabled Small Message(All Players(All Teams), Custom String("yuh make"));
Create Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Sphere, Green,
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
0.200, Visible To);
"blocksold[L][3][M][1] = last created entity"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
Current Array Index == 1 ? Last Created Entity : Current Array Element);
Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
"VALUE FIELD NODE/entry field"
Else If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0] == 0);
Create In-World Text(Filtered Array(All Players(All Teams),
Current Array Element.othersVisible || Current Array Element == Event Player),
Event Player.blocksNewest[Event Player.blockToUpdate][7],
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
1.500, Clip Against Surfaces, Visible To, White, Default Visibility);
"blocksold[L][3][M][1] = last text ID"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
Current Array Index == 1 ? Last Text ID : Current Array Element);
Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
"input is red"
Else;
Create Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
Sphere, Red,
Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
0.200, Visible To);
"blocksold[L][3][M][1] = last created entity"
Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
Current Array Index == 1 ? Last Created Entity : Current Array Element);
Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
disabled Create HUD Text(All Players(All Teams), Custom String("{0} | {1}",
Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1], Last Created Entity), Null, Null, Left,
0, White, White, White, Visible To, Default Visibility);
End;
If(Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate]) >= 6);
Event Player.tempVals2 = Array(Array(Event Player.blockToUpdate, Event Player.nodeToUpdate), Array Slice(
Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate], 4, 2));
"[1]'s id > [0]'s id"
If(
Event Player.blocksNewest[Event Player.tempVals2[1][0]][3][Event Player.tempVals2[1][1]][2][0] < Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0]);
Event Player.tempVals2 = Array(Event Player.tempVals2[1], Event Player.tempVals2[0]);
End;
Create Beam Effect(Filtered Array(All Players(All Teams),
Current Array Element.othersVisible || Current Array Element == Event Player), Bad Beam,
Event Player.blocksNewest[Event Player.tempVals2[0][0]][0] + Event Player.blocksNewest[Event Player.tempVals2[0][0]][3][Event Player.tempVals2[0][1]][0],
Event Player.blocksNewest[Event Player.tempVals2[1][0]][0] + Event Player.blocksNewest[Event Player.tempVals2[1][0]][3][Event Player.tempVals2[1][1]][0],
White, Visible To);
Event Player.tempVals3 = Event Player.blocksNewest[Event Player.tempVals2[0][0]][3];
Event Player.tempVals3[Event Player.tempVals2[0][1]] = Mapped Array(Event Player.tempVals3[Event Player.tempVals2[0][1]],
Current Array Index == 6 ? Last Created Entity : Current Array Element);
Event Player.blocksNewest[Event Player.tempVals2[0][0]] = Mapped Array(Event Player.blocksNewest[Event Player.tempVals2[0][0]],
Current Array Index == 3 ? Event Player.tempVals3 : Current Array Element);
Event Player.tempVals3 = Event Player.blocksNewest[Event Player.tempVals2[1][0]][3];
Event Player.tempVals3[Event Player.tempVals2[1][1]] = Mapped Array(Event Player.tempVals3[Event Player.tempVals2[1][1]],
Current Array Index == 6 ? Last Created Entity : Current Array Element);
Event Player.AAAA = Event Player.tempVals3[Event Player.tempVals2[1][1]];
Event Player.blocksNewest[Event Player.tempVals2[1][0]] = Mapped Array(Event Player.blocksNewest[Event Player.tempVals2[1][0]],
Current Array Index == 3 ? Event Player.tempVals3 : Current Array Element);
End;
End;
End;
Event Player.blockToUpdate = -1;
}
}
rule("HIDEBLOCK subroutine")
{
event
{
Subroutine;
hideBlock;
}
actions
{
disabled Wait(1, Ignore Condition);
"if there is no intention to destroy a block"
If(Event Player.blockToUpdate != -1);
Destroy In-World Text(Event Player.blocksNewest[Event Player.blockToUpdate][2]);
Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][4]] = Last Of(
Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][4]]);
For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3]), 1);
If(Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate]) >= 7);
disabled Small Message(All Players(All Teams), Custom String("yuh delet"));
Destroy Effect(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][6]);
End;
Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][3]] = Last Of(
Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][3]]);
If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1]);
If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0]);
Destroy Effect(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1]);
Else;
Destroy In-World Text(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1]);
End;
End;
End;
End;
Event Player.blockToUpdate = -1;
}
}
rule("UPDATE BLOCK ORDER INFO")
{
event
{
Subroutine;
updateBlockOrderInfo;
}
actions
{
disabled Enable Inspector Recording;
Modify Player Variable(Event Player, encounteredBlocks, Append To Array, Event Player.toUpdate);
Event Player.nextToUpdate = Empty Array;
Event Player.badConnection = False;
"every block being asked to update connections"
For Player Variable(Event Player, tempCounter4_1, 0, Count Of(Event Player.toUpdate), 1);
"every node of every block being asked to update connections"
For Player Variable(Event Player, tempCounter4_2, 0, Count Of(
Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3]), 1);
"if its connected and an input node"
If(Count Of(Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2])
>= 6 && Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2][2][0] > 0 && !Event Player.badConnection);
If(Array Contains(Event Player.encounteredBlocks,
Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2][4]));
Event Player.badConnection = True;
Else;
"will update blocks referenced by input connections next"
Modify Player Variable(Event Player, nextToUpdate, Append To Array,
Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2][4]);
"the block this node references"
Event Player.tempVals9 = Event Player.blocksNewest[Last Of(Event Player.nextToUpdate)];
"increased priority for higher levels"
If(Event Player.blocksNewest[Last Of(Event Player.nextToUpdate)][5] > 0);
If(Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][5] > 0);
Event Player.tempVals9[5] = Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][5] + 1;
Else;
Event Player.tempVals9[5] = 1;
End;
End;
Event Player.tempVals9[8] = Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][8];
Event Player.blocksNewest[Last Of(Event Player.nextToUpdate)] = Event Player.tempVals9;
End;
End;
End;
End;
If(Count Of(Event Player.nextToUpdate) && !Event Player.badConnection);
Event Player.toUpdate = Event Player.nextToUpdate;
Call Subroutine(updateBlockOrderInfo);
End;
Event Player.encounteredBlocks = Empty Array;
disabled Disable Inspector Recording;
}
}
rule("UPDATE CHAIN subroutine")
{
event
{
Subroutine;
updateChain;
}
actions
{
Enable Inspector Recording;
Event Player.initChain = Empty Array;
"for all the blocks"
For Player Variable(Event Player, BR, 0, Count Of(Event Player.blocksNewest), 1);
disabled Create HUD Text(All Players(All Teams), Custom String("{1} : {2} - {0}", Count Of(Event Player.blocksNewest[Event Player.BR][3]),
Event Player.BR, Event Player.blocksNewest[Event Player.BR][5]), Null, Null, Left, 0, Blue, White, White, Visible To,
Default Visibility);
disabled Create HUD Text(All Players(All Teams), Custom String("{0}", Event Player.BR), Null, Null, Left, 0, White, White, White, None,
Default Visibility);
"if the block is connected"
If(Event Player.blocksNewest[Event Player.BR][8]);
"if the block isnt a value block (checking ID value)"
If(Event Player.blocksNewest[Event Player.BR][5] != 0);
"filter out nothings from node input indexes > not agnostic to input/output id"
Event Player.tempVals8 = Mapped Array(Sorted Array(Filtered Array(Event Player.blocksNewest[Event Player.BR][3],
Current Array Element[2][0] > 0), Current Array Element[2][0]), Count Of(Current Array Element)
>= 6 ? Current Array Element[4] : -1);
disabled Small Message(All Players(All Teams), Custom String("{0}", Count Of(Filtered Array(Event Player.blocksNewest[Event Player.BR][3],
Current Array Element[2][0] > 0))));
If(Event Player.blocksNewest[Event Player.BR][5] > 0);
Event Player.initChain[Event Player.BR] = Array(Event Player.blocksNewest[Event Player.BR][5],
Event Player.blocksNewest[Event Player.BR][6][0], Event Player.tempVals8, Event Player.BR);
Else;
Event Player.initChain[Event Player.BR] = Array(Event Player.blocksNewest[Event Player.BR][5], Event Player.tempVals8,
Event Player.BR);
disabled Create HUD Text(All Players(All Teams), Custom String("{1} : {2} - {0}", Count Of(Event Player.initChain[Event Player.BR][1]),
Event Player.BR, Event Player.blocksNewest[Event Player.BR][5]), Null, Null, Left, 0, Red, White, White, Visible To,
Default Visibility);
disabled Wait(0.016, Ignore Condition);
End;
Else;
Event Player.initChain[Event Player.BR] = Array(Event Player.blocksNewest[Event Player.BR][5],
Event Player.blocksNewest[Event Player.BR][6][0], Event Player.blocksNewest[Event Player.BR][7], Event Player.BR);
End;
End;
End;
Event Player.AAAA = Mapped Array(Event Player.initChain, Current Array Element[0]);
Disable Inspector Recording;
}
}
rule("UPDATEENTRYINFO3 subroutine")
{
event
{
Subroutine;
updateEntryInfo3;
}
actions
{
If(
Global.menuInfo[0][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][0]);
Event Player.cancer = Custom String(" {0}", All Players(All Teams)[0]);
For Player Variable(Event Player, UH, 1, Count Of(All Players(All Teams)), 1);
Event Player.cancer = Custom String("{0}\n {1}", Event Player.cancer, All Players(All Teams)[Event Player.UH]);
End;
Event Player.cancer = Custom String("{0}\n >\n X\n ", Event Player.cancer);
Event Player.entryInfo[3] = Event Player.cancer;
Else;
disabled Small Message(All Players(All Teams), Custom String("E"));
Event Player.entryInfo[3] = Global.menuInfo[0][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][1];
End;
}
}
rule("ALL PLAYERS UPDATES - PLAYERS UPDATE MENU")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.doAnUpdate == True;
}
actions
{
If(
Event Player.entryPos && Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 2);
Call Subroutine(closeEntry);
Call Subroutine(openEntry);
End;
}
}
rule("ALL PLAYERS UPDATES - GLOBAL'S UPDATE")
{
event
{
Ongoing - Global;
}
conditions
{
Global.menuInfo[2][2] != Array(Append To Array(All Players(All Teams), Array(Null, Null)));
}
actions
{
Global.tempVals = Global.menuInfo[2];
Global.tempVals[2] = Array(Append To Array(All Players(All Teams), Array(Null, Null)));
Global.menuInfo[2] = Global.tempVals;
Global.tempVals = Global.menuInfo[1];
Global.tempVals[2] = Mapped Array(Global.upMenuInfo, Current Array Element + Vector(0, 0, 0.060 * (12 - Count Of(All Players(
All Teams)))));
Global.menuInfo[1] = Global.tempVals;
Global.doAnUpdate = True;
Wait(0.016, Ignore Condition);
Global.doAnUpdate = False;
disabled Big Message(All Players(All Teams), Custom String("EEEE"));
Loop If Condition Is True;
}
}
rule("SERVER LOADS hud : /")
{
event
{
Ongoing - Global;
}
actions
{
Create HUD Text(All Players(All Teams), Custom String("ld {0} |avg {1} |pk {2}", Server Load, Server Load Average,
Server Load Peak), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility);
}
}
disabled rule("")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Event Player.blocksNewest != Event Player.blocksOld;
}
actions
{
Event Player.blocksOld = Event Player.blocksNewest;
Call Subroutine(updateChain);
disabled Call Subroutine(updateBlockOrderInfo);
Wait(0.100, Ignore Condition);
Loop If Condition Is True;
}
}
rule("CREATEBLOCK subroutine")
{
event
{
Subroutine;
blockMenuClickOff;
}
actions
{
disabled Enable Inspector Recording;
If(!Event Player.selectedTargetInfo);
disabled Call Subroutine(showBlock);
If(Event Player.AclickTarget[1][2] == 0);
disabled Small Message(All Players(All Teams), Custom String("right"));
Event Player.page = (Event Player.page + 1) % Count Of(Global.blockInfos);
Call Subroutine(updateBlockSelectMenu);
Else If(Event Player.AclickTarget[1][2] == 1);
disabled Small Message(All Players(All Teams), Custom String("left"));
Event Player.page = (Event Player.page - 1 + Count Of(Global.blockInfos)) % Count Of(Global.blockInfos);
Call Subroutine(updateBlockSelectMenu);
Else;
disabled Small Message(All Players(All Teams), Custom String("what do you think you're duwang "));
disabled Event Player.blockToUpdate = Count Of(Event Player.blocksNewest);
Event Player.blockToUpdate = Is True For Any(Event Player.blocksNewest, Count Of(Current Array Element) < 2) ? Last Of(Last Of(
Filtered Array(Event Player.blocksNewest, Count Of(Current Array Element) < 2))) : Count Of(Event Player.blocksNewest);
Event Player.blocksNewest[Event Player.blockToUpdate] = Global.blockInfos[Event Player.AclickTarget[1][1]][Event Player.AclickTarget[1][2] - 2];
Call Subroutine(showBlock);
End;
End;
disabled Disable Inspector Recording;
}
}
rule("UPDATEBLOCKSELECTMENU subroutine")
{
event
{
Subroutine;
updateBlockSelectMenu;
}
actions
{
If(Count Of(Event Player.blocksMenuTargets));
disabled Small Message(All Players(All Teams), Custom String("ye mum"));
For Player Variable(Event Player, tempCounter2, 0, Count Of(Event Player.blocksMenuTargets), 1);
Event Player.clickTargets[Event Player.blocksMenuTargets[Event Player.tempCounter2]] = Last Of(
Event Player.clickTargets[Event Player.blocksMenuTargets[Event Player.tempCounter2]]);
End;
End;
Event Player.blocksMenuTargets = Empty Array;
For Player Variable(Event Player, tempCounter2, 0, Count Of(Global.blockInfos[Event Player.page]) + 2, 1);
disabled Small Message(All Players(All Teams), Custom String("ye dad"));
Event Player.insertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2) ? Last Of(
Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(Event Player.clickTargets);
Modify Player Variable(Event Player, blocksMenuTargets, Append To Array, Event Player.insertToTargetsIndex);
">LOOK HERE FOR CLICK TARGETS STRUCTURE<"
Event Player.clickTargets[Event Player.insertToTargetsIndex] = Array(Array(Global.blockSelectPossList[Count Of(
Global.blockSelectPossList) - 1 - Event Player.tempCounter2], Event Player.tempCounter2 > 1 ? Custom String(
"Click To Create Block") : Custom String("Click To change page")), Array(3, Event Player.page, Event Player.tempCounter2),
Event Player.insertToTargetsIndex);
End;
}
}
rule("UPDATEALLCOMMANDS")
{
event
{
Ongoing - Global;
}
actions
{
Global.updatingCommands = True;
Global.tempAllCommands = Empty Array;
For Global Variable(counter, 0, Count Of(All Players(All Teams)), 1);
disabled Big Message(All Players(All Teams), Custom String("yes"));
Modify Global Variable(tempAllCommands, Append To Array, All Players(All Teams)[Global.counter].finalValues);
End;
Global.allCommands = Global.tempAllCommands;
Global.updatingCommands = False;
Wait(0.016, Ignore Condition);
Loop;
}
}
rule("NO CAM BLOCK EXISTS CALLING TO PLAYER")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Event Player.editMode == False;
Global.updatingCommands == False;
(!Is True For Any(Global.allCommands, Current Array Element[0] == -1 && First Of(Current Array Element[1]) == Event Player)
|| !Event Player.workshopOn) == True;
}
actions
{
Stop Camera(Event Player);
}
}
rule("CAM BLOCK EXISTS CALLING TO PLAYER")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is True For Any(Global.allCommands, Current Array Element[0] == -1 && First Of(Current Array Element[1]) == Event Player) == True;
Event Player.editMode == False;
Global.updatingCommands == False;
}
actions
{
"if the player has a block"
If(Is True For Any(Event Player.finalValuesFirstTwo, Current Array Element == Array(-1, Event Player)));
Start Camera(Event Player, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1 && First Of(
Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Event Player.finalValues,
Current Array Element[0] == -1))[1][2], 120);
Else If(Event Player.workshopOn);
Start Camera(Event Player, First Of(Filtered Array(Global.allCommands, Current Array Element[0] == -1 && First Of(
Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Global.allCommands,
Current Array Element[0] == -1 && First Of(Current Array Element[1]) == Event Player))[1][2], 120);
End;
disabled Big Message(All Players(All Teams), Custom String("AAAA"));
}
}
rule("NO START FACING BLOCK EXISTS CALLING TO PLAYER")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
(!Is True For Any(Global.allCommands, Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player)
|| !Event Player.workshopOn) == True;
Event Player.editMode == False;
Global.updatingCommands == False;
}
actions
{
Stop Facing(Event Player);
}
}
rule("START FACING BLOCK EXISTS CALLING TO PLAYER")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is True For Any(Global.allCommands, Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player) == True;
Event Player.editMode == False;
Global.updatingCommands == False;
}
actions
{
"if the player has a block"
If(Is True For Any(Event Player.finalValuesFirstTwo, Current Array Element == Array(-2, Event Player)));
"end"
Start Facing(Event Player, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -2 && First Of(
Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Event Player.finalValues,
Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player))[1][2], To World,
Direction and Turn Rate);
Else If(Event Player.workshopOn);
Start Facing(Event Player, First Of(Filtered Array(Global.allCommands, Current Array Element[0] == -2 && First Of(
Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Global.allCommands,
Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player))[1][2], To World,
Direction and Turn Rate);
End;
disabled Big Message(All Players(All Teams), Custom String("AAAA"));
}
}