mirror of
https://github.com/Jackzmc/sourcemod-plugins.git
synced 2025-05-06 21:13:22 +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_chunkb3.mdl Wood Pallet Piece 2-6
|
||||
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_straight_u.mdl Straight U 1
|
||||
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_02.mdl Plywood 2
|
||||
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_leverhandle.mdl Construction Crane Lever
|
||||
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/props_debris/paintbucket01.mdl Paintbucket
|
||||
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_fishing02_static.mdl Rescue 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/church_bus01.mdl Church Bus
|
||||
models/props_vehicles/cara_69sedan.mdl '69 Sedan
|
||||
|
|
|
@ -260,7 +260,8 @@
|
|||
"variants": [
|
||||
{
|
||||
"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 PRECACHE_SOUNDS_COUNT 4
|
||||
#define PRECACHE_SOUNDS_COUNT 5
|
||||
char PRECACHE_SOUNDS[PRECACHE_SOUNDS_COUNT][] = {
|
||||
"custom/xen_teleport.mp3",
|
||||
"custom/mariokartmusic.mp3",
|
||||
"custom/airhorn.mp3",
|
||||
"custom/spookyscaryskeletons.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));
|
||||
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);
|
||||
} else {
|
||||
AddLogCustom("STATE", "", victimName, "\"%L\" died", victim);
|
||||
|
@ -267,7 +275,15 @@ public void Event_L4D2_Incapped(Event event, const char[] name, bool dontBroadca
|
|||
if(attacker > 0 && attacker != victim) {
|
||||
if(IsFakeClient(attacker)) GetClientName(attacker, 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);
|
||||
} else {
|
||||
AddLogCustom("STATE", "", victimName, "\"%L\" was incapped", victim);
|
||||
|
|
|
@ -203,6 +203,7 @@ void LoadFolder(ArrayList parent, const char[] rootPath) {
|
|||
DirectoryListing listing = OpenDirectory(rootPath);
|
||||
if(listing == null) {
|
||||
LogError("Cannot open \"%s\"", rootPath);
|
||||
return;
|
||||
}
|
||||
while(listing.GetNext(buffer, sizeof(buffer), fileType)) {
|
||||
if(fileType == FileType_Directory) {
|
||||
|
|
|
@ -135,7 +135,7 @@ Action Command_DoAHat(int client, int args) {
|
|||
char sizeStr[4];
|
||||
GetCmdArg(2, sizeStr, sizeof(sizeStr));
|
||||
float size = StringToFloat(sizeStr);
|
||||
if(size == 0.0) {
|
||||
if(size <= 0.0) {
|
||||
ReplyToCommand(client, "[Hats] Invalid size");
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
@ -335,7 +335,12 @@ Action Command_DoAHat(int client, int args) {
|
|||
} else {
|
||||
// Find a new hatable entity
|
||||
int flags = 0;
|
||||
entity = GetLookingEntity(client, Filter_ValidHats);
|
||||
if(args > 0 && isForced) {
|
||||
char arg[16];
|
||||
entity = GetCmdArgInt(1);
|
||||
} else {
|
||||
entity = GetLookingEntity(client, Filter_ValidHats);
|
||||
}
|
||||
if(entity <= 0) {
|
||||
PrintCenterText(client, "[Hats] No entity found");
|
||||
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.SetTitle("%s > Variants", g_builder.selectedSceneId);
|
||||
char id[8], display[32];
|
||||
menu.AddItem("new", "New");
|
||||
menu.AddItem("-1", "None (Shared Scene)");
|
||||
menu.AddItem("new", "New Variant");
|
||||
menu.AddItem("-1", "Global Scene Variant");
|
||||
|
||||
JSONArray variants = view_as<JSONArray>(g_builder.selectedSceneData.Get("variants"));
|
||||
JSONObject varObj;
|
||||
|
@ -45,9 +45,9 @@ void OpenVariantsMenu(int client) {
|
|||
varObj = view_as<JSONObject>(variants.Get(i));
|
||||
entities = view_as<JSONArray>(varObj.Get("entities"));
|
||||
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 {
|
||||
Format(display, sizeof(display), "%d entities", entities.Length);
|
||||
Format(display, sizeof(display), "#%d - %d entities", i, entities.Length);
|
||||
}
|
||||
IntToString(i, id, sizeof(id));
|
||||
menu.AddItem(id, display);
|
||||
|
|
|
@ -24,6 +24,8 @@ TopMenu g_topMenu;
|
|||
|
||||
char g_currentMap[64];
|
||||
|
||||
ConVar enabledBlacklist;
|
||||
|
||||
//int g_markedMode
|
||||
|
||||
#include <editor/editor.sp>
|
||||
|
@ -80,6 +82,8 @@ public void OnPluginStart() {
|
|||
LoadTranslations("common.phrases");
|
||||
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_edit", 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) {
|
||||
if(entity == 0) return false;
|
||||
static char buffer[64];
|
||||
GetEntityClassname(entity, buffer, sizeof(buffer));
|
||||
for(int i = 0; i < MAX_FORBIDDEN_CLASSNAMES; i++) {
|
||||
if(StrEqual(FORBIDDEN_CLASSNAMES[i], buffer)) {
|
||||
return false;
|
||||
if(enabledBlacklist.IntValue & 1) {
|
||||
GetEntityClassname(entity, buffer, sizeof(buffer));
|
||||
for(int i = 0; i < MAX_FORBIDDEN_CLASSNAMES; i++) {
|
||||
if(StrEqual(FORBIDDEN_CLASSNAMES[i], buffer)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StrContains(buffer, "prop_") > -1) {
|
||||
if(enabledBlacklist.IntValue & 2) {
|
||||
GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer));
|
||||
for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) {
|
||||
if(StrEqual(FORBIDDEN_MODELS[i], buffer)) {
|
||||
|
@ -503,9 +509,11 @@ bool CheckBlacklist(int entity) {
|
|||
}
|
||||
}
|
||||
}
|
||||
GetEntPropString(entity, Prop_Data, "m_iName", buffer, sizeof(buffer));
|
||||
if(StrEqual(buffer, "l4d2_randomizer")) {
|
||||
return false;
|
||||
if(enabledBlacklist.IntValue & 4) {
|
||||
GetEntPropString(entity, Prop_Data, "m_iName", buffer, sizeof(buffer));
|
||||
if(StrContains(buffer, "randomizer") > -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -22,9 +22,9 @@ int g_iLaserIndex;
|
|||
#if defined DEBUG_BLOCKERS
|
||||
#include <smlib/effects>
|
||||
#endif
|
||||
#define ENT_PROP_NAME "l4d2_randomizer"
|
||||
#define ENT_ENV_NAME "l4d2_randomizer"
|
||||
#define ENT_BLOCKER_NAME "l4d2_randomizer"
|
||||
#define ENT_PROP_NAME "randomizer"
|
||||
#define ENT_ENV_NAME "randomizer"
|
||||
#define ENT_BLOCKER_NAME "randomizer"
|
||||
#include <gamemodes/ents>
|
||||
|
||||
#define MAX_SCENE_NAME_LENGTH 32
|
||||
|
@ -100,6 +100,7 @@ enum struct BuilderData {
|
|||
}
|
||||
|
||||
#include <randomizer/rbuild.sp>
|
||||
#include <randomizer/caralarm.sp>
|
||||
|
||||
public Plugin myinfo =
|
||||
{
|
||||
|
@ -116,24 +117,40 @@ public void OnPluginStart() {
|
|||
SetFailState("This plugin is for L4D/L4D2 only.");
|
||||
}
|
||||
|
||||
HookEvent("round_start_post_nav", Event_RoundStartPosNav);
|
||||
|
||||
RegAdminCmd("sm_rcycle", Command_CycleRandom, ADMFLAG_CHEATS);
|
||||
RegAdminCmd("sm_expent", Command_ExportEnt, ADMFLAG_GENERIC);
|
||||
RegAdminCmd("sm_rbuild", Command_RandomizerBuild, ADMFLAG_CHEATS);
|
||||
|
||||
cvarEnabled = CreateConVar("sm_randomizer_enabled", "0");
|
||||
|
||||
HookEvent("player_first_spawn", Event_PlayerFirstSpawn);
|
||||
|
||||
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
|
||||
public void OnMapStart() {
|
||||
g_iLaserIndex = PrecacheModel("materials/sprites/laserbeam.vmt", true);
|
||||
GetCurrentMap(currentMap, sizeof(currentMap));
|
||||
if(cvarEnabled.BoolValue)
|
||||
CreateTimer(5.0, Timer_Run);
|
||||
}
|
||||
|
||||
|
||||
public void OnMapEnd() {
|
||||
g_builder.Cleanup();
|
||||
Cleanup();
|
||||
|
@ -196,7 +213,7 @@ public Action Command_CycleRandom(int client, int args) {
|
|||
if(client > 0)
|
||||
PrintCenterText(client, "Cycled flags=%d", flags);
|
||||
} else {
|
||||
ReplyToCommand(client, "Active Scenes:");
|
||||
ReplyToCommand(client, "Active Scenes (%d/%d):", g_MapData.activeScenes.Length, g_MapData.scenes.Length);
|
||||
ActiveSceneData scene;
|
||||
for(int i = 0; i < g_MapData.activeScenes.Length; i++) {
|
||||
g_MapData.activeScenes.GetArray(i, scene);
|
||||
|
@ -284,7 +301,7 @@ Action Command_RandomizerBuild(int client, int args) {
|
|||
} else if(StrEqual(arg, "menu")) {
|
||||
OpenMainMenu(client);
|
||||
} 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;
|
||||
} else if(StrEqual(arg, "save")) {
|
||||
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_vecMaxs", size);
|
||||
|
||||
char model[128];
|
||||
char classname[128], model[128];
|
||||
JSONObject entityData = new JSONObject();
|
||||
GetEntityClassname(entity, model, sizeof(model));
|
||||
if(StrContains(model, "prop_") == -1) {
|
||||
GetEntityClassname(entity, classname, sizeof(classname));
|
||||
if(StrContains(classname, "prop_") == -1) {
|
||||
entityData.Set("scale", VecToArray(size));
|
||||
}
|
||||
if(exportType == Export_HammerId) {
|
||||
|
@ -376,6 +393,7 @@ JSONObject ExportEntity(int entity, ExportType exportType = Export_Model) {
|
|||
entityData.SetString("model", model);
|
||||
} else {
|
||||
GetEntPropString(entity, Prop_Data, "m_ModelName", model, sizeof(model));
|
||||
entityData.SetString("type", classname);
|
||||
entityData.SetString("model", model);
|
||||
}
|
||||
entityData.Set("origin", VecToArray(origin));
|
||||
|
@ -567,17 +585,18 @@ enum InputType {
|
|||
enum struct VariantInputData {
|
||||
char name[MAX_INPUTS_CLASSNAME_LENGTH];
|
||||
InputType type;
|
||||
char input[32];
|
||||
char input[64];
|
||||
|
||||
void Trigger() {
|
||||
int entity = -1;
|
||||
switch(this.type) {
|
||||
case Input_Classname: {
|
||||
entity = FindEntityByClassname(entity, this.name);
|
||||
this._trigger(entity);
|
||||
while((entity = FindEntityByClassname(entity, this.name)) != INVALID_ENT_REFERENCE) {
|
||||
this._trigger(entity);
|
||||
}
|
||||
}
|
||||
case Input_Targetname: {
|
||||
char targetname[32];
|
||||
char targetname[64];
|
||||
while((entity = FindEntityByClassname(entity, "*")) != INVALID_ENT_REFERENCE) {
|
||||
GetEntPropString(entity, Prop_Data, "m_iName", targetname, sizeof(targetname));
|
||||
if(StrEqual(targetname, this.name)) {
|
||||
|
@ -613,14 +632,19 @@ enum struct VariantInputData {
|
|||
AcceptEntityInput(entity, "Close");
|
||||
AcceptEntityInput(entity, "Lock");
|
||||
AcceptEntityInput(entity, "SetUnbreakable");
|
||||
}else {
|
||||
} else {
|
||||
char cmd[32];
|
||||
// Split input "a b" to a with variant "b"
|
||||
int len = SplitString(this.input, " ", cmd, sizeof(cmd));
|
||||
if(len > -1) SetVariantString(this.input[len]);
|
||||
if(len > -1) {
|
||||
SetVariantString(this.input[len]);
|
||||
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);
|
||||
}
|
||||
|
||||
Debug("_trigger(%d): %s (v=%s)", entity, this.input, cmd);
|
||||
AcceptEntityInput(entity, this.input);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -858,7 +882,7 @@ void loadChoice(SceneData scene, JSONObject choiceData, JSONArray extraEntities)
|
|||
// Parses entities and loads to choice.entities
|
||||
loadChoiceEntity(choice.entities, view_as<JSONObject>(extraEntities.Get(i)));
|
||||
}
|
||||
delete extraEntities;
|
||||
// delete extraEntities;
|
||||
}
|
||||
// Load all 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++) {
|
||||
scenes.GetString(i, sceneId, sizeof(sceneId));
|
||||
choice.forcedScenes.PushString(sceneId);
|
||||
Debug("scene %s: require %s", scene.name, sceneId);
|
||||
}
|
||||
delete scenes;
|
||||
}
|
||||
|
@ -882,6 +907,7 @@ void loadChoice(SceneData scene, JSONObject choiceData, JSONArray extraEntities)
|
|||
|
||||
void loadChoiceInput(ArrayList list, JSONObject inputData) {
|
||||
VariantInputData input;
|
||||
input.type = Input_Classname;
|
||||
// Check classname -> targetname -> hammerid
|
||||
if(!inputData.GetString("classname", 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));
|
||||
if(!entityData.GetString("type", entity.type, sizeof(entity.type))) {
|
||||
entity.type = "prop_dynamic";
|
||||
} else if(entity.type[0] == '_') {
|
||||
} /*else if(entity.type[0] == '_') {
|
||||
LogError("Invalid custom entity type \"%s\"", entity.type);
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
GetVector(entityData, "origin", entity.origin);
|
||||
GetVector(entityData, "angles", entity.angles);
|
||||
GetVector(entityData, "scale", entity.scale);
|
||||
|
@ -1013,24 +1039,35 @@ void selectScenes(int flags = 0) {
|
|||
// Traverse active scenes, loading any other scene it requires (via .force_scenes)
|
||||
ActiveSceneData aScene;
|
||||
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));
|
||||
for(int i = 0; i < g_MapData.activeScenes.Length; i++) {
|
||||
g_MapData.activeScenes.GetArray(i, aScene);
|
||||
g_MapData.scenes.GetArray(i, scene);
|
||||
scene.variants.GetArray(aScene.variantIndex, choice);
|
||||
if(choice.forcedScenes != null) {
|
||||
for(int j = 0; j < choice.forcedScenes.Length; j++) {
|
||||
choice.forcedScenes.GetString(j, key, sizeof(key));
|
||||
forcedScenes.PushString(key);
|
||||
// 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);
|
||||
if(choice.forcedScenes != null) {
|
||||
for(int j = 0; j < choice.forcedScenes.Length; j++) {
|
||||
choice.forcedScenes.GetString(j, key, sizeof(key));
|
||||
forcedScenes.PushString(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(forcedScenes.Length > 0) {
|
||||
Debug("Loading %d forced scenes", forcedScenes.Length);
|
||||
}
|
||||
// Iterate and activate any forced scenes
|
||||
for(int i = 0; i < forcedScenes.Length; i++) {
|
||||
forcedScenes.GetString(i, key, sizeof(key));
|
||||
// Check if scene was already loaded
|
||||
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);
|
||||
if(StrEqual(aScene.name, key)) {
|
||||
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)) {
|
||||
delete choices;
|
||||
} else if(choices.Length > 0) {
|
||||
|
@ -1118,7 +1154,7 @@ void spawnEntity(VariantEntityData entity) {
|
|||
CreateEnvBlockerScaled(entity.type, entity.origin, entity.scale);
|
||||
} else if(StrEqual(entity.type, "infodecal")) {
|
||||
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') {
|
||||
LogError("Missing model for entity with type \"%s\"", entity.type);
|
||||
return;
|
||||
|
@ -1165,6 +1201,8 @@ void spawnEntity(VariantEntityData entity) {
|
|||
}
|
||||
if(!found)
|
||||
Debug("Warn: Could not find entity (classname=%s)", entity.model);
|
||||
} else if(StrContains(entity.type, "_car") != -1) {
|
||||
SpawnCar(entity);
|
||||
} else {
|
||||
LogError("Unknown entity type \"%s\"", entity.type);
|
||||
}
|
||||
|
@ -1201,6 +1239,17 @@ void Cleanup() {
|
|||
}
|
||||
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();
|
||||
g_MapData.activeScenes.Clear();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue