mirror of
https://github.com/Jackzmc/sourcemod-plugins.git
synced 2025-05-10 02:13:20 +00:00
Compare commits
4 commits
3939794e87
...
9bfb1e4787
Author | SHA1 | Date | |
---|---|---|---|
9bfb1e4787 | |||
5c469a8ee1 | |||
ed383ecc91 | |||
1a1663ba37 |
29 changed files with 11174 additions and 47 deletions
|
@ -25,6 +25,7 @@ models/props_junk/wood_pallet001a_chunka4.mdl Wood Pallet Piece 2-4
|
||||||
models/props_junk/wood_pallet001a_chunkb2.mdl Wood Pallet Piece 2-5
|
models/props_junk/wood_pallet001a_chunkb2.mdl Wood Pallet Piece 2-5
|
||||||
models/props_junk/wood_pallet001a_chunkb3.mdl Wood Pallet Piece 2-6
|
models/props_junk/wood_pallet001a_chunkb3.mdl Wood Pallet Piece 2-6
|
||||||
models/props_junk/wood_pallet001a_shard01.mdl Wood Pallet Piece 2-7
|
models/props_junk/wood_pallet001a_shard01.mdl Wood Pallet Piece 2-7
|
||||||
|
models/props_industrial/pallet_stack_docks.mdl Wood Pallet Stack
|
||||||
models/props_highway/op_straightincline_med_u.mdl Overpass Straight Incline
|
models/props_highway/op_straightincline_med_u.mdl Overpass Straight Incline
|
||||||
models/props_highway/op_straight_u.mdl Straight U 1
|
models/props_highway/op_straight_u.mdl Straight U 1
|
||||||
models/props_highway/op_straight_u_broken01.mdl Broken Straight U 2
|
models/props_highway/op_straight_u_broken01.mdl Broken Straight U 2
|
||||||
|
@ -37,6 +38,7 @@ models/props_highway/op_onramp_column.mdl On Ramp Column
|
||||||
models/props_highway/plywood_01.mdl Plywood 1
|
models/props_highway/plywood_01.mdl Plywood 1
|
||||||
models/props_highway/plywood_02.mdl Plywood 2
|
models/props_highway/plywood_02.mdl Plywood 2
|
||||||
models/props_highway/plywood_03.mdl Plywood 3
|
models/props_highway/plywood_03.mdl Plywood 3
|
||||||
|
models/props_industrial/plywood_leaning.mdl Plywood Leaning
|
||||||
models/props_industrial/construction_crane_leverbody.mdl Construction Crane Leverbody
|
models/props_industrial/construction_crane_leverbody.mdl Construction Crane Leverbody
|
||||||
models/props_industrial/construction_crane_leverhandle.mdl Construction Crane Lever
|
models/props_industrial/construction_crane_leverhandle.mdl Construction Crane Lever
|
||||||
models/props_industrial/construction_crane.mdl construction crane LARGE
|
models/props_industrial/construction_crane.mdl construction crane LARGE
|
||||||
|
@ -123,3 +125,29 @@ models/props_swamp/winch.mdl Winch
|
||||||
models/c1_chargerexit/mall_rampbundle.mdl Collection of supplies making small ramp
|
models/c1_chargerexit/mall_rampbundle.mdl Collection of supplies making small ramp
|
||||||
models/props_debris/paintbucket01.mdl Paintbucket
|
models/props_debris/paintbucket01.mdl Paintbucket
|
||||||
models/props_debris/paintbucket01_static.mdl paint bucket (solid)
|
models/props_debris/paintbucket01_static.mdl paint bucket (solid)
|
||||||
|
models/props_industrial/pallet_barrels_water01_single.mdl Pallet Water Barrel (Single)
|
||||||
|
models/props_industrial/pallet_barrels_water01_docks.mdl Pallet Water Barrel
|
||||||
|
models/props_industrial/brickpallets.mdl Brick Pallets
|
||||||
|
models/props_industrial/brickpallets_break03.mdl Brick Pallets (Breakable)
|
||||||
|
models/props_industrial/brickstack01.mdl Brick Stack (Massive)
|
||||||
|
models/props_industrial/brickstack02_a.mdl Brick Stack 2A (Massive)
|
||||||
|
models/props_industrial/brickstack02_b.mdl Brick Stack 2B (Massive)
|
||||||
|
models/props_industrial/brickstack03_a.mdl Brick Stack 3A (Massive)
|
||||||
|
models/props_industrial/brickstack04_a.mdl Brick Stack 4A (Massive)
|
||||||
|
models/props_industrial/brickstack04_b.mdl Brick Stack 4B (Massive)
|
||||||
|
models/props_industrial/brickstack05_a.mdl Brick Stack 5A (Massive)
|
||||||
|
models/props_industrial/brickstack05_b.mdl Brick Stack 5B (Massive)
|
||||||
|
models/props_industrial/brickstack06_a.mdl Brick Stack 6A (Massive)
|
||||||
|
models/props_industrial/brickstack06_b.mdl Brick Stack 6B (Massive)
|
||||||
|
models/props_industrial/brickstack07_a.mdl Brick Stack 7A (Massive)
|
||||||
|
models/props_industrial/brickstack07_b.mdl Brick Stack 7B (Massive)
|
||||||
|
models/props_industrial/brickstack08_a.mdl Brick Stack 8A (Massive)
|
||||||
|
models/props_industrial/brickstack08_b.mdl Brick Stack 8B (Massive)
|
||||||
|
models/props_industrial/brickstack09_a.mdl Brick Stack 9A (Massive)
|
||||||
|
models/props_industrial/brickstack09_b.mdl Brick Stack 9B (Massive)
|
||||||
|
models/props_industrial/brickstack10_a.mdl Brick Stack 10A (Massive)
|
||||||
|
models/props_industrial/brickstack10_b.mdl Brick Stack 10B (Massive)
|
||||||
|
models/props_industrial/brickstack11_a.mdl Brick Stack 11A (Massive)
|
||||||
|
models/props_industrial/brickstack11_b.mdl Brick Stack 11B (Massive)
|
||||||
|
models/props_industrial/brickstack12_a.mdl Brick Stack 12A (Massive)
|
||||||
|
models/props_industrial/brickstack12_b.mdl Brick Stack 12B (Massive)
|
||||||
|
|
|
@ -27,6 +27,7 @@ models/props_vehicles/boat_rescue_tug_sunshine.mdl Virgil's Boat (No Collision)
|
||||||
models/props_vehicles/boat_fishing.mdl Fishing Boat (No Collision)
|
models/props_vehicles/boat_fishing.mdl Fishing Boat (No Collision)
|
||||||
models/props_vehicles/boat_fishing02_static.mdl Rescue Boat
|
models/props_vehicles/boat_fishing02_static.mdl Rescue Boat
|
||||||
models/props_vehicles/boat_ski.mdl Speed Boat
|
models/props_vehicles/boat_ski.mdl Speed Boat
|
||||||
|
models/props_vehicles/boat_smash.mdl Speed Boat (Smashable)
|
||||||
models/props_vehicles/sailboat.mdl Sailboat
|
models/props_vehicles/sailboat.mdl Sailboat
|
||||||
models/props_vehicles/church_bus01.mdl Church Bus
|
models/props_vehicles/church_bus01.mdl Church Bus
|
||||||
models/props_vehicles/cara_69sedan.mdl '69 Sedan
|
models/props_vehicles/cara_69sedan.mdl '69 Sedan
|
||||||
|
|
|
@ -260,7 +260,8 @@
|
||||||
"variants": [
|
"variants": [
|
||||||
{
|
{
|
||||||
"inputs": [
|
"inputs": [
|
||||||
{"hammerid": 3331344, "input": "Break"}
|
{"hammerid": 3331344, "input": "Break"},
|
||||||
|
{"hammerid": 3331353, "input": "break"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
576
data/randomizer/c2m5_concert.json
Normal file
576
data/randomizer/c2m5_concert.json
Normal file
|
@ -0,0 +1,576 @@
|
||||||
|
{
|
||||||
|
"scaff-bridge-2": {
|
||||||
|
"chance": 0.4,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"name": "plywood_row_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2536.224853515625,
|
||||||
|
2479.3525390625,
|
||||||
|
187.75991821289062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2416.224853515625,
|
||||||
|
2479.3525390625,
|
||||||
|
187.75991821289062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2296,
|
||||||
|
2479.3525390625,
|
||||||
|
187.75991821289062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2176,
|
||||||
|
2479.3525390625,
|
||||||
|
187.75991821289062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2056,
|
||||||
|
2479.3525390625,
|
||||||
|
187.75991821289062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1984,
|
||||||
|
2479.3525390625,
|
||||||
|
187.75991821289062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2536.224853515625,
|
||||||
|
2431.5,
|
||||||
|
188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2416,
|
||||||
|
2431.5,
|
||||||
|
188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2296.224853515625,
|
||||||
|
2431.5,
|
||||||
|
188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2176.224853515625,
|
||||||
|
2431.5,
|
||||||
|
188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2056.224853515625,
|
||||||
|
2431.5,
|
||||||
|
188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plywood_row_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1984.224853515625,
|
||||||
|
2431.5,
|
||||||
|
188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2664.860595703125,
|
||||||
|
2525.53955078125,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2409.860595703125,
|
||||||
|
2525.53955078125,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2154,
|
||||||
|
2525.53955078125,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2026,
|
||||||
|
2525.53955078125,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2664.860595703125,
|
||||||
|
2441.94921875,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2409.860595703125,
|
||||||
|
2441.94921875,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2154.860595703125,
|
||||||
|
2441.94921875,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "beamrow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2026.860595703125,
|
||||||
|
2441.94921875,
|
||||||
|
182.70179748535156
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2597.29443359375,
|
||||||
|
2437.001220703125,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2471.29443359375,
|
||||||
|
2437.001220703125,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2345.29443359375,
|
||||||
|
2437.001220703125,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2219.29443359375,
|
||||||
|
2437.001220703125,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2093.29443359375,
|
||||||
|
2437.001220703125,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2597.29443359375,
|
||||||
|
2522.9000000000001,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2471.29443359375,
|
||||||
|
2522.9000000000001,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2345.29443359375,
|
||||||
|
2522.9000000000001,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2219.29443359375,
|
||||||
|
2522.9000000000001,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2093.29443359375,
|
||||||
|
2522.9000000000001,
|
||||||
|
189.39932250976562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_2",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_gate_post003.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.9207763671875,
|
||||||
|
2522.8330078125,
|
||||||
|
186.94879150390625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "fencerow_1",
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_gate_post003.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.9207763671875,
|
||||||
|
2437.0,
|
||||||
|
186.94879150390625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2416.064208984375,
|
||||||
|
2440.26708984375,
|
||||||
|
-61.955089569091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2416.064208984375,
|
||||||
|
2524,
|
||||||
|
-61.955089569091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2416.064208984375,
|
||||||
|
2524,
|
||||||
|
-317.955089569091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2162.39,
|
||||||
|
2524,
|
||||||
|
-61.955089569091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2162.39,
|
||||||
|
2524,
|
||||||
|
-110.955089569091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/handrail_hospital01_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2162.39,
|
||||||
|
2440.26708984375,
|
||||||
|
-61.955089569091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
678
data/randomizer/c5m1_waterfront.json
Normal file
678
data/randomizer/c5m1_waterfront.json
Normal file
|
@ -0,0 +1,678 @@
|
||||||
|
{
|
||||||
|
"start-alt": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_crates/static_crate_40.mdl",
|
||||||
|
"origin": [
|
||||||
|
-135.19369506835938,
|
||||||
|
102.36213684082031,
|
||||||
|
-375.61306762695312
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/billboard_ladder.mdl",
|
||||||
|
"origin": [
|
||||||
|
-191.82220458984375,
|
||||||
|
53.650222778320312,
|
||||||
|
-498.23223876953125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_crates/static_crate_40.mdl",
|
||||||
|
"origin": [
|
||||||
|
-284.515869140625,
|
||||||
|
95.820770263671875,
|
||||||
|
-196.39158630371094
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
17.100000381469727,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_02.mdl",
|
||||||
|
"origin": [
|
||||||
|
-233.43048095703125,
|
||||||
|
75.000656127929688,
|
||||||
|
-167.54473876953125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
14.899999618530273,
|
||||||
|
-0.80000019073486328,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_c17/metalladder001.mdl",
|
||||||
|
"origin": [
|
||||||
|
-543.90618896484375,
|
||||||
|
72.062530517578125,
|
||||||
|
-200.8336181640625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
94.200004577636719,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_shacks/shack_porch01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-753.91729736328125,
|
||||||
|
-458.591552734375,
|
||||||
|
-402.41680908203125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_barrels_water01_single.mdl",
|
||||||
|
"origin": [
|
||||||
|
-700.47808837890625,
|
||||||
|
-623.526123046875,
|
||||||
|
-299.7376708984375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_stack_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
-696.90643310546875,
|
||||||
|
-619.41058349609375,
|
||||||
|
-372.3662109375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_junk/trashbin01a.mdl",
|
||||||
|
"origin": [
|
||||||
|
-694.52496337890625,
|
||||||
|
-674.52935791015625,
|
||||||
|
-349.55328369140625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-710.7884521484375,
|
||||||
|
-458.3165283203125,
|
||||||
|
-108.32634735107422
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
2.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-662.280517578125,
|
||||||
|
-452.20919799804688,
|
||||||
|
-111.23278045654297
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
2.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-663.35516357421875,
|
||||||
|
-332.24545288085938,
|
||||||
|
-112.458740234375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
2.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-712.51092529296875,
|
||||||
|
-339.47052001953125,
|
||||||
|
-108.79377746582031
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
2.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start-skip": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/van.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1576.5235595703125,
|
||||||
|
-186.09768676757812,
|
||||||
|
-374.54266357421875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-86.700004577636719,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/van_glass.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1576.5235595703125,
|
||||||
|
-186.09768676757812,
|
||||||
|
-374.54266357421875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-86.700004577636719,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/billboard_ladder.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1940.13427734375,
|
||||||
|
-273.98272705078125,
|
||||||
|
-571.263916015625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-585,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-711.18365478515625,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-838.062255859375,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_cover001_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1998.4566650390625,
|
||||||
|
-1024.8663330078125,
|
||||||
|
-183.70199584960938
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-961.7313232421875,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_cover001_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1966.3516845703125,
|
||||||
|
-1020.03076171875,
|
||||||
|
-116.53513336181641
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_cover001_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1912.444091796875,
|
||||||
|
-1019.4788818359375,
|
||||||
|
-105.67644500732422
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"classname": "env_player_blocker",
|
||||||
|
"input": "kill"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 465080,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_barrels_water01_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2106.24951171875,
|
||||||
|
-153.55625915527344,
|
||||||
|
-375.30184936523438
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_barrels_water01_single.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2103.1865234375,
|
||||||
|
-248.36061096191406,
|
||||||
|
-265.70333862304688
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
90.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_crates/static_crate_40.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2046.45361328125,
|
||||||
|
-411.7041015625,
|
||||||
|
-223.83938598632812
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2082.101318359375,
|
||||||
|
-452.49029541015625,
|
||||||
|
-219.97494506835938
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_street/concertinawire128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2144.4423828125,
|
||||||
|
-527.07269287109375,
|
||||||
|
-175.52268981933594
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-23.19999885559082,
|
||||||
|
9.4999923706054688,
|
||||||
|
11.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_street/concertinawire128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2205.401123046875,
|
||||||
|
-581.38824462890625,
|
||||||
|
-188.589111328125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_street/concertinawire128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2330.557373046875,
|
||||||
|
-580.0220947265625,
|
||||||
|
-182.99201965332031
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_street/concertinawire128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2462.08056640625,
|
||||||
|
-585.85638427734375,
|
||||||
|
-180.50971984863281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2199.499267578125,
|
||||||
|
-155.623779296875,
|
||||||
|
-153.11810302734375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-8.6000003814697266,
|
||||||
|
-86.400009155273438,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2310.3515625,
|
||||||
|
-157.11373901367188,
|
||||||
|
-152.93547058105469
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-8.6000003814697266,
|
||||||
|
-86.400009155273438,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2415.82958984375,
|
||||||
|
-162.39042663574219,
|
||||||
|
-151.61190795898438
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-8.6000003814697266,
|
||||||
|
-86.400009155273438,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2518.89501953125,
|
||||||
|
-166.31500244140625,
|
||||||
|
-152.15213012695312
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-8.6000003814697266,
|
||||||
|
-86.400009155273438,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2607.375732421875,
|
||||||
|
-145.70103454589844,
|
||||||
|
-153.62594604492188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-8.6000003814697266,
|
||||||
|
-86.400009155273438,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_gate_post003.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-520,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_cover001_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1856.310302734375,
|
||||||
|
-1018.1326904296875,
|
||||||
|
-69.372299194335938
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_02.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2551.8544921875,
|
||||||
|
-607.31549072265625,
|
||||||
|
-40.5
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"weight": 2,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"classname": "env_player_blocker",
|
||||||
|
"input": "kill"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 465080,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 461112,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_gate_post003.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-268,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-333,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence003_128.mdl",
|
||||||
|
"origin": [
|
||||||
|
-2030.6728515625,
|
||||||
|
-459,
|
||||||
|
-161.10932922363281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_crates/static_crate_40.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1843.48193359375,
|
||||||
|
-996.82305908203125,
|
||||||
|
-66.354148864746094
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-30.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/billboard_ladder.mdl",
|
||||||
|
"origin": [
|
||||||
|
-1788.1597900390625,
|
||||||
|
-1057.0823974609375,
|
||||||
|
-438.24349975585938
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-180.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "env_physics_blocker",
|
||||||
|
"origin": [
|
||||||
|
-2945.315185, -1070.225585, -39.968750
|
||||||
|
],
|
||||||
|
"scale": [
|
||||||
|
300, 20, 200
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
488
data/randomizer/c5m2_park.json
Normal file
488
data/randomizer/c5m2_park.json
Normal file
|
@ -0,0 +1,488 @@
|
||||||
|
{
|
||||||
|
"park-ent-alt": {
|
||||||
|
"chance": 0.5,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4581.21533203125,
|
||||||
|
-1991.9302978515625,
|
||||||
|
-92.254302978515625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4581.666015625,
|
||||||
|
-2087.76513671875,
|
||||||
|
-81.402969360351562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-30.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_junk/dumpster.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4605.61572265625,
|
||||||
|
-2201.41748046875,
|
||||||
|
-190.69416809082031
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/gate_wall001_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4671.78466796875,
|
||||||
|
-2694.845703125,
|
||||||
|
-193.30868530273438
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/barricade001_64_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4545.845703125,
|
||||||
|
-2549.708984375,
|
||||||
|
-192.81387329101562
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
45.0,
|
||||||
|
165.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/gate_wall001_256.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4677.26904296875,
|
||||||
|
-1708.6707763671875,
|
||||||
|
-191.30380249023438
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/table_picnic.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4605.3994140625,
|
||||||
|
-2074.498291015625,
|
||||||
|
-113.96968841552734
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-180.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/table_picnic.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4603.8603515625,
|
||||||
|
-2078.102783203125,
|
||||||
|
-133.6282958984375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-180.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/table_picnic.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4604.93359375,
|
||||||
|
-2075.939697265625,
|
||||||
|
-157.97550964355469
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-180.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_interiors/table_picnic.mdl",
|
||||||
|
"origin": [
|
||||||
|
-4605.25830078125,
|
||||||
|
-2073.143310546875,
|
||||||
|
-93.847732543945312
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
180.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"body": {
|
||||||
|
"chance": 0.5,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/deadbodies/human/fence_a.mdl",
|
||||||
|
"origin": [
|
||||||
|
-8522.732421875,
|
||||||
|
-3317.47900390625,
|
||||||
|
-204.79844665527344
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"small-barrier": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/concrete_barrier01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9440.31640625,
|
||||||
|
-3306.944091796875,
|
||||||
|
-263.10284423828125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/concrete_barrier01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9429.6328125,
|
||||||
|
-3162.049072265625,
|
||||||
|
-258.2562255859375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/concrete_barrier01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9444.13671875,
|
||||||
|
-3234.8154296875,
|
||||||
|
-253.61259460449219
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/concrete_barrier01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9466.1865234375,
|
||||||
|
-3442.268798828125,
|
||||||
|
-243.09390258789062
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
45.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_debris/concrete_debris256pile001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9491.638671875,
|
||||||
|
-3873.774169921875,
|
||||||
|
-238.59593200683594
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_debris/concrete_debris128pile001b.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9797.0615234375,
|
||||||
|
-3734.997314453125,
|
||||||
|
-253.8603515625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_debris/concrete_debris256pile001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9671.7724609375,
|
||||||
|
-3567.714599609375,
|
||||||
|
-251.19012451171875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_debris/concrete_debris256pile001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9494.7939453125,
|
||||||
|
-3032.1123046875,
|
||||||
|
-241.85153198242188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_foliage/urban_streettree01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9382.322265625,
|
||||||
|
-3282.001220703125,
|
||||||
|
-247.06112670898438
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_foliage/urban_streettree01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9367.9892578125,
|
||||||
|
-3697.150634765625,
|
||||||
|
-246.72561645507812
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ceda-alt": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/concrete_barrier01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9564.6533203125,
|
||||||
|
-5226.8876953125,
|
||||||
|
-258.83914184570312
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_fortifications/concrete_barrier01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9647.853515625,
|
||||||
|
-5224.6533203125,
|
||||||
|
-258.03488159179688
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/semi_trailer_wrecked.mdl",
|
||||||
|
"origin": [
|
||||||
|
-10074.935546875,
|
||||||
|
-4930.92236328125,
|
||||||
|
-113.95668792724609
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-150.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/cara_95sedan_wrecked.mdl",
|
||||||
|
"origin": [
|
||||||
|
-10057.3388671875,
|
||||||
|
-4622.8955078125,
|
||||||
|
-236.27752685546875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
15.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"door-skip": {
|
||||||
|
"chance": 0.5,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"classname": "env_player_blocker",
|
||||||
|
"input": "kill"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence001_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
-6722.62353515625,
|
||||||
|
-6556.3017578125,
|
||||||
|
-241.4892578125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-45.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_crates/static_crate_40.mdl",
|
||||||
|
"origin": [
|
||||||
|
-6726.21435546875,
|
||||||
|
-6704.2265625,
|
||||||
|
-192.41217041015625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
15.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_crates/static_crate_40.mdl",
|
||||||
|
"origin": [
|
||||||
|
-6725.44140625,
|
||||||
|
-6662.97265625,
|
||||||
|
-193.33724975585938
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/outhouse001.mdl",
|
||||||
|
"origin": [
|
||||||
|
-6722.27392578125,
|
||||||
|
-6600.3447265625,
|
||||||
|
-218.58062744140625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"saferoom-alt": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/bus01.mdl",
|
||||||
|
"origin": [
|
||||||
|
-9124.8974609375,
|
||||||
|
-8267.6171875,
|
||||||
|
-255.75314331054688
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
60.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
1142
data/randomizer/c5m3_cemetery.json
Normal file
1142
data/randomizer/c5m3_cemetery.json
Normal file
File diff suppressed because it is too large
Load diff
1298
data/randomizer/c5m4_quarter.json
Normal file
1298
data/randomizer/c5m4_quarter.json
Normal file
File diff suppressed because it is too large
Load diff
1624
data/randomizer/c7m1_docks.json
Normal file
1624
data/randomizer/c7m1_docks.json
Normal file
File diff suppressed because it is too large
Load diff
1016
data/randomizer/c7m2_barge.json
Normal file
1016
data/randomizer/c7m2_barge.json
Normal file
File diff suppressed because it is too large
Load diff
1389
data/randomizer/c7m3_port.json
Normal file
1389
data/randomizer/c7m3_port.json
Normal file
File diff suppressed because it is too large
Load diff
586
data/randomizer/c8m5_rooftop.json
Normal file
586
data/randomizer/c8m5_rooftop.json
Normal file
|
@ -0,0 +1,586 @@
|
||||||
|
{
|
||||||
|
"roofa-block": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_wasteland/exterior_fence002c.mdl",
|
||||||
|
"origin": [
|
||||||
|
5915.05322265625,
|
||||||
|
7954.1533203125,
|
||||||
|
6175.73486328125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-180.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_wasteland/exterior_fence002b.mdl",
|
||||||
|
"origin": [
|
||||||
|
5981.6689453125,
|
||||||
|
8029.06787109375,
|
||||||
|
6171.36376953125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-270.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_wasteland/exterior_fence002c.mdl",
|
||||||
|
"origin": [
|
||||||
|
6096.92578125,
|
||||||
|
8014.52880859375,
|
||||||
|
6150.994140625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_wasteland/exterior_fence002b.mdl",
|
||||||
|
"origin": [
|
||||||
|
6200.41064453125,
|
||||||
|
8031.73828125,
|
||||||
|
6177.41259765625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_wasteland/exterior_fence002d.mdl",
|
||||||
|
"origin": [
|
||||||
|
6245.02392578125,
|
||||||
|
7887.26220703125,
|
||||||
|
6177.67578125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
360.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_wasteland/exterior_fence002c.mdl",
|
||||||
|
"origin": [
|
||||||
|
6245.30322265625,
|
||||||
|
7698.5712890625,
|
||||||
|
6176.59716796875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pipes-1": {
|
||||||
|
"chance": 0.5,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_corner128d_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6085.46240234375,
|
||||||
|
8945.470703125,
|
||||||
|
6057.126953125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
-90.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_128_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6207.5224609375,
|
||||||
|
8906.3291015625,
|
||||||
|
6058.6162109375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
540.0,
|
||||||
|
-90.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_corner128r_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6331.796875,
|
||||||
|
8856.6748046875,
|
||||||
|
6061.341796875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-180.0,
|
||||||
|
450.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_highway/plywood_01.mdl",
|
||||||
|
"origin": [
|
||||||
|
6272.724609375,
|
||||||
|
8882.9189453125,
|
||||||
|
6080.20556640625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_corner128d_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6377.34326171875,
|
||||||
|
8732.5673828125,
|
||||||
|
6099.43359375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_urban/fence_post002.mdl",
|
||||||
|
"origin": [
|
||||||
|
6378.88720703125,
|
||||||
|
8712.5390625,
|
||||||
|
5918.57373046875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_urban/fence_post002.mdl",
|
||||||
|
"origin": [
|
||||||
|
6377.021484375,
|
||||||
|
8881.7001953125,
|
||||||
|
5918.7861328125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cocomello-slide": {
|
||||||
|
"chance": 0.60000002384185791,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_bend256d_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
7581.36669921875,
|
||||||
|
8898.3583984375,
|
||||||
|
6092.33154296875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
141.39999389648438,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_bend256d_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
7779.5,
|
||||||
|
8735.1162109375,
|
||||||
|
5839.5693359375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.79999995231628418,
|
||||||
|
140.20001220703125,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"alt-defend": {
|
||||||
|
"chance": 0.69999998807907104,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_industrial/wire_spool_01.mdl",
|
||||||
|
"origin": [
|
||||||
|
6740.58544921875,
|
||||||
|
7819.6962890625,
|
||||||
|
5772.94775390625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_urban/metal_pole001.mdl",
|
||||||
|
"origin": [
|
||||||
|
6591.22900390625,
|
||||||
|
7957.89990234375,
|
||||||
|
5692.7138671875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_misc/tarp_lean.mdl",
|
||||||
|
"origin": [
|
||||||
|
6595.31298828125,
|
||||||
|
8031.70458984375,
|
||||||
|
5918.89599609375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-7.1999998092651367,
|
||||||
|
272.99993896484375,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props/de_prodigy/concretebags2.mdl",
|
||||||
|
"origin": [
|
||||||
|
6733.10009765625,
|
||||||
|
8124.28759765625,
|
||||||
|
5773.4775390625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props/cs_assault/acunit01.mdl",
|
||||||
|
"origin": [
|
||||||
|
6496.00830078125,
|
||||||
|
7856.95947265625,
|
||||||
|
5859.34521484375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_interiors/bucket_tools02.mdl",
|
||||||
|
"origin": [
|
||||||
|
6785.1513671875,
|
||||||
|
8109.1240234375,
|
||||||
|
5772.04345703125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_equipment/construction_lift.mdl",
|
||||||
|
"origin": [
|
||||||
|
6897.5068359375,
|
||||||
|
8128.009765625,
|
||||||
|
5770.931640625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_junk/wood_crate002a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6724.181640625,
|
||||||
|
8056.57177734375,
|
||||||
|
5792.52783203125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_junk/wood_crate002a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6720.7509765625,
|
||||||
|
7988.1767578125,
|
||||||
|
5793.0654296875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_junk/wood_crate002a.mdl",
|
||||||
|
"origin": [
|
||||||
|
6725.6103515625,
|
||||||
|
8026.87255859375,
|
||||||
|
5832.45361328125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props/de_prodigy/wood_pallet_01.mdl",
|
||||||
|
"origin": [
|
||||||
|
6699.41552734375,
|
||||||
|
8142.02734375,
|
||||||
|
5792.638671875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-60.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"crashed-heli": {
|
||||||
|
"chance": 0.5,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_vehicles/helicopter_news_downed.mdl",
|
||||||
|
"origin": [
|
||||||
|
7398.94580078125,
|
||||||
|
8013.81005859375,
|
||||||
|
5785.88232421875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-30.0,
|
||||||
|
60.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/c2m5_helicopter_extraction/c2m5_helicopter_small.mdl",
|
||||||
|
"origin": [
|
||||||
|
7137.39306640625,
|
||||||
|
8052.5908203125,
|
||||||
|
5769.85595703125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"planks": {
|
||||||
|
"chance": 0.69999998807907104,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_swamp/plank001a_192.mdl",
|
||||||
|
"origin": [
|
||||||
|
5287.00048828125,
|
||||||
|
8099.435546875,
|
||||||
|
5956.70361328125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_swamp/plank001a_192.mdl",
|
||||||
|
"origin": [
|
||||||
|
5280.6142578125,
|
||||||
|
8045.6708984375,
|
||||||
|
5954.27734375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_swamp/plank001a_192.mdl",
|
||||||
|
"origin": [
|
||||||
|
5391.94287109375,
|
||||||
|
7909.29052734375,
|
||||||
|
5954.12109375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"alt-lighttower": {
|
||||||
|
"chance": 0.69999998807907104,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_swamp/plank001b_192.mdl",
|
||||||
|
"origin": [
|
||||||
|
5284.8330078125,
|
||||||
|
8857.6455078125,
|
||||||
|
5968.1767578125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
30.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_pipes/pipeset32d_256_001a.mdl",
|
||||||
|
"origin": [
|
||||||
|
5281.6025390625,
|
||||||
|
8962.1796875,
|
||||||
|
5892.1435546875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"item-block": {
|
||||||
|
"chance": 0.44999998807907104,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"model": "models/props_highway/plywood_01.mdl",
|
||||||
|
"origin": [
|
||||||
|
5567.87548828125,
|
||||||
|
8392.4853515625,
|
||||||
|
5991.34521484375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_highway/plywood_02.mdl",
|
||||||
|
"origin": [
|
||||||
|
5522.6025390625,
|
||||||
|
8387.27734375,
|
||||||
|
6000.06884765625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-90.0,
|
||||||
|
75.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
5952.1240234375,
|
||||||
|
8539.2177734375,
|
||||||
|
5921.02587890625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
75.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "models/props_fortifications/barricade_razorwire001_128_reference.mdl",
|
||||||
|
"origin": [
|
||||||
|
5517.07666015625,
|
||||||
|
8556.119140625,
|
||||||
|
6080.91650390625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "env_physics_blocker",
|
||||||
|
"origin": [
|
||||||
|
5517.07666015625,
|
||||||
|
8552.119140625,
|
||||||
|
6080.91650390625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"scale": [
|
||||||
|
48,
|
||||||
|
12,
|
||||||
|
80
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
1289
data/randomizer/c9m1_alleys.json
Normal file
1289
data/randomizer/c9m1_alleys.json
Normal file
File diff suppressed because it is too large
Load diff
504
data/randomizer/c9m2_lots.json
Normal file
504
data/randomizer/c9m2_lots.json
Normal file
|
@ -0,0 +1,504 @@
|
||||||
|
{
|
||||||
|
"semi-skip": {
|
||||||
|
"chance": 0.30000001192092896,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"hammerid": 55220,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 55148,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
3793.525634765625,
|
||||||
|
-308.44189453125,
|
||||||
|
-62.157688140869141
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-19.700000762939453,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
3879.13916015625,
|
||||||
|
-358.6483154296875,
|
||||||
|
-55.560436248779297
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-3.5999999046325684,
|
||||||
|
-32.400001525878906,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_stack_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
3589.447021484375,
|
||||||
|
-341.81204223632812,
|
||||||
|
-172.47555541992188
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_stack_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
3584.012451171875,
|
||||||
|
-342.64913940429688,
|
||||||
|
-230.81228637695312
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_barrels_water01_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
3530.643310546875,
|
||||||
|
-259.70034790039062,
|
||||||
|
-168.9732666015625
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_barrels_water01_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
3526.457275390625,
|
||||||
|
-254.91879272460938,
|
||||||
|
-220.84259033203125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/semi_trailer_freestanding.mdl",
|
||||||
|
"origin": [
|
||||||
|
3699.136962890625,
|
||||||
|
-36.224365234375,
|
||||||
|
-227.72334289550781
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
176.19999694824219,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_stack_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
3711.4404296875,
|
||||||
|
118.58720397949219,
|
||||||
|
-95.429054260253906
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_industrial/pallet_stack_docks.mdl",
|
||||||
|
"origin": [
|
||||||
|
3714.56982421875,
|
||||||
|
186.07363891601562,
|
||||||
|
-61.407173156738281
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_02.mdl",
|
||||||
|
"origin": [
|
||||||
|
3710.57666015625,
|
||||||
|
184.14863586425781,
|
||||||
|
0.51078051328659058
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
35.199996948242188,
|
||||||
|
-76.899993896484375,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/flatnose_truck.mdl",
|
||||||
|
"origin": [
|
||||||
|
3691.6806640625,
|
||||||
|
-266.49920654296875,
|
||||||
|
-220.36700439453125
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-103.19999694824219,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"peanut": {
|
||||||
|
"chance": 1.0,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_physics",
|
||||||
|
"model": "models/props_fairgrounds/lil'peanut_cutout001.mdl",
|
||||||
|
"origin": [
|
||||||
|
4761.5625,
|
||||||
|
2888.28125,
|
||||||
|
-63.59375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
54.0087890625,
|
||||||
|
0.3515625
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"delivery-doors": {
|
||||||
|
"chance": 0.69999998807907104,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"hammerid": 654024,
|
||||||
|
"input": "break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 621021,
|
||||||
|
"input": "break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 665800,
|
||||||
|
"input": "break"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"3way-alt": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_doors/roll-up_door_full.mdl",
|
||||||
|
"origin": [
|
||||||
|
2070.6923828125,
|
||||||
|
-374.97793579101562,
|
||||||
|
-223.98489379882812
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_doors/roll-up_door_full.mdl",
|
||||||
|
"origin": [
|
||||||
|
2366.560791015625,
|
||||||
|
117.58223724365234,
|
||||||
|
-218.53596496582031
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ladder-up": {
|
||||||
|
"chance": 0.69999998807907104,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"hammerid": 37185,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 222283,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_c17/metalladder001.mdl",
|
||||||
|
"origin": [
|
||||||
|
3652.984375,
|
||||||
|
3227.336181640625,
|
||||||
|
-74.784149169921875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_c17/metalladder001.mdl",
|
||||||
|
"origin": [
|
||||||
|
3510.315673828125,
|
||||||
|
3315.55859375,
|
||||||
|
84.583740234375
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-1.3999999761581421,
|
||||||
|
-91.400001525878906,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
3572.427978515625,
|
||||||
|
3259.145751953125,
|
||||||
|
54.591609954833984
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_highway/plywood_03.mdl",
|
||||||
|
"origin": [
|
||||||
|
3563.036865234375,
|
||||||
|
3213.2373046875,
|
||||||
|
53.998668670654297
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"container-block": {
|
||||||
|
"chance": 0.5,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_equipment/cargo_container01.mdl",
|
||||||
|
"origin": [
|
||||||
|
3233.559814453125,
|
||||||
|
4165.6025390625,
|
||||||
|
1.416229248046875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
26.400001525878906,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_urban/fence_cover001_64.mdl",
|
||||||
|
"origin": [
|
||||||
|
3384.270263671875,
|
||||||
|
4088.225341796875,
|
||||||
|
-30.631721496582031
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
-5.0999999046325684,
|
||||||
|
-31.400001525878906,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"alt-warehouse": {
|
||||||
|
"chance": 0.69999999999999996,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"hammerid": 663285,
|
||||||
|
"input": "break"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_doors/roll-up_door_full.mdl",
|
||||||
|
"origin": [
|
||||||
|
4353.25927734375,
|
||||||
|
4855.75,
|
||||||
|
48.046012878417969
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
-90.299995422363281,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"container-danger": {
|
||||||
|
"chance": 0.60000002384185791,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_equipment/cargo_container01.mdl",
|
||||||
|
"origin": [
|
||||||
|
4853.689453125,
|
||||||
|
6209.517578125,
|
||||||
|
92.42303466796875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
208.20001220703125,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"infected-access": {
|
||||||
|
"chance": 0.40000000596046448,
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"weight": 1,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"targetname": "anv_mapfixes_commonhop_windowsa",
|
||||||
|
"input": "kill"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"targetname": "anv_mapfixes_commonhop_windowsb",
|
||||||
|
"input": "kill"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 896507,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hammerid": 42691,
|
||||||
|
"input": "_allow_ladder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_unique/zombiebreakwallhospitalexterior01_main.mdl",
|
||||||
|
"origin": [
|
||||||
|
7533.03369140625,
|
||||||
|
7244.62548828125,
|
||||||
|
270.92254638671875
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_unique/zombiebreakwallhospitalexterior01_main.mdl",
|
||||||
|
"origin": [
|
||||||
|
6959.8349609375,
|
||||||
|
7278.86181640625,
|
||||||
|
245.17605590820312
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
90.0,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "prop_dynamic",
|
||||||
|
"model": "models/props_vehicles/bus01.mdl",
|
||||||
|
"origin": [
|
||||||
|
7007.01123046875,
|
||||||
|
6723.58642578125,
|
||||||
|
50.544933319091797
|
||||||
|
],
|
||||||
|
"angles": [
|
||||||
|
0.0,
|
||||||
|
8.1000003814697266,
|
||||||
|
0.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -5,10 +5,11 @@
|
||||||
|
|
||||||
#define PLUGIN_VERSION "1.0"
|
#define PLUGIN_VERSION "1.0"
|
||||||
|
|
||||||
#define PRECACHE_SOUNDS_COUNT 4
|
#define PRECACHE_SOUNDS_COUNT 5
|
||||||
char PRECACHE_SOUNDS[PRECACHE_SOUNDS_COUNT][] = {
|
char PRECACHE_SOUNDS[PRECACHE_SOUNDS_COUNT][] = {
|
||||||
"custom/xen_teleport.mp3",
|
"custom/xen_teleport.mp3",
|
||||||
"custom/mariokartmusic.mp3",
|
"custom/mariokartmusic.mp3",
|
||||||
|
"custom/airhorn.mp3",
|
||||||
"custom/spookyscaryskeletons.mp3",
|
"custom/spookyscaryskeletons.mp3",
|
||||||
"custom/wearenumberone2.mp3",
|
"custom/wearenumberone2.mp3",
|
||||||
};
|
};
|
||||||
|
|
|
@ -248,6 +248,14 @@ public void Event_L4D2_Death(Event event, const char[] name, bool dontBroadcast)
|
||||||
if(IsFakeClient(attacker)) GetClientName(attacker, attackerName, sizeof(attackerName));
|
if(IsFakeClient(attacker)) GetClientName(attacker, attackerName, sizeof(attackerName));
|
||||||
else GetClientAuthId(attacker, AuthId_Steam2, attackerName, sizeof(attackerName));
|
else GetClientAuthId(attacker, AuthId_Steam2, attackerName, sizeof(attackerName));
|
||||||
|
|
||||||
|
if(GetClientTeam(attacker) == 2) {
|
||||||
|
char weaponName[32];
|
||||||
|
event.GetString("weapon", weaponName, sizeof(weaponName));
|
||||||
|
if(weaponName[0] != '\0') {
|
||||||
|
AddLogCustom("STATE", attackerName, victimName, "\"%L\" killed \"%L\" with \"%s\"", attacker, victim, weaponName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
AddLogCustom("STATE", attackerName, victimName, "\"%L\" killed \"%L\"", attacker, victim);
|
AddLogCustom("STATE", attackerName, victimName, "\"%L\" killed \"%L\"", attacker, victim);
|
||||||
} else {
|
} else {
|
||||||
AddLogCustom("STATE", "", victimName, "\"%L\" died", victim);
|
AddLogCustom("STATE", "", victimName, "\"%L\" died", victim);
|
||||||
|
@ -268,6 +276,14 @@ public void Event_L4D2_Incapped(Event event, const char[] name, bool dontBroadca
|
||||||
if(IsFakeClient(attacker)) GetClientName(attacker, attackerName, sizeof(attackerName));
|
if(IsFakeClient(attacker)) GetClientName(attacker, attackerName, sizeof(attackerName));
|
||||||
else GetClientAuthId(attacker, AuthId_Steam2, attackerName, sizeof(attackerName));
|
else GetClientAuthId(attacker, AuthId_Steam2, attackerName, sizeof(attackerName));
|
||||||
|
|
||||||
|
if(GetClientTeam(attacker) == 2) {
|
||||||
|
char weaponName[32];
|
||||||
|
event.GetString("weapon", weaponName, sizeof(weaponName));
|
||||||
|
if(weaponName[0] != '\0') {
|
||||||
|
AddLogCustom("STATE", attackerName, victimName, "\"%L\" incapped \"%L\" with \"%s\"", attacker, victim, weaponName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
AddLogCustom("STATE", attackerName, victimName, "\"%L\" incapped \"%L\"", attacker, victim);
|
AddLogCustom("STATE", attackerName, victimName, "\"%L\" incapped \"%L\"", attacker, victim);
|
||||||
} else {
|
} else {
|
||||||
AddLogCustom("STATE", "", victimName, "\"%L\" was incapped", victim);
|
AddLogCustom("STATE", "", victimName, "\"%L\" was incapped", victim);
|
||||||
|
|
|
@ -203,6 +203,7 @@ void LoadFolder(ArrayList parent, const char[] rootPath) {
|
||||||
DirectoryListing listing = OpenDirectory(rootPath);
|
DirectoryListing listing = OpenDirectory(rootPath);
|
||||||
if(listing == null) {
|
if(listing == null) {
|
||||||
LogError("Cannot open \"%s\"", rootPath);
|
LogError("Cannot open \"%s\"", rootPath);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
while(listing.GetNext(buffer, sizeof(buffer), fileType)) {
|
while(listing.GetNext(buffer, sizeof(buffer), fileType)) {
|
||||||
if(fileType == FileType_Directory) {
|
if(fileType == FileType_Directory) {
|
||||||
|
|
|
@ -135,7 +135,7 @@ Action Command_DoAHat(int client, int args) {
|
||||||
char sizeStr[4];
|
char sizeStr[4];
|
||||||
GetCmdArg(2, sizeStr, sizeof(sizeStr));
|
GetCmdArg(2, sizeStr, sizeof(sizeStr));
|
||||||
float size = StringToFloat(sizeStr);
|
float size = StringToFloat(sizeStr);
|
||||||
if(size == 0.0) {
|
if(size <= 0.0) {
|
||||||
ReplyToCommand(client, "[Hats] Invalid size");
|
ReplyToCommand(client, "[Hats] Invalid size");
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
}
|
}
|
||||||
|
@ -335,7 +335,12 @@ Action Command_DoAHat(int client, int args) {
|
||||||
} else {
|
} else {
|
||||||
// Find a new hatable entity
|
// Find a new hatable entity
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
|
if(args > 0 && isForced) {
|
||||||
|
char arg[16];
|
||||||
|
entity = GetCmdArgInt(1);
|
||||||
|
} else {
|
||||||
entity = GetLookingEntity(client, Filter_ValidHats);
|
entity = GetLookingEntity(client, Filter_ValidHats);
|
||||||
|
}
|
||||||
if(entity <= 0) {
|
if(entity <= 0) {
|
||||||
PrintCenterText(client, "[Hats] No entity found");
|
PrintCenterText(client, "[Hats] No entity found");
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
|
|
427
scripting/include/randomizer/caralarm.sp
Normal file
427
scripting/include/randomizer/caralarm.sp
Normal file
|
@ -0,0 +1,427 @@
|
||||||
|
int SpawnCar(VariantEntityData entity) {
|
||||||
|
if(entity.model[0] == '\0') {
|
||||||
|
LogError("Missing model for entity with type \"%s\"", entity.type);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
PrecacheModel(entity.model);
|
||||||
|
int vehicle;
|
||||||
|
|
||||||
|
if(StrEqual(entity.type, "_car_alarm")) {
|
||||||
|
vehicle = SpawnAlarmCar(entity.model, entity.origin, entity.angles, entity.color);
|
||||||
|
return vehicle;
|
||||||
|
}
|
||||||
|
|
||||||
|
char glassModel[64];
|
||||||
|
strcopy(glassModel, sizeof(glassModel), entity.type);
|
||||||
|
ReplaceString(glassModel, sizeof(glassModel), ".mdl", "_glass.mdl");
|
||||||
|
if(StrEqual(entity.type, "_car_physics")) {
|
||||||
|
vehicle = CreateProp("prop_physics", entity.model, entity.origin, entity.angles);
|
||||||
|
} else {
|
||||||
|
vehicle = CreateProp("prop_dynamic", entity.model, entity.origin, entity.angles);
|
||||||
|
}
|
||||||
|
if(PrecacheModel(glassModel)) {
|
||||||
|
int glass = CreateProp(glassModel, entity.model, entity.origin, entity.angles);
|
||||||
|
SetVariantString("!activator");
|
||||||
|
AcceptEntityInput(glass, "SetParent", vehicle);
|
||||||
|
}
|
||||||
|
SetEntityRenderColor(vehicle, GetRandomInt(0, 255), GetRandomInt(0, 255), GetRandomInt(0, 255));
|
||||||
|
return vehicle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
// ====================================================================================================
|
||||||
|
:::BEGIN::: -> Source Code (with changes) from:
|
||||||
|
* DieTeetasse - [L4D1&2] Spawn Alarmcars plugin https://forums.alliedmods.net/showthread.php?t=139352
|
||||||
|
* Marttt - [L4D1 & L4D2] Replace Cars Into Car Alarms plugin https://forums.alliedmods.net/showthread.php?p=2731868
|
||||||
|
// ====================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
#define DISTANCE_FRONT 101.0
|
||||||
|
#define DISTANCE_SIDETURN 34.0
|
||||||
|
#define DISTANCE_UPFRONT 29.0
|
||||||
|
#define DISTANCE_BACK 103.0
|
||||||
|
#define DISTANCE_SIDE 27.0
|
||||||
|
#define DISTANCE_UPBACK 31.0
|
||||||
|
#define SOUND_CAR_ALARM "vehicles/car_alarm/car_alarm.wav"
|
||||||
|
#define SOUND_CAR_ALARM_CHIRP2 "vehicles/car_alarm/car_alarm_chirp2.wav"
|
||||||
|
|
||||||
|
#define COLOR_YELLOWLIGHT "224 162 44"
|
||||||
|
#define COLOR_REDLIGHT "255 13 19"
|
||||||
|
#define COLOR_WHITELIGHT "252 243 226"
|
||||||
|
#define ALARMCAR_GLOW_SPRITE "sprites/glow.vmt"
|
||||||
|
|
||||||
|
int SpawnAlarmCar(const char[] model, float vPos[3], float vAng[3], int color[4] = { 255, 255, 255, 255})
|
||||||
|
{
|
||||||
|
PrecacheModel(model);
|
||||||
|
PrecacheModel(ALARMCAR_GLOW_SPRITE, true);
|
||||||
|
PrecacheSound(SOUND_CAR_ALARM, true);
|
||||||
|
PrecacheSound(SOUND_CAR_ALARM_CHIRP2, true);
|
||||||
|
|
||||||
|
char carName[64];
|
||||||
|
char glassOnName[64];
|
||||||
|
char glassOffName[64];
|
||||||
|
char timerName[64];
|
||||||
|
char alarmSoundName[64];
|
||||||
|
char chirpSoundName[64];
|
||||||
|
char lightsName[64];
|
||||||
|
char headlightsName[64];
|
||||||
|
char remarkName[64];
|
||||||
|
char gameEventName[64];
|
||||||
|
|
||||||
|
// create car
|
||||||
|
int carEntity = CreateEntityByName("prop_car_alarm");
|
||||||
|
|
||||||
|
FormatEx(carName, sizeof(carName), "randomizer_car_%d", carEntity);
|
||||||
|
FormatEx(glassOnName, sizeof(glassOnName), "randomizer_car_glasson_%d", carEntity);
|
||||||
|
FormatEx(glassOffName, sizeof(glassOffName), "randomizer_car_glassoff_%d", carEntity);
|
||||||
|
FormatEx(timerName, sizeof(timerName), "randomizer_car_alarmtimer_%d", carEntity);
|
||||||
|
FormatEx(alarmSoundName, sizeof(alarmSoundName), "randomizer_car_alarmsound_%d", carEntity);
|
||||||
|
FormatEx(chirpSoundName, sizeof(chirpSoundName), "randomizer_car_chirpsound_%d", carEntity);
|
||||||
|
FormatEx(lightsName, sizeof(lightsName), "randomizer_car_lights_%d", carEntity);
|
||||||
|
FormatEx(headlightsName, sizeof(headlightsName), "randomizer_car_headlights_%d", carEntity);
|
||||||
|
FormatEx(remarkName, sizeof(remarkName), "randomizer_car_remark_%d", carEntity);
|
||||||
|
FormatEx(gameEventName, sizeof(gameEventName), "randomizer_car_gameevent_%d", carEntity);
|
||||||
|
char tempString[128];
|
||||||
|
|
||||||
|
DispatchKeyValue(carEntity, "targetname", carName);
|
||||||
|
DispatchKeyValue(carEntity, "model", model);
|
||||||
|
Format(tempString, sizeof(tempString), "%d %d %d %d", color[0], color[1], color[2], color[3]);
|
||||||
|
DispatchKeyValue(carEntity, "rendercolor", tempString);
|
||||||
|
Debug("spawning alarm car ent%d \"%s\" (m=%s) at %.0f %.0f %.0f", carEntity, carName, model, vPos[0], vPos[1], vPos[2]);
|
||||||
|
|
||||||
|
Format(tempString, sizeof(tempString), "%s,PlaySound,,0.2,-1", chirpSoundName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmChirpStart", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,ShowSprite,,0.2,-1", lightsName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmChirpStart", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,HideSprite,,0.7,-1", lightsName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmChirpEnd", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Enable,,0,-1", timerName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmStart", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,PlaySound,,0,-1", alarmSoundName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmStart", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Enable,,0,-1", glassOffName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmStart", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", glassOnName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmStart", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", timerName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", alarmSoundName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", chirpSoundName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", lightsName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", headlightsName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", remarkName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,Kill,,0,-1", gameEventName);
|
||||||
|
DispatchKeyValue(carEntity, "OnCarAlarmEnd", tempString);
|
||||||
|
DispatchKeyValue(carEntity, "OnHitByTank", tempString);
|
||||||
|
DispatchKeyValueVector(carEntity, "origin", vPos);
|
||||||
|
DispatchKeyValueVector(carEntity, "angles", vAng);
|
||||||
|
DispatchSpawn(carEntity);
|
||||||
|
|
||||||
|
// create glasses
|
||||||
|
strcopy(tempString, sizeof(tempString), model);
|
||||||
|
ReplaceString(tempString, sizeof(tempString), ".mdl", "_glass.mdl");
|
||||||
|
if(PrecacheModel(tempString))
|
||||||
|
CreateGlass(tempString, glassOnName, false, vPos, vAng, carName);
|
||||||
|
// CreateGlass(glassOffName, true, vPos, vAng, carName);
|
||||||
|
|
||||||
|
CreateSound(alarmSoundName, "16", "Car.Alarm", vPos, carName);
|
||||||
|
CreateSound(chirpSoundName, "48", "Car.Alarm.Chirp2", vPos, carName);
|
||||||
|
|
||||||
|
CreateLights(lightsName, vPos, vAng, carName);
|
||||||
|
|
||||||
|
CreateHeadlights(headlightsName, vPos, vAng, carName);
|
||||||
|
|
||||||
|
CreateLogicTimer(timerName, lightsName, headlightsName, vPos, carName);
|
||||||
|
|
||||||
|
CreateRemark(remarkName, vPos, vAng, carName);
|
||||||
|
|
||||||
|
CreateGameEvent(gameEventName, vPos, vAng, carName);
|
||||||
|
|
||||||
|
return carEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateGlass(const char[] model, char[] targetName, bool startDisabled, float vPos[3], float vAng[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("prop_car_glass");
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "model", model);
|
||||||
|
DispatchKeyValue(entity, "StartDisabled", startDisabled ? "1" : "0");
|
||||||
|
DispatchKeyValueVector(entity, "origin", vPos);
|
||||||
|
DispatchKeyValueVector(entity, "angles", vAng);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateSound(char[] targetName, char[] spawnFlags, char[] messageName, float vPos[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("ambient_generic");
|
||||||
|
|
||||||
|
float newPos[3];
|
||||||
|
newPos = vPos;
|
||||||
|
newPos[2] += 80.0;
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "spawnflags", spawnFlags);
|
||||||
|
DispatchKeyValue(entity, "message", messageName);
|
||||||
|
DispatchKeyValue(entity, "SourceEntityName", carName);
|
||||||
|
DispatchKeyValue(entity, "radius", "4000");
|
||||||
|
DispatchKeyValueVector(entity, "origin", newPos);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
ActivateEntity(entity); // Don't work without it
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateLights(char[] lightsName, float vPos[3], float vAng[3], char[] carName)
|
||||||
|
{
|
||||||
|
float distance[6] = {DISTANCE_FRONT, DISTANCE_SIDETURN, DISTANCE_UPFRONT, DISTANCE_BACK, DISTANCE_SIDE, DISTANCE_UPBACK};
|
||||||
|
float newPos[3];
|
||||||
|
float lightDistance[3];
|
||||||
|
|
||||||
|
newPos = vPos;
|
||||||
|
lightDistance[0] = distance[0];
|
||||||
|
lightDistance[1] = distance[1]*-1.0;
|
||||||
|
lightDistance[2] = distance[2];
|
||||||
|
MoveVectorvPos3D(newPos, vAng, lightDistance); // front left
|
||||||
|
CreateLight(lightsName, COLOR_YELLOWLIGHT, newPos, carName);
|
||||||
|
|
||||||
|
newPos = vPos;
|
||||||
|
lightDistance[1] = distance[1];
|
||||||
|
MoveVectorvPos3D(newPos, vAng, lightDistance); // front right
|
||||||
|
CreateLight(lightsName, COLOR_YELLOWLIGHT, newPos, carName);
|
||||||
|
|
||||||
|
newPos = vPos;
|
||||||
|
lightDistance[0] = distance[3]*-1.0;
|
||||||
|
lightDistance[1] = distance[4]*-1.0;
|
||||||
|
lightDistance[2] = distance[5];
|
||||||
|
MoveVectorvPos3D(newPos, vAng, lightDistance); // back left
|
||||||
|
CreateLight(lightsName, COLOR_REDLIGHT, newPos, carName);
|
||||||
|
|
||||||
|
newPos = vPos;
|
||||||
|
lightDistance[1] = distance[4];
|
||||||
|
MoveVectorvPos3D(newPos, vAng, lightDistance); // back right
|
||||||
|
CreateLight(lightsName, COLOR_REDLIGHT, newPos, carName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateLight(char[] targetName, char[] renderColor, float vPos[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("env_sprite");
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "rendercolor", renderColor);
|
||||||
|
DispatchKeyValue(entity, "model", ALARMCAR_GLOW_SPRITE);
|
||||||
|
DispatchKeyValue(entity, "scale", "0.5");
|
||||||
|
DispatchKeyValue(entity, "rendermode", "9");
|
||||||
|
DispatchKeyValue(entity, "renderamt", "255");
|
||||||
|
DispatchKeyValue(entity, "HDRColorScale", "0.7");
|
||||||
|
DispatchKeyValue(entity, "GlowProxySize", "5");
|
||||||
|
DispatchKeyValueVector(entity, "origin", vPos);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateHeadlights(char[] headlightsName, float vPos[3], float vAng[3], char[] carName)
|
||||||
|
{
|
||||||
|
float distance[3] = {DISTANCE_FRONT, DISTANCE_SIDE, DISTANCE_UPFRONT};
|
||||||
|
float newPos[3];
|
||||||
|
float headlightDistance[3];
|
||||||
|
|
||||||
|
newPos = vPos;
|
||||||
|
headlightDistance[0] = distance[0];
|
||||||
|
headlightDistance[1] = distance[1]*-1.0;
|
||||||
|
headlightDistance[2] = distance[2];
|
||||||
|
MoveVectorvPos3D(newPos, vAng, headlightDistance); // front left
|
||||||
|
CreateHeadlight(headlightsName, newPos, vAng, carName);
|
||||||
|
|
||||||
|
newPos = vPos;
|
||||||
|
headlightDistance[1] = distance[1];
|
||||||
|
MoveVectorvPos3D(newPos, vAng, headlightDistance); // front right
|
||||||
|
CreateHeadlight(headlightsName, newPos, vAng, carName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateHeadlight(char[] targetName, float vPos[3], float vAng[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("beam_spotlight");
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "rendercolor", COLOR_WHITELIGHT);
|
||||||
|
DispatchKeyValue(entity, "spotlightwidth", "32");
|
||||||
|
DispatchKeyValue(entity, "spotlightlength", "256");
|
||||||
|
DispatchKeyValue(entity, "spawnflags", "2");
|
||||||
|
DispatchKeyValue(entity, "rendermode", "5");
|
||||||
|
DispatchKeyValue(entity, "renderamt", "150");
|
||||||
|
DispatchKeyValue(entity, "maxspeed", "100");
|
||||||
|
DispatchKeyValue(entity, "HDRColorScale", "0.5");
|
||||||
|
DispatchKeyValueVector(entity, "origin", vPos);
|
||||||
|
DispatchKeyValueVector(entity, "angles", vAng);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateLogicTimer(char[] targetName, char[] lightsName, char[] headlightsName, float vPos[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("logic_timer");
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "StartDisabled", "1");
|
||||||
|
DispatchKeyValue(entity, "RefireTime", "0.75");
|
||||||
|
|
||||||
|
char tempString[128];
|
||||||
|
Format(tempString, sizeof(tempString), "%s,ShowSprite,,0,-1", lightsName);
|
||||||
|
DispatchKeyValue(entity, "OnTimer", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,ShowSprite,,0,-1", lightsName);
|
||||||
|
DispatchKeyValue(entity, "OnTimer", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,LightOn,,0,-1", headlightsName);
|
||||||
|
DispatchKeyValue(entity, "OnTimer", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,HideSprite,,0.5,-1", lightsName);
|
||||||
|
DispatchKeyValue(entity, "OnTimer", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,HideSprite,,0.5,-1", lightsName);
|
||||||
|
DispatchKeyValue(entity, "OnTimer", tempString);
|
||||||
|
Format(tempString, sizeof(tempString), "%s,LightOff,,0.5,-1", headlightsName);
|
||||||
|
DispatchKeyValue(entity, "OnTimer", tempString);
|
||||||
|
DispatchKeyValueVector(entity, "origin", vPos);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateRemark(char[] targetName, float vPos[3], float vAng[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("info_remarkable");
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "contextsubject", "remark_caralarm");
|
||||||
|
DispatchKeyValueVector(entity, "origin", vPos);
|
||||||
|
DispatchKeyValueVector(entity, "angles", vAng);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void CreateGameEvent(char[] targetName, float vPos[3], float vAng[3], char[] carName)
|
||||||
|
{
|
||||||
|
int entity = CreateEntityByName("info_game_event_proxy");
|
||||||
|
|
||||||
|
DispatchKeyValue(entity, "targetname", targetName);
|
||||||
|
DispatchKeyValue(entity, "spawnflags", "1");
|
||||||
|
DispatchKeyValue(entity, "range", "100");
|
||||||
|
DispatchKeyValue(entity, "event_name", "explain_disturbance");
|
||||||
|
DispatchKeyValueVector(entity, "origin", vPos);
|
||||||
|
DispatchKeyValueVector(entity, "angles", vAng);
|
||||||
|
DispatchSpawn(entity);
|
||||||
|
|
||||||
|
SetVariantString(carName);
|
||||||
|
AcceptEntityInput(entity, "SetParent", entity, entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void MoveVectorvPos3D(float vPos[3], float constvAng[3], float constDistance[3])
|
||||||
|
{
|
||||||
|
float vAng[3], dirFw[3], dirRi[3], dirUp[3], distance[3];
|
||||||
|
distance = constDistance;
|
||||||
|
|
||||||
|
vAng[0] = DegToRad(constvAng[0]);
|
||||||
|
vAng[1] = DegToRad(constvAng[1]);
|
||||||
|
vAng[2] = DegToRad(constvAng[2]);
|
||||||
|
|
||||||
|
// roll (rotation over x)
|
||||||
|
dirFw[0] = 1.0;
|
||||||
|
dirFw[1] = 0.0;
|
||||||
|
dirFw[2] = 0.0;
|
||||||
|
dirRi[0] = 0.0;
|
||||||
|
dirRi[1] = Cosine(vAng[2]);
|
||||||
|
dirRi[2] = Sine(vAng[2])*-1;
|
||||||
|
dirUp[0] = 0.0;
|
||||||
|
dirUp[1] = Sine(vAng[2]);
|
||||||
|
dirUp[2] = Cosine(vAng[2]);
|
||||||
|
MatrixMulti(dirFw, dirRi, dirUp, distance);
|
||||||
|
|
||||||
|
// pitch (rotation over y)
|
||||||
|
dirFw[0] = Cosine(vAng[0]);
|
||||||
|
dirFw[1] = 0.0;
|
||||||
|
dirFw[2] = Sine(vAng[0]);
|
||||||
|
dirRi[0] = 0.0;
|
||||||
|
dirRi[1] = 1.0;
|
||||||
|
dirRi[2] = 0.0;
|
||||||
|
dirUp[0] = Sine(vAng[0])*-1;
|
||||||
|
dirUp[1] = 0.0;
|
||||||
|
dirUp[2] = Cosine(vAng[0]);
|
||||||
|
MatrixMulti(dirFw, dirRi, dirUp, distance);
|
||||||
|
|
||||||
|
// yaw (rotation over z)
|
||||||
|
dirFw[0] = Cosine(vAng[1]);
|
||||||
|
dirFw[1] = Sine(vAng[1])*-1;
|
||||||
|
dirFw[2] = 0.0;
|
||||||
|
dirRi[0] = Sine(vAng[1]);
|
||||||
|
dirRi[1] = Cosine(vAng[1]);
|
||||||
|
dirRi[2] = 0.0;
|
||||||
|
dirUp[0] = 0.0;
|
||||||
|
dirUp[1] = 0.0;
|
||||||
|
dirUp[2] = 1.0;
|
||||||
|
MatrixMulti(dirFw, dirRi, dirUp, distance);
|
||||||
|
|
||||||
|
// addition
|
||||||
|
for (int i = 0; i < 3; i++) vPos[i] += distance[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************************/
|
||||||
|
|
||||||
|
void MatrixMulti(float matA[3], float matB[3], float matC[3], float vec[3])
|
||||||
|
{
|
||||||
|
float res[3];
|
||||||
|
for (int i = 0; i < 3; i++) res[0] += matA[i]*vec[i];
|
||||||
|
for (int i = 0; i < 3; i++) res[1] += matB[i]*vec[i];
|
||||||
|
for (int i = 0; i < 3; i++) res[2] += matC[i]*vec[i];
|
||||||
|
vec = res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
// ====================================================================================================
|
||||||
|
:::END::: -> Source Code from DieTeetasse - [L4D1&2] Spawn Alarmcars plugin https://forums.alliedmods.net/showthread.php?t=139352
|
||||||
|
// ====================================================================================================
|
||||||
|
*/
|
|
@ -35,8 +35,8 @@ void OpenVariantsMenu(int client) {
|
||||||
Menu menu = new Menu(BuilderHandler_VariantsMenu);
|
Menu menu = new Menu(BuilderHandler_VariantsMenu);
|
||||||
menu.SetTitle("%s > Variants", g_builder.selectedSceneId);
|
menu.SetTitle("%s > Variants", g_builder.selectedSceneId);
|
||||||
char id[8], display[32];
|
char id[8], display[32];
|
||||||
menu.AddItem("new", "New");
|
menu.AddItem("new", "New Variant");
|
||||||
menu.AddItem("-1", "None (Shared Scene)");
|
menu.AddItem("-1", "Global Scene Variant");
|
||||||
|
|
||||||
JSONArray variants = view_as<JSONArray>(g_builder.selectedSceneData.Get("variants"));
|
JSONArray variants = view_as<JSONArray>(g_builder.selectedSceneData.Get("variants"));
|
||||||
JSONObject varObj;
|
JSONObject varObj;
|
||||||
|
@ -45,9 +45,9 @@ void OpenVariantsMenu(int client) {
|
||||||
varObj = view_as<JSONObject>(variants.Get(i));
|
varObj = view_as<JSONObject>(variants.Get(i));
|
||||||
entities = view_as<JSONArray>(varObj.Get("entities"));
|
entities = view_as<JSONArray>(varObj.Get("entities"));
|
||||||
if(i == g_builder.selectedVariantIndex) {
|
if(i == g_builder.selectedVariantIndex) {
|
||||||
Format(display, sizeof(display), "%d entities (selected)", entities.Length);
|
Format(display, sizeof(display), "#%d - %d entities (✔)", i, entities.Length);
|
||||||
} else {
|
} else {
|
||||||
Format(display, sizeof(display), "%d entities", entities.Length);
|
Format(display, sizeof(display), "#%d - %d entities", i, entities.Length);
|
||||||
}
|
}
|
||||||
IntToString(i, id, sizeof(id));
|
IntToString(i, id, sizeof(id));
|
||||||
menu.AddItem(id, display);
|
menu.AddItem(id, display);
|
||||||
|
|
|
@ -24,6 +24,8 @@ TopMenu g_topMenu;
|
||||||
|
|
||||||
char g_currentMap[64];
|
char g_currentMap[64];
|
||||||
|
|
||||||
|
ConVar enabledBlacklist;
|
||||||
|
|
||||||
//int g_markedMode
|
//int g_markedMode
|
||||||
|
|
||||||
#include <editor/editor.sp>
|
#include <editor/editor.sp>
|
||||||
|
@ -80,6 +82,8 @@ public void OnPluginStart() {
|
||||||
LoadTranslations("common.phrases");
|
LoadTranslations("common.phrases");
|
||||||
HookEvent("player_spawn", Event_PlayerSpawn);
|
HookEvent("player_spawn", Event_PlayerSpawn);
|
||||||
|
|
||||||
|
enabledBlacklist = CreateConVar("editor_denylist", "7", "The lists to check, add bits together.\n1 = classnames\n2 = models\n4 = targetnames", FCVAR_NONE, true, 0.0);
|
||||||
|
|
||||||
RegAdminCmd("sm_mkwall", Command_MakeWall, ADMFLAG_CUSTOM2);
|
RegAdminCmd("sm_mkwall", Command_MakeWall, ADMFLAG_CUSTOM2);
|
||||||
RegAdminCmd("sm_edit", Command_Editor, ADMFLAG_CUSTOM2);
|
RegAdminCmd("sm_edit", Command_Editor, ADMFLAG_CUSTOM2);
|
||||||
RegAdminCmd("sm_wall", Command_Editor, ADMFLAG_CUSTOM2);
|
RegAdminCmd("sm_wall", Command_Editor, ADMFLAG_CUSTOM2);
|
||||||
|
@ -489,13 +493,15 @@ char FORBIDDEN_MODELS[MAX_FORBIDDEN_MODELS][] = {
|
||||||
bool CheckBlacklist(int entity) {
|
bool CheckBlacklist(int entity) {
|
||||||
if(entity == 0) return false;
|
if(entity == 0) return false;
|
||||||
static char buffer[64];
|
static char buffer[64];
|
||||||
|
if(enabledBlacklist.IntValue & 1) {
|
||||||
GetEntityClassname(entity, buffer, sizeof(buffer));
|
GetEntityClassname(entity, buffer, sizeof(buffer));
|
||||||
for(int i = 0; i < MAX_FORBIDDEN_CLASSNAMES; i++) {
|
for(int i = 0; i < MAX_FORBIDDEN_CLASSNAMES; i++) {
|
||||||
if(StrEqual(FORBIDDEN_CLASSNAMES[i], buffer)) {
|
if(StrEqual(FORBIDDEN_CLASSNAMES[i], buffer)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(StrContains(buffer, "prop_") > -1) {
|
}
|
||||||
|
if(enabledBlacklist.IntValue & 2) {
|
||||||
GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer));
|
GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer));
|
||||||
for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) {
|
for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) {
|
||||||
if(StrEqual(FORBIDDEN_MODELS[i], buffer)) {
|
if(StrEqual(FORBIDDEN_MODELS[i], buffer)) {
|
||||||
|
@ -503,10 +509,12 @@ bool CheckBlacklist(int entity) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(enabledBlacklist.IntValue & 4) {
|
||||||
GetEntPropString(entity, Prop_Data, "m_iName", buffer, sizeof(buffer));
|
GetEntPropString(entity, Prop_Data, "m_iName", buffer, sizeof(buffer));
|
||||||
if(StrEqual(buffer, "l4d2_randomizer")) {
|
if(StrContains(buffer, "randomizer") > -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,9 @@ int g_iLaserIndex;
|
||||||
#if defined DEBUG_BLOCKERS
|
#if defined DEBUG_BLOCKERS
|
||||||
#include <smlib/effects>
|
#include <smlib/effects>
|
||||||
#endif
|
#endif
|
||||||
#define ENT_PROP_NAME "l4d2_randomizer"
|
#define ENT_PROP_NAME "randomizer"
|
||||||
#define ENT_ENV_NAME "l4d2_randomizer"
|
#define ENT_ENV_NAME "randomizer"
|
||||||
#define ENT_BLOCKER_NAME "l4d2_randomizer"
|
#define ENT_BLOCKER_NAME "randomizer"
|
||||||
#include <gamemodes/ents>
|
#include <gamemodes/ents>
|
||||||
|
|
||||||
#define MAX_SCENE_NAME_LENGTH 32
|
#define MAX_SCENE_NAME_LENGTH 32
|
||||||
|
@ -100,6 +100,7 @@ enum struct BuilderData {
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <randomizer/rbuild.sp>
|
#include <randomizer/rbuild.sp>
|
||||||
|
#include <randomizer/caralarm.sp>
|
||||||
|
|
||||||
public Plugin myinfo =
|
public Plugin myinfo =
|
||||||
{
|
{
|
||||||
|
@ -116,24 +117,40 @@ public void OnPluginStart() {
|
||||||
SetFailState("This plugin is for L4D/L4D2 only.");
|
SetFailState("This plugin is for L4D/L4D2 only.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HookEvent("round_start_post_nav", Event_RoundStartPosNav);
|
||||||
|
|
||||||
RegAdminCmd("sm_rcycle", Command_CycleRandom, ADMFLAG_CHEATS);
|
RegAdminCmd("sm_rcycle", Command_CycleRandom, ADMFLAG_CHEATS);
|
||||||
RegAdminCmd("sm_expent", Command_ExportEnt, ADMFLAG_GENERIC);
|
RegAdminCmd("sm_expent", Command_ExportEnt, ADMFLAG_GENERIC);
|
||||||
RegAdminCmd("sm_rbuild", Command_RandomizerBuild, ADMFLAG_CHEATS);
|
RegAdminCmd("sm_rbuild", Command_RandomizerBuild, ADMFLAG_CHEATS);
|
||||||
|
|
||||||
cvarEnabled = CreateConVar("sm_randomizer_enabled", "0");
|
cvarEnabled = CreateConVar("sm_randomizer_enabled", "0");
|
||||||
|
|
||||||
|
HookEvent("player_first_spawn", Event_PlayerFirstSpawn);
|
||||||
|
|
||||||
g_MapData.activeScenes = new ArrayList(sizeof(ActiveSceneData));
|
g_MapData.activeScenes = new ArrayList(sizeof(ActiveSceneData));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Event_PlayerFirstSpawn(Event event, const char[] name ,bool dontBroadcast) {
|
||||||
|
int client = GetClientOfUserId(event.GetInt("userid"));
|
||||||
|
if(GetUserFlagBits(client) & ADMFLAG_CHAT) {
|
||||||
|
// If enabled but no map loaded:
|
||||||
|
if(cvarEnabled.BoolValue && g_MapData.scenes == null)
|
||||||
|
PrintToChat(client, "Randomizer Note: This map has no randomizer support at the moment.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Event_RoundStartPosNav(Event event, const char[] name ,bool dontBroadcast) {
|
||||||
|
if(cvarEnabled.BoolValue)
|
||||||
|
CreateTimer(5.0, Timer_Run);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: on round start
|
// TODO: on round start
|
||||||
public void OnMapStart() {
|
public void OnMapStart() {
|
||||||
g_iLaserIndex = PrecacheModel("materials/sprites/laserbeam.vmt", true);
|
g_iLaserIndex = PrecacheModel("materials/sprites/laserbeam.vmt", true);
|
||||||
GetCurrentMap(currentMap, sizeof(currentMap));
|
GetCurrentMap(currentMap, sizeof(currentMap));
|
||||||
if(cvarEnabled.BoolValue)
|
|
||||||
CreateTimer(5.0, Timer_Run);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void OnMapEnd() {
|
public void OnMapEnd() {
|
||||||
g_builder.Cleanup();
|
g_builder.Cleanup();
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
@ -196,7 +213,7 @@ public Action Command_CycleRandom(int client, int args) {
|
||||||
if(client > 0)
|
if(client > 0)
|
||||||
PrintCenterText(client, "Cycled flags=%d", flags);
|
PrintCenterText(client, "Cycled flags=%d", flags);
|
||||||
} else {
|
} else {
|
||||||
ReplyToCommand(client, "Active Scenes:");
|
ReplyToCommand(client, "Active Scenes (%d/%d):", g_MapData.activeScenes.Length, g_MapData.scenes.Length);
|
||||||
ActiveSceneData scene;
|
ActiveSceneData scene;
|
||||||
for(int i = 0; i < g_MapData.activeScenes.Length; i++) {
|
for(int i = 0; i < g_MapData.activeScenes.Length; i++) {
|
||||||
g_MapData.activeScenes.GetArray(i, scene);
|
g_MapData.activeScenes.GetArray(i, scene);
|
||||||
|
@ -284,7 +301,7 @@ Action Command_RandomizerBuild(int client, int args) {
|
||||||
} else if(StrEqual(arg, "menu")) {
|
} else if(StrEqual(arg, "menu")) {
|
||||||
OpenMainMenu(client);
|
OpenMainMenu(client);
|
||||||
} else if(g_builder.mapData == null) {
|
} else if(g_builder.mapData == null) {
|
||||||
ReplyToCommand(client, "No map data for %s, either load with /rbuild load, or start new /rbuild new", currentMap);
|
ReplyToCommand(client, "No map data loaded for %s, either load with /rbuild load, or start new /rbuild new", currentMap);
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
} else if(StrEqual(arg, "save")) {
|
} else if(StrEqual(arg, "save")) {
|
||||||
SaveMapJson(currentMap, g_builder.mapData);
|
SaveMapJson(currentMap, g_builder.mapData);
|
||||||
|
@ -358,10 +375,10 @@ JSONObject ExportEntity(int entity, ExportType exportType = Export_Model) {
|
||||||
GetEntPropVector(entity, Prop_Send, "m_angRotation", angles);
|
GetEntPropVector(entity, Prop_Send, "m_angRotation", angles);
|
||||||
GetEntPropVector(entity, Prop_Send, "m_vecMaxs", size);
|
GetEntPropVector(entity, Prop_Send, "m_vecMaxs", size);
|
||||||
|
|
||||||
char model[128];
|
char classname[128], model[128];
|
||||||
JSONObject entityData = new JSONObject();
|
JSONObject entityData = new JSONObject();
|
||||||
GetEntityClassname(entity, model, sizeof(model));
|
GetEntityClassname(entity, classname, sizeof(classname));
|
||||||
if(StrContains(model, "prop_") == -1) {
|
if(StrContains(classname, "prop_") == -1) {
|
||||||
entityData.Set("scale", VecToArray(size));
|
entityData.Set("scale", VecToArray(size));
|
||||||
}
|
}
|
||||||
if(exportType == Export_HammerId) {
|
if(exportType == Export_HammerId) {
|
||||||
|
@ -376,6 +393,7 @@ JSONObject ExportEntity(int entity, ExportType exportType = Export_Model) {
|
||||||
entityData.SetString("model", model);
|
entityData.SetString("model", model);
|
||||||
} else {
|
} else {
|
||||||
GetEntPropString(entity, Prop_Data, "m_ModelName", model, sizeof(model));
|
GetEntPropString(entity, Prop_Data, "m_ModelName", model, sizeof(model));
|
||||||
|
entityData.SetString("type", classname);
|
||||||
entityData.SetString("model", model);
|
entityData.SetString("model", model);
|
||||||
}
|
}
|
||||||
entityData.Set("origin", VecToArray(origin));
|
entityData.Set("origin", VecToArray(origin));
|
||||||
|
@ -567,17 +585,18 @@ enum InputType {
|
||||||
enum struct VariantInputData {
|
enum struct VariantInputData {
|
||||||
char name[MAX_INPUTS_CLASSNAME_LENGTH];
|
char name[MAX_INPUTS_CLASSNAME_LENGTH];
|
||||||
InputType type;
|
InputType type;
|
||||||
char input[32];
|
char input[64];
|
||||||
|
|
||||||
void Trigger() {
|
void Trigger() {
|
||||||
int entity = -1;
|
int entity = -1;
|
||||||
switch(this.type) {
|
switch(this.type) {
|
||||||
case Input_Classname: {
|
case Input_Classname: {
|
||||||
entity = FindEntityByClassname(entity, this.name);
|
while((entity = FindEntityByClassname(entity, this.name)) != INVALID_ENT_REFERENCE) {
|
||||||
this._trigger(entity);
|
this._trigger(entity);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case Input_Targetname: {
|
case Input_Targetname: {
|
||||||
char targetname[32];
|
char targetname[64];
|
||||||
while((entity = FindEntityByClassname(entity, "*")) != INVALID_ENT_REFERENCE) {
|
while((entity = FindEntityByClassname(entity, "*")) != INVALID_ENT_REFERENCE) {
|
||||||
GetEntPropString(entity, Prop_Data, "m_iName", targetname, sizeof(targetname));
|
GetEntPropString(entity, Prop_Data, "m_iName", targetname, sizeof(targetname));
|
||||||
if(StrEqual(targetname, this.name)) {
|
if(StrEqual(targetname, this.name)) {
|
||||||
|
@ -613,15 +632,20 @@ enum struct VariantInputData {
|
||||||
AcceptEntityInput(entity, "Close");
|
AcceptEntityInput(entity, "Close");
|
||||||
AcceptEntityInput(entity, "Lock");
|
AcceptEntityInput(entity, "Lock");
|
||||||
AcceptEntityInput(entity, "SetUnbreakable");
|
AcceptEntityInput(entity, "SetUnbreakable");
|
||||||
}else {
|
} else {
|
||||||
char cmd[32];
|
char cmd[32];
|
||||||
// Split input "a b" to a with variant "b"
|
// Split input "a b" to a with variant "b"
|
||||||
int len = SplitString(this.input, " ", cmd, sizeof(cmd));
|
int len = SplitString(this.input, " ", cmd, sizeof(cmd));
|
||||||
if(len > -1) SetVariantString(this.input[len]);
|
if(len > -1) {
|
||||||
|
SetVariantString(this.input[len]);
|
||||||
Debug("_trigger(%d): %s (v=%s)", entity, this.input, cmd);
|
AcceptEntityInput(entity, cmd);
|
||||||
|
Debug("_trigger(%d): %s (v=%s)", entity, cmd, this.input[len]);
|
||||||
|
} else {
|
||||||
|
Debug("_trigger(%d): %s", entity, this.input);
|
||||||
AcceptEntityInput(entity, this.input);
|
AcceptEntityInput(entity, this.input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -858,7 +882,7 @@ void loadChoice(SceneData scene, JSONObject choiceData, JSONArray extraEntities)
|
||||||
// Parses entities and loads to choice.entities
|
// Parses entities and loads to choice.entities
|
||||||
loadChoiceEntity(choice.entities, view_as<JSONObject>(extraEntities.Get(i)));
|
loadChoiceEntity(choice.entities, view_as<JSONObject>(extraEntities.Get(i)));
|
||||||
}
|
}
|
||||||
delete extraEntities;
|
// delete extraEntities;
|
||||||
}
|
}
|
||||||
// Load all inputs
|
// Load all inputs
|
||||||
if(choiceData.HasKey("inputs")) {
|
if(choiceData.HasKey("inputs")) {
|
||||||
|
@ -874,6 +898,7 @@ void loadChoice(SceneData scene, JSONObject choiceData, JSONArray extraEntities)
|
||||||
for(int i = 0; i < scenes.Length; i++) {
|
for(int i = 0; i < scenes.Length; i++) {
|
||||||
scenes.GetString(i, sceneId, sizeof(sceneId));
|
scenes.GetString(i, sceneId, sizeof(sceneId));
|
||||||
choice.forcedScenes.PushString(sceneId);
|
choice.forcedScenes.PushString(sceneId);
|
||||||
|
Debug("scene %s: require %s", scene.name, sceneId);
|
||||||
}
|
}
|
||||||
delete scenes;
|
delete scenes;
|
||||||
}
|
}
|
||||||
|
@ -882,6 +907,7 @@ void loadChoice(SceneData scene, JSONObject choiceData, JSONArray extraEntities)
|
||||||
|
|
||||||
void loadChoiceInput(ArrayList list, JSONObject inputData) {
|
void loadChoiceInput(ArrayList list, JSONObject inputData) {
|
||||||
VariantInputData input;
|
VariantInputData input;
|
||||||
|
input.type = Input_Classname;
|
||||||
// Check classname -> targetname -> hammerid
|
// Check classname -> targetname -> hammerid
|
||||||
if(!inputData.GetString("classname", input.name, sizeof(input.name))) {
|
if(!inputData.GetString("classname", input.name, sizeof(input.name))) {
|
||||||
if(inputData.GetString("targetname", input.name, sizeof(input.name))) {
|
if(inputData.GetString("targetname", input.name, sizeof(input.name))) {
|
||||||
|
@ -936,10 +962,10 @@ void loadChoiceEntity(ArrayList list, JSONObject entityData) {
|
||||||
entityData.GetString("model", entity.model, sizeof(entity.model));
|
entityData.GetString("model", entity.model, sizeof(entity.model));
|
||||||
if(!entityData.GetString("type", entity.type, sizeof(entity.type))) {
|
if(!entityData.GetString("type", entity.type, sizeof(entity.type))) {
|
||||||
entity.type = "prop_dynamic";
|
entity.type = "prop_dynamic";
|
||||||
} else if(entity.type[0] == '_') {
|
} /*else if(entity.type[0] == '_') {
|
||||||
LogError("Invalid custom entity type \"%s\"", entity.type);
|
LogError("Invalid custom entity type \"%s\"", entity.type);
|
||||||
return;
|
return;
|
||||||
}
|
}*/
|
||||||
GetVector(entityData, "origin", entity.origin);
|
GetVector(entityData, "origin", entity.origin);
|
||||||
GetVector(entityData, "angles", entity.angles);
|
GetVector(entityData, "angles", entity.angles);
|
||||||
GetVector(entityData, "scale", entity.scale);
|
GetVector(entityData, "scale", entity.scale);
|
||||||
|
@ -1013,10 +1039,17 @@ void selectScenes(int flags = 0) {
|
||||||
// Traverse active scenes, loading any other scene it requires (via .force_scenes)
|
// Traverse active scenes, loading any other scene it requires (via .force_scenes)
|
||||||
ActiveSceneData aScene;
|
ActiveSceneData aScene;
|
||||||
SceneVariantData choice;
|
SceneVariantData choice;
|
||||||
|
char sceneId[64];
|
||||||
|
// list of scenes that will need to be forced if not already:
|
||||||
ArrayList forcedScenes = new ArrayList(ByteCountToCells(MAX_SCENE_NAME_LENGTH));
|
ArrayList forcedScenes = new ArrayList(ByteCountToCells(MAX_SCENE_NAME_LENGTH));
|
||||||
for(int i = 0; i < g_MapData.activeScenes.Length; i++) {
|
for(int i = 0; i < g_MapData.activeScenes.Length; i++) {
|
||||||
g_MapData.activeScenes.GetArray(i, aScene);
|
g_MapData.activeScenes.GetArray(i, aScene);
|
||||||
g_MapData.scenes.GetArray(i, scene);
|
// Load scene from active scene entry
|
||||||
|
if(!g_MapData.scenesKv.GetArray(aScene.name, scene, sizeof(scene))) {
|
||||||
|
// can't find scene, ignore
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(aScene.variantIndex < scene.variants.Length) {
|
||||||
scene.variants.GetArray(aScene.variantIndex, choice);
|
scene.variants.GetArray(aScene.variantIndex, choice);
|
||||||
if(choice.forcedScenes != null) {
|
if(choice.forcedScenes != null) {
|
||||||
for(int j = 0; j < choice.forcedScenes.Length; j++) {
|
for(int j = 0; j < choice.forcedScenes.Length; j++) {
|
||||||
|
@ -1025,12 +1058,16 @@ void selectScenes(int flags = 0) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if(forcedScenes.Length > 0) {
|
||||||
|
Debug("Loading %d forced scenes", forcedScenes.Length);
|
||||||
|
}
|
||||||
// Iterate and activate any forced scenes
|
// Iterate and activate any forced scenes
|
||||||
for(int i = 0; i < forcedScenes.Length; i++) {
|
for(int i = 0; i < forcedScenes.Length; i++) {
|
||||||
forcedScenes.GetString(i, key, sizeof(key));
|
forcedScenes.GetString(i, key, sizeof(key));
|
||||||
// Check if scene was already loaded
|
// Check if scene was already loaded
|
||||||
bool isSceneAlreadyLoaded = false;
|
bool isSceneAlreadyLoaded = false;
|
||||||
for(int j = 0; j < g_MapData.activeScenes.Length; i++) {
|
for(int j = 0; j < g_MapData.activeScenes.Length; j++) {
|
||||||
g_MapData.activeScenes.GetArray(j, aScene);
|
g_MapData.activeScenes.GetArray(j, aScene);
|
||||||
if(StrEqual(aScene.name, key)) {
|
if(StrEqual(aScene.name, key)) {
|
||||||
isSceneAlreadyLoaded = true;
|
isSceneAlreadyLoaded = true;
|
||||||
|
@ -1077,7 +1114,6 @@ void selectScene(SceneData scene, int flags) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Debug("Total choices: %d", choices.Length);
|
|
||||||
if(flags & view_as<int>(FLAG_ALL_VARIANTS)) {
|
if(flags & view_as<int>(FLAG_ALL_VARIANTS)) {
|
||||||
delete choices;
|
delete choices;
|
||||||
} else if(choices.Length > 0) {
|
} else if(choices.Length > 0) {
|
||||||
|
@ -1118,7 +1154,7 @@ void spawnEntity(VariantEntityData entity) {
|
||||||
CreateEnvBlockerScaled(entity.type, entity.origin, entity.scale);
|
CreateEnvBlockerScaled(entity.type, entity.origin, entity.scale);
|
||||||
} else if(StrEqual(entity.type, "infodecal")) {
|
} else if(StrEqual(entity.type, "infodecal")) {
|
||||||
CreateDecal(entity.model, entity.origin);
|
CreateDecal(entity.model, entity.origin);
|
||||||
} else if(StrContains(entity.type, "prop_") == 0) {
|
} else if(StrContains(entity.type, "prop_") == 0 || StrEqual(entity.type, "prop_fuel_barrel")) {
|
||||||
if(entity.model[0] == '\0') {
|
if(entity.model[0] == '\0') {
|
||||||
LogError("Missing model for entity with type \"%s\"", entity.type);
|
LogError("Missing model for entity with type \"%s\"", entity.type);
|
||||||
return;
|
return;
|
||||||
|
@ -1165,6 +1201,8 @@ void spawnEntity(VariantEntityData entity) {
|
||||||
}
|
}
|
||||||
if(!found)
|
if(!found)
|
||||||
Debug("Warn: Could not find entity (classname=%s)", entity.model);
|
Debug("Warn: Could not find entity (classname=%s)", entity.model);
|
||||||
|
} else if(StrContains(entity.type, "_car") != -1) {
|
||||||
|
SpawnCar(entity);
|
||||||
} else {
|
} else {
|
||||||
LogError("Unknown entity type \"%s\"", entity.type);
|
LogError("Unknown entity type \"%s\"", entity.type);
|
||||||
}
|
}
|
||||||
|
@ -1201,6 +1239,17 @@ void Cleanup() {
|
||||||
}
|
}
|
||||||
delete g_MapData.lumpEdits;
|
delete g_MapData.lumpEdits;
|
||||||
|
|
||||||
|
// Cleanup all alarm car entities:
|
||||||
|
int entity = -1;
|
||||||
|
char targetname[128];
|
||||||
|
while((entity = FindEntityByClassname(entity, "*")) != INVALID_ENT_REFERENCE) {
|
||||||
|
GetEntPropString(entity, Prop_Data, "m_iName", targetname, sizeof(targetname));
|
||||||
|
if(StrContains(targetname, "randomizer_car") != -1) {
|
||||||
|
RemoveEntity(entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO: delete car alarms
|
||||||
|
|
||||||
DeleteCustomEnts();
|
DeleteCustomEnts();
|
||||||
g_MapData.activeScenes.Clear();
|
g_MapData.activeScenes.Clear();
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue