Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - jm-390

so any help  :alone:
819 days ago
Why this happens  :-\


821 days ago
so I have this error when I try compile my map. I try to press ''i'' and right click in the 2d view. then Click on ''Make Detail'' But this did not work :'(

this is the error in the console
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\gdtdb\gdtdb.exe /update

gdtDB: updating

processed (0 GDTs) (0 assets) in 5.275 sec

gdtDB: successfully updated database.

D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\bin\cod2map64.exe -platform pc -navmesh -navvolume -loadFrom D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\map_source\zm\zm_york_castle.map D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\share\raw\maps\zm\zm_york_castle.d3dbsp

main: Enter

FPU Precision set to 64 bits
CoD2Map: T7
 Build Changelist: 2609615
 Build Machine: CODBUILD8-764
---- cod2map ----
navmesh = true
navvolume = full generation
----- FS_Startup -----
Current search path:
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\share\devraw
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\bin\devdiscdata
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\bin\devraw
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\bin\raw
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\share\raw
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\bin\discdata
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\devdiscdata
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\devraw
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\raw
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\discdata
D:\Activision\Call of Duty Black Ops III\steamapps\common\Call of Duty Black Ops III\bin\main
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\main
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\players
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\zone
D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/pc/\local_storage
----------------------
Connected to data signature database
Loading map file D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\map_source\zm\zm_york_castle.map
Layer '000_Global/No Comp' ignored

Map D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\map_source\zm\zm_york_castle.map, Entity 0, Brush 1103: mirrored plane


Map D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\map_source\zm\zm_york_castle.map, Entity 7385, Brush 0: mirrored plane


*
****
2 terrain patches with caulk were discovered.  Use 'File/Load Error File/General Error File' in Radiant to view
*****

reveal volume decal texture 256x8, 2056 bytes. 27 packed 0 unpacked. 236 voldecals.

WARNING: node without a volume

node has 2 tiny portals
node reference point -558.66 -519.00 569.59
WARNING: node without a volume
node has 2 tiny portals
node reference point -861.00 -490.65 569.59
WARNING: node without a volume
node has 2 tiny portals
node reference point -722.00 -489.34 569.59
WARNING: node without a volume
node has 2 tiny portals
node reference point -587.00 -1358.35 569.59

WARNING: node without a volume
node has 4 tiny portals
node reference point -1020.00 -530.00 554.94
WARNING: node without a volume
node has 4 tiny portals
node reference point -1020.00 -519.00 554.93
WARNING: node without a volume
node has 4 tiny portals
node reference point -1020.00 -530.00 554.93
WARNING: node without a volume
node has 3 tiny portals
node reference point -1020.00 -1278.00 554.94
WARNING: node without a volume
node has 3 tiny portals
node reference point -1020.00 -1257.00 554.93
WARNING: node without a volume
node has 4 tiny portals
node reference point -1020.00 -1246.00 554.93

WARNING: node without a volume

node has 5 tiny portals
node reference point -1246.75 -740.00 247.00

**********************

******* leaked *******
**********************


================================

WROTE BSP LEAKFILE: D:/Activision/Call of Duty Black Ops III/steamapps/common/Call of Duty Black Ops III/\map_source\zm\zm_york_castle.lin

================================



finding triangle windings...

finished in 14 seconds

assigning primary lights...

splitting windings into lightable areas...
coalescing coincident windings...

finished in 33 seconds

removing occluded winding fragments...

finished in 8 seconds

finding sun shadow casters...
splitting large windings...

merging into concave windings...


finished in 29 seconds

fixing t-junctions...

tethering holes to their concave windings...

finding index mapping and snapping vertices...

triangulating all windings...

0 self-tjunctions fixed
0 degenerate tris removed

smoothing normals...

emitting triangles...

52875 vertices couldn't be merged because the textures point different ways

finished in 23 seconds
emitting cells and portals...


building curve/terrain collision...


Adding brush neighbor bevels...

Removing redundant brush collision planes...

removed 3395 brush sides

elapsed time 1 seconds

WARNING: PROBLEMS FOUND [Load with Error File in Radiant]
WARNING: Texture (t7_glass_edge_trim_emissive_orange) repeats more than once per inch. (x1944)
_prefabs/zm/zm_giant/geo/zoneb_vat_1.map
entity 0 brush 15 at -1405 -1232 205, -1405 -1232 204, -1403 -1233 205, -1403 -1232 203, -1402 -1233 204, -1401 -1230 204, -1326 -928 204, -1326 -927 205
entity 0 brush 15 at -1325 -927 203, -1325 -925 205, -1325 -925 204, -1323 -929 204
entity 0 brush 16 at -1402 -1232 207, -1325 -928 207
entity 0 brush 17 at -1398 -1236 201, -1397 -1238 201
entity 0 brush 17 at -1397 -1237 200, -1397 -1236 200, -1397 -1238 200, -1397 -1237 200, -1397 -1237 199, -1397 -1238 198, -1397 -1235 201, -1397 -1236 200
entity 0 brush 17 at -1397 -1237 198, -1396 -1235 201, -1396 -1236 199, -1396 -1236 200, -1395 -1235 201, -1395 -1236 198, -1395 -1235 200, -1395 -1236 199
entity 0 brush 17 at -1331 -933 198, -1331 -933 200, -1331 -933 201, -1330 -933 200, -1330 -933 199, -1330 -933 198, -1330 -933 200, -1329 -932 201
entity 0 brush 17 at -1329 -934 199, -1329 -933 200, -1329 -935 198, -1329 -933 200, -1329 -935 199, -1329 -934 200, -1328 -935 200, -1328 -933 201
entity 0 brush 17 at -1328 -934 201, -1328 -935 201
entity 0 brush 27 at -1409 -1248 145, -1409 -1249 144, -1408 -1248 144, -1408 -1248 143, -1408 -1249 142, -1408 -1247 145
entity 0 brush 27 at -1408 -1248 142, -1407 -1247 143, -1407 -1247 144, -1407 -1246 145, -1407 -1247 142, -1406 -1247 143, -1342 -922 142, -1342 -921 144
entity 0 brush 27 at -1341 -922 143, -1341 -922 142, -1341 -921 145, -1341 -922 144, -1340 -923 143, -1340 -923 142, -1340 -924 143, -1340 -923 144
entity 0 brush 27 at -1340 -922 145, -1339 -923 145
entity 0 brush 28 at -1414 -1244 148, -1412 -1239 149, -1412 -1242 147, -1412 -1241 148, -1411 -1242 149, -1337 -916 148
entity 0 brush 28 at -1335 -918 147, -1335 -919 149, -1334 -918 148, -1332 -918 149
entity 0 brush 29 at -1412 -1241 151, -1334 -918 151
_prefabs/zm/zm_giant/geo/zoneb_vat_coil_ring_segment.map
entity 0 brush 1 at -1430 -960 156, -1430 -960 164, -1430 -960 172, -1430 -960 180, -1430 -960 188, -1430 -960 196, -1430 -960 204, -1430 -966 156
entity 0 brush 1 at -1430 -966 164, -1430 -966 172, -1430 -966 180, -1430 -966 188, -1430 -966 196, -1430 -966 204, -1430 -964 156, -1430 -964 164
entity 0 brush 1 at -1430 -964 172, -1430 -964 180, -1430 -964 188, -1430 -964 196, -1430 -964 204, -1430 -954 156, -1430 -954 164, -1430 -954 172
entity 0 brush 1 at -1430 -954 180, -1430 -954 188, -1430 -954 196, -1430 -954 204, -1430 -958 156, -1430 -958 164, -1430 -958 172, -1430 -958 180
entity 0 brush 1 at -1430 -958 188, -1430 -958 196, -1430 -958 204, -1430 -973 156, -1430 -973 164, -1430 -973 172, -1430 -973 180, -1430 -973 188
entity 0 brush 1 at -1430 -973 196, -1430 -973 204, -1429 -1274 158, -1429 -1274 166, -1429 -1274 174, -1429 -1274 182, -1429 -1274 190, -1429 -1274 198
entity 0 brush 1 at -1429 -1274 206, -1429 -970 155, -1429 -970 163, -1429 -970 171, -1429 -970 179, -1429 -970 187, -1429 -970 195, -1429 -970 203
entity 0 brush 1 at -1429 -1280 158, -1429 -1280 166, -1429 -1280 174, -1429 -1280 182, -1429 -1280 190, -1429 -1280 198, -1429 -1280 206, -1429 -952 156
entity 0 brush 1 at -1429 -952 164, -1429 -952 172, -1429 -952 180, -1429 -952 188, -1429 -952 196, -1429 -952 204, -1429 -1278 158, -1429 -1278 166
entity 0 brush 1 at -1429 -1278 174, -1429 -1278 182, -1429 -1278 190, -1429 -1278 198, -1429 -1278 206, -1429 -1268 158, -1429 -1268 166, -1429 -1268 174
entity 0 brush 1 at -1429 -1268 182, -1429 -1268 190, -1429 -1268 198, -1429 -1268 206, -1429 -1272 158, -1429 -1272 166, -1429 -1272 174, -1429 -1272 182
entity 0 brush 1 at -1429 -1272 190, -1429 -1272 198, -1429 -1272 206, -1429 -947 156, -1429 -947 164, -1429 -947 172, -1429 -947 180, -1429 -947 188
entity 0 brush 1 at -1429 -947 196, -1429 -947 204, -1429 -1287 158, -1429 -1287 166, -1429 -1287 174, -1429 -1287 182, -1429 -1287 190, -1429 -1287 198
entity 0 brush 1 at -1429 -1287 206, -1428 -1284 157, -1428 -1284 165, -1428 -1284 173, -1428 -1284 181, -1428 -1284 189, -1428 -1284 197, -1428 -1284 205
entity 0 brush 1 at -1428 -976 155, -1428 -976 163, -1428 -976 171, -1428 -976 179, -1428 -976 187, -1428 -976 195, -1428 -976 203, -1428 -979 155
entity 0 brush 1 at -1428 -979 163, -1428 -979 171, -1428 -979 179, -1428 -979 187, -1428 -979 195, -1428 -979 203, -1428 -1266 158, -1428 -1266 166
entity 0 brush 1 at -1428 -1266 174, -1428 -1266 182, -1428 -1266 190, -1428 -1266 198, -1428 -1266 206, -1428 -945 156, -1428 -945 164, -1428 -945 172
entity 0 brush 1 at -1428 -945 180, -1428 -945 188, -1428 -945 196, -1428 -945 204, -1428 -1261 158, -1428 -1261 166, -1428 -1261 174, -1428 -1261 182
entity 0 brush 1 at -1428 -1261 190, -1428 -1261 198, -1428 -1261 206, -1427 -1290 157, -1427 -1290 165, -1427 -1290 173, -1427 -1290 181, -1427 -1290 189
entity 0 brush 1 at -1427 -1290 197, -1427 -1290 205, -1427 -1293 157, -1427 -1293 165, -1427 -1293 173, -1427 -1293 181, -1427 -1293 189, -1427 -1293 197
entity 0 brush 1 at -1427 -1293 205, -1427 -941 156, -1427 -941 164, -1427 -941 172, -1427 -941 180, -1427 -941 188, -1427 -941 196, -1427 -941 204
entity 0 brush 1 at -1427 -1259 158, -1427 -1259 166, -1427 -1259 174, -1427 -1259 182, -1427 -1259 190, -1427 -1259 198, -1427 -1259 206, -1426 -982 155
entity 0 brush 1 at -1426 -982 163, -1426 -982 171, -1426 -982 179, -1426 -982 187, -1426 -982 195, -1426 -982 203, -1426 -984 155, -1426 -984 163
entity 0 brush 1 at -1426 -984 171, -1426 -984 179, -1426 -984 187, -1426 -984 195, -1426 -984 203, -1426 -1255 158, -1426 -1255 166, -1426 -1255 174
entity 0 brush 1 at -1426 -1255 182, -1426 -1255 190, -1426 -1255 198, -1426 -1255 206, -1426 -940 156, -1426 -940 164, -1426 -940 172, -1426 -940 180
entity 0 brush 1 at -1426 -940 188, -1426 -940 196, -1426 -940 204, -1425 -1296 157, -1425 -1296 165, -1425 -1296 173, -1425 -1296 181, -1425 -1296 189
entity 0 brush 1 at -1425 -1296 197, -1425 -1296 205, -1425 -1298 157, -1425 -1298 165, -1425 -1298 173, -1425 -1298 181, -1425 -1298 189, -1425 -1298 197
entity 0 brush 1 at -1425 -1298 205, -1425 -1254 158, -1425 -1254 166, -1425 -1254 174, -1425 -1254 182, -1425 -1254 190, -1425 -1254 198, -1425 -1254 206
entity 0 brush 1 at -1425 -936 156, -1425 -936 164, -1425 -936 172, -1425 -936 180, -1425 -936 188, -1425 -936 196, -1425 -936 204, -1424 -988 155
entity 0 brush 1 at -1424 -988 163, -1424 -988 171, -1424 -988 179, -1424 -988 187, -1424 -988 195, -1424 -988 203, -1424 -990 155, -1424 -990 163
entity 0 brush 1 at -1424 -990 171, -1424 -990 179, -1424 -990 187, -1424 -990 195, -1424 -990 203, -1424 -1250 158, -1424 -1250 166, -1424 -1250 174
entity 0 brush 1 at -1424 -1250 182, -1424 -1250 190, -1424 -1250 198, -1424 -1250 206, -1423 -934 156, -1423 -934 164, -1423 -934 172, -1423 -934 180
entity 0 brush 1 at -1423 -934 188, -1423 -934 196, -1423 -934 204, -1423 -1302 157, -1423 -1302 165, -1423 -1302 173, -1423 -1302 181, -1423 -1302 189
entity 0 brush 1 at -1423 -1302 197, -1423 -1302 205, -1423 -1304 157, -1423 -1304 165, -1423 -1304 173, -1423 -1304 181, -1423 -1304 189, -1423 -1304 197
entity 0 brush 1 at -1423 -1304 205, -1422 -1248 158, -1422 -1248 166, -1422 -1248 174, -1422 -1248 182, -1422 -1248 190, -1422 -1248 198, -1422 -1248 206
entity 0 brush 1 at -1422 -930 157, -1422 -930 165, -1422 -930 173, -1422 -930 181, -1422 -930 189, -1422 -930 197, -1422 -930 205, -1421 -993 155
entity 0 brush 1 at -1421 -993 163, -1421 -993 171, -1421 -993 179, -1421 -993 187, -1421 -993 195, -1421 -993 203, -1421 -1244 159, -1421 -1244 167
entity 0 brush 1 at -1421 -1244 175, -1421 -1244 183, -1421 -1244 191, -1421 -1244 199, -1421 -1244 207, -1421 -995 155, -1421 -995 163, -1421 -995 171
entity 0 brush 1 at -1421 -995 179, -1421 -995 187, -1421 -995 195, -1421 -995 203, -1420 -1307 157, -1420 -1307 165, -1420 -1307 173, -1420 -1307 181
entity 0 brush 1 at -1420 -1307 189, -1420 -1307 197, -1420 -1307 205, -1420 -929 156, -1420 -929 164, -1420 -929 172, -1420 -929 180, -1420 -929 188
entity 0 brush 1 at -1420 -929 196, -1420 -929 204, -1420 -1309 157, -1420 -1309 165, -1420 -1309 173, -1420 -1309 181, -1420 -1309 189, -1420 -1309 197
entity 0 brush 1 at -1420 -1309 205, -1419 -1243 158, -1419 -1243 166, -1419 -1243 174, -1419 -1243 182, -1419 -1243 190, -1419 -1243 198, -1419 -1243 206
entity 0 brush 1 at -1419 -926 157, -1419 -926 165, -1419 -926 173, -1419 -926 181, -1419 -926 189, -1419 -926 197, -1419 -926 205, -1418 -998 155
entity 0 brush 1 at -1418 -998 163, -1418 -998 171, -1418 -998 179, -1418 -998 187, -1418 -998 195, -1418 -998 203, -1418 -1240 159, -1418 -1240 167
entity 0 brush 1 at -1418 -1240 175, -1418 -1240 183, -1418 -1240 191, -1418 -1240 199, -1418 -1240 207, -1417 -1000 155, -1417 -1000 163, -1417 -1000 171
entity 0 brush 1 at -1417 -1000 179, -1417 -1000 187, -1417 -1000 195, -1417 -1000 203, -1417 -1312 157, -1417 -1312 165, -1417 -1312 173, -1417 -1312 181
entity 0 brush 1 at -1417 -1312 189, -1417 -1312 197, -1417 -1312 205, -1417 -924 156, -1417 -924 164, -1417 -924 172, -1417 -924 180, -1417 -924 188
entity 0 brush 1 at -1417 -924 196, -1417 -924 204, -1416 -1314 157, -1416 -1314 165, -1416 -1314 173, -1416 -1314 181, -1416 -1314 189, -1416 -1314 197
entity 0 brush 1 at -1416 -1314 205, -1416 -1238 158, -1416 -1238 166, -1416 -1238 174, -1416 -1238 182, -1416 -1238 190, -1416 -1238 198, -1416 -1238 206
entity 0 brush 1 at -1415 -921 157, -1415 -921 165, -1415 -921 173, -1415 -921 181, -1415 -921 189, -1415 -921 197, -1415 -921 205, -1415 -1002 155
entity 0 brush 1 at -1415 -1002 163, -1415 -1002 171, -1415 -1002 179, -1415 -1002 187, -1415 -1002 195, -1415 -1002 203, -1414 -1235 159, -1414 -1235 167
entity 0 brush 1 at -1414 -1235 175, -1414 -1235 183, -1414 -1235 191, -1414 -1235 199, -1414 -1235 207, -1414 -1004 155, -1414 -1004 163, -1414 -1004 171
entity 0 brush 1 at -1414 -1004 179, -1414 -1004 187, -1414 -1004 195, -1414 -1004 203, -1414 -1316 157, -1414 -1316 165, -1414 -1316 173, -1414 -1316 181
entity 0 brush 1 at -1414 -1316 189, -1414 -1316 197, -1414 -1316 205, -1413 -920 157, -1413 -920 165, -1413 -920 173, -1413 -920 181, -1413 -920 189
entity 0 brush 1 at -1413 -920 197, -1413 -920 205, -1413 -1318 157, -1413 -1318 165, -1413 -1318 173, -1413 -1318 181, -1413 -1318 189, -1413 -1318 197
entity 0 brush 1 at -1413 -1318 205, -1412 -1234 159, -1412 -1234 167, -1412 -1234 175, -1412 -1234 183, -1412 -1234 191, -1412 -1234 199, -1412 -1234 207
entity 0 brush 1 at -1411 -917 157, -1411 -917 165, -1411 -917 173, -1411 -917 181, -1411 -917 189, -1411 -917 197, -1411 -917 205, -1411 -1006 155
entity 0 brush 1 at -1411 -1006 163, -1411 -1006 171, -1411 -1006 179, -1411 -1006 187, -1411 -1006 195, -1411 -1006 203, -1410 -1231 151, -1410 -1231 159
entity 0 brush 1 at -1410 -1231 167, -1410 -1231 175, -1410 -1231 183, -1410 -1231 191, -1410 -1231 199, -1410 -1320 157, -1410 -1320 165, -1410 -1320 173
entity 0 brush 1 at -1410 -1320 181, -1410 -1320 189, -1410 -1320 197, -1410 -1320 205, -1410 -1008 155, -1410 -1008 163, -1410 -1008 171, -1410 -1008 179
entity 0 brush 1 at -1410 -1008 187, -1410 -1008 195, -1410 -1008 203, -1409 -916 157, -1409 -916 165, -1409 -916 173, -1409 -916 181, -1409 -916 189
entity 0 brush 1 at -1409 -916 197, -1409 -916 205, -1409 -1322 157, -1409 -1322 165, -1409 -1322 173, -1409 -1322 181, -1409 -1322 189, -1409 -1322 197
entity 0 brush 1 at -1409 -1322 205, -1408 -1230 151, -1408 -1230 159, -1408 -1230 167, -1408 -1230 175, -1408 -1230 183, -1408 -1230 191, -1408 -1230 199
entity 0 brush 1 at -1407 -914 157, -1407 -914 165, -1407 -914 173, -1407 -914 181, -1407 -914 189, -1407 -914 197, -1407 -914 205, -1407 -1010 154
entity 0 brush 1 at -1407 -1010 162, -1407 -1010 170, -1407 -1010 178, -1407 -1010 186, -1407 -1010 194, -1407 -1010 202, -1406 -1228 191, -1406 -1228 151
entity 0 brush 1 at -1406 -1228 159, -1406 -1228 167, -1406 -1228 175, -1406 -1228 183, -1406 -1228 199, -1406 -1324 156, -1406 -1324 164, -1406 -1324 172
entity 0 brush 1 at -1406 -1324 180, -1406 -1324 188, -1406 -1324 196, -1406 -1324 204, -1405 -1012 155, -1405 -1012 163, -1405 -1012 171, -1405 -1012 179
entity 0 brush 1 at -1405 -1012 187, -1405 -1012 195, -1405 -1012 203, -1405 -913 157, -1405 -913 165, -1405 -913 173, -1405 -913 181, -1405 -913 189
entity 0 brush 1 at -1405 -913 197, -1405 -913 205, -1405 -1227 191, -1404 -1326 157, -1404 -1326 165, -1404 -1326 173, -1404 -1326 181, -1404 -1326 189
entity 0 brush 1 at -1404 -1326 197, -1404 -1326 205, -1404 -1227 151, -1404 -1227 159, -1404 -1227 167, -1404 -1227 175, -1404 -1227 183, -1404 -1227 199
entity 0 brush 1 at -1404 -1227 191, -1403 -1225 191, -1402 -910 157, -1402 -910 165, -1402 -910 173, -1402 -910 181, -1402 -910 189, -1402 -910 197
entity 0 brush 1 at -1402 -910 205, -1402 -1013 154, -1402 -1013 162, -1402 -1013 170, -1402 -1013 178, -1402 -1013 186, -1402 -1013 194, -1402 -1013 202
entity 0 brush 1 at -1402 -1225 191, -1401 -1224 151, -1401 -1224 159, -1401 -1224 167, -1401 -1224 175, -1401 -1224 183, -1401 -1224 199, -1401 -1224 191
entity 0 brush 1 at -1401 -1327 156, -1401 -1327 164, -1401 -1327 172, -1401 -1327 180, -1401 -1327 188, -1401 -1327 196, -1401 -1327 204, -1401 -1015 155
entity 0 brush 1 at -1401 -1015 163, -1401 -1015 171, -1401 -1015 179, -1401 -1015 187, -1401 -1015 195, -1401 -1015 203, -1400 -910 157, -1400 -910 165
entity 0 brush 1 at -1400 -910 173, -1400 -910 181, -1400 -910 189, -1400 -910 197, -1400 -910 205, -1400 -1329 157, -1400 -1329 165, -1400 -1329 173
entity 0 brush 1 at -1400 -1329 181, -1400 -1329 189, -1400 -1329 197, -1400 -1329 205, -1399 -1224 191, -1399 -1224 151, -1399 -1224 159, -1399 -1224 167
entity 0 brush 1 at -1399 -1224 175, -1399 -1224 183, -1399 -1224 199, -1399 -1223 191, -1397 -907 157, -1397 -907 165, -1397 -907 173, -1397 -907 181
entity 0 brush 1 at -1397 -907 189, -1397 -907 197, -1397 -907 205, -1397 -1222 191, -1397 -1016 154, -1397 -1016 162, -1397 -1016 170, -1397 -1016 178
entity 0 brush 1 at -1397 -1016 186, -1397 -1016 194, -1397 -1016 202, -1396 -1221 151, -1396 -1221 159, -1396 -1221 167, -1396 -1221 175, -1396 -1221 183
entity 0 brush 1 at -1396 -1221 199, -1396 -1221 191, -1396 -1330 156, -1396 -1330 164, -1396 -1330 172, -1396 -1330 180, -1396 -1330 188, -1396 -1330 196
entity 0 brush 1 at -1396 -1330 204, -1395 -1018 154, -1395 -1018 162, -1395 -1018 170, -1395 -1018 178, -1395 -1018 186, -1395 -1018 194, -1395 -1018 202
entity 0 brush 1 at -1395 -907 157, -1395 -907 165, -1395 -907 173, -1395 -907 181, -1395 -907 189, -1395 -907 197, -1395 -907 205, -1394 -1221 191
entity 0 brush 1 at -1394 -1332 156, -1394 -1332 164, -1394 -1332 172, -1394 -1332 180, -1394 -1332 188, -1394 -1332 196, -1394 -1332 204, -1394 -1221 151
entity 0 brush 1 at -1394 -1221 159, -1394 -1221 167, -1394 -1221 175, -1394 -1221 183, -1394 -1221 199, -1393 -1220 191, -1392 -1220 191, -1391 -905 157
entity 0 brush 1 at -1391 -905 165, -1391 -905 173, -1391 -905 181, -1391 -905 189, -1391 -905 197, -1391 -905 205, -1391 -1019 154, -1391 -1019 162
entity 0 brush 1 at -1391 -1019 170, -1391 -1019 178, -1391 -1019 186, -1391 -1019 194, -1391 -1019 202, -1391 -1219 191, -1390 -1219 151, -1390 -1219 159
entity 0 brush 1 at -1390 -1219 167, -1390 -1219 175, -1390 -1219 183, -1390 -1219 199, -1390 -1333 156, -1390 -1333 164, -1390 -1333 172, -1390 -1333 180
entity 0 brush 1 at -1390 -1333 188, -1390 -1333 196, -1390 -1333 204, -1390 -1219 191, -1390 -1020 154, -1390 -1020 162, -1390 -1020 170, -1390 -1020 178
entity 0 brush 1 at -1390 -1020 186, -1390 -1020 194, -1390 -1020 202, -1389 -905 157, -1389 -905 165, -1389 -905 173, -1389 -905 181, -1389 -905 189
entity 0 brush 1 at -1389 -905 197, -1389 -905 205, -1389 -1334 156, -1389 -1334 164, -1389 -1334 172, -1389 -1334 180, -1389 -1334 188, -1389 -1334 196
entity 0 brush 1 at -1389 -1334 204, -1388 -1219 151, -1388 -1219 159, -1388 -1219 167, -1388 -1219 175, -1388 -1219 183, -1388 -1219 199, -1388 -1218 191
entity 0 brush 1 at -1386 -903 157, -1386 -903 165, -1386 -903 173, -1386 -903 181, -1386 -903 189, -1386 -903 197, -1386 -903 205, -1386 -1021 154
entity 0 brush 1 at -1386 -1021 162, -1386 -1021 170, -1386 -1021 178, -1386 -1021 186, -1386 -1021 194, -1386 -1021 202, -1385 -1217 151, -1385 -1217 159
entity 0 brush 1 at -1385 -1217 167, -1385 -1217 175, -1385 -1217 183, -1385 -1217 191, -1385 -1217 199, -1385 -1335 156, -1385 -1335 164, -1385 -1335 172
entity 0 brush 1 at -1385 -1335 180, -1385 -1335 188, -1385 -1335 196, -1385 -1335 204, -1384 -1022 154, -1384 -1022 162, -1384 -1022 170, -1384 -1022 178
entity 0 brush 1 at -1384 -1022 186, -1384 -1022 194, -1384 -1022 202, -1383 -903 157, -1383 -903 165, -1383 -903 173, -1383 -903 181, -1383 -903 189
entity 0 brush 1 at -1383 -903 197, -1383 -903 205, -1383 -1336 156, -1383 -1336 164, -1383 -1336 172, -1383 -1336 180, -1383 -1336 188, -1383 -1336 196
entity 0 brush 1 at -1383 -1336 204, -1382 -1217 151, -1382 -1217 159, -1382 -1217 167, -1382 -1217 175, -1382 -1217 183, -1382 -1217 191, -1382 -1217 199
entity 0 brush 1 at -1380 -901 158, -1380 -901 166, -1380 -901 174, -1380 -901 182, -1380 -901 190, -1380 -901 198, -1380 -901 206, -1379 -1022 154
entity 0 brush 1 at -1379 -1022 162, -1379 -1022 170, -1379 -1022 178, -1379 -1022 186, -1379 -1022 194, -1379 -1022 202, -1379 -1215 152, -1379 -1215 160
entity 0 brush 1 at -1379 -1215 168, -1379 -1215 176, -1379 -1215 184, -1379 -1215 192, -1379 -1215 200, -1378 -1336 156, -1378 -1336 164, -1378 -1336 172
entity 0 brush 1 at -1378 -1336 180, -1378 -1336 188, -1378 -1336 196, -1378 -1336 204, -1377 -1023 154, -1377 -1023 162, -1377 -1023 170, -1377 -1023 178
entity 0 brush 1 at -1377 -1023 186, -1377 -1023 194, -1377 -1023 202, -1377 -902 157, -1377 -902 165, -1377 -902 173, -1377 -902 181, -1377 -902 189
entity 0 brush 1 at -1377 -902 197, -1377 -902 205, -1376 -1337 156, -1376 -1337 164, -1376 -1337 172, -1376 -1337 180, -1376 -1337 188, -1376 -1337 196
entity 0 brush 1 at -1376 -1337 204, -1376 -1216 151, -1376 -1216 159, -1376 -1216 167, -1376 -1216 175, -1376 -1216 183, -1376 -1216 191, -1376 -1216 199
entity 0 brush 1 at -1373 -1023 154, -1373 -1023 162, -1373 -1023 170, -1373 -1023 178, -1373 -1023 186, -1373 -1023 194, -1373 -1023 202, -1373 -901 158
entity 0 brush 1 at -1373 -901 166, -1373 -901 174, -1373 -901 182, -1373 -901 190, -1373 -901 198, -1373 -901 206, -1372 -1337 156, -1372 -1337 164
entity 0 brush 1 at -1372 -1337 172, -1372 -1337 180, -1372 -1337 188, -1372 -1337 196, -1372 -1337 204, -1372 -1215 152, -1372 -1215 160, -1372 -1215 168
entity 0 brush 1 at -1372 -1215 176, -1372 -1215 184, -1372 -1215 192, -1372 -1215 200, -1371 -1023 154, -1371 -1023 162, -1371 -1023 170, -1371 -1023 178
entity 0 brush 1 at -1371 -1023 186, -1371 -1023 194, -1371 -1023 202, -1371 -901 158, -1371 -901 166, -1371 -901 174, -1371 -901 182, -1371 -901 190
entity 0 brush 1 at -1371 -901 198, -1371 -901 206, -1370 -1337 156, -1370 -1337 164, -1370 -1337 172, -1370 -1337 180, -1370 -1337 188, -1370 -1337 196
entity 0 brush 1 at -1370 -1337 204, -1370 -1215 152, -1370 -1215 160, -1370 -1215 168, -1370 -1215 176, -1370 -1215 184, -1370 -1215 192, -1370 -1215 200
entity 0 brush 1 at -1367 -1023 154, -1367 -1023 162, -1367 -1023 170, -1367 -1023 178, -1367 -1023 186, -1367 -1023 194, -1367 -1023 202, -1367 -901 158
entity 0 brush 1 at -1367 -901 166, -1367 -901 174, -1367 -901 182, -1367 -901 190, -1367 -901 198, -1367 -901 206, -1366 -1215 200, -1366 -1337 156
entity 0 brush 1 at -1366 -1337 164, -1366 -1337 172, -1366 -1337 180, -1366 -1337 188, -1366 -1337 196, -1366 -1337 204, -1366 -1215 152, -1366 -1215 160
entity 0 brush 1 at -1366 -1215 168, -1366 -1215 176, -1366 -1215 184, -1366 -1215 192, -1365 -1023 154, -1365 -1023 162, -1365 -1023 170, -1365 -1023 178
entity 0 brush 1 at -1365 -1023 186, -1365 -1023 194, -1365 -1023 202, -1365 -901 158, -1365 -901 166, -1365 -901 174, -1365 -901 182, -1365 -901 190
entity 0 brush 1 at -1365 -901 198, -1365 -901 206, -1364 -1214 200, -1364 -1337 156, -1364 -1337 164, -1364 -1337 172, -1364 -1337 180, -1364 -1337 188
entity 0 brush 1 at -1364 -1337 196, -1364 -1337 204, -1364 -1215 152, -1364 -1215 160, -1364 -1215 168, -1364 -1215 176, -1364 -1215 184, -1364 -1215 192
entity 0 brush 1 at -1364 -1215 200, -1362 -1215 200, -1361 -1022 153, -1361 -1022 161, -1361 -1022 169, -1361 -1022 177, -1361 -1022 185, -1361 -1022 193
entity 0 brush 1 at -1361 -1022 201, -1361 -901 158, -1361 -901 166, -1361 -901 174, -1361 -901 182, -1361 -901 190, -1361 -901 198, -1361 -901 206
entity 0 brush 1 at -1360 -1215 200, -1360 -1336 155, -1360 -1336 163, -1360 -1336 171, -1360 -1336 179, -1360 -1336 187, -1360 -1336 195, -1360 -1336 203
entity 0 brush 1 at -1360 -1215 152, -1360 -1215 160, -1360 -1215 168, -1360 -1215 176, -1360 -1215 184, -1360 -1215 192, -1359 -1215 200, -1359 -902 158
entity 0 brush 1 at -1359 -902 166, -1359 -902 174, -1359 -902 182, -1359 -902 190, -1359 -902 198, -1359 -902 206, -1358 -1023 154, -1358 -1023 162
entity 0 brush 1 at -1358 -1023 170, -1358 -1023 178, -1358 -1023 186, -1358 -1023 194, -1358 -1023 202, -1358 -1216 200, -1358 -1216 152, -1358 -1216 160
entity 0 brush 1 at -1358 -1216 168, -1358 -1216 176, -1358 -1216 184, -1358 -1216 192, -1357 -1337 156, -1357 -1337 164, -1357 -1337 172, -1357 -1337 180
entity 0 brush 1 at -1357 -1337 188, -1357 -1337 196, -1357 -1337 204, -1356 -1216 200, -1355 -1216 200, -1355 -1021 153, -1355 -1021 161, -1355 -1021 169
entity 0 brush 1 at -1355 -1021 177, -1355 -1021 185, -1355 -1021 193, -1355 -1021 201, -1354 -902 158, -1354 -902 166, -1354 -902 174, -1354 -902 182
entity 0 brush 1 at -1354 -902 190, -1354 -902 198, -1354 -902 206, -1354 -1335 155, -1354 -1335 163, -1354 -1335 171, -1354 -1335 179, -1354 -1335 187
entity 0 brush 1 at -1354 -1335 195, -1354 -1335 203, -1353 -1216 152, -1353 -1216 160, -1353 -1216 168, -1353 -1216 176, -1353 -1216 184, -1353 -1216 192
entity 0 brush 1 at -1353 -1216 200, -1352 -903 158, -1352 -903 166, -1352 -903 174, -1352 -903 182, -1352 -903 190, -1352 -903 198, -1352 -903 206
entity 0 brush 1 at -1352 -1021 153, -1352 -1021 161, -1352 -1021 169, -1352 -1021 177, -1352 -1021 185, -1352 -1021 193, -1352 -1021 201, -1352 -1217 200
entity 0 brush 1 at -1351 -1217 152, -1351 -1217 160, -1351 -1217 168, -1351 -1217 176, -1351 -1217 184, -1351 -1217 192, -1351 -1335 155, -1351 -1335 163
entity 0 brush 1 at -1351 -1335 171, -1351 -1335 179, -1351 -1335 187, -1351 -1335 195, -1351 -1335 203, -1351 -1217 200, -1349 -1218 200, -1349 -1019 153
entity 0 brush 1 at -1349 -1019 161, -1349 -1019 169, -1349 -1019 177, -1349 -1019 185, -1349 -1019 193, -1349 -1019 201, -1348 -904 158, -1348 -904 166
entity 0 brush 1 at -1348 -904 174, -1348 -904 182, -1348 -904 190, -1348 -904 198, -1348 -904 206, -1348 -1334 195, -1348 -1333 155, -1348 -1333 163
entity 0 brush 1 at -1348 -1333 171, -1348 -1333 179, -1348 -1333 187, -1348 -1333 203, -1348 -1218 200, -1347 -1218 152, -1347 -1218 160, -1347 -1218 168
entity 0 brush 1 at -1347 -1218 176, -1347 -1218 184, -1347 -1218 192, -1347 -1219 200, -1347 -905 158, -1347 -905 166, -1347 -905 174, -1347 -905 182
entity 0 brush 1 at -1347 -905 190, -1347 -905 198, -1347 -905 206, -1347 -1019 153, -1347 -1019 161, -1347 -1019 169, -1347 -1019 177, -1347 -1019 185
entity 0 brush 1 at -1347 -1019 193, -1347 -1019 201, -1346 -1333 195, -1346 -1219 152, -1346 -1219 160, -1346 -1219 168, -1346 -1219 176, -1346 -1219 184
entity 0 brush 1 at -1346 -1219 192, -1346 -1333 155, -1346 -1333 163, -1346 -1333 171, -1346 -1333 179, -1346 -1333 187, -1346 -1333 203, -1345 -1333 195
entity 0 brush 1 at -1345 -1219 200, -1344 -1332 195, -1343 -1017 153, -1343 -1017 161, -1343 -1017 169, -1343 -1017 177, -1343 -1017 185, -1343 -1017 193
entity 0 brush 1 at -1343 -1017 201, -1343 -906 158, -1343 -906 166, -1343 -906 174, -1343 -906 182, -1343 -906 190, -1343 -906 198, -1343 -906 206
entity 0 brush 1 at -1343 -1332 195, -1342 -1331 155, -1342 -1331 163, -1342 -1331 171, -1342 -1331 179, -1342 -1331 187, -1342 -1331 203, -1342 -1220 152
entity 0 brush 1 at -1342 -1220 160, -1342 -1220 168, -1342 -1220 176, -1342 -1220 184, -1342 -1220 192, -1342 -1220 200, -1342 -1331 195, -1341 -908 158
entity 0 brush 1 at -1341 -908 166, -1341 -908 174, -1341 -908 182, -1341 -908 190, -1341 -908 198, -1341 -908 206, -1341 -1017 153, -1341 -1017 161
entity 0 brush 1 at -1341 -1017 169, -1341 -1017 177, -1341 -1017 185, -1341 -1017 193, -1341 -1017 201, -1340 -1222 152, -1340 -1222 160, -1340 -1222 168
entity 0 brush 1 at -1340 -1222 176, -1340 -1222 184, -1340 -1222 192, -1340 -1222 200, -1340 -1331 195, -1340 -1331 155, -1340 -1331 163, -1340 -1331 171
entity 0 brush 1 at -1340 -1331 179, -1340 -1331 187, -1340 -1331 203, -1339 -1330 195, -1338 -1014 153, -1338 -1014 161, -1338 -1014 169, -1338 -1014 177
entity 0 brush 1 at -1338 -1014 185, -1338 -1014 193, -1338 -1014 201, -1337 -909 159, -1337 -909 167, -1337 -909 175, -1337 -909 183, -1337 -909 191
entity 0 brush 1 at -1337 -909 199, -1337 -909 207, -1337 -1329 195, -1337 -1328 155, -1337 -1328 163, -1337 -1328 171, -1337 -1328 179, -1337 -1328 187
entity 0 brush 1 at -1337 -1328 203, -1337 -1328 195, -1336 -1223 153, -1336 -1223 161, -1336 -1223 169, -1336 -1223 177, -1336 -1223 185, -1336 -1223 193
entity 0 brush 1 at -1336 -1223 201, -1336 -911 158, -1336 -911 166, -1336 -911 174, -1336 -911 182, -1336 -911 190, -1336 -911 198, -1336 -911 206
entity 0 brush 1 at -1336 -1014 153, -1336 -1014 161, -1336 -1014 169, -1336 -1014 177, -1336 -1014 185, -1336 -1014 193, -1336 -1014 201, -1335 -1225 152
entity 0 brush 1 at -1335 -1225 160, -1335 -1225 168, -1335 -1225 176, -1335 -1225 184, -1335 -1225 192, -1335 -1225 200, -1335 -1328 195, -1335 -1328 155
entity 0 brush 1 at -1335 -1328 163, -1335 -1328 171, -1335 -1328 179, -1335 -1328 187, -1335 -1328 203, -1334 -1327 195, -1333 -1011 153, -1333 -1011 161
entity 0 brush 1 at -1333 -1011 169, -1333 -1011 177, -1333 -1011 185, -1333 -1011 193, -1333 -1011 201, -1333 -1327 195, -1333 -912 159, -1333 -912 167
entity 0 brush 1 at -1333 -912 175, -1333 -912 183, -1333 -912 191, -1333 -912 199, -1333 -912 207, -1332 -1325 195, -1332 -1325 155, -1332 -1325 163
entity 0 brush 1 at -1332 -1325 171, -1332 -1325 179, -1332 -1325 187, -1332 -1325 203, -1332 -1226 153, -1332 -1226 161, -1332 -1226 169, -1332 -1226 177
entity 0 brush 1 at -1332 -1226 185, -1332 -1226 193, -1332 -1226 201, -1331 -914 158, -1331 -914 166, -1331 -914 174, -1331 -914 182, -1331 -914 190
entity 0 brush 1 at -1331 -914 198, -1331 -914 206, -1331 -1010 153, -1331 -1010 161, -1331 -1010 169, -1331 -1010 177, -1331 -1010 185, -1331 -1010 193
entity 0 brush 1 at -1331 -1010 201, -1331 -1325 195, -1330 -1228 152, -1330 -1228 160, -1330 -1228 168, -1330 -1228 176, -1330 -1228 184, -1330 -1228 192
entity 0 brush 1 at -1330 -1228 200, -1330 -1324 155, -1330 -1324 163, -1330 -1324 171, -1330 -1324 179, -1330 -1324 187, -1330 -1324 203, -1330 -1324 195
entity 0 brush 1 at -1329 -1008 153, -1329 -1008 161, -1329 -1008 169, -1329 -1008 177, -1329 -1008 185, -1329 -1008 193, -1329 -1008 201, -1328 -916 159
entity 0 brush 1 at -1328 -916 167, -1328 -916 175, -1328 -916 183, -1328 -916 191, -1328 -916 199, -1328 -916 207, -1328 -1322 155, -1328 -1322 163
entity 0 brush 1 at -1328 -1322 171, -1328 -1322 179, -1328 -1322 187, -1328 -1322 195, -1328 -1322 203, -1327 -1230 153, -1327 -1230 161, -1327 -1230 169
entity 0 brush 1 at -1327 -1230 177, -1327 -1230 185, -1327 -1230 193, -1327 -1230 201, -1327 -918 159, -1327 -918 167, -1327 -918 175, -1327 -918 183
entity 0 brush 1 at -1327 -918 191, -1327 -918 199, -1327 -918 207, -1327 -1007 153, -1327 -1007 161, -1327 -1007 169, -1327 -1007 177, -1327 -1007 185
entity 0 brush 1 at -1327 -1007 193, -1327 -1007 201, -1326 -1232 153, -1326 -1232 161, -1326 -1232 169, -1326 -1232 177, -1326 -1232 185, -1326 -1232 193
entity 0 brush 1 at -1326 -1232 201, -1326 -1321 155, -1326 -1321 163, -1326 -1321 171, -1326 -1321 179, -1326 -1321 187, -1326 -1321 195, -1326 -1321 203
entity 0 brush 1 at -1325 -1004 153, -1325 -1004 161, -1325 -1004 169, -1325 -1004 177, -1325 -1004 185, -1325 -1004 193, -1325 -1004 201, -1324 -920 151
entity 0 brush 1 at -1324 -920 159, -1324 -920 167, -1324 -920 175, -1324 -920 183, -1324 -920 191, -1324 -920 199, -1324 -1318 155, -1324 -1318 163
entity 0 brush 1 at -1324 -1318 171, -1324 -1318 179, -1324 -1318 187, -1324 -1318 195, -1324 -1318 203, -1323 -922 151, -1323 -922 159, -1323 -922 167
entity 0 brush 1 at -1323 -922 175, -1323 -922 183, -1323 -922 191, -1323 -922 199, -1323 -1234 153, -1323 -1234 161, -1323 -1234 169, -1323 -1234 177
entity 0 brush 1 at -1323 -1234 185, -1323 -1234 193, -1323 -1234 201, -1323 -1003 153, -1323 -1003 161, -1323 -1003 169, -1323 -1003 177, -1323 -1003 185
entity 0 brush 1 at -1323 -1003 193, -1323 -1003 201, -1322 -1236 153, -1322 -1236 161, -1322 -1236 169, -1322 -1236 177, -1322 -1236 185, -1322 -1236 193
entity 0 brush 1 at -1322 -1236 201, -1322 -1317 155, -1322 -1317 163, -1322 -1317 171, -1322 -1317 179, -1322 -1317 187, -1322 -1317 195, -1322 -1317 203
entity 0 brush 1 at -1321 -1000 152, -1321 -1000 160, -1321 -1000 168, -1321 -1000 176, -1321 -1000 184, -1321 -1000 192, -1321 -1000 200, -1321 -924 151
entity 0 brush 1 at -1321 -924 159, -1321 -924 167, -1321 -924 175, -1321 -924 183, -1321 -924 191, -1321 -924 199, -1320 -1314 154, -1320 -1314 162
entity 0 brush 1 at -1320 -1314 170, -1320 -1314 178, -1320 -1314 186, -1320 -1314 194, -1320 -1314 202, -1320 -926 151, -1320 -926 159, -1320 -926 167
entity 0 brush 1 at -1320 -926 175, -1320 -926 183, -1320 -926 191, -1320 -926 199, -1320 -1238 153, -1320 -1238 161, -1320 -1238 169, -1320 -1238 177
entity 0 brush 1 at -1320 -1238 185, -1320 -1238 193, -1320 -1238 201, -1319 -998 153, -1319 -998 161, -1319 -998 169, -1319 -998 177, -1319 -998 185
entity 0 brush 1 at -1319 -998 193, -1319 -998 201, -1319 -1240 153, -1319 -1240 161, -1319 -1240 169, -1319 -1240 177, -1319 -1240 185, -1319 -1240 193
entity 0 brush 1 at -1319 -1240 201, -1318 -1312 155, -1318 -1312 163, -1318 -1312 171, -1318 -1312 179, -1318 -1312 187, -1318 -1312 195, -1318 -1312 203
entity 0 brush 1 at -1318 -995 152, -1318 -995 160, -1318 -995 168, -1318 -995 176, -1318 -995 184, -1318 -995 192, -1318 -995 200, -1317 -929 151
entity 0 brush 1 at -1317 -929 159, -1317 -929 167, -1317 -929 175, -1317 -929 183, -1317 -929 191, -1317 -929 199, -1317 -930 151, -1317 -930 159
entity 0 brush 1 at -1317 -930 167, -1317 -930 175, -1317 -930 183, -1317 -930 191, -1317 -930 199, -1317 -1309 154, -1317 -1309 162, -1317 -1309 170
entity 0 brush 1 at -1317 -1309 178, -1317 -1309 186, -1317 -1309 194, -1317 -1309 202, -1317 -994 153, -1317 -994 161, -1317 -994 169, -1317 -994 177
entity 0 brush 1 at -1317 -994 185, -1317 -994 193, -1317 -994 201, -1316 -1243 153, -1316 -1243 161, -1316 -1243 169, -1316 -1243 177, -1316 -1243 185
entity 0 brush 1 at -1316 -1243 193, -1316 -1243 201, -1316 -932 191, -1316 -1245 153, -1316 -1245 161, -1316 -1245 169, -1316 -1245 177, -1316 -1245 185
entity 0 brush 1 at -1316 -1245 193, -1316 -1245 201, -1316 -993 153, -1316 -993 161, -1316 -993 169, -1316 -993 177, -1316 -993 185, -1316 -993 193
entity 0 brush 1 at -1316 -993 201, -1316 -932 151, -1316 -932 159, -1316 -932 167, -1316 -932 175, -1316 -932 183, -1316 -932 199, -1316 -931 151
entity 0 brush 1 at -1316 -931 159, -1316 -931 167, -1316 -931 175, -1316 -931 183, -1316 -931 191, -1316 -931 199, -1316 -932 191, -1315 -933 191
entity 0 brush 1 at -1315 -1308 155, -1315 -1308 163, -1315 -1308 171, -1315 -1308 179, -1315 -1308 187, -1315 -1308 195, -1315 -1308 203, -1315 -990 152
entity 0 brush 1 at -1315 -990 160, -1315 -990 168, -1315 -990 176, -1315 -990 184, -1315 -990 192, -1315 -990 200, -1314 -934 151, -1314 -934 159
entity 0 brush 1 at -1314 -934 167, -1314 -934 175, -1314 -934 183, -1314 -934 199, -1314 -936 191, -1314 -934 191, -1314 -936 151, -1314 -936 159
entity 0 brush 1 at -1314 -936 167, -1314 -936 175, -1314 -936 183, -1314 -936 199, -1314 -1304 154, -1314 -1304 162, -1314 -1304 170, -1314 -1304 178
entity 0 brush 1 at -1314 -1304 186, -1314 -1304 194, -1314 -1304 202, -1313 -988 152, -1313 -988 160, -1313 -988 168, -1313 -988 176, -1313 -988 184
entity 0 brush 1 at -1313 -988 192, -1313 -988 200, -1313 -1248 153, -1313 -1248 161, -1313 -1248 169, -1313 -1248 177, -1313 -1248 185, -1313 -1248 193
entity 0 brush 1 at -1313 -1248 201, -1313 -937 191, -1313 -938 191, -1313 -1250 153, -1313 -1250 161, -1313 -1250 169, -1313 -1250 177, -1313 -1250 185
entity 0 brush 1 at -1313 -1250 193, -1313 -1250 201, -1312 -940 191, -1312 -1302 154, -1312 -1302 162, -1312 -1302 170, -1312 -1302 178, -1312 -1302 186
entity 0 brush 1 at -1312 -1302 194, -1312 -1302 202, -1312 -985 192, -1312 -985 200, -1312 -984 152, -1312 -984 160, -1312 -984 168, -1312 -984 176
entity 0 brush 1 at -1312 -984 184, -1312 -983 192, -1312 -983 200, -1312 -939 191, -1312 -940 151, -1312 -940 159, -1312 -940 167, -1312 -940 175
entity 0 brush 1 at -1312 -940 183, -1312 -940 199, -1312 -942 151, -1312 -942 159, -1312 -942 167, -1312 -942 175, -1312 -942 183, -1312 -942 199
entity 0 brush 1 at -1311 -942 191, -1311 -1298 154, -1311 -1298 162, -1311 -1298 170, -1311 -1298 178, -1311 -1298 186, -1311 -1298 194, -1311 -1298 202
entity 0 brush 1 at -1311 -981 192, -1311 -981 200, -1311 -983 152, -1311 -983 160, -1311 -983 168, -1311 -983 176, -1311 -983 184, -1311 -982 192
entity 0 brush 1 at -1311 -982 200, -1311 -1254 153, -1311 -1254 161, -1311 -1254 169, -1311 -1254 177, -1311 -1254 185, -1311 -1254 193, -1311 -1254 201
entity 0 brush 1 at -1311 -1256 153, -1311 -1256 161, -1311 -1256 169, -1311 -1256 177, -1311 -1256 185, -1311 -1256 193, -1311 -1256 201, -1310 -978 192
entity 0 brush 1 at -1310 -978 200, -1310 -979 152, -1310 -979 160, -1310 -979 168, -1310 -979 176, -1310 -979 184, -1310 -979 192, -1310 -979 200
entity 0 brush 1 at -1310 -1297 154, -1310 -1297 162, -1310 -1297 170, -1310 -1297 178, -1310 -1297 186, -1310 -1297 194, -1310 -1297 202, -1310 -945 151
entity 0 brush 1 at -1310 -945 159, -1310 -945 167, -1310 -945 175, -1310 -945 183, -1310 -945 191, -1310 -945 199, -1310 -948 151, -1310 -948 159
entity 0 brush 1 at -1310 -948 167, -1310 -948 175, -1310 -948 183, -1310 -948 191, -1310 -948 199, -1309 -975 192, -1309 -975 200, -1309 -977 152
entity 0 brush 1 at -1309 -977 160, -1309 -977 168, -1309 -977 176, -1309 -977 184, -1309 -1293 154, -1309 -1293 162, -1309 -1293 170, -1309 -1293 178
entity 0 brush 1 at -1309 -1293 186, -1309 -1293 194, -1309 -1293 202, -1309 -977 192, -1309 -977 200, -1309 -972 192, -1309 -972 200, -1309 -972 152
entity 0 brush 1 at -1309 -972 160, -1309 -972 168, -1309 -972 176, -1309 -972 184, -1309 -1259 153, -1309 -1259 161, -1309 -1259 169, -1309 -1259 177
entity 0 brush 1 at -1309 -1259 185, -1309 -1259 193, -1309 -1259 201, -1309 -1262 153, -1309 -1262 161, -1309 -1262 169, -1309 -1262 177, -1309 -1262 185
entity 0 brush 1 at -1309 -1262 193, -1309 -1262 201, -1309 -974 192, -1309 -974 200, -1309 -954 151, -1309 -954 159, -1309 -954 167, -1309 -954 175
entity 0 brush 1 at -1309 -954 183, -1309 -954 191, -1309 -954 199, -1308 -951 152, -1308 -951 160, -1308 -951 168, -1308 -951 176, -1308 -951 184
entity 0 brush 1 at -1308 -951 192, -1308 -951 200, -1308 -1291 154, -1308 -1291 162, -1308 -1291 170, -1308 -1291 178, -1308 -1291 186, -1308 -1291 194
entity 0 brush 1 at -1308 -1291 202, -1308 -970 192, -1308 -970 200, -1308 -966 152, -1308 -966 160, -1308 -966 168, -1308 -966 176, -1308 -966 184
entity 0 brush 1 at -1308 -970 152, -1308 -970 160, -1308 -970 168, -1308 -970 176, -1308 -970 184, -1308 -966 192, -1308 -966 200, -1308 -960 152
entity 0 brush 1 at -1308 -960 160, -1308 -960 168, -1308 -960 176, -1308 -960 184, -1308 -960 192, -1308 -960 200, -1308 -971 192, -1308 -971 200
entity 0 brush 1 at -1308 -1286 154, -1308 -1286 162, -1308 -1286 170, -1308 -1286 178, -1308 -1286 186, -1308 -1286 194, -1308 -1286 202, -1308 -958 152
entity 0 brush 1 at -1308 -958 160, -1308 -958 168, -1308 -958 176, -1308 -958 184, -1308 -958 192, -1308 -958 200, -1308 -964 192, -1308 -964 200
entity 0 brush 1 at -1308 -1268 153, -1308 -1268 161, -1308 -1268 169, -1308 -1268 177, -1308 -1268 185, -1308 -1268 193, -1308 -1268 201, -1308 -964 152
entity 0 brush 1 at -1308 -964 160, -1308 -964 168, -1308 -964 176, -1308 -964 184, -1308 -968 192, -1308 -968 200, -1307 -1265 154, -1307 -1265 162
entity 0 brush 1 at -1307 -1265 170, -1307 -1265 178, -1307 -1265 186, -1307 -1265 194, -1307 -1265 202, -1307 -966 192, -1307 -966 200, -1307 -1280 154
entity 0 brush 1 at -1307 -1280 162, -1307 -1280 170, -1307 -1280 178, -1307 -1280 186, -1307 -1280 194, -1307 -1280 202, -1307 -1284 154, -1307 -1284 162
entity 0 brush 1 at -1307 -1284 170, -1307 -1284 178, -1307 -1284 186, -1307 -1284 194, -1307 -1284 202, -1307 -1274 154, -1307 -1274 162, -1307 -1274 170
entity 0 brush 1 at -1307 -1274 178, -1307 -1274 186, -1307 -1274 194, -1307 -1274 202, -1307 -1272 154, -1307 -1272 162, -1307 -1272 170, -1307 -1272 178
entity 0 brush 1 at -1307 -1272 186, -1307 -1272 194, -1307 -1272 202, -1307 -1278 154, -1307 -1278 162, -1307 -1278 170, -1307 -1278 178, -1307 -1278 186
entity 0 brush 1 at -1307 -1278 194, -1307 -1278 202
WARNING: Texture (t7_metal_rust_ceiling_01) repeats more than once per inch. (x26)
_prefabs/zm/zm_giant/geo/zm_giant_room_storage.map
entity 0 brush 35 at 374 -781 215, 375 -781 209, 379 -781 211, 379 -781 217, 386 -781 214, 386 -781 220, 393 -781 217, 393 -781 223
entity 0 brush 35 at 401 -781 221, 443 -781 240, 459 -780 253, 488 -781 260, 515 -781 272, 536 -781 287, 542 -781 284
entity 0 brush 36 at 377 -704 211
entity 0 brush 36 at 377 -704 214, 377 -571 211, 377 -571 214
entity 0 brush 82 at 375 -513 215, 381 -513 218, 425 -512 238, 475 -513 260, 496 -513 270
entity 0 brush 82 at 536 -513 288, 571 -513 303
WARNING: Texture (t7_metal_trim_weld_01_paint_grey_drk) repeats more than once per inch. (x11)
_prefabs/zm/zm_giant/geo/zm_giant_zone_c_stairs_2.map
entity 0 brush 36 at 495 -2689 92, 495 -2689 91, 495 -2689 91, 495 -2689 91, 495 -2689 91, 495 -2689 91, 495 -2689 90, 495 -2689 89
entity 0 brush 36 at 495 -2689 88, 495 -2689 88
entity 0 brush 40 at 583 -2689 90
WARNING: Texture (t7_metal_worn_iron_dark) repeats more than once per inch. (x4)
_prefabs/zm/zm_giant/geo/zone_b/zoneb_garage_broken_catwalk.map
entity 0 brush 25 at -514 -487 199, -507 -480 199, -479 -453 199, -479 -453 200

ERROR: ERROR: MAX_MAP_NODES

help please :'(
824 days ago
Hello guys,

so I worked on my map and add some brushes then I closed radiant and when I tried to load mymap ...... I got this


also I Opened the map file in text editor and look for anything similar to "#QNAN -1.#INF -1.#IND 1.#INF 1.#QNAN -1.#IND" but there is nothing similar that.

can someone help me with this problem ?

thanks in advance.
940 days ago
Hello guys,

I have a problem, I just started with Bo3 mod tools but after I have created a new zombie map and also compiled the map

I'm trying to run the map from Launcher but it doesn't work :(

when the game starts and it's loading the map I guess?   then the game stopt and gives me these error:



also I was trying to launch the map from the game it self but after that my game freezes and stops working.

also I tried the Tutorial by JBird to fix this:

but I still have a problem

can someone help me with this problem ?

thanks in advance.

944 days ago
hello guys...
so when I opened black ops 3 mod tools......radiant didn't load any models or textures although I have the (model_export) and
(texture_assets) files on the root   :-\
it's looks like this

please need help
sorry for my bad english
951 days ago
I didn't use teleporters  :-\
also I have added
#include maps\ugx_modder_help;
before I added panzer in dlc3_code and dlc3_teleport
this is dlc3_teleport file
// Keep in mind this file is just a copy of nazi_zombie_factory_teleporter.gsc. It has .been adapted for general use (isDefined checks and so on)
#include common_scripts\utility;
#include maps\_utility;
#include maps\_zombiemode_utility;
#include maps\dlc3_code;
#include maps\ugx_modder_help;
//-------------------------------------------------------------------------------
// setup and kick off think functions
//-------------------------------------------------------------------------------
teleporter_init()
{
level.teleport = [];
level.active_links = 0;
level.countdown = 0;

level.teleport_delay = 2;
level.teleport_cost = 1500;
level.teleport_cooldown = 5;
level.is_cooldown = false;
level.active_timer = -1;
level.teleport_time = 0;

flag_init( "teleporter_pad_link_1" );
flag_init( "teleporter_pad_link_2" );
flag_init( "teleporter_pad_link_3" );

wait_for_all_players();

// Get the Pad triggers
for ( i=0; i<3; i++ )
{
trig = GetEnt( "trigger_teleport_pad_" + i, "targetname");
if ( IsDefined(trig) )
{
level.teleporter_pad_trig[i] = trig;
}
}

thread teleport_pad_think( 0 );
thread teleport_pad_think( 1 );
thread teleport_pad_think( 2 );
thread teleport_core_think();

thread start_black_room_fx();
thread init_pack_door();

SetDvar( "factoryAftereffectOverride", "-1" );

packapunch_see = getent( "packapunch_see", "targetname" );
if(isdefined( packapunch_see ) )
{
packapunch_see thread play_packa_see_vox();
}

level.teleport_ae_funcs = [];

if( !IsSplitscreen() )
{
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_fov;
}
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_shellshock;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_shellshock_electric;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_bw_vision;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_red_vision;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_flashy_vision;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_flare_vision;
}

//-------------------------------------------------------------------------------
// sets up up the pack a punch door
//-------------------------------------------------------------------------------
init_pack_door()
{
door = getent( "pack_door", "targetname" );
if(modderHelp( door, "Missing Pack a Punch door with Targetname KVP 'pack_door'." )) return;
door movez( -50, 0.05, 0 );
wait(1.0);

flag_wait( "all_players_connected" );

door movez(  50, 1.5, 0 );
door playsound( "packa_door_1" );

// Open slightly the first two times
flag_wait( "teleporter_pad_link_1" );
door movez( -35, 1.5, 1 );
door playsound( "packa_door_2" );
door thread packa_door_reminder();
wait(2);

// Second link
flag_wait( "teleporter_pad_link_2" );
door movez( -25, 1.5, 1 );
door playsound( "packa_door_2" );
wait(2);

// Final Link
flag_wait( "teleporter_pad_link_3" );

door movez( -60, 1.5, 1 );
door playsound( "packa_door_2" );

clip = getentarray( "pack_door_clip", "targetname" );
for ( i = 0; i < clip.size; i++ )
{
clip[i] connectpaths();
clip[i] delete();
}
}

//-------------------------------------------------------------------------------
// handles activating and deactivating pads for cool down
//-------------------------------------------------------------------------------
pad_manager()
{
for ( i = 0; i < level.teleporter_pad_trig.size; i++ )
{
// shut off the pads
level.teleporter_pad_trig[i] sethintstring( &"ZOMBIE_TELEPORT_COOLDOWN" );
level.teleporter_pad_trig[i] teleport_trigger_invisible( false );
}

level.is_cooldown = true;
wait( level.teleport_cooldown );
level.is_cooldown = false;

for ( i = 0; i < level.teleporter_pad_trig.size; i++ )
{
if ( level.teleporter_pad_trig[i].teleport_active )
{
level.teleporter_pad_trig[i] sethintstring( &"ZOMBIE_TELEPORT_TO_CORE" );
}
else
{
level.teleporter_pad_trig[i] sethintstring( &"ZOMBIE_LINK_TPAD" );
}
// level.teleporter_pad_trig[i] teleport_trigger_invisible( false );
}
}

//-------------------------------------------------------------------------------
// staggers the black room fx
//-------------------------------------------------------------------------------
start_black_room_fx()
{
for ( i = 901; i <= 904; i++ )
{
wait( 1 );
exploder( i );
}
}

//-------------------------------------------------------------------------------
// handles turning on the pad and waiting for link
//-------------------------------------------------------------------------------
teleport_pad_think( index )
{
if(!isDefined(level.teleporter_pad_trig)) return; //UGX - no teleporters on map, stop
if(!isDefined(level.teleporter_pad_trig[index])) return; // UGX - teleporter doesn't exist, stop

tele_help = getent( "tele_help_" + index, "targetname" );
if(isdefined( tele_help ) )
{
tele_help thread play_tele_help_vox();
}

active = false;

// init the pad
level.teleport[index] = "waiting";

trigger = level.teleporter_pad_trig[ index ];

trigger setcursorhint( "HINT_NOICON" );
trigger sethintstring( &"ZOMBIE_FLAMES_UNAVAILABLE" );

flag_wait( "electricity_on" );

trigger sethintstring( &"ZOMBIE_POWER_UP_TPAD" );
trigger.teleport_active = false;

if ( isdefined( trigger ) )
{
while ( !active )
{
trigger waittill( "trigger" );

if ( level.active_links < 3 )
{
trigger_core = getent( "trigger_teleport_core", "targetname" );

if( modderHelp( trigger_core, "Missing mainframe trigger with Targetname KVP 'trigger_teleport_core'." ) )
{
trigger_core teleport_trigger_invisible( false );
}
}

// when one starts the others disabled
for ( i=0; i<level.teleporter_pad_trig.size; i++ )
{
level.teleporter_pad_trig[ i ] teleport_trigger_invisible( true );
}
level.teleport[index] = "timer_on";

// start the countdown back to the core
trigger thread teleport_pad_countdown( index, 30 );
teleporter_vo( "countdown", trigger );

// wait for the countdown
while ( level.teleport[index] == "timer_on" )
{
wait( .05 );
}

// core was activated in time
if ( level.teleport[index] == "active" )
{
active = true;
ClientNotify( "pw" + index ); // pad wire #

//AUDIO
ClientNotify( "tp" + index ); // Teleporter #

// MM - Auto teleport the first time
teleporter_wire_wait( index );

// trigger teleport_trigger_invisible( true );
trigger thread player_teleporting( index );
}
else
{
// Reenable triggers
  for ( i=0; i<level.teleporter_pad_trig.size; i++ )
  {
  level.teleporter_pad_trig[ i ] teleport_trigger_invisible( false );
  }
}
wait( .05 );
}

if ( level.is_cooldown )
{
// shut off the pads
trigger sethintstring( &"ZOMBIE_TELEPORT_COOLDOWN" );
trigger teleport_trigger_invisible( false );
trigger.teleport_active = true;
}
else
{
trigger thread teleport_pad_active_think( index );
}
}
}

//-------------------------------------------------------------------------------
// updates the teleport pad timer
//-------------------------------------------------------------------------------
teleport_pad_countdown( index, time )
{
self endon( "stop_countdown" );

// iprintlnbold( &"ZOMBIE_START_TPAD" );

if ( level.active_timer < 0 )
{
level.active_timer = index;
}

level.countdown++;

//AUDIO
ClientNotify( "pac" + index );
ClientNotify( "TRf" ); // Teleporter receiver map light flash

// start timer for all players
// Add a second for VO sync
players = get_players();
for( i = 0; i < players.size; i++ )
{
players[i] thread maps\_zombiemode_timer::start_timer( time+1, "stop_countdown" );
}
wait( time+1 );

if ( level.active_timer == index )
{
level.active_timer = -1;
}

// ran out of time to activate teleporter
level.teleport[index] = "timer_off";
// iprintlnbold( "out of time" );
ClientNotify( "TRs" ); // Stop flashing the receiver map light

level.countdown--;
}

//-------------------------------------------------------------------------------
// handles teleporting players when triggered
//-------------------------------------------------------------------------------
teleport_pad_active_think( index )
{
// self endon( "player_teleported" );

// link established, can be used to teleport
self setcursorhint( "HINT_NOICON" );
self.teleport_active = true;

user = undefined;

// self sethintstring( &"ZOMBIE_TELEPORT_TO_CORE" );
// self teleport_trigger_invisible( false );

while ( 1 )
{
self waittill( "trigger", user );

if ( is_player_valid( user ) && user.score >= level.teleport_cost && !level.is_cooldown )
{
for ( i = 0; i < level.teleporter_pad_trig.size; i++ )
{
level.teleporter_pad_trig[i] teleport_trigger_invisible( true );
}

user maps\_zombiemode_score::minus_to_player_score( level.teleport_cost );

// Non-threaded so the trigger doesn't activate before the cooldown
self player_teleporting( index );
}
}
}

//-------------------------------------------------------------------------------
// handles moving the players and fx, etc...moved out so it can be threaded
//-------------------------------------------------------------------------------
player_teleporting( index )
{
time_since_last_teleport = GetTime() - level.teleport_time;

// begin the teleport
// add 3rd person fx
teleport_pad_start_exploder( index );

// play startup fx at the core
exploder( 105 );

//AUDIO
ClientNotify( "tpw" + index );

// start fps fx
self thread teleport_pad_player_fx( level.teleport_delay );

//AUDIO
self thread teleport_2d_audio();

// Activate the TP zombie kill effect
self thread teleport_nuke( 20, 300); // Max 20 zombies and range 300

// wait a bit
wait( level.teleport_delay );

// end fps fx
self notify( "fx_done" );

// add 3rd person beam fx
teleport_pad_end_exploder( index );

// teleport the players
self teleport_players();

//AUDIO
ClientNotify( "tpc" + index );

// only need this if it's not cooling down
if ( level.is_cooldown == false )
{
thread pad_manager();
}

// Now spawn a powerup goodie after a few seconds
wait( 2.0 );
ss = getstruct( "teleporter_powerup", "targetname" );
if ( IsDefined( ss ) )
{
ss thread maps\_zombiemode_powerups::special_powerup_drop(ss.origin);
}
else
{
modderHelp( undefined, "Missing struct with Targetname KVP 'teleporter_powerup'." );
}

// Special for teleporting too much.  The Dogs attack!
if ( time_since_last_teleport < 60000 && level.active_links == 3 && level.round_number > 20 )
{
dog_spawners = GetEntArray( "special_dog_spawner", "targetname" );
if( modderHelp( dog_spawners, "Missing power up dog with Targetname KVP 'special_dog_spawner'." ) )
{
maps\_zombiemode_dogs::special_dog_spawn( undefined, 4 );
}
//iprintlnbold( "Samantha Sez: No Powerup For You!" );
thread play_sound_2d( "sam_nospawn" );
}
level.teleport_time = GetTime();
}

//-------------------------------------------------------------------------------
// pad fx for the start of the teleport
//-------------------------------------------------------------------------------
teleport_pad_start_exploder( index )
{
switch ( index )
{
case 0:
exploder( 202 );
break;

case 1:
exploder( 302 );
break;

case 2:
exploder( 402 );
break;
}
}

//-------------------------------------------------------------------------------
// pad fx for the end of the teleport
//-------------------------------------------------------------------------------
teleport_pad_end_exploder( index )
{
switch ( index )
{
case 0:
exploder( 201 );
break;

case 1:
exploder( 301 );
break;

case 2:
exploder( 401 );
break;
}
}

//-------------------------------------------------------------------------------
// used to enable / disable the pad use trigger for players
//-------------------------------------------------------------------------------
teleport_trigger_invisible( enable )
{
players = getplayers();

for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
self SetInvisibleToPlayer( players[i], enable );
}
}
}

//-------------------------------------------------------------------------------
// checks if player is within radius of the teleport pad
//-------------------------------------------------------------------------------
player_is_near_pad( player )
{
radius = 88;
scale_factor = 2;

dist = Distance2D( player.origin, self.origin );
dist_touching = radius * scale_factor;

if ( dist < dist_touching )
{
return true;
}

return false;
}


//-------------------------------------------------------------------------------
// this is the 1st person effect seen when touching the teleport pad
//-------------------------------------------------------------------------------
teleport_pad_player_fx( delay )
{
self endon( "fx_done" );

while ( 1 )
{
players = getplayers();
for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
if ( self player_is_near_pad( players[i] ) )
{
players[i] SetTransported( delay );
}
else
{
players[i] SetTransported( 0 );
}
}
}
wait ( .05 );
}
}

//-------------------------------------------------------------------------------
// send players back to the core
//-------------------------------------------------------------------------------
teleport_players()
{
player_radius = 16;

players = getplayers();

core_pos = [];
occupied = [];
image_room = [];
players_touching = []; // the players that will actually be teleported

player_idx = 0;

prone_offset = (0, 0, 49);
crouch_offset = (0, 0, 20);
stand_offset = (0, 0, 0);

// send players to a black room to flash images for a few seconds
for ( i = 0; i < 4; i++ )
{
core_pos[i] = getent( "origin_teleport_player_" + i, "targetname" );
modderHelp( core_pos[i], "Missing teleport destination script origin with Targetname KVP 'origin_teleport_player_" + i + "'." );
occupied[i] = false;
image_room[i] = getent( "teleport_room_" + i, "targetname" );
modderHelp( image_room[i], "Missing teleport room script origin with Targetname KVP 'teleport_room_" + i + "'." );

if ( isdefined( players[i] ) )
{
players[i] settransported( 0 );

if ( self player_is_near_pad( players[i] ) )
{
players_touching[player_idx] = i;
player_idx++;

if ( isdefined( image_room[i] ) && !players[i] maps\_laststand::player_is_in_laststand() )
{
players[i] disableOffhandWeapons();
players[i] disableweapons();
if( players[i] getstance() == "prone" )
{
desired_origin = image_room[i].origin + prone_offset;
}
else if( players[i] getstance() == "crouch" )
{
desired_origin = image_room[i].origin + crouch_offset;
}
else
{
desired_origin = image_room[i].origin + stand_offset;
}

players[i].teleport_origin = spawn( "script_origin", players[i].origin );
players[i].teleport_origin.angles = players[i].angles;
players[i] linkto( players[i].teleport_origin );
players[i].teleport_origin.origin = desired_origin;
players[i] FreezeControls( true );
wait_network_frame();

if( IsDefined( players[i] ) )
{
setClientSysState( "levelNotify", "black_box_start", players[i] );
players[i].teleport_origin.angles = image_room[i].angles;
}
}
}
}
}

wait( 2 );

// Nuke anything at the core
core = GetEnt( "trigger_teleport_core", "targetname" );
modderHelp( core, "Missing mainframe trigger with Targetname KVP 'trigger_teleport_core'." );
core thread teleport_nuke( undefined, 300); // Max any zombies at the pad range 300

// check if any players are standing on top of core teleport positions
for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
for ( j = 0; j < 4; j++ )
{
if ( !occupied[j] )
{
dist = Distance2D( core_pos[j].origin, players[i].origin );
if ( dist < player_radius )
{
occupied[j] = true;
}
}
}
setClientSysState( "levelNotify", "black_box_end", players[i] );
}
}

wait_network_frame();

// move players to the core
for ( i = 0; i < players_touching.size; i++ )
{
player_idx = players_touching[i];
player = players[player_idx];

if ( !IsDefined( player ) )
{
continue;
}

// find a free space at the core
slot = i;
start = 0;
while ( occupied[slot] && start < 4 )
{
start++;
slot++;
if ( slot >= 4 )
{
slot = 0;
}
}
occupied[slot] = true;
pos_name = "origin_teleport_player_" + slot;
teleport_core_pos = getent( pos_name, "targetname" );
modderHelp( teleport_core_pos, "Missing teleport core position with Targetname KVP " + pos_name + "." );

player unlink();

assert( IsDefined( player.teleport_origin ) );
player.teleport_origin delete();
player.teleport_origin = undefined;

player enableweapons();
player enableoffhandweapons();
player setorigin( core_pos[slot].origin );
player setplayerangles( core_pos[slot].angles );
player FreezeControls( false );
player thread teleport_aftereffects();

vox_rand = randomintrange(1,100);  //RARE: Sets up rare post-teleport line

if( vox_rand <= 2 )
{
//player teleporter_vo( "vox_tele_sick_rare" );
//iprintlnbold( "Hey, this is the random teleport sickness line!" );
}
else
{
player teleporter_vo( "vox_tele_sick" );
}

player achievement_notify( "DLC3_ZOMBIE_FIVE_TELEPORTS" );
}

// play beam fx at the core
exploder( 106 );
}

//-------------------------------------------------------------------------------
// updates the hint string when countdown is started and expired
//-------------------------------------------------------------------------------
teleport_core_hint_update()
{
self setcursorhint( "HINT_NOICON" );

while ( 1 )
{
// can't use teleporters until power is on
if ( !flag( "electricity_on" ) )
{
self sethintstring( &"ZOMBIE_FLAMES_UNAVAILABLE" );
}
else if ( teleport_pads_are_active() )
{
self sethintstring( &"ZOMBIE_LINK_TPAD" );
}
else if ( level.active_links == 0 )
{
self sethintstring( &"ZOMBIE_INACTIVE_TPAD" );
}
else
{
self sethintstring( "" );
}

wait( .05 );
}
}

//-------------------------------------------------------------------------------
// establishes the link between teleporter pads and the core
//-------------------------------------------------------------------------------
teleport_core_think()
{
trigger = getent( "trigger_teleport_core", "targetname" );
if ( isdefined( trigger ) )
{
trigger thread teleport_core_hint_update();

// disable teleporters to power is turned on
flag_wait( "electricity_on" );

while ( 1 )
{
if ( teleport_pads_are_active() )
{
trigger waittill( "trigger" );

// trigger teleport_trigger_invisible( true );

// iprintlnbold( &"ZOMBIE_LINK_ACTIVE" );

// link the activated pads
for ( i = 0; i < level.teleport.size; i++ )
{
if ( isdefined( level.teleport[i] ) )
{
if ( level.teleport[i] == "timer_on" )
{
level.teleport[i] = "active";
level.active_links++;
flag_set( "teleporter_pad_link_"+level.active_links );

//AUDIO
ClientNotify( "scd" + i );

teleport_core_start_exploder( i );

// check for all teleporters active
if ( level.active_links == 3 )
{
exploder( 101 );
ClientNotify( "pap1" ); // Pack-A-Punch door on
teleporter_vo( "linkall", trigger );
if( level.round_number <= 7 )
{
achievement_notify( "DLC3_ZOMBIE_FAST_LINK" );
}
Earthquake( 0.3, 2.0, trigger.origin, 3700 );
}

// stop the countdown for the teleport pad
pad = "trigger_teleport_pad_" + i;
trigger_pad = getent( pad, "targetname" );
trigger_pad stop_countdown();
ClientNotify( "TRs" ); // Stop flashing the receiver map light
level.active_timer = -1;
}
}
}
}

wait( .05 );
}
}
else
{
modderHelp( undefined, "Missing mainframe trigger with Targetname KVP 'trigger_teleport_core'." );
}
}

stop_countdown()
{
self notify( "stop_countdown" );
players = get_players();

for( i = 0; i < players.size; i++ )
{
players[i] notify( "stop_countdown" );
}
}

//-------------------------------------------------------------------------------
// checks if any of the teleporter pads are counting down
//-------------------------------------------------------------------------------
teleport_pads_are_active()
{
// have any pads started?
if ( isdefined( level.teleport ) )
{
for ( i = 0; i < level.teleport.size; i++ )
{
if ( isdefined( level.teleport[i] ) )
{
if ( level.teleport[i] == "timer_on" )
{
return true;
}
}
}
}

return false;
}

//-------------------------------------------------------------------------------
// starts the exploder for the teleport pad fx
//-------------------------------------------------------------------------------
teleport_core_start_exploder( index )
{
switch ( index )
{
case 0:
exploder( 102 );
break;

case 1:
exploder( 103 );
break;

case 2:
exploder( 104 );
break;
}
}

teleport_2d_audio()
{
self endon( "fx_done" );

while ( 1 )
{
players = getplayers();

wait(1.7);

for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
if ( self player_is_near_pad( players[i] ) )
{
setClientSysState("levelNotify", "t2d", players[i]);
}
}
}
}
}


// kill anything near the pad
teleport_nuke( max_zombies, range )
{
zombies = getaispeciesarray("axis");

zombies = get_array_of_closest( self.origin, zombies, undefined, max_zombies, range );

for (i = 0; i < zombies.size; i++)
{
wait (randomfloatrange(0.2, 0.3));
if( !IsDefined( zombies[i] ) )
{
continue;
}

if( is_magic_bullet_shield_enabled( zombies[i] ) )
{
continue;
}

if( !( zombies[i] enemy_is_dog() ) )
{
zombies[i] maps\_zombiemode_spawner::zombie_head_gib();
}

zombies[i] dodamage( 10000, zombies[i].origin );
playsoundatposition( "nuked", zombies[i].origin );
}
}

teleporter_vo( tele_vo_type, location )
{
if( !isdefined( location ))
{
self thread teleporter_vo_play( tele_vo_type, 2 );
}
else
{
players = get_players();
for (i = 0; i < players.size; i++)
{
if (distance (players[i].origin, location.origin) < 64)
{
switch ( tele_vo_type )
{
case "linkall":
players[i] thread teleporter_vo_play( "vox_tele_linkall" );
break;
case "countdown":
players[i] thread teleporter_vo_play( "vox_tele_count", 3 );
break;
}
}
}
}
}

teleporter_vo_play( vox_type, pre_wait )
{
if(!isdefined( pre_wait ))
{
pre_wait = 0;
}
index = maps\_zombiemode_weapons::get_player_index(self);
plr = "plr_" + index + "_";
wait(pre_wait);
self create_and_play_dialog( plr, vox_type, 0.25 );
}

play_tele_help_vox()
{
level endon( "tele_help_end" );

while(1)
{
self waittill("trigger", who);

if( flag( "electricity_on" ) )
{
who thread teleporter_vo_play( "vox_tele_help" );
level notify( "tele_help_end" );
}

while(IsDefined (who) && (who) IsTouching (self))
{
wait(0.1);
}
}
}

play_packa_see_vox()
{
wait(10);

if( !flag( "teleporter_pad_link_3" ) )
{
self waittill("trigger", who);
who thread teleporter_vo_play( "vox_perk_packa_see" );
}
}


//
// This should match the perk_wire_fx_client function
// waits for the effect to travel along the wire
teleporter_wire_wait( index )
{
targ = getstruct( "pad_"+index+"_wire" ,"targetname");
if ( !IsDefined( targ ) )
{
return;
}

while(isDefined(targ))
{
if(isDefined(targ.target))
{
target = getstruct(targ.target,"targetname");
wait( 0.1 );

targ = target;
}
else
{
break;
}
}
}

// Teleporter Aftereffects
teleport_aftereffects()
{
if( GetDvar( "factoryAftereffectOverride" ) == "-1" )
{
self thread [[ level.teleport_ae_funcs[RandomInt(level.teleport_ae_funcs.size)] ]]();
}
else
{
self thread [[ level.teleport_ae_funcs[int(GetDvar( "factoryAftereffectOverride" ))] ]]();
}
}

teleport_aftereffect_shellshock()
{
println( "*** Explosion Aftereffect***\n" );
self shellshock( "explosion", 4 );
}

teleport_aftereffect_shellshock_electric()
{
println( "***Electric Aftereffect***\n" );
self shellshock( "electrocution", 4 );
}

// tae indicates to Clientscripts that a teleporter aftereffect should start

teleport_aftereffect_fov()
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_bw_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_red_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_flashy_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_flare_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

packa_door_reminder()
{
while( !flag( "teleporter_pad_link_3" ) )
{
rand = randomintrange(4,16);
self playsound( "packa_door_hitch" );
wait(rand);
}
}
and this dlc3_code file
[code]// Sparks (9/12/2009 3:20:27 PM)
// treminaor (6/03/2013 10:54 AM) - This file is an adaptation of nazi_zombie_factory.gsc. Key functions have been pulled out and put here, adapted for general use.
//                          -   The file was originally created for the Sniperbolt Tutorial but as a result contained a couple bugs. I have gone through and fixed them for this Modtools patch.
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include maps\_music;
#include maps\ugx_modder_help;
// DLC3 Utilities
#include maps\dlc3_teleporter;

/***********************************************************************
    DLC3 STUFF
***********************************************************************/

initDLC3_Vars()
{
   // Alter The Pulls
   level.pulls_since_last_ray_gun = 0;
   level.pulls_since_last_tesla_gun = 0;
   level.player_drops_tesla_gun = false;
   
   // Coop Heroes Loadout
   if( isDefined( level.DLC3.useCoopHeroes ) && level.DLC3.useCoopHeroes )
   {
      level.use_zombie_heroes = level.DLC3.useCoopHeroes;
   }
   else
   {
      level.use_zombie_heroes = true;
   }

   // Bowie Knife Damage
   if( isDefined( level.DLC3.perk_altMeleeDamage ) && level.DLC3.perk_altMeleeDamage )
   {
      SetDvar( "perk_altMeleeDamage", level.DLC3.perk_altMeleeDamage );
   }
   else
   {
      SetDvar( "perk_altMeleeDamage", 1000 );
   }

   // Dogs Enabled
   if( isDefined( level.DLC3.useHellHounds ))
   {
      level.dogs_enabled = level.DLC3.useHellHounds;
   }
   else
   {
      level.dogs_enabled = false;
   }
   
   // Mixed Crawlers And Dogs
   if( isDefined( level.DLC3.useMixedRounds ) )
   {
      level.mixed_rounds_enabled = level.DLC3.useMixedRounds;
   }
   else
   {
      level.mixed_rounds_enabled = false;
   }
   
   // Array For Burning Zombies, Traps, and Risers -- Leave These
   level.burning_zombies = [];
   level.traps = [];
   level.zombie_rise_spawners = [];
   
   // Barrier Search Override
   if( isDefined( level.DLC3.barrierSearchOverride ) && level.DLC3.barrierSearchOverride )
   {
      level.max_barrier_search_dist_override = level.DLC3.barrierSearchOverride;
   }
   else
   {
      level.max_barrier_search_dist_override = 400;
   }
   
   // Pointer Functions -- These Are Stock
   level.door_dialog_function = maps\_zombiemode::play_door_dialog;
   level.achievement_notify_func = maps\_zombiemode_utility::achievement_notify;
   level.dog_spawn_func = maps\_zombiemode_dogs::dog_spawn_factory_logic;
   
   level.zombie_anim_override = maps\dlc3_code::anim_override_func;
}

initDLC3_Vars2()
{   
   // Special level specific settings
   if( isDefined( level.DLC3.powerUpDropMax ) && level.DLC3.powerUpDropMax )
   {
      set_zombie_var( "zombie_powerup_drop_max_per_round", level.DLC3.powerUpDropMax );   // lower this to make drop happen more often
   }
   {
      set_zombie_var( "zombie_powerup_drop_max_per_round", 3 );   // lower this to make drop happen more often
   }
}

DLC3_threadCalls()
{
   initDLC3_Vars();
   
   script_anims_init();
   
   level thread maps\_callbacksetup::SetupCallbacks();
   
   precacheDLC3();
}

DLC3_threadCalls2()
{
   if( isArray( level.DLC3.initialZones ) && isDefined( level.DLC3.initialZones[ 0 ] ) )
   {
      level thread maps\_zombiemode_zone_manager::manage_zones( level.DLC3.initialZones );
   }
   
   if( isDefined( level.DLC3.useSnow ) && level.DLC3.useSnow )
   {
      level thread player_Snow();
   }
   
   init_sounds();
   
   level thread initDLC3_Vars2();
   
   if( isDefined( level.DLC3.useElectricSwitch ) && level.DLC3.useElectricSwitch )
   {
      // level thread power_electric_switch();
   }
   else
   {
      level thread power_electric_switch_on();
   }
   
   level thread magic_box_init();

   if( isDefined( level.DLC3.useElectricTraps ) && level.DLC3.useElectricTraps )
   {
      thread init_elec_trap_trigs();
   }
   
   // Need this here because of the createFX hack for teleporter FX
   if( !isDefined( level._script_exploders ) )
   {
      level._script_exploders = [];
   }
   
   teleporter_init();
   
   level thread mapStartAudio();
   
   level thread intro_screen();

   level thread jump_from_bridge();
   level lock_additional_player_spawner();

   if( isDefined( level.DLC3.useBridge ) && level.DLC3.useBridge )
   {
      level thread bridge_init();
   }

   level thread perkMachineRattles();
}

precacheDLC3()
{
   precachestring(&"ZOMBIE_FLAMES_UNAVAILABLE");
   precachestring(&"ZOMBIE_ELECTRIC_SWITCH");

   precachestring(&"ZOMBIE_POWER_UP_TPAD");
   precachestring(&"ZOMBIE_TELEPORT_TO_CORE");
   precachestring(&"ZOMBIE_LINK_TPAD");
   precachestring(&"ZOMBIE_LINK_ACTIVE");
   precachestring(&"ZOMBIE_INACTIVE_TPAD");
   precachestring(&"ZOMBIE_START_TPAD");

   precacheshellshock("electrocution");
   precachemodel("zombie_zapper_cagelight_red");
   precachemodel("zombie_zapper_cagelight_green");
   precacheModel("lights_indlight_on" );
   precacheModel("lights_milit_lamp_single_int_on" );
   precacheModel("lights_tinhatlamp_on" );
   precacheModel("lights_berlin_subway_hat_0" );
   precacheModel("lights_berlin_subway_hat_50" );
   precacheModel("lights_berlin_subway_hat_100" );
   precachemodel("collision_geo_32x32x128");

   precachestring(&"ZOMBIE_BETTY_ALREADY_PURCHASED");
   precachestring(&"ZOMBIE_BETTY_HOWTO");
}

intro_screen()
{

   flag_wait( "all_players_connected" );
   wait(2);
   level.intro_hud = [];
   for(i = 0;  i < 3; i++)
   {
      level.intro_hud = newHudElem();
      level.intro_hud.x = 0;
      level.intro_hud.y = 0;
      level.intro_hud.alignX = "left";
      level.intro_hud.alignY = "bottom";
      level.intro_hud.horzAlign = "left";
      level.intro_hud.vertAlign = "bottom";
      level.intro_hud.foreground = true;

      if ( level.splitscreen && !level.hidef )
      {
         level.intro_hud.fontScale = 2.75;
      }
      else
      {
         level.intro_hud.fontScale = 1.75;
      }
      level.intro_hud.alpha = 0.0;
      level.intro_hud.color = (1, 1, 1);
      level.intro_hud.inuse = false;
   }
   level.intro_hud[0].y = -110;
   level.intro_hud[1].y = -90;
   level.intro_hud[2].y = -70;


   level.intro_hud[0] settext(level.DLC3.introString);
   level.intro_hud[1] settext("");
   level.intro_hud[2] settext("");

   for(i = 0 ; i < 3; i++)
   {
      level.intro_hud FadeOverTime( 3.5 );
      level.intro_hud.alpha = 1;
      wait(1.5);
   }
   wait(1.5);
   for(i = 0 ; i < 3; i++)
   {
      level.intro_hud FadeOverTime( 3.5 );
      level.intro_hud.alpha = 0;
      wait(1.5);
   }   
   //wait(1.5);
   for(i = 0 ; i < 3; i++)
   {
      level.intro_hud destroy();
   }
}

init_sounds()
{
   maps\_zombiemode_utility::add_sound( "break_stone", "break_stone" );
   maps\_zombiemode_utility::add_sound( "gate_door",   "open_door" );
   maps\_zombiemode_utility::add_sound( "heavy_door",   "open_door" );
}

include_weapons()
{
   include_weapon( "zombie_colt" );
   include_weapon( "zombie_colt_upgraded", false );
   include_weapon( "zombie_sw_357" );
   include_weapon( "zombie_sw_357_upgraded", false );

   // Bolt Action
   include_weapon( "zombie_kar98k" );
   include_weapon( "zombie_kar98k_upgraded", false );

   // Semi Auto
   include_weapon( "zombie_m1carbine" );
   include_weapon( "zombie_m1carbine_upgraded", false );
   include_weapon( "zombie_m1garand" );
   include_weapon( "zombie_m1garand_upgraded", false );
   include_weapon( "zombie_gewehr43" );
   include_weapon( "zombie_gewehr43_upgraded", false );

   // Full Auto
   include_weapon( "zombie_stg44" );
   include_weapon( "zombie_stg44_upgraded", false );
   include_weapon( "zombie_thompson" );
   include_weapon( "zombie_thompson_upgraded", false );
   include_weapon( "zombie_mp40" );
   include_weapon( "zombie_mp40_upgraded", false );
   include_weapon( "zombie_type100_smg" );
   include_weapon( "zombie_type100_smg_upgraded", false );

   // Scoped
   include_weapon( "ptrs41_zombie" );
   include_weapon( "ptrs41_zombie_upgraded", false );

   // Grenade
   include_weapon( "molotov" );
   include_weapon( "stielhandgranate" );

   // Grenade Launcher   
   include_weapon( "m1garand_gl_zombie" );
   include_weapon( "m1garand_gl_zombie_upgraded", false );
   include_weapon( "m7_launcher_zombie" );
   include_weapon( "m7_launcher_zombie_upgraded", false );

   // Flamethrower
   include_weapon( "m2_flamethrower_zombie" );
   include_weapon( "m2_flamethrower_zombie_upgraded", false );

   // Shotgun
   include_weapon( "zombie_doublebarrel" );
   include_weapon( "zombie_doublebarrel_upgraded", false );
   include_weapon( "zombie_shotgun" );
   include_weapon( "zombie_shotgun_upgraded", false );

   // Heavy MG
   include_weapon( "zombie_bar" );
   include_weapon( "zombie_bar_upgraded", false );
   include_weapon( "zombie_fg42" );
   include_weapon( "zombie_fg42_upgraded", false );

   include_weapon( "zombie_30cal" );
   include_weapon( "zombie_30cal_upgraded", false );
   include_weapon( "zombie_mg42" );
   include_weapon( "zombie_mg42_upgraded", false );
   include_weapon( "zombie_ppsh" );
   include_weapon( "zombie_ppsh_upgraded", false );

   // Rocket Launcher
   include_weapon( "panzerschrek_zombie" );
   include_weapon( "panzerschrek_zombie_upgraded", false );

   // Special
   include_weapon( "ray_gun", true, ::factory_ray_gun_weighting_func );
   include_weapon( "ray_gun_upgraded", false );
   include_weapon( "tesla_gun", true );
   include_weapon( "tesla_gun_upgraded", false );
   include_weapon( "zombie_cymbal_monkey", true, ::factory_cymbal_monkey_weighting_func );

   // Bouncing betties
   include_weapon( "mine_bouncing_betty", false );

   // Limited weapons
   maps\_zombiemode_weapons::add_limited_weapon( "zombie_colt", 0 );
   maps\_zombiemode_weapons::add_limited_weapon( "zombie_gewehr43", 0 );
   maps\_zombiemode_weapons::add_limited_weapon( "zombie_m1garand", 0 );
}

include_powerups()
{
   include_powerup( "nuke" );
   include_powerup( "insta_kill" );
   include_powerup( "double_points" );
   include_powerup( "full_ammo" );
   include_powerup( "carpenter" );
}

DLC3_FX()
{
   // THESE ARE NEEDED FOR ZOMBIE MODE -- LEAVE THESE
   
   // Scripted FX
   level._effect["large_ceiling_dust"]      = LoadFx( "env/dirt/fx_dust_ceiling_impact_lg_mdbrown" );
   level._effect["poltergeist"]         = LoadFx( "misc/fx_zombie_couch_effect" );
   level._effect["gasfire"]             = LoadFx("destructibles/fx_dest_fire_vert");
   level._effect["switch_sparks"]         = loadfx("env/electrical/fx_elec_wire_spark_burst");
   level._effect["wire_sparks_oneshot"] = loadfx("env/electrical/fx_elec_wire_spark_dl_oneshot");
   
   level._effect["rise_burst"]      = LoadFx("maps/mp_maps/fx_mp_zombie_hand_dirt_burst");
   level._effect["rise_billow"]   = LoadFx("maps/mp_maps/fx_mp_zombie_body_dirt_billowing");   
   level._effect["rise_dust"]      = LoadFx("maps/mp_maps/fx_mp_zombie_body_dust_falling");      
      
   level._effect["lght_marker"]         = Loadfx("maps/zombie/fx_zombie_factory_marker");
   level._effect["lght_marker_flare"]      = Loadfx("maps/zombie/fx_zombie_factory_marker_fl");

   level._effect["betty_explode"]         = loadfx("weapon/bouncing_betty/fx_explosion_betty_generic");
   level._effect["betty_trail"]         = loadfx("weapon/bouncing_betty/fx_betty_trail");

   level._effect["zapper_fx"]             = loadfx("misc/fx_zombie_zapper_powerbox_on");   
   level._effect["zapper"]               = loadfx("misc/fx_zombie_electric_trap");
   level._effect["zapper_wall"]          = loadfx("misc/fx_zombie_zapper_wall_control_on");
   level._effect["zapper_light_ready"]      = loadfx("maps/zombie/fx_zombie_light_glow_green");
   level._effect["zapper_light_notready"]   = loadfx("maps/zombie/fx_zombie_light_glow_red");

   level._effect["elec_trail_one_shot"]   = loadfx("misc/fx_zombie_elec_trail_oneshot");
   level._effect["wire_spark"] = loadfx("maps/zombie/fx_zombie_wire_spark");
   level._effect["powerup_on"]             = loadfx( "misc/fx_zombie_powerup_on" );
   
   // Create FX
   
   if( isDefined( level.DLC3.myFX ) )
   {
      [[level.DLC3.myFX]]();
   }
   
   level._effect["zombie_flashback_american"]          = loadfx("maps/zombie/fx_zombie_flashback_american");
   level._effect["gasfire2"]                            = Loadfx("destructibles/fx_dest_fire_vert");   
   level._effect["mp_light_lamp"]                        = Loadfx("maps/mp_maps/fx_mp_light_lamp");   
   level._effect["zombie_difference"]                  = loadfx("maps/zombie/fx_zombie_difference");
   level._effect["zombie_mainframe_steam"]              = loadfx("maps/zombie/fx_zombie_mainframe_steam");   
   level._effect["zombie_heat_sink"]                    = loadfx("maps/zombie/fx_zombie_heat_sink");
   level._effect["mp_smoke_stack"]                      = loadfx("maps/mp_maps/fx_mp_smoke_stack");
   level._effect["mp_elec_spark_fast_random"]            = loadfx("maps/mp_maps/fx_mp_elec_spark_fast_random");
   level._effect["mp_elec_broken_light_1shot"]              = loadfx("maps/mp_maps/fx_mp_elec_broken_light_1shot");   
   level._effect["mp_light_lamp_no_eo"]                  = loadfx("maps/mp_maps/fx_mp_light_lamp_no_eo");
   level._effect["zombie_packapunch"]                  = loadfx("maps/zombie/fx_zombie_packapunch");
   level._effect["electric_short_oneshot"] = loadfx("env/electrical/fx_elec_short_oneshot");
   
   animscripts\utility::setFootstepEffect( "asphalt",    LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "brick",      LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "carpet",     LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "cloth",      LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "concrete",   LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "dirt",       LoadFx( "bio/player/fx_footstep_sand" ) );
   animscripts\utility::setFootstepEffect( "foliage",    LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "gravel",     LoadFx( "bio/player/fx_footstep_sand" ) );
   animscripts\utility::setFootstepEffect( "grass",      LoadFx( "bio/player/fx_footstep_sand" ) );
   animscripts\utility::setFootstepEffect( "metal",      LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "mud",        LoadFx( "bio/player/fx_footstep_mud" ) );
   animscripts\utility::setFootstepEffect( "paper",      LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "plaster",    LoadFx( "bio/player/fx_footstep_dust" ) );
   animscripts\utility::setFootstepEffect( "rock",       LoadFx( "bio/player/fx_footstep_sand" ) );
   animscripts\utility::setFootstepEffect( "sand",       LoadFx( "bio/player/fx_footstep_sand" ) );
   animscripts\utility::setFootstepEffect( "water",      LoadFx( "bio/player/fx_footstep_water" ) );
   animscripts\utility::setFootstepEffect( "wood",       LoadFx( "bio/player/fx_footstep_dust" ) );
   
   [[level.DLC3.createArt]]();
   
   spawnFX();
}

spawnFX()
{
   [[level.DLC3.createFX]]();
   
   maps\createFX\dlc3_fx::main();
}

/***********************************************************************
    TRAP STUFF
***********************************************************************/

init_elec_trap_trigs()
{
   array_thread( getStructArray( "dlc3_electric_trap", "targetname"), ::electric_trap_think );
}

electric_trap_dialog()
{

   self endon ("warning_dialog");
   level endon("switch_flipped");
   timer =0;
   while(1)
   {
      wait(0.5);
      players = get_players();
      for(i = 0; i < players.size; i++)
      {      
         dist = distancesquared(players.origin, self.origin );
         if(dist > 70*70)
         {
            timer = 0;
            continue;
         }
         if(dist < 70*70 && timer < 3)
         {
            wait(0.5);
            timer ++;
         }
         if(dist < 70*70 && timer == 3)
         {
            
            index = maps\_zombiemode_weapons::get_player_index(players);
            plr = "plr_" + index + "_";
            //players create_and_play_dialog( plr, "vox_level_start", 0.25 );
            wait(3);            
            self notify ("warning_dialog");
            //iprintlnbold("warning_given");
         }
      }
   }
}

electric_trap_think()
{
   enable_flag = undefined;
   
   if( !isDefined( self.script_string ) )
   {
      return;
   }
   else
   {
      enable_flag = self.script_string;
   }
   
   self sethintstring(&"ZOMBIE_FLAMES_UNAVAILABLE");
   self.zombie_cost = 1000;
   
   self thread electric_trap_dialog();

   // get a list of all of the other triggers with the same name
   triggers = getentarray( self.targetname, "targetname" );
   flag_wait( "electricity_on" );

   // Get the damage trigger.  This is the unifying element to let us know it's been activated.
   self.zombie_dmg_trig = getent(self.target,"targetname");
   self.zombie_dmg_trig.in_use = 0;

   // Set buy string
   self sethintstring(&"ZOMBIE_BUTTON_NORTH_FLAMES");

   // Getting the light that's related is a little esoteric, but there isn't
   // a better way at the moment.  It uses linknames, which are really dodgy.
   light_name = "";   // scope declaration
   tswitch = getent(self.script_linkto,"script_linkname");
   switch ( tswitch.script_linkname )
   {
   case "10":   // wnuen
   case "11":
      light_name = "zapper_light_wuen";   
      break;

   case "20":   // warehouse
   case "21":
      light_name = "zapper_light_warehouse";
      break;

   case "30":   // Bridge
   case "31":
      light_name = "zapper_light_bridge";
      break;
   }

   // The power is now on, but keep it disabled until a certain condition is met
   //   such as opening the door it is blocking or waiting for the bridge to lower.
   if ( !flag( enable_flag ) )
   {
      self trigger_off();

      zapper_light_red( light_name );
      flag_wait( enable_flag );

      self trigger_on();
   }

   // Open for business! 
   zapper_light_green( light_name );

   while(1)
   {
      //valve_trigs = getentarray(self.script_noteworthy ,"script_noteworthy");      
   
      //wait until someone uses the valve
      self waittill("trigger",who);
      if( who in_revive_trigger() )
      {
         continue;
      }
      
      if( is_player_valid( who ) )
      {
         if( who.score >= self.zombie_cost )
         {            
            if(!self.zombie_dmg_trig.in_use)
            {
               self.zombie_dmg_trig.in_use = 1;

               //turn off the valve triggers associated with this trap until available again
               array_thread (triggers, ::trigger_off);

               play_sound_at_pos( "purchase", who.origin );
               self thread electric_trap_move_switch(self);
               //need to play a 'woosh' sound here, like a gas furnace starting up
               self waittill("switch_activated");
               //set the score
               who maps\_zombiemode_score::minus_to_player_score( self.zombie_cost );

               //this trigger detects zombies walking thru the flames
               self.zombie_dmg_trig trigger_on();

               //play the flame FX and do the actual damage
               self thread activate_electric_trap();               

               //wait until done and then re-enable the valve for purchase again
               self waittill("elec_done");
               
               clientnotify(self.script_string +"off");
                              
               //delete any FX ents
               if(isDefined(self.fx_org))
               {
                  self.fx_org delete();
               }
               if(isDefined(self.zapper_fx_org))
               {
                  self.zapper_fx_org delete();
               }
               if(isDefined(self.zapper_fx_switch_org))
               {
                  self.zapper_fx_switch_org delete();
               }
                              
               //turn the damage detection trigger off until the flames are used again
                self.zombie_dmg_trig trigger_off();
               wait(25);

               array_thread (triggers, ::trigger_on);

               //COLLIN: Play the 'alarm' sound to alert players that the traps are available again (playing on a temp ent in case the PA is already in use.
               //speakerA = getent("loudspeaker", "targetname");
               //playsoundatposition("warning", speakera.origin);
               self notify("available");

               self.zombie_dmg_trig.in_use = 0;
            }
         }
      }
   }
}

electric_trap_move_switch(parent)
{
   light_name = "";   // scope declaration
   tswitch = getent(parent.script_linkto,"script_linkname");
   switch ( tswitch.script_linkname )
   {
   case "10":   // wnuen
   case "11":
      light_name = "zapper_light_wuen";   
      break;

   case "20":   // warehouse
   case "21":
      light_name = "zapper_light_warehouse";
      break;

   case "30":
   case "31":
      light_name = "zapper_light_bridge";
      break;
   }
   
   //turn the light above the door red
   zapper_light_red( light_name );
   tswitch rotatepitch(180,.5);
   tswitch playsound("amb_sparks_l_b");
   tswitch waittill("rotatedone");

   self notify("switch_activated");
   self waittill("available");
   tswitch rotatepitch(-180,.5);

   //turn the light back green once the trap is available again
   zapper_light_green( light_name );
}

activate_electric_trap()
{
   if(isDefined(self.script_string) && self.script_string == "warehouse")
   {
      clientnotify("warehouse");
   }
   else if(isDefined(self.script_string) && self.script_string == "wuen")
   {
      clientnotify("wuen");
   }
   else
   {
      clientnotify("bridge");
   }   
      
   clientnotify(self.target);
   
   fire_points = getentarray(self.target,"targetname");
   
   for(i=0;i<fire_points.size;i++)
   {
      wait_network_frame();
      fire_points thread electric_trap_fx(self);      
   }
   
   //do the damage
   self.zombie_dmg_trig thread elec_barrier_damage();
   
   // reset the zapper model
   level waittill("arc_done");
}

electric_trap_fx(notify_ent)
{
   self.tag_origin = spawn("script_model",self.origin);
   //self.tag_origin setmodel("tag_origin");

   //playfxontag(level._effect["zapper"],self.tag_origin,"tag_origin");

   self.tag_origin playsound("elec_start");
   self.tag_origin playloopsound("elec_loop");
   self thread play_electrical_sound();
   
   wait(25);
      
   self.tag_origin stoploopsound();
      
   self.tag_origin delete();
   notify_ent notify("elec_done");
   level notify ("arc_done");   
}

play_electrical_sound()
{
   level endon ("arc_done");
   while(1)
   {   
      wait(randomfloatrange(0.1, 0.5));
      playsoundatposition("elec_arc", self.origin);
   }
   

}

elec_barrier_damage()
{   
   while(1)
   {
      self waittill("trigger",ent);
      
      //player is standing electricity, dumbass
      if(isplayer(ent) )
      {
         ent thread player_elec_damage();
      }
      else
      {
         if(!isDefined(ent.marked_for_death))
         {
            ent.marked_for_death = true;
            ent thread zombie_elec_death( randomint(100) );
         }
      }
   }
}

play_elec_vocals()
{
   if(IsDefined (self))
   {
      org = self.origin;
      wait(0.15);
      playsoundatposition("elec_vocals", org);
      playsoundatposition("zombie_arc", org);
      playsoundatposition("exp_jib_zombie", org);
   }
}

player_elec_damage()
{   
   self endon("death");
   self endon("disconnect");
   
   if(!IsDefined (level.elec_loop))
   {
      level.elec_loop = 0;
   }   
   
   if( !isDefined(self.is_burning) && !self maps\_laststand::player_is_in_laststand() )
   {
      self.is_burning = 1;      
      self setelectrified(1.25);   
      shocktime = 2.5;         
      //Changed Shellshock to Electrocution so we can have different bus volumes.
      self shellshock("electrocution", shocktime);
      
      if(level.elec_loop == 0)
      {   
         elec_loop = 1;
         //self playloopsound ("electrocution");
         self playsound("zombie_arc");
      }
      if(!self hasperk("specialty_armorvest") || self.health - 100 < 1)
      {
         
         radiusdamage(self.origin,10,self.health + 100,self.health + 100);
         self.is_burning = undefined;
      }
      else
      {
         self dodamage(50, self.origin);
         wait(.1);
         //self playsound("zombie_arc");
         self.is_burning = undefined;
      }
   }
}

zombie_elec_death(flame_chance)
{
   self endon("death");
   
   //10% chance the zombie will burn, a max of 6 burning zombs can be goign at once
   //otherwise the zombie just gibs and dies
   if(flame_chance > 90 && level.burning_zombies.size < 6)
   {
      level.burning_zombies[level.burning_zombies.size] = self;
      self thread zombie_flame_watch();
      self playsound("ignite");
      self thread animscripts\death::flame_death_fx();
      wait(randomfloat(1.25));      
   }
   else
   {
      
      refs[0] = "guts";
      refs[1] = "right_arm";
      refs[2] = "left_arm";
      refs[3] = "right_leg";
      refs[4] = "left_leg";
      refs[5] = "no_legs";
      refs[6] = "head";
      self.a.gib_ref = refs[randomint(refs.size)];

      playsoundatposition("zombie_arc", self.origin);
      if( !self enemy_is_dog() && randomint(100) > 50 )
      {
         self thread electroctute_death_fx();
         self thread play_elec_vocals();
      }
      wait(randomfloat(1.25));
      self playsound("zombie_arc");
   }

   self dodamage(self.health + 666, self.origin);
   iprintlnbold("should be damaged");
}

zombie_flame_watch()
{
   self waittill("death");
   self stoploopsound();
   level.burning_zombies = array_remove_nokeys(level.burning_zombies,self);
}

zapper_light_red( lightname )
{
   zapper_lights = getentarray( lightname, "targetname");
   for(i=0;i<zapper_lights.size;i++)
   {
      zapper_lights setmodel("zombie_zapper_cagelight_red");   

      if(isDefined(zapper_lights.fx))
      {
         zapper_lights.fx delete();
      }

      zapper_lights.fx = maps\_zombiemode_net::network_safe_spawn( "trap_light_red", 2, "script_model", zapper_lights.origin );
      zapper_lights.fx setmodel("tag_origin");
      zapper_lights.fx.angles = zapper_lights.angles+(-90,0,0);
      playfxontag(level._effect["zapper_light_notready"],zapper_lights.fx,"tag_origin");
   }
}

zapper_light_green( lightname )
{
   zapper_lights = getentarray( lightname, "targetname");
   for(i=0;i<zapper_lights.size;i++)
   {
      zapper_lights setmodel("zombie_zapper_cagelight_green");   

      if(isDefined(zapper_lights.fx))
      {
         zapper_lights.fx delete();
      }

      zapper_lights.fx = maps\_zombiemode_net::network_safe_spawn( "trap_light_green&qu
1080 days ago
so any help.....
1081 days ago
..so I try to added PanzerSoldat and After I followed BluntStuffy tut this one https://ugx-mods.com/forum/index.php?topic=12208
I got server script compile error I checked steps several times and I can't solved  :-\
1084 days ago
so any help :-\
1097 days ago
Are you sure? Can you send pictures so I can be more helpful



and this is the dlc3_teleporter after i installed UGX Modtools Patch v1.0.6
// Keep in mind this file is just a copy of nazi_zombie_factory_teleporter.gsc. It has .been adapted for general use (isDefined checks and so on)
#include maps\ugx_modder_help;
#include common_scripts\utility;
#include maps\_utility;
#include maps\_zombiemode_utility;

#include maps\dlc3_code;

//-------------------------------------------------------------------------------
// setup and kick off think functions
//-------------------------------------------------------------------------------
teleporter_init()
{
level.teleport = [];
level.active_links = 0;
level.countdown = 0;

level.teleport_delay = 2;
level.teleport_cost = 1500;
level.teleport_cooldown = 5;
level.is_cooldown = false;
level.active_timer = -1;
level.teleport_time = 0;

flag_init( "teleporter_pad_link_1" );
flag_init( "teleporter_pad_link_2" );
flag_init( "teleporter_pad_link_3" );

wait_for_all_players();

// Get the Pad triggers
for ( i=0; i<3; i++ )
{
trig = GetEnt( "trigger_teleport_pad_" + i, "targetname");
if ( IsDefined(trig) )
{
level.teleporter_pad_trig[i] = trig;
}
}

thread teleport_pad_think( 0 );
thread teleport_pad_think( 1 );
thread teleport_pad_think( 2 );
thread teleport_core_think();

thread start_black_room_fx();
thread init_pack_door();

SetDvar( "factoryAftereffectOverride", "-1" );

packapunch_see = getent( "packapunch_see", "targetname" );
if(isdefined( packapunch_see ) )
{
packapunch_see thread play_packa_see_vox();
}

level.teleport_ae_funcs = [];

if( !IsSplitscreen() )
{
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_fov;
}
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_shellshock;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_shellshock_electric;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_bw_vision;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_red_vision;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_flashy_vision;
level.teleport_ae_funcs[level.teleport_ae_funcs.size] = maps\dlc3_teleporter::teleport_aftereffect_flare_vision;
}

//-------------------------------------------------------------------------------
// sets up up the pack a punch door
//-------------------------------------------------------------------------------
init_pack_door()
{
door = getent( "pack_door", "targetname" );
if(modderHelp( door, "Missing Pack a Punch door with Targetname KVP 'pack_door'." )) return;
door movez( -50, 0.05, 0 );
wait(1.0);

flag_wait( "all_players_connected" );

door movez(  50, 1.5, 0 );
door playsound( "packa_door_1" );

// Open slightly the first two times
flag_wait( "teleporter_pad_link_1" );
door movez( -35, 1.5, 1 );
door playsound( "packa_door_2" );
door thread packa_door_reminder();
wait(2);

// Second link
flag_wait( "teleporter_pad_link_2" );
door movez( -25, 1.5, 1 );
door playsound( "packa_door_2" );
wait(2);

// Final Link
flag_wait( "teleporter_pad_link_3" );

door movez( -60, 1.5, 1 );
door playsound( "packa_door_2" );

clip = getentarray( "pack_door_clip", "targetname" );
for ( i = 0; i < clip.size; i++ )
{
clip[i] connectpaths();
clip[i] delete();
}
}

//-------------------------------------------------------------------------------
// handles activating and deactivating pads for cool down
//-------------------------------------------------------------------------------
pad_manager()
{
for ( i = 0; i < level.teleporter_pad_trig.size; i++ )
{
// shut off the pads
level.teleporter_pad_trig[i] sethintstring( &"ZOMBIE_TELEPORT_COOLDOWN" );
level.teleporter_pad_trig[i] teleport_trigger_invisible( false );
}

level.is_cooldown = true;
wait( level.teleport_cooldown );
level.is_cooldown = false;

for ( i = 0; i < level.teleporter_pad_trig.size; i++ )
{
if ( level.teleporter_pad_trig[i].teleport_active )
{
level.teleporter_pad_trig[i] sethintstring( &"ZOMBIE_TELEPORT_TO_CORE" );
}
else
{
level.teleporter_pad_trig[i] sethintstring( &"ZOMBIE_LINK_TPAD" );
}
// level.teleporter_pad_trig[i] teleport_trigger_invisible( false );
}
}

//-------------------------------------------------------------------------------
// staggers the black room fx
//-------------------------------------------------------------------------------
start_black_room_fx()
{
for ( i = 901; i <= 904; i++ )
{
wait( 1 );
exploder( i );
}
}

//-------------------------------------------------------------------------------
// handles turning on the pad and waiting for link
//-------------------------------------------------------------------------------
teleport_pad_think( index )
{
if(!isDefined(level.teleporter_pad_trig)) return; //UGX - no teleporters on map, stop
if(!isDefined(level.teleporter_pad_trig[index])) return; // UGX - teleporter doesn't exist, stop

tele_help = getent( "tele_help_" + index, "targetname" );
if(isdefined( tele_help ) )
{
tele_help thread play_tele_help_vox();
}

active = false;

// init the pad
level.teleport[index] = "waiting";

trigger = level.teleporter_pad_trig[ index ];

trigger setcursorhint( "HINT_NOICON" );
trigger sethintstring( &"ZOMBIE_FLAMES_UNAVAILABLE" );

flag_wait( "electricity_on" );

trigger sethintstring( &"ZOMBIE_POWER_UP_TPAD" );
trigger.teleport_active = false;

if ( isdefined( trigger ) )
{
while ( !active )
{
trigger waittill( "trigger" );

if ( level.active_links < 3 )
{
trigger_core = getent( "trigger_teleport_core", "targetname" );

if( modderHelp( trigger_core, "Missing mainframe trigger with Targetname KVP 'trigger_teleport_core'." ) )
{
trigger_core teleport_trigger_invisible( false );
}
}

// when one starts the others disabled
for ( i=0; i<level.teleporter_pad_trig.size; i++ )
{
level.teleporter_pad_trig[ i ] teleport_trigger_invisible( true );
}
level.teleport[index] = "timer_on";

// start the countdown back to the core
trigger thread teleport_pad_countdown( index, 30 );
teleporter_vo( "countdown", trigger );

// wait for the countdown
while ( level.teleport[index] == "timer_on" )
{
wait( .05 );
}

// core was activated in time
if ( level.teleport[index] == "active" )
{
active = true;
ClientNotify( "pw" + index ); // pad wire #

//AUDIO
ClientNotify( "tp" + index ); // Teleporter #

// MM - Auto teleport the first time
teleporter_wire_wait( index );

// trigger teleport_trigger_invisible( true );
trigger thread player_teleporting( index );
}
else
{
// Reenable triggers
  for ( i=0; i<level.teleporter_pad_trig.size; i++ )
  {
  level.teleporter_pad_trig[ i ] teleport_trigger_invisible( false );
  }
}
wait( .05 );
}

if ( level.is_cooldown )
{
// shut off the pads
trigger sethintstring( &"ZOMBIE_TELEPORT_COOLDOWN" );
trigger teleport_trigger_invisible( false );
trigger.teleport_active = true;
}
else
{
trigger thread teleport_pad_active_think( index );
}
}
}

//-------------------------------------------------------------------------------
// updates the teleport pad timer
//-------------------------------------------------------------------------------
teleport_pad_countdown( index, time )
{
self endon( "stop_countdown" );

// iprintlnbold( &"ZOMBIE_START_TPAD" );

if ( level.active_timer < 0 )
{
level.active_timer = index;
}

level.countdown++;

//AUDIO
ClientNotify( "pac" + index );
ClientNotify( "TRf" ); // Teleporter receiver map light flash

// start timer for all players
// Add a second for VO sync
players = get_players();
for( i = 0; i < players.size; i++ )
{
players[i] thread maps\_zombiemode_timer::start_timer( time+1, "stop_countdown" );
}
wait( time+1 );

if ( level.active_timer == index )
{
level.active_timer = -1;
}

// ran out of time to activate teleporter
level.teleport[index] = "timer_off";
// iprintlnbold( "out of time" );
ClientNotify( "TRs" ); // Stop flashing the receiver map light

level.countdown--;
}

//-------------------------------------------------------------------------------
// handles teleporting players when triggered
//-------------------------------------------------------------------------------
teleport_pad_active_think( index )
{
// self endon( "player_teleported" );

// link established, can be used to teleport
self setcursorhint( "HINT_NOICON" );
self.teleport_active = true;

user = undefined;

// self sethintstring( &"ZOMBIE_TELEPORT_TO_CORE" );
// self teleport_trigger_invisible( false );

while ( 1 )
{
self waittill( "trigger", user );

if ( is_player_valid( user ) && user.score >= level.teleport_cost && !level.is_cooldown )
{
for ( i = 0; i < level.teleporter_pad_trig.size; i++ )
{
level.teleporter_pad_trig[i] teleport_trigger_invisible( true );
}

user maps\_zombiemode_score::minus_to_player_score( level.teleport_cost );

// Non-threaded so the trigger doesn't activate before the cooldown
self player_teleporting( index );
}
}
}

//-------------------------------------------------------------------------------
// handles moving the players and fx, etc...moved out so it can be threaded
//-------------------------------------------------------------------------------
player_teleporting( index )
{
time_since_last_teleport = GetTime() - level.teleport_time;

// begin the teleport
// add 3rd person fx
teleport_pad_start_exploder( index );

// play startup fx at the core
exploder( 105 );

//AUDIO
ClientNotify( "tpw" + index );

// start fps fx
self thread teleport_pad_player_fx( level.teleport_delay );

//AUDIO
self thread teleport_2d_audio();

// Activate the TP zombie kill effect
self thread teleport_nuke( 20, 300); // Max 20 zombies and range 300

// wait a bit
wait( level.teleport_delay );

// end fps fx
self notify( "fx_done" );

// add 3rd person beam fx
teleport_pad_end_exploder( index );

// teleport the players
self teleport_players();

//AUDIO
ClientNotify( "tpc" + index );

// only need this if it's not cooling down
if ( level.is_cooldown == false )
{
thread pad_manager();
}

// Now spawn a powerup goodie after a few seconds
wait( 2.0 );
ss = getstruct( "teleporter_powerup", "targetname" );
if ( IsDefined( ss ) )
{
ss thread maps\_zombiemode_powerups::special_powerup_drop(ss.origin);
}
else
{
modderHelp( undefined, "Missing struct with Targetname KVP 'teleporter_powerup'." );
}

// Special for teleporting too much.  The Dogs attack!
if ( time_since_last_teleport < 60000 && level.active_links == 3 && level.round_number > 20 )
{
dog_spawners = GetEntArray( "special_dog_spawner", "targetname" );
if( modderHelp( dog_spawners, "Missing power up dog with Targetname KVP 'special_dog_spawner'." ) )
{
maps\_zombiemode_dogs::special_dog_spawn( undefined, 4 );
}
//iprintlnbold( "Samantha Sez: No Powerup For You!" );
thread play_sound_2d( "sam_nospawn" );
}
level.teleport_time = GetTime();
}

//-------------------------------------------------------------------------------
// pad fx for the start of the teleport
//-------------------------------------------------------------------------------
teleport_pad_start_exploder( index )
{
switch ( index )
{
case 0:
exploder( 202 );
break;

case 1:
exploder( 302 );
break;

case 2:
exploder( 402 );
break;
}
}

//-------------------------------------------------------------------------------
// pad fx for the end of the teleport
//-------------------------------------------------------------------------------
teleport_pad_end_exploder( index )
{
switch ( index )
{
case 0:
exploder( 201 );
break;

case 1:
exploder( 301 );
break;

case 2:
exploder( 401 );
break;
}
}

//-------------------------------------------------------------------------------
// used to enable / disable the pad use trigger for players
//-------------------------------------------------------------------------------
teleport_trigger_invisible( enable )
{
players = getplayers();

for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
self SetInvisibleToPlayer( players[i], enable );
}
}
}

//-------------------------------------------------------------------------------
// checks if player is within radius of the teleport pad
//-------------------------------------------------------------------------------
player_is_near_pad( player )
{
radius = 88;
scale_factor = 2;

dist = Distance2D( player.origin, self.origin );
dist_touching = radius * scale_factor;

if ( dist < dist_touching )
{
return true;
}

return false;
}


//-------------------------------------------------------------------------------
// this is the 1st person effect seen when touching the teleport pad
//-------------------------------------------------------------------------------
teleport_pad_player_fx( delay )
{
self endon( "fx_done" );

while ( 1 )
{
players = getplayers();
for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
if ( self player_is_near_pad( players[i] ) )
{
players[i] SetTransported( delay );
}
else
{
players[i] SetTransported( 0 );
}
}
}
wait ( .05 );
}
}

//-------------------------------------------------------------------------------
// send players back to the core
//-------------------------------------------------------------------------------
teleport_players()
{
player_radius = 16;

players = getplayers();

core_pos = [];
occupied = [];
image_room = [];
players_touching = []; // the players that will actually be teleported

player_idx = 0;

prone_offset = (0, 0, 49);
crouch_offset = (0, 0, 20);
stand_offset = (0, 0, 0);

// send players to a black room to flash images for a few seconds
for ( i = 0; i < 4; i++ )
{
core_pos[i] = getent( "origin_teleport_player_" + i, "targetname" );
modderHelp( core_pos[i], "Missing teleport destination script origin with Targetname KVP 'origin_teleport_player_" + i + "'." );
occupied[i] = false;
image_room[i] = getent( "teleport_room_" + i, "targetname" );
modderHelp( image_room[i], "Missing teleport room script origin with Targetname KVP 'teleport_room_" + i + "'." );

if ( isdefined( players[i] ) )
{
players[i] settransported( 0 );

if ( self player_is_near_pad( players[i] ) )
{
players_touching[player_idx] = i;
player_idx++;

if ( isdefined( image_room[i] ) && !players[i] maps\_laststand::player_is_in_laststand() )
{
players[i] disableOffhandWeapons();
players[i] disableweapons();
if( players[i] getstance() == "prone" )
{
desired_origin = image_room[i].origin + prone_offset;
}
else if( players[i] getstance() == "crouch" )
{
desired_origin = image_room[i].origin + crouch_offset;
}
else
{
desired_origin = image_room[i].origin + stand_offset;
}

players[i].teleport_origin = spawn( "script_origin", players[i].origin );
players[i].teleport_origin.angles = players[i].angles;
players[i] linkto( players[i].teleport_origin );
players[i].teleport_origin.origin = desired_origin;
players[i] FreezeControls( true );
wait_network_frame();

if( IsDefined( players[i] ) )
{
setClientSysState( "levelNotify", "black_box_start", players[i] );
players[i].teleport_origin.angles = image_room[i].angles;
}
}
}
}
}

wait( 2 );

// Nuke anything at the core
core = GetEnt( "trigger_teleport_core", "targetname" );
modderHelp( core, "Missing mainframe trigger with Targetname KVP 'trigger_teleport_core'." );
core thread teleport_nuke( undefined, 300); // Max any zombies at the pad range 300

// check if any players are standing on top of core teleport positions
for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
for ( j = 0; j < 4; j++ )
{
if ( !occupied[j] )
{
dist = Distance2D( core_pos[j].origin, players[i].origin );
if ( dist < player_radius )
{
occupied[j] = true;
}
}
}
setClientSysState( "levelNotify", "black_box_end", players[i] );
}
}

wait_network_frame();

// move players to the core
for ( i = 0; i < players_touching.size; i++ )
{
player_idx = players_touching[i];
player = players[player_idx];

if ( !IsDefined( player ) )
{
continue;
}

// find a free space at the core
slot = i;
start = 0;
while ( occupied[slot] && start < 4 )
{
start++;
slot++;
if ( slot >= 4 )
{
slot = 0;
}
}
occupied[slot] = true;
pos_name = "origin_teleport_player_" + slot;
teleport_core_pos = getent( pos_name, "targetname" );
modderHelp( teleport_core_pos, "Missing teleport core position with Targetname KVP " + pos_name + "." );

player unlink();

assert( IsDefined( player.teleport_origin ) );
player.teleport_origin delete();
player.teleport_origin = undefined;

player enableweapons();
player enableoffhandweapons();
player setorigin( core_pos[slot].origin );
player setplayerangles( core_pos[slot].angles );
player FreezeControls( false );
player thread teleport_aftereffects();

vox_rand = randomintrange(1,100);  //RARE: Sets up rare post-teleport line

if( vox_rand <= 2 )
{
//player teleporter_vo( "vox_tele_sick_rare" );
//iprintlnbold( "Hey, this is the random teleport sickness line!" );
}
else
{
player teleporter_vo( "vox_tele_sick" );
}

player achievement_notify( "DLC3_ZOMBIE_FIVE_TELEPORTS" );
}

// play beam fx at the core
exploder( 106 );
}

//-------------------------------------------------------------------------------
// updates the hint string when countdown is started and expired
//-------------------------------------------------------------------------------
teleport_core_hint_update()
{
self setcursorhint( "HINT_NOICON" );

while ( 1 )
{
// can't use teleporters until power is on
if ( !flag( "electricity_on" ) )
{
self sethintstring( &"ZOMBIE_FLAMES_UNAVAILABLE" );
}
else if ( teleport_pads_are_active() )
{
self sethintstring( &"ZOMBIE_LINK_TPAD" );
}
else if ( level.active_links == 0 )
{
self sethintstring( &"ZOMBIE_INACTIVE_TPAD" );
}
else
{
self sethintstring( "" );
}

wait( .05 );
}
}

//-------------------------------------------------------------------------------
// establishes the link between teleporter pads and the core
//-------------------------------------------------------------------------------
teleport_core_think()
{
trigger = getent( "trigger_teleport_core", "targetname" );
if ( isdefined( trigger ) )
{
trigger thread teleport_core_hint_update();

// disable teleporters to power is turned on
flag_wait( "electricity_on" );

while ( 1 )
{
if ( teleport_pads_are_active() )
{
trigger waittill( "trigger" );

// trigger teleport_trigger_invisible( true );

// iprintlnbold( &"ZOMBIE_LINK_ACTIVE" );

// link the activated pads
for ( i = 0; i < level.teleport.size; i++ )
{
if ( isdefined( level.teleport[i] ) )
{
if ( level.teleport[i] == "timer_on" )
{
level.teleport[i] = "active";
level.active_links++;
flag_set( "teleporter_pad_link_"+level.active_links );

//AUDIO
ClientNotify( "scd" + i );

teleport_core_start_exploder( i );

// check for all teleporters active
if ( level.active_links == 3 )
{
exploder( 101 );
ClientNotify( "pap1" ); // Pack-A-Punch door on
teleporter_vo( "linkall", trigger );
if( level.round_number <= 7 )
{
achievement_notify( "DLC3_ZOMBIE_FAST_LINK" );
}
Earthquake( 0.3, 2.0, trigger.origin, 3700 );
}

// stop the countdown for the teleport pad
pad = "trigger_teleport_pad_" + i;
trigger_pad = getent( pad, "targetname" );
trigger_pad stop_countdown();
ClientNotify( "TRs" ); // Stop flashing the receiver map light
level.active_timer = -1;
}
}
}
}

wait( .05 );
}
}
else
{
modderHelp( undefined, "Missing mainframe trigger with Targetname KVP 'trigger_teleport_core'." );
}
}

stop_countdown()
{
self notify( "stop_countdown" );
players = get_players();

for( i = 0; i < players.size; i++ )
{
players[i] notify( "stop_countdown" );
}
}

//-------------------------------------------------------------------------------
// checks if any of the teleporter pads are counting down
//-------------------------------------------------------------------------------
teleport_pads_are_active()
{
// have any pads started?
if ( isdefined( level.teleport ) )
{
for ( i = 0; i < level.teleport.size; i++ )
{
if ( isdefined( level.teleport[i] ) )
{
if ( level.teleport[i] == "timer_on" )
{
return true;
}
}
}
}

return false;
}

//-------------------------------------------------------------------------------
// starts the exploder for the teleport pad fx
//-------------------------------------------------------------------------------
teleport_core_start_exploder( index )
{
switch ( index )
{
case 0:
exploder( 102 );
break;

case 1:
exploder( 103 );
break;

case 2:
exploder( 104 );
break;
}
}

teleport_2d_audio()
{
self endon( "fx_done" );

while ( 1 )
{
players = getplayers();

wait(1.7);

for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
if ( self player_is_near_pad( players[i] ) )
{
setClientSysState("levelNotify", "t2d", players[i]);
}
}
}
}
}


// kill anything near the pad
teleport_nuke( max_zombies, range )
{
zombies = getaispeciesarray("axis");

zombies = get_array_of_closest( self.origin, zombies, undefined, max_zombies, range );

for (i = 0; i < zombies.size; i++)
{
wait (randomfloatrange(0.2, 0.3));
if( !IsDefined( zombies[i] ) )
{
continue;
}

if( is_magic_bullet_shield_enabled( zombies[i] ) )
{
continue;
}

if( !( zombies[i] enemy_is_dog() ) )
{
zombies[i] maps\_zombiemode_spawner::zombie_head_gib();
}

zombies[i] dodamage( 10000, zombies[i].origin );
playsoundatposition( "nuked", zombies[i].origin );
}
}

teleporter_vo( tele_vo_type, location )
{
if( !isdefined( location ))
{
self thread teleporter_vo_play( tele_vo_type, 2 );
}
else
{
players = get_players();
for (i = 0; i < players.size; i++)
{
if (distance (players[i].origin, location.origin) < 64)
{
switch ( tele_vo_type )
{
case "linkall":
players[i] thread teleporter_vo_play( "vox_tele_linkall" );
break;
case "countdown":
players[i] thread teleporter_vo_play( "vox_tele_count", 3 );
break;
}
}
}
}
}

teleporter_vo_play( vox_type, pre_wait )
{
if(!isdefined( pre_wait ))
{
pre_wait = 0;
}
index = maps\_zombiemode_weapons::get_player_index(self);
plr = "plr_" + index + "_";
wait(pre_wait);
self create_and_play_dialog( plr, vox_type, 0.25 );
}

play_tele_help_vox()
{
level endon( "tele_help_end" );

while(1)
{
self waittill("trigger", who);

if( flag( "electricity_on" ) )
{
who thread teleporter_vo_play( "vox_tele_help" );
level notify( "tele_help_end" );
}

while(IsDefined (who) && (who) IsTouching (self))
{
wait(0.1);
}
}
}

play_packa_see_vox()
{
wait(10);

if( !flag( "teleporter_pad_link_3" ) )
{
self waittill("trigger", who);
who thread teleporter_vo_play( "vox_perk_packa_see" );
}
}


//
// This should match the perk_wire_fx_client function
// waits for the effect to travel along the wire
teleporter_wire_wait( index )
{
targ = getstruct( "pad_"+index+"_wire" ,"targetname");
if ( !IsDefined( targ ) )
{
return;
}

while(isDefined(targ))
{
if(isDefined(targ.target))
{
target = getstruct(targ.target,"targetname");
wait( 0.1 );

targ = target;
}
else
{
break;
}
}
}

// Teleporter Aftereffects
teleport_aftereffects()
{
if( GetDvar( "factoryAftereffectOverride" ) == "-1" )
{
self thread [[ level.teleport_ae_funcs[RandomInt(level.teleport_ae_funcs.size)] ]]();
}
else
{
self thread [[ level.teleport_ae_funcs[int(GetDvar( "factoryAftereffectOverride" ))] ]]();
}
}

teleport_aftereffect_shellshock()
{
println( "*** Explosion Aftereffect***\n" );
self shellshock( "explosion", 4 );
}

teleport_aftereffect_shellshock_electric()
{
println( "***Electric Aftereffect***\n" );
self shellshock( "electrocution", 4 );
}

// tae indicates to Clientscripts that a teleporter aftereffect should start

teleport_aftereffect_fov()
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_bw_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_red_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_flashy_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

teleport_aftereffect_flare_vision( localClientNum )
{
setClientSysState( "levelNotify", "tae", self );
}

packa_door_reminder()
{
while( !flag( "teleporter_pad_link_3" ) )
{
rand = randomintrange(4,16);
self playsound( "packa_door_hitch" );
wait(rand);
}
}
1098 days ago
You gotta get the UGX Patch for mod tools to use the stuff that harry'sbo21 and similar script and stuff

nothing change dude  :-\
1100 days ago
Hi guys !
I got server script compile error after I added  PanzerSoldat  from BluntStuffy tut
and as usual it is in dlc3_teleporter.file
actually I'm always have this error when I'm trying add new stuff in my map


1102 days ago
so any help
1109 days ago
LOL... :lol:

guys I mean background music in game this one http://www.youtube.com/watch?v=KaEtNh8Yp1Y not Main Menu Music
1112 days ago

Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Twitch
Loading ...