diff --git a/CVARINFO b/CVARINFO index 2b6c0a7..5312648 100644 --- a/CVARINFO +++ b/CVARINFO @@ -7,135 +7,164 @@ server int hdblib_enableammo_3 = -1; // I keep them at -1 by default to have the opt-in nature respected. - [Ted] // .500 S&W -server int hdb_500sw_shellbox_spawn_bias = -1; -server int hdb_500sw_rocket_spawn_bias = -1; -server int hdb_500sw_casing_spawn_bias = -1; +server float hdb_500sw_shellbox_spawn_bias = 0.0; +server float hdb_500sw_rocket_spawn_bias = 0.0; +server float hdb_500sw_casing_spawn_bias = 0.0; server bool hdb_500sw_persistent_spawning = false; // 12 Gauge Slugs -server int hdb_12gslug_shellbox_spawn_bias = -1; -server int hdb_12gslug_shell_spawn_bias = -1; -server int hdb_12gslug_casing_spawn_bias = -1; +server float hdb_12gslug_shellbox_spawn_bias = 0.0; +server float hdb_12gslug_shell_spawn_bias = 0.0; +server float hdb_12gslug_casing_spawn_bias = 0.0; server bool hdb_12gslug_persistent_spawning = false; -// .451 Frei -server int hdb_420frei_box_spawn_bias = -1; -server int hdb_420frei_casing_spawn_bias = -1; +// .420 Frei +server float hdb_420frei_box_spawn_bias = 0.0; +server float hdb_420frei_casing_spawn_bias = 0.0; server bool hdb_420frei_persistent_spawning = false; -// .066 Bore -server int hdb_069bore_box_spawn_bias = -1; -server int hdb_069bore_casing_spawn_bias = -1; +// .069 Bore +server float hdb_069bore_box_spawn_bias = 0.0; +server float hdb_069bore_casing_spawn_bias = 0.0; server bool hdb_069bore_persistent_spawning = false; // 9mm NDM -server int hdb_ndm_box_spawn_bias = -1; -server int hdb_ndm_casing_spawn_bias = -1; +server float hdb_ndm_box_spawn_bias = 0.0; +server float hdb_ndm_casing_spawn_bias = 0.0; server bool hdb_ndm_persistent_spawning = false; // .50 OMG -server int hdb_50omg_box_spawn_bias = -1; -server int hdb_50omg_casing_spawn_bias = -1; +server float hdb_50omg_box_spawn_bias = 0.0; +server float hdb_50omg_casing_spawn_bias = 0.0; server bool hdb_50omg_persistent_spawning = false; // .45 ACP -server int hdb_45acp_box_spawn_bias = -1; -server int hdb_45acp_casing_spawn_bias = -1; +server float hdb_45acp_box_spawn_bias = 0.0; +server float hdb_45acp_casing_spawn_bias = 0.0; server bool hdb_45acp_persistent_spawning = false; // 10mm -server int hdb_10mm_box_spawn_bias = -1; -server int hdb_10mm_casing_spawn_bias = -1; +server float hdb_10mm_box_spawn_bias = 0.0; +server float hdb_10mm_casing_spawn_bias = 0.0; server bool hdb_10mm_persistent_spawning = false; // .45 LC -server int hdb_45lc_box_spawn_bias = -1; -server int hdb_45lc_casing_spawn_bias = -1; +server float hdb_45lc_box_spawn_bias = 0.0; +server float hdb_45lc_casing_spawn_bias = 0.0; server bool hdb_45lc_persistent_spawning = false; // Golden .45 LC -server int hdb_g45lc_box_spawn_bias = -1; -server int hdb_g45lc_casing_spawn_bias = -1; +server float hdb_g45lc_box_spawn_bias = 0.0; +server float hdb_g45lc_casing_spawn_bias = 0.0; server bool hdb_g45lc_persistent_spawning = false; // Less-Lethal Shells -server int hdb_LLS_shellbox_spawn_bias = -1; -server int hdb_LLS_shell_spawn_bias = -1; -server int hdb_LLS_casing_spawn_bias = -1; +server float hdb_LLS_shellbox_spawn_bias = 0.0; +server float hdb_LLS_shell_spawn_bias = 0.0; +server float hdb_LLS_casing_spawn_bias = 0.0; server bool hdb_LLS_persistent_spawning = false; // Explosive Slugs -server int hdb_ESlug_shellbox_spawn_bias = -1; -server int hdb_ESlug_shell_spawn_bias = -1; -server int hdb_ESlug_casing_spawn_bias = -1; +server float hdb_ESlug_shellbox_spawn_bias = 0.0; +server float hdb_ESlug_shell_spawn_bias = 0.0; +server float hdb_ESlug_casing_spawn_bias = 0.0; server bool hdb_ESlug_persistent_spawning = false; // Flare Shells -server int hdb_FShell_shellbox_spawn_bias = -1; -server int hdb_FShell_shell_spawn_bias = -1; +server float hdb_FShell_shellbox_spawn_bias = 0.0; +server float hdb_FShell_shell_spawn_bias = 0.0; server bool hdb_FShell_persistent_spawning = false; // Musket Balls -server int hdb_MBall_casing_spawn_bias = -1; +server float hdb_MBall_casing_spawn_bias = 0.0; server bool hdb_MBall_persistent_spawning = false; // 4-Gauge Saboted Slugs -server int hdb_4gss_shellbox_spawn_bias = -1; -server int hdb_4gss_shell_spawn_bias = -1; -server int hdb_4gss_casing_spawn_bias = -1; +server float hdb_4gss_shellbox_spawn_bias = 0.0; +server float hdb_4gss_shell_spawn_bias = 0.0; +server float hdb_4gss_casing_spawn_bias = 0.0; server bool hdb_4gss_persistent_spawning = false; // 5mm Bumblebee Rimfire -server int hdb_5mm_box_spawn_bias = -1; -server int hdb_5mm_casing_spawn_bias = -1; +server float hdb_5mm_box_spawn_bias = 0.0; +server float hdb_5mm_casing_spawn_bias = 0.0; server bool hdb_5mm_persistent_spawning = false; // .50 Action-Mega -server int hdb_50am_box_spawn_bias = -1; -server int hdb_50am_casing_spawn_bias = -1; +server float hdb_50am_box_spawn_bias = 0.0; +server float hdb_50am_casing_spawn_bias = 0.0; server bool hdb_50am_persistent_spawning = false; // 6mm Flechette -server int hdb_6mm_box_spawn_bias = -1; -server int hdb_6mm_casing_spawn_bias = -1; +server float hdb_6mm_box_spawn_bias = 0.0; +server float hdb_6mm_casing_spawn_bias = 0.0; server bool hdb_6mm_persistent_spawning = false; // 20mm Grenades -server int hdb_20mm_rbox_spawn_bias = -1; +server float hdb_20mm_rbox_spawn_bias = 0.0; server bool hdb_20mm_persistent_spawning = false; // Thunder Rockets -server int hdb_ThuRKT_rbox_spawn_bias = -1; +server float hdb_ThuRKT_rbox_spawn_bias = 0.0; server bool hdb_ThuRKT_persistent_spawning = false; // Tortoise Rockets -server int hdb_TortRKT_rbox_spawn_bias = -1; +server float hdb_TortRKT_rbox_spawn_bias = 0.0; server bool hdb_TortRKT_persistent_spawning = false; // .30-06 -server int hdb_3006_box_spawn_bias = -1; -server int hdb_3006_casing_spawn_bias = -1; +server float hdb_3006_box_spawn_bias = 0.0; +server float hdb_3006_casing_spawn_bias = 0.0; server bool hdb_3006_persistent_spawning = false; // 4-Gauge Buckshot -server int hdb_4gbs_shellbox_spawn_bias = -1; -server int hdb_4gbs_shell_spawn_bias = -1; -server int hdb_4gbs_casing_spawn_bias = -1; +server float hdb_4gbs_shellbox_spawn_bias = 0.0; +server float hdb_4gbs_shell_spawn_bias = 0.0; +server float hdb_4gbs_casing_spawn_bias = 0.0; server bool hdb_4gbs_persistent_spawning = false; // Birdshot -server int hdb_bird_shellbox_spawn_bias = -1; -server int hdb_bird_shell_spawn_bias = -1; -server int hdb_bird_casing_spawn_bias = -1; +server float hdb_bird_shellbox_spawn_bias = 0.0; +server float hdb_bird_shell_spawn_bias = 0.0; +server float hdb_bird_casing_spawn_bias = 0.0; server bool hdb_bird_persistent_spawning = false; // .300 Savage -server int hdb_300savage_shellbox_spawn_bias = -1; -server int hdb_300savage_shell_spawn_bias = -1; -server int hdb_300savage_casing_spawn_bias = -1; +server float hdb_300savage_shellbox_spawn_bias = 0.0; +server float hdb_300savage_shell_spawn_bias = 0.0; +server float hdb_300savage_casing_spawn_bias = 0.0; server bool hdb_300savage_persistent_spawning = false; // 7.62 Tokarev -server int hdb_7Tokarev_box_spawn_bias = -1; -server int hdb_7Tokarev_casing_spawn_bias = -1; -server bool hdb_7Tokarev_persistent_spawning = false; \ No newline at end of file +server float hdb_7Tokarev_box_spawn_bias = 0.0; +server float hdb_7Tokarev_casing_spawn_bias = 0.0; +server bool hdb_7Tokarev_persistent_spawning = false; + +// Merchant Store Filters +server bool hdm_enable_069bore = true; +server bool hdm_enable_10mm = true; +server bool hdm_enable_12gflare = true; +server bool hdm_enable_12gslug = true; +server bool hdm_enable_20mmgrenade = true; +server bool hdm_enable_3006 = true; +server bool hdm_enable_300savage = true; +server bool hdm_enable_420frei = true; +server bool hdm_enable_45acp = true; +server bool hdm_enable_45lc = true; +server bool hdm_enable_4gshell = true; +server bool hdm_enable_4gslug = true; +server bool hdm_enable_500swh = true; +server bool hdm_enable_500swl = true; +server bool hdm_enable_50am = true; +server bool hdm_enable_50omg = true; +server bool hdm_enable_5mmbr = true; +server bool hdm_enable_6mmflechette = true; +server bool hdm_enable_762tokarev = true; +server bool hdm_enable_birdshot = true; +server bool hdm_enable_g45lc = true; +server bool hdm_enable_leadball = true; +server bool hdm_enable_llshell = true; +server bool hdm_enable_ndm = true; +server bool hdm_enable_thunderrocket = true; +server bool hdm_enable_tortoiserocket = true; +server bool hdm_enable_xshell = true; diff --git a/HDCINFO b/HDCINFO new file mode 100644 index 0000000..cda0e66 --- /dev/null +++ b/HDCINFO @@ -0,0 +1,232 @@ +// 9mm NDM +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HDNDMBoxPickup", "weight": "#hdb_NDM_box_spawn_bias", "persists": "#hdb_NDM_persistent_spawning" } + +// 9mm NDM Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpentNDM", "weight": "#hdb_NDM_casing_spawn_bias", "persists": "#hdb_NDM_persistent_spawning" } + +// .500 S&W Lights +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "HD500SWLightBoxPickup", "weight": "#hdb_500sw_shellbox_spawn_bias", "persists": "#hdb_500sw_persistent_spawning" } + +// .500 S&W Heavies +addSpawnTableSingleEntry => { "tableName": "RocketAmmoReplaces", "name": "HD500SWHeavyBoxPickup", "weight": "#hdb_500sw_rocket_spawn_bias", "persists": "#hdb_500sw_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "RocketBoxReplaces", "name": "HD500SWHeavyBoxPickup", "weight": "#hdb_500sw_rocket_spawn_bias", "persists": "#hdb_500sw_persistent_spawning" } + +// .500 S&W Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent500", "weight": "#hdb_500sw_casing_spawn_bias", "persists": "#hdb_500sw_persistent_spawning" } + +// 12 Gauge Slugs +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDSlugAmmo", "weight": "#hdb_12gslug_shellbox_spawn_bias", "persists": "#hdb_12gslug_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "SlugPickup", "weight": "#hdb_12gslug_shellbox_spawn_bias", "persists": "#hdb_12gslug_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "SlugBoxPickup", "weight": "#hdb_12gslug_shellbox_spawn_bias", "persists": "#hdb_12gslug_persistent_spawning" } + +// 12 Gauge Slug Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpentSlug", "weight": "#hdb_12gslug_shellbox_spawn_bias", "persists": "#hdb_12gslug_persistent_spawning" } + +// .420 Frei +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD420BoxPickup", "weight": "#hdb_420frei_box_spawn_bias", "persists": "#hdb_420frei_persistent_spawning" } + +// .420 Frei Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent420", "weight": "#hdb_420frei_casing_spawn_bias", "persists": "#hdb_420frei_persistent_spawning" } + +// .069 Bore +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "HD069BoreBox", "weight": "#hdb_069bore_box_spawn_bias", "persists": "#hdb_069bore_persistent_spawning" } + +// .069 Bore Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent069Bore", "weight": "#hdb_069bore_casing_spawn_bias", "persists": "#hdb_069bore_persistent_spawning" } + +// .50 OMG +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD50OMGBoxPickup", "weight": "#hdb_50omg_box_spawn_bias", "persists": "#hdb_50omg_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "RocketBoxReplaces", "name": "HD50OMGBoxPickup", "weight": "#hdb_50omg_box_spawn_bias", "persists": "#hdb_50omg_persistent_spawning" } + +// .50 OMG Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent50OMG", "weight": "#hdb_50omg_casing_spawn_bias", "persists": "#hdb_50omg_persistent_spawning" } + +// .45 ACP +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD45ACPBoxPickup", "weight": "#hdb_45acp_box_spawn_bias", "persists": "#hdb_45acp_persistent_spawning" } + +// .45 ACP Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent45ACP", "weight": "#hdb_45acp_casing_spawn_bias", "persists": "#hdb_45acp_persistent_spawning" } + +// 10mm Auto +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD10mBoxPickup", "weight": "#hdb_10mm_box_spawn_bias", "persists": "#hdb_10mm_persistent_spawning" } + +// 10mm Auto Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent10mm", "weight": "#hdb_10mm_casing_spawn_bias", "persists": "#hdb_10mm_persistent_spawning" } + +// .45 LC +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD45LCBoxPickup", "weight": "#hdb_45lc_box_spawn_bias", "persists": "#hdb_45lc_persistent_spawning" } + +// .45 LC Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent45LC", "weight": "#hdb_45lc_casing_spawn_bias", "persists": "#hdb_45lc_persistent_spawning" } + +// Golden .45 LC +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HDGold45LCBoxPickup", "weight": "#hdb_g45lc_box_spawn_bias", "persists": "#hdb_g45lc_persistent_spawning" } + +// Golden .45 LC Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpentGold45LC", "weight": "#hdb_g45lc_casing_spawn_bias", "persists": "#hdb_g45lc_persistent_spawning" } + +// Less-Lethal Shells +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDLLShellAmmo", "weight": "#hdb_LLS_shell_spawn_bias", "persists": "#hdb_LLS_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "LLShellPickup", "weight": "#hdb_LLS_shell_spawn_bias", "persists": "#hdb_LLS_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "LLShellBoxPickup", "weight": "#hdb_LLS_shellbox_spawn_bias", "persists": "#hdb_LLS_persistent_spawning" } + +// Less-Lethal Shell Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDLLSpentShell", "weight": "#hdb_LLS_casing_spawn_bias", "persists": "#hdb_LLS_persistent_spawning" } + +// Explosive Slugs +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDExplosiveShellAmmo", "weight": "#hdb_ESlug_shell_spawn_bias", "persists": "#hdb_ESlug_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "ExplosiveShellPickup", "weight": "#hdb_ESlug_shell_spawn_bias", "persists": "#hdb_ESlug_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "ExplosiveShellBoxPickup", "weight": "#hdb_ESlug_shellbox_spawn_bias", "persists": "#hdb_ESlug_persistent_spawning" } + +// Explosive Slug Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpentExplosiveShell", "weight": "#hdb_ESlug_casing_spawn_bias", "persists": "#hdb_ESlug_persistent_spawning" } + +// Flare Shells +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDFlareAmmo", "weight": "#hdb_FShell_shell_spawn_bias", "persists": "#hdb_FShell_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "FlareShellPickup", "weight": "#hdb_FShell_shell_spawn_bias", "persists": "#hdb_FShell_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "FlareShellBoxPickup", "weight": "#hdb_FShell_shellbox_spawn_bias", "persists": "#hdb_FShell_persistent_spawning" } + +// Flare Shell Casings +// addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent", "weight": "#hdb_FShell_casing_spawn_bias", "persists": "#hdb_FShell_persistent_spawning" } + +// .56 cal Musket Balls +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDBallAmmo", "weight": "#hdb_MBall_casing_spawn_bias", "persists": "#hdb_MBall_persistent_spawning" } + +// 4 Gauge Slugs +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HD4GSAmmo", "weight": "#hdb_4gss_shell_spawn_bias", "persists": "#hdb_4gss_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDFumbled4GS", "weight": "#hdb_4gss_shell_spawn_bias", "persists": "#hdb_4gss_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "HD4GSSpawn", "weight": "#hdb_4gss_shellbox_spawn_bias", "persists": "#hdb_4gss_persistent_spawning" } + +// 4 Gauge Slug Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent4GS", "weight": "#hdb_4gss_casing_spawn_bias", "persists": "#hdb_4gss_persistent_spawning" } + +// 5mm Bumblebee Rimfire +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "PB_5mmBoxPickup", "weight": "#hdb_5mm_box_spawn_bias", "persists": "#hdb_5mm_persistent_spawning" } + +// 5mm Bumblebee Rimfire Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent5mmMR", "weight": "#hdb_5mm_casing_spawn_bias", "persists": "#hdb_5mm_persistent_spawning" } + +// .50 AM +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "PB_50AMBoxPickup", "weight": "#hdb_50am_box_spawn_bias", "persists": "#hdb_50am_persistent_spawning" } + +// .50 AM Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent50AM", "weight": "#hdb_50am_casing_spawn_bias", "persists": "#hdb_50am_persistent_spawning" } + +// 6mm Flechettes +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD6mmFlechetteBoxPickup", "weight": "#hdb_6mm_box_spawn_bias", "persists": "#hdb_6mm_persistent_spawning" } + +// 6mm Flechette Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent6mmFlechette", "weight": "#hdb_6mm_casing_spawn_bias", "persists": "#hdb_6mm_persistent_spawning" } + +// 20mm Grenades +addSpawnTableSingleEntry => { "tableName": "RocketBoxReplaces", "name": "WAN_20mmGrenadeBox", "weight": "#hdb_20mm_rbox_spawn_bias", "persists": "#hdb_20mm_persistent_spawning" } + +// Thunder Rockets +addSpawnTableSingleEntry => { "tableName": "RocketBoxReplaces", "name": "WAN_ThuRKTAmmo", "weight": "#hdb_ThuRKT_rbox_spawn_bias", "persists": "#hdb_ThuRKT_persistent_spawning" } + +// Tortoise Missiles +addSpawnTableSingleEntry => { "tableName": "RocketBoxReplaces", "name": "WAN_TortRktAmmo", "weight": "#hdb_TortRKT_rbox_spawn_bias", "persists": "#hdb_TortRKT_persistent_spawning" } + +// .30-06 +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD3006BoxPickup", "weight": "#hdb_3006_box_spawn_bias", "persists": "#hdb_3006_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "RocketAmmoReplaces", "name": "HD3006BoxPickup", "weight": "#hdb_3006_box_spawn_bias", "persists": "#hdb_3006_persistent_spawning" } + +// .30-06 Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent3006", "weight": "#hdb_3006_casing_spawn_bias", "persists": "#hdb_3006_persistent_spawning" } + +// 4 Gauge Shells +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HD4GBAmmo", "weight": "#hdb_4gbs_shell_spawn_bias", "persists": "#hdb_4gbs_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HD4GBPickup", "weight": "#hdb_4gbs_shell_spawn_bias", "persists": "#hdb_4gbs_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "HD4GBBox", "weight": "#hdb_4gbs_shellbox_spawn_bias", "persists": "#hdb_4gbs_persistent_spawning" } + +// 4 Gauge Shell Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpent4GB", "weight": "#hdb_4gbs_casing_spawn_bias", "persists": "#hdb_4gbs_persistent_spawning" } + +// Birdshot +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDBirdshotShellAmmo", "weight": "#hdb_bird_shell_spawn_bias", "persists": "#hdb_bird_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "BirdshotShellPickup", "weight": "#hdb_bird_shell_spawn_bias", "persists": "#hdb_bird_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "BirdshotShellBoxPickup", "weight": "#hdb_bird_shellbox_spawn_bias", "persists": "#hdb_bird_persistent_spawning" } + +// Birdshot Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "HDSpentBirdshotShell", "weight": "#hdb_bird_casing_spawn_bias", "persists": "#hdb_bird_persistent_spawning" } + +// .300 Savage +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "Savage300Ammo", "weight": "#hdb_300savage_shell_spawn_bias", "persists": "#hdb_300savage_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellReplaces", "name": "HDSavage300Pickup", "weight": "#hdb_300savage_shell_spawn_bias", "persists": "#hdb_300savage_persistent_spawning" } +addSpawnTableSingleEntry => { "tableName": "ShellBoxReplaces", "name": "HDSavage300BoxPickup", "weight": "#hdb_300savage_shellbox_spawn_bias", "persists": "#hdb_300savage_persistent_spawning" } + +// .300 Savage Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "Savage300Brass", "weight": "#hdb_300savage_casing_spawn_bias", "persists": "#hdb_300savage_persistent_spawning" } + +// 7.62 Tokarev +addSpawnTableSingleEntry => { "tableName": "ClipBoxReplaces", "name": "HD762TokarevBoxPickup", "weight": "#hdb_7tokarev_box_spawn_bias", "persists": "#hdb_7tokarev_persistent_spawning" } + +// 7.62 Tokarev Casings +addSpawnTableSingleEntry => { "tableName": "HDCasingBits", "name": "TokarevBrass", "weight": "#hdb_7tokarev_casing_spawn_bias", "persists": "#hdb_7tokarev_persistent_spawning" } + + +// HDBL Ammo Associations +newAmmo => { "ammoName": "HDNDMLoose" } +newAmmo => { "ammoName": "HDSlugAmmo" } +newAmmo => { "ammoName": "HD500SWLightAmmo" } +newAmmo => { "ammoName": "HD500SWHeavyAmmo" } +newAmmo => { "ammoName": "HD50OMGAmmo" } +newAmmo => { "ammoName": "HD45ACPAmmo" } +newAmmo => { "ammoName": "HD10mAmmo" } +newAmmo => { "ammoName": "HD45LCAmmo" } +newAmmo => { "ammoName": "HDLLShellAmmo" } +newAmmo => { "ammoName": "HDExplosiveShellAmmo" } +newAmmo => { "ammoName": "HDGold45LCAmmo" } +newAmmo => { "ammoName": "HDFlareAmmo" } +newAmmo => { "ammoName": "HDBallAmmo" } +newAmmo => { "ammoName": "HD4GSAmmo" } +newAmmo => { "ammoName": "HD5mm_Ammo" } +newAmmo => { "ammoName": "HD6mmFlechetteAmmo" } +newAmmo => { "ammoName": "HD50AM_Ammo" } +newAmmo => { "ammoName": "HDAurochsAmmo" } +newAmmo => { "ammoName": "HD069BoreAmmo" } +newAmmo => { "ammoName": "TenMilBrass" } +newAmmo => { "ammoName": "Wan_ThuRKTAmmo" } +newAmmo => { "ammoName": "Wan_TortRKTAmmo" } +newAmmo => { "ammoName": "WAN_20mmGrenadeAmmo" } +newAmmo => { "ammoName": "ThirtyAughtSixAmmo" } +newAmmo => { "ammoName": "ThirtyAughtSixBrass" } +newAmmo => { "ammoName": "HD4GBAmmo" } +newAmmo => { "ammoName": "HDBirdshotShellAmmo" } +newAmmo => { "ammoName": "Savage300Ammo" } +newAmmo => { "ammoName": "HD762TokarevAmmo" } +newAmmo => { "ammoName": "TokarevBrass" } +newAmmo => { "ammoName": "Savage300Brass" } +newAmmo => { "ammoName": "HD_776BeltLink" } +newAmmo => { "ammoName": "HD_12mmBeltLink" } +newAmmo => { "ammoName": "HD_35mmBeltLink" } + + +// Merchant Store Entries +newMerchantStoreItem => { "enabled": "#hdm_enable_069bore", "type": "ammo", "category": "$MERCH_CAT_069BORE", "item": "HD069BoreAmmo", "amount": "36", "icon": "42BXA0", "displayName": "$MERCH_TAG_069BORE", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_069BORE" } +newMerchantStoreItem => { "enabled": "#hdm_enable_10mm", "type": "ammo", "category": "$MERCH_CAT_10MM", "item": "HD10mAmmo", "amount": "100", "icon": "BX10A0", "displayName": "$MERCH_TAG_10MM", "basePrice": "60", "flavorText": "$MERCH_FLAVOR_10MM" } +newMerchantStoreItem => { "enabled": "#hdm_enable_12gflare", "type": "ammo", "category": "$MERCH_CAT_12GFLARE", "item": "HDFlareAmmo", "amount": "20", "icon": "FLBXA0", "displayName": "$MERCH_TAG_12GFLARE", "basePrice": "25", "flavorText": "$MERCH_FLAVOR_12GFLARE" } +newMerchantStoreItem => { "enabled": "#hdm_enable_12gslug", "type": "ammo", "category": "$MERCH_CAT_12GSLUG", "item": "HDSlugAmmo", "amount": "20", "icon": "SLBXA0", "displayName": "$MERCH_TAG_12GSLUG", "basePrice": "40", "flavorText": "$MERCH_FLAVOR_12GSLUG" } +newMerchantStoreItem => { "enabled": "#hdm_enable_20mmgrenade", "type": "ammo", "category": "$MERCH_CAT_20MMGRENADE", "item": "WAN_20mmGrenadeAmmo", "amount": "6", "icon": "MA7GC0", "displayName": "$MERCH_TAG_20MMGRENADE", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_20MMGRENADE" } +newMerchantStoreItem => { "enabled": "#hdm_enable_3006", "type": "ammo", "category": "$MERCH_CAT_3006", "item": "ThirtyAughtSixAmmo", "amount": "40", "icon": "M1A1Y0", "displayName": "$MERCH_TAG_3006", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_3006" } +newMerchantStoreItem => { "enabled": "#hdm_enable_300savage", "type": "ammo", "category": "$MERCH_CAT_300SAVAGE", "item": "Savage300Ammo", "amount": "48", "icon": "S3BXA0", "displayName": "$MERCH_TAG_300SAVAGE", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_300SAVAGE" } +newMerchantStoreItem => { "enabled": "#hdm_enable_420frei", "type": "ammo", "category": "$MERCH_CAT_420FREI", "item": "HDAurochAmmo", "amount": "42", "icon": "420AA0", "displayName": "$MERCH_TAG_420FREI", "basePrice": "40", "flavorText": "$MERCH_FLAVOR_420FREI" } +newMerchantStoreItem => { "enabled": "#hdm_enable_45acp", "type": "ammo", "category": "$MERCH_CAT_45ACP", "item": "HD45ACPAmmo", "amount": "50", "icon": "45BXA0", "displayName": "$MERCH_TAG_45ACP", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_45ACP" } +newMerchantStoreItem => { "enabled": "#hdm_enable_45lc", "type": "ammo", "category": "$MERCH_CAT_45LC", "item": "HD45LCAmmo", "amount": "50", "icon": "45LBA0", "displayName": "$MERCH_TAG_45LC", "basePrice": "45", "flavorText": "$MERCH_FLAVOR_45LC" } +newMerchantStoreItem => { "enabled": "#hdm_enable_4gshell", "type": "ammo", "category": "$MERCH_CAT_4GSHELL", "item": "HD4GBAmmo", "amount": "25", "icon": "4GBXA0", "displayName": "$MERCH_TAG_4GSHELL", "basePrice": "500", "flavorText": "$MERCH_FLAVOR_4GSHELL" } +newMerchantStoreItem => { "enabled": "#hdm_enable_4gslug", "type": "ammo", "category": "$MERCH_CAT_4GSLUG", "item": "HD4GSAmmo", "amount": "1", "icon": "4GS1A0", "displayName": "$MERCH_TAG_4GSLUG", "basePrice": "20", "flavorText": "$MERCH_FLAVOR_4GSLUG" } +newMerchantStoreItem => { "enabled": "#hdm_enable_500swh", "type": "ammo", "category": "$MERCH_CAT_500SWH", "item": "HD500SWHeavyAmmo", "amount": "20", "icon": "5HBXA0", "displayName": "$MERCH_TAG_500SWH", "basePrice": "40", "flavorText": "$MERCH_FLAVOR_500SWH" } +newMerchantStoreItem => { "enabled": "#hdm_enable_500swl", "type": "ammo", "category": "$MERCH_CAT_500SWL", "item": "HD500SWLightAmmo", "amount": "40", "icon": "5LBXA0", "displayName": "$MERCH_TAG_500SWL", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_500SWL" } +newMerchantStoreItem => { "enabled": "#hdm_enable_50am", "type": "ammo", "category": "$MERCH_CAT_50AM", "item": "HD50AM_Ammo", "amount": "60", "icon": "50AMX0", "displayName": "$MERCH_TAG_50AM", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_50AM" } +newMerchantStoreItem => { "enabled": "#hdm_enable_50omg", "type": "ammo", "category": "$MERCH_CAT_50OMG", "item": "HD50OMG50OMGAmmo", "amount": "20", "icon": "OGBXA0", "displayName": "$MERCH_TAG_50OMG", "basePrice": "70", "flavorText": "$MERCH_FLAVOR_50OMG" } +newMerchantStoreItem => { "enabled": "#hdm_enable_5mmbr", "type": "ammo", "category": "$MERCH_CAT_5MMBR", "item": "HD5mm_Ammo", "amount": "160", "icon": "5MBXA0", "displayName": "$MERCH_TAG_5MMBR", "basePrice": "45", "flavorText": "$MERCH_FLAVOR_5MMBR" } +newMerchantStoreItem => { "enabled": "#hdm_enable_6mmflechette", "type": "ammo", "category": "$MERCH_CAT_6MMFLECHETTE", "item": "HD6mmFlechetteAmmo", "amount": "42", "icon": "ACRPK0", "displayName": "$MERCH_TAG_6MMFLECHETTE", "basePrice": "60", "flavorText": "$MERCH_FLAVOR_6MMFLECHETTE" } +newMerchantStoreItem => { "enabled": "#hdm_enable_762tokarev", "type": "ammo", "category": "$MERCH_CAT_762TOKAREV", "item": "HD762TokarevAmmo", "amount": "50", "icon": "T7BXA0", "displayName": "$MERCH_TAG_762TOKAREV", "basePrice": "50", "flavorText": "$MERCH_FLAVOR_762TOKAREV" } +newMerchantStoreItem => { "enabled": "#hdm_enable_birdshot", "type": "ammo", "category": "$MERCH_CAT_BIRDSHOT", "item": "HDBirdshotShellAmmo", "amount": "20", "icon": "BBOXA0", "displayName": "$MERCH_TAG_BIRDSHOT", "basePrice": "15", "flavorText": "$MERCH_FLAVOR_BIRDSHOT" } +newMerchantStoreItem => { "enabled": "#hdm_enable_g45lc", "type": "ammo", "category": "$MERCH_CAT_G45LC", "item": "HDGold45LCAmmo", "amount": "12", "icon": "GLBXA0", "displayName": "$MERCH_TAG_G45LC", "basePrice": "15", "flavorText": "$MERCH_FLAVOR_G45LC" } +newMerchantStoreItem => { "enabled": "#hdm_enable_leadball", "type": "ammo", "category": "$MERCH_CAT_LEADBALL", "item": "HDBallAmmo", "amount": "10", "icon": "BALLA0", "displayName": "$MERCH_TAG_LEADBALL", "basePrice": "15", "flavorText": "$MERCH_FLAVOR_LEADBALL" } +newMerchantStoreItem => { "enabled": "#hdm_enable_llshell", "type": "ammo", "category": "$MERCH_CAT_LLSHELL", "item": "HDLLShellAmmo", "amount": "20", "icon": "LLBXA0", "displayName": "$MERCH_TAG_LLSHELL", "basePrice": "35", "flavorText": "$MERCH_FLAVOR_LLSHELL" } +newMerchantStoreItem => { "enabled": "#hdm_enable_ndm", "type": "ammo", "category": "$MERCH_CAT_NDM", "item": "HDNDMLoose", "amount": "60", "icon": "NDMBA0", "displayName": "$MERCH_TAG_NDM", "basePrice": "45", "flavorText": "$MERCH_FLAVOR_NDM" } +newMerchantStoreItem => { "enabled": "#hdm_enable_thunderrocket", "type": "ammo", "category": "$MERCH_CAT_THUNDERROCKET", "item": "WAN_ThuRKTAmmo", "amount": "1", "icon": "THRKB0", "displayName": "$MERCH_TAG_THUNDERROCKET", "basePrice": "10", "flavorText": "$MERCH_FLAVOR_THUNDERROCKET" } +newMerchantStoreItem => { "enabled": "#hdm_enable_tortoiserocket", "type": "ammo", "category": "$MERCH_CAT_TORTOISEROCKET", "item": "WAN_TortRKTAmmo", "amount": "1", "icon": "TRTRB0", "displayName": "$MERCH_TAG_TORTOISEROCKET", "basePrice": "10", "flavorText": "$MERCH_FLAVOR_TORTOISEROCKET" } +newMerchantStoreItem => { "enabled": "#hdm_enable_xshell", "type": "ammo", "category": "$MERCH_CAT_XSHELL", "item": "HDExplosiveShellAmmo", "amount": "20", "icon": "XLBXA0", "displayName": "$MERCH_TAG_XSHELL", "basePrice": "45", "flavorText": "$MERCH_FLAVOR_XSHELL" } diff --git a/LANGUAGE b/LANGUAGE index c5d131e..d1a341c 100644 --- a/LANGUAGE +++ b/LANGUAGE @@ -128,3 +128,146 @@ PICKUP_35MMBELTLINKPILE="Picked up a pile of large belt links."; OB_20MM="%o was fragged by %k."; OB_WANROCKET="%o was fragged by %k."; + + +// Merchant Store Entries + +// .069 Bore Shell +MERCH_CAT_069BORE = "Joint Task Force"; +MERCH_TAG_069BORE = ".066 Bore Shell"; +MERCH_FLAVOR_069BORE = "These shotgun shells have undergone a strict weight-loss program!"; + +// .300 Savage +MERCH_CAT_300SAVAGE = "Joint Task Force"; +MERCH_TAG_300SAVAGE = ".300 Savage Rounds"; +MERCH_FLAVOR_300SAVAGE = "Like when that dude kicked the other dude into the pit."; + +// .30-06 +MERCH_CAT_3006 = "Joint Task Force"; +MERCH_TAG_3006 = ".30-06 Rounds"; +MERCH_FLAVOR_3006 = "For when you wanna ping ping."; + +// .420 Frei +MERCH_CAT_420FREI = "Joint Task Force"; +MERCH_TAG_420FREI = ".451 Frei"; +MERCH_FLAVOR_420FREI = "An antique cartridge. They seem a bit strange, don't they?"; + +// .45 ACP +MERCH_CAT_45ACP = "Joint Task Force"; +MERCH_TAG_45ACP = ".45 ACP"; +MERCH_FLAVOR_45ACP = "The stopping power on these is really incredible."; + +// .45 LC +MERCH_CAT_45LC = "Joint Task Force"; +MERCH_TAG_45LC = ".45 Long Colt Ammo"; +MERCH_FLAVOR_45LC = "Known as 'America's round'. They sure are a long way from home, though."; + +// .45 LC (Golden) +MERCH_CAT_G45LC = "Joint Task Force"; +MERCH_TAG_G45LC = "Golden .45 Long Colt Ammo"; +MERCH_FLAVOR_G45LC = "It's not about the money, it's about sending a message."; + +// .50 AE +MERCH_CAT_50AE = "Joint Task Force"; +MERCH_TAG_50AE = ".50 Action Express"; +MERCH_FLAVOR_50AE = "Ought to kill something in a single shot. If it doesn't, shoot again."; + +// .50 AM +MERCH_CAT_50AM = "Joint Task Force"; +MERCH_TAG_50AM = ".50 Action Mega"; +MERCH_FLAVOR_50AM = "Not to be confused with the similarly-named .50 Action Express."; + +// .50 OMG +MERCH_CAT_50OMG = "Joint Task Force"; +MERCH_TAG_50OMG = ".50 OMG"; +MERCH_FLAVOR_50OMG = "The one round that guarantees nothing will wallbang back at you."; + +// .500 S&W Heavy +MERCH_CAT_500SWH = "Joint Task Force"; +MERCH_TAG_500SWH = ".500 S&W Handloads"; +MERCH_FLAVOR_500SWH = "These ought to punch a hole."; + +// .500 S&W Light +MERCH_CAT_500SWL = "Joint Task Force"; +MERCH_TAG_500SWL = ".500 S&W"; +MERCH_FLAVOR_500SWL = "Much better than the peashooter .355, isn't it?"; + +// 10mm +MERCH_CAT_10MM = "Joint Task Force"; +MERCH_TAG_10MM = "10mm Ammo"; +MERCH_FLAVOR_10MM = "Because 10 is better than 9."; + +// 12ga Flares +MERCH_CAT_12GFLARE = "Joint Task Force"; +MERCH_TAG_12GFLARE = "Flare Gun Ammo"; +MERCH_FLAVOR_12GFLARE = "You're gonna paint the town red with these."; + +// 12ga Slug +MERCH_CAT_12GSLUG = "Joint Task Force"; +MERCH_TAG_12GSLUG = "Shotgun Slug"; +MERCH_FLAVOR_12GSLUG = "These aren't slimy like the others."; + +// 20mm Grenade +MERCH_CAT_20MMGRENADE = "Joint Task Force"; +MERCH_TAG_20MMGRENADE = "20mm Grenade"; +MERCH_FLAVOR_20MMGRENADE = "Smaller payload, just as big-uh boom."; + +// 4ga Shell +MERCH_CAT_4GSHELL = "Joint Task Force"; +MERCH_TAG_4GSHELL = "4 gauge 00 buckshot"; +MERCH_FLAVOR_4GSHELL = "That's a lotta shot fer yer buck, err shot."; + +// 4ga Slug +MERCH_CAT_4GSLUG = "Joint Task Force"; +MERCH_TAG_4GSLUG = "4 gauge saboted slug"; +MERCH_FLAVOR_4GSLUG = "That's a lotta slug fer yer, sabot-ed, slug? Nah that's not it."; + +// 5mm BR +MERCH_CAT_5MMBR = "Joint Task Force"; +MERCH_TAG_5MMBR = ".5x16mm Bumblebee Rimfire"; +MERCH_FLAVOR_5MMBR = "Oh no, not the bees... Not the bees! AAAAAHHHH!"; + +// 6mm Flechette +MERCH_CAT_6MMFLECHETTE = "Joint Task Force"; +MERCH_TAG_6MMFLECHETTE = "6x42mm SCF Flechette"; +MERCH_FLAVOR_6MMFLECHETTE = "These flechettes are almost as dangerous as lawn darts!"; + +// 7.62mm Tokarev +MERCH_CAT_762TOKAREV = "Joint Task Force"; +MERCH_TAG_762TOKAREV = "7.62 Tokarev Rounds"; +MERCH_FLAVOR_762TOKAREV = "I can't tell if this is for a handgun or a rifle..."; + +// Birdshot +MERCH_CAT_BIRDSHOT = "Joint Task Force"; +MERCH_TAG_BIRDSHOT = "Birdshot Shells"; +MERCH_FLAVOR_BIRDSHOT = "Goin' skeet shootin'?"; + +// Explosive Shells +MERCH_CAT_XSHELL = "Joint Task Force"; +MERCH_TAG_XSHELL = "Explosive Shells"; +MERCH_FLAVOR_XSHELL = "You wanna stay alive? Buy these from me."; + +// Lead Ball +MERCH_CAT_LEADBALL = "Joint Task Force"; +MERCH_TAG_LEADBALL = "Lead Ball"; +MERCH_FLAVOR_LEADBALL = "Make sure you pack it in good."; + +// Less-Lethal Shell +MERCH_CAT_LLSHELL = "Joint Task Force"; +MERCH_TAG_LLSHELL = "Less-Lethal Shells"; +MERCH_FLAVOR_LLSHELL = "I have no idea why anyone would want these, but I'll sell them if you're buying."; + +// Thunder Rocket +MERCH_CAT_THUNDERROCKET = "Joint Task Force"; +MERCH_TAG_THUNDERROCKET = "Thunder Rocket"; +MERCH_FLAVOR_THUNDERROCKET = "Sparky sparky boom, man!"; + +// Tortoise Rocket +MERCH_CAT_TORTOISEROCKET = "Joint Task Force"; +MERCH_TAG_TORTOISEROCKET = "Tortoise Rocket"; +MERCH_FLAVOR_TORTOISEROCKET = "It'll boom ya, it's the boomiest!"; + +// 9mm NDM +MERCH_CAT_NDM = "Joint Task Force"; +MERCH_TAG_NDM = "9mm Nail Driver Maximum"; +MERCH_FLAVOR_NDM = "You can only get these at nunneries for some reason."; \ No newline at end of file diff --git a/MAPINFO b/MAPINFO index 785a98c..2122e84 100644 --- a/MAPINFO +++ b/MAPINFO @@ -1,4 +1,4 @@ GameInfo { - AddEventHandlers = "HDBulletLibHandler", "HDBulletLibAmmoSpawner" + AddEventHandlers = "HDBulletLibHandler" } \ No newline at end of file diff --git a/MENUDEF b/MENUDEF index 114eef3..5dc494a 100644 --- a/MENUDEF +++ b/MENUDEF @@ -80,15 +80,15 @@ OptionMenu 500SW StaticText "" StaticText "Spawn Options", "purple" StaticText "Control the spawn rate of .500 S&W lights on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_500sw_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_500sw_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_500sw_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of .500 S&W heavies on Rocket Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_500sw_rocket_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_500sw_rocket_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_500sw_rocket_spawn_bias" StaticText "" StaticText "Control the spawn rate of .500 S&W casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_500sw_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_500sw_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_500sw_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .500 S&W from spawning in Ammo Boxes and Backpacks.", "purple" @@ -113,15 +113,15 @@ OptionMenu 12GaugeSlugs StaticText "" StaticText "Spawn Options", "purple" StaticText "Control the spawn rate of 12-Gauge Slugs on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_12gslug_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_12gslug_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_12gslug_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of 12-Gauge Slugs on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_12gslug_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_12gslug_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_12gslug_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of 12-Gauge Slug casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_12gslug_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_12gslug_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_12gslug_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 12 Gauge Slugs from spawning in Ammo Boxes and Backpacks.", "purple" @@ -145,11 +145,11 @@ OptionMenu 420Frei StaticText "" StaticText "Spawn Options", "purple" StaticText "Control the spawn rate of .451 Frei on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_420frei_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_420frei_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_420frei_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of .451 Frei casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_420frei_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_420frei_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_420frei_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .451 Frei from spawning in Ammo Boxes and Backpacks.", "purple" @@ -173,11 +173,11 @@ OptionMenu 069Bore StaticText "" StaticText "Spawn Options", "purple" StaticText "Control the spawn rate of .066 Bore on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_069bore_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_069bore_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_069bore_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of .066 Bore casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_069bore_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_069bore_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_069bore_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .066 Bore from spawning in Ammo Boxes and Backpacks.", "purple" @@ -201,11 +201,11 @@ OptionMenu 9mmNDM StaticText "" StaticText "Spawn Options", "purple" StaticText "Control the spawn rate of NDM on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_ndm_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_ndm_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_ndm_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of NDM casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_ndm_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_ndm_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_ndm_casing_spawn_bias" StaticText "" StaticText "Enable/Disable NDM from spawning in Ammo Boxes and Backpacks.", "purple" @@ -229,11 +229,11 @@ OptionMenu 50OMG StaticText "" StaticText "Spawn Options", "white" StaticText "Control the spawn rate of .50 OMG on Rocket Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_50omg_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_50omg_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_50omg_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of .50 OMG casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_50omg_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_50omg_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_50omg_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .50 OMG from spawning in Ammo Boxes and Backpacks.", "white" @@ -257,11 +257,11 @@ OptionMenu 45ACP StaticText "" StaticText "Spawn Options", "Purple" StaticText "Control the spawn rate of .45 ACP on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_45acp_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_45acp_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_45acp_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of .45 ACP casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_45acp_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_45acp_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_45acp_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .45 ACP from spawning in Ammo Boxes and Backpacks.", "purple" @@ -285,11 +285,11 @@ OptionMenu 10mmAuto StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of 10mm Auto on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_10mm_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_10mm_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_10mm_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of 10mm Auto casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_10mm_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_10mm_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_10mm_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 10mm Auto and its casings from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -314,12 +314,12 @@ OptionMenu 45LC StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of .45 LC on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_45lc_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_45lc_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_45lc_box_spawn_bias" StaticText "" /* StaticText "Control the spawn rate of 10mm Auto casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_45lc_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_45lc_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_45lc_casing_spawn_bias" StaticText "" */ @@ -344,12 +344,12 @@ OptionMenu Gold45LC StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of Gold .45 LC on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_g45lc_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_g45lc_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_g45lc_box_spawn_bias" StaticText "" /* StaticText "Control the spawn rate of 10mm Auto casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_g45lc_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_g45lc_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_g45lc_casing_spawn_bias" StaticText "" */ @@ -374,15 +374,15 @@ OptionMenu LessLethalShells StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of Less-Lethal Shells on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_LLS_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_LLS_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_LLS_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of Less-Lethal Shells on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_LLS_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_LLS_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_LLS_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of Less-Lethal Shell casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_LLS_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_LLS_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_LLS_casing_spawn_bias" StaticText "" StaticText "Enable/Disable Less-Lethal Shells from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -406,15 +406,15 @@ OptionMenu ExplosiveSlugs StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of Explosive Slug boxes on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_ESlug_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_ESlug_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_ESlug_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of Explosive Slugs on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_ESlug_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_ESlug_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_ESlug_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of Explosive Slug casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_ESlug_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_ESlug_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_ESlug_casing_spawn_bias" StaticText "" StaticText "Enable/Disable Explosive Slugs from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -438,11 +438,11 @@ OptionMenu FlareShells StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of Flare Shell Boxes on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_FShell_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_FShell_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_FShell_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of Flare Shells on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_FShell_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_FShell_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_FShell_shell_spawn_bias" StaticText "" StaticText "Enable/Disable Flare Shells from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -466,7 +466,7 @@ OptionMenu MusketBalls StaticText "" StaticText "Spawn Options", "Green" StaticText "Control the spawn rate of Musket Balls on Casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_MBall_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_MBall_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_MBall_casing_spawn_bias" StaticText "" StaticText "Enable/Disable Musket Balls from spawning in Ammo Boxes and Backpacks.", "Green" @@ -490,15 +490,15 @@ OptionMenu 4GSS StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of 4-Gauge Slugs on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_4gss_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_4gss_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_4gss_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of 4-Gauge Slugs on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_4gss_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_4gss_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_4gss_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of 4-Gauge Slug casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_4gss_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_4gss_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_4gss_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 4-Gauge Slugs from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -522,15 +522,15 @@ OptionMenu 4GaugeBuckshot StaticText "" StaticText "Spawn Options", "Purple" StaticText "Control the spawn rate of 4-Gauge Buckshot on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_4gbs_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_4gbs_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_4gbs_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of 4-Gauge Buckshot on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_4gbs_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_4gbs_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_4gbs_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of 4-Gauge Buckshot casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_4gbs_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_4gbs_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_4gbs_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 4-Gauge Buckshot from spawning in Ammo Boxes and Backpacks.", "Purple" @@ -554,11 +554,11 @@ OptionMenu 5mm StaticText "" StaticText "Spawn Options", "Blue" StaticText "Control the spawn rate of 5mm Bumblebee Rimfire on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_5mm_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_5mm_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_5mm_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of 5mm Bumblebee Rimfire casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_5mm_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_5mm_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_5mm_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 5mm Bumblebee Rimfire from spawning in Ammo Boxes and Backpacks.", "Blue" @@ -582,11 +582,11 @@ OptionMenu 50AM StaticText "" StaticText "Spawn Options", "Blue" StaticText "Control the spawn rate of .50 Action-Mega on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_50am_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_50am_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_50am_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of .50 Action-Mega casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_50am_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_50am_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_50am_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .50 Action-Mega from spawning in Ammo Boxes and Backpacks.", "Blue" @@ -610,11 +610,11 @@ OptionMenu 6mmF StaticText "" StaticText "Spawn Options", "Blue" StaticText "Control the spawn rate of 6mm Flechettes on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_6mm_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_6mm_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_6mm_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of 6mm Flechettes casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_6mm_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_6mm_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_6mm_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 6mm Flechettes from spawning in Ammo Boxes and Backpacks.", "Blue" @@ -638,7 +638,7 @@ OptionMenu 20mmG StaticText "" StaticText "Spawn Options", "Light Blue" StaticText "Control the spawn rate of 20mm Grenades on Rocket Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_20mm_rbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_20mm_rbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_20mm_rbox_spawn_bias" StaticText "" StaticText "Enable/Disable 20mm Grenades from spawning in Ammo Boxes and Backpacks.", "Light Blue" @@ -662,7 +662,7 @@ OptionMenu ThuRKT StaticText "" StaticText "Spawn Options", "Light Blue" StaticText "Control the spawn rate of Thunder Rockets on Rocket Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_ThuRKT_rbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_ThuRKT_rbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_ThuRKT_rbox_spawn_bias" StaticText "" StaticText "Enable/Disable Thunder Rockets from spawning in Ammo Boxes and Backpacks.", "Light Blue" @@ -686,7 +686,7 @@ OptionMenu TortRKT StaticText "" StaticText "Spawn Options", "Light Blue" StaticText "Control the spawn rate of Tortoise Rockets on Rocket Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_TortRKT_rbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_TortRKT_rbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_TortRKT_rbox_spawn_bias" StaticText "" StaticText "Enable/Disable Tortoise Rockets from spawning in Ammo Boxes and Backpacks.", "Light Blue" @@ -710,11 +710,11 @@ OptionMenu 3006 StaticText "" StaticText "Spawn Options", "Dark Green" StaticText "Control the spawn rate of .30-06 on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_3006_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_3006_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_3006_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of .30-06 casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_3006_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_3006_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_3006_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .30-06 and its casings from spawning in Ammo Boxes and Backpacks.", "Dark Green" @@ -739,15 +739,15 @@ OptionMenu Birdshot StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of Birdshot on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_bird_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_bird_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_bird_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of Birdshot on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_bird_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_bird_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_bird_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of Birdshot casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_bird_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_bird_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_bird_casing_spawn_bias" StaticText "" StaticText "Enable/Disable Birdshot from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -771,15 +771,15 @@ OptionMenu 300savage StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of .300 Savage on Shell Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_300savage_shellbox_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_300savage_shellbox_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_300savage_shellbox_spawn_bias" StaticText "" StaticText "Control the spawn rate of .300 Savage on Shells", "white" - ScaleSlider "Spawn Rate: ", "hdb_300savage_shell_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_300savage_shell_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_300savage_shell_spawn_bias" StaticText "" StaticText "Control the spawn rate of .300 Savage casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_300savage_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_300savage_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_300savage_casing_spawn_bias" StaticText "" StaticText "Enable/Disable .300 Savage and its casings from spawning in Ammo Boxes and Backpacks.", "Orange" @@ -804,11 +804,11 @@ OptionMenu 762Tokarev StaticText "" StaticText "Spawn Options", "Orange" StaticText "Control the spawn rate of 7.62 Tokarev on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_7Tokarev_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_7Tokarev_box_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_7Tokarev_box_spawn_bias" StaticText "" StaticText "Control the spawn rate of 7.62 Tokarev casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_7Tokarev_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + Slider "Spawn Rate: ", "hdb_7Tokarev_casing_spawn_bias", 0.0, 100, .01, 2 SafeCommand "Reset spawn options", "resetcvar hdb_7Tokarev_casing_spawn_bias" StaticText "" StaticText "Enable/Disable 7.62 Tokarev and its casings from spawning in Ammo Boxes and Backpacks.", "Orange" diff --git a/zscript/HDBulletLib/SpawnHandler.zsc b/zscript/HDBulletLib/SpawnHandler.zsc index bc4e369..4417059 100644 --- a/zscript/HDBulletLib/SpawnHandler.zsc +++ b/zscript/HDBulletLib/SpawnHandler.zsc @@ -107,531 +107,3 @@ class HDBulletLibHandler : EventHandler { return false; } } - -// Struct for ammo spawning information. -class HDBLRSpawnAmmo play { - // ID by string for spawner - string spawnName; - - // ID by string for spawnees - Array spawnReplaces; - - // Whether or not to persistently spawn. - bool isPersistent; - - bool replaceAmmo; - - string toString() { - - let replacements = "["; - - foreach (replacee : spawnReplaces) replacements = replacements..", "..replacee.toString(); - - replacements = replacements.."]"; - - return String.format("{ spawnName=%s, spawnReplaces=%s, isPersistent=%b, replaceAmmo=%b }", spawnName, replacements, isPersistent, replaceAmmo); - } -} - -class HDBLRSpawnAmmoEntry play { - string name; - int chance; - - string toString() { - return String.format("{ name=%s, chance=%s }", name, chance >= 0 ? "1/"..(chance + 1) : "never"); - } -} - -class HDBulletLibAmmoSpawner: EventHandler { - // List of persistent classes to completely ignore. - // This -should- mean this mod has no performance impact. - static const string blacklist[] = { - 'HDSmoke', - 'BloodTrail', - 'CheckPuff', - 'WallChunk', - 'HDBulletPuff', - 'HDFireballTail', - 'ReverseImpBallTail', - 'HDSmokeChunk', - 'ShieldSpark', - 'HDFlameRed', - 'HDMasterBlood', - 'PlantBit', - 'HDBulletActor', - 'HDLadderSection' - }; - - // List of ammo spawn associations. - // Used for ammo replacement on mapload. - array ammoSpawnList; - - bool cvarsAvailable; - - // appends an entry to ammoSpawnList; - void addAmmo(string name, Array replacees, bool persists, bool rep=true) { - - if (hd_debug) { - let msg = "Adding "..(persists ? "Persistent" : "Non-Persistent").." Replacement Entry for "..name..": ["; - - foreach (replacee : replacees) msg = msg..", "..replacee.toString(); - - console.printf(msg.."]"); - } - - // Creates a new struct; - HDBLRSpawnAmmo spawnee = HDBLRSpawnAmmo(new('HDBLRSpawnAmmo')); - - // Populates the struct with relevant information, - spawnee.spawnName = name; - spawnee.isPersistent = persists; - spawnee.replaceAmmo = rep; - spawnee.spawnreplaces.copy(replacees); - - // Pushes the finished struct to the array. - ammoSpawnList.push(spawnee); - } - - HDBLRSpawnAmmoEntry addAmmoEntry(string name, int chance) { - // Creates a new struct; - HDBLRSpawnAmmoEntry spawnee = HDBLRSpawnAmmoEntry(new('HDBLRSpawnAmmoEntry')); - spawnee.name = name; - spawnee.chance = chance; - return spawnee; - } - - // Populates the replacement and association arrays. - void init() { - - cvarsAvailable = true; - - // -------------------- - // Ammo spawn lists. - // -------------------- - - // 500 S&W Lights - Array spawns_500SWL; - spawns_500SWL.push(addAmmoEntry('ShellBoxRandom', hdb_500sw_shellbox_spawn_bias)); - addAmmo('HD500SWLightBoxPickup', spawns_500SWL, hdb_500sw_persistent_spawning); - // 500 S&W Heavies - Array spawns_500SWH; - spawns_500SWH.push(addAmmoEntry('RocketBoxRandom', hdb_500sw_rocket_spawn_bias)); - spawns_500SWH.push(addAmmoEntry('RocketAmmo', hdb_500sw_rocket_spawn_bias)); - addAmmo('HD500SWHeavyBoxPickup', spawns_500SWH, hdb_500sw_persistent_spawning); - // 500 S&W Casing - Array spawns_500SWC; - spawns_500SWC.push(addAmmoEntry('HDSpent9mm', hdb_500sw_casing_spawn_bias)); - spawns_500SWC.push(addAmmoEntry('HDSpent355', hdb_500sw_casing_spawn_bias)); - addAmmo('HDSpent500', spawns_500SWC, hdb_500sw_persistent_spawning); - - // 12 Gauge Slug Box - Array spawns_12gslugbox; - spawns_12gslugbox.push(addAmmoEntry('ShellBoxRandom', hdb_12gslug_shellbox_spawn_bias)); - addAmmo('SlugBoxPickup', spawns_12gslugbox, hdb_12gslug_persistent_spawning); - // 12 Gauge Slug Pickup - Array spawns_12gslugpick; - spawns_12gslugpick.push(addAmmoEntry('ShellRandom', hdb_12gslug_shell_spawn_bias)); - addAmmo('SlugPickup', spawns_12gslugpick, hdb_12gslug_persistent_spawning); - // 12 Gauge Slug Ammo - Array spawns_12gslugammo; - spawns_12gslugammo.push(addAmmoEntry('ShellRandom', hdb_12gslug_shell_spawn_bias)); - addAmmo('HDSlugAmmo', spawns_12gslugammo, hdb_12gslug_persistent_spawning); - // 12 Gauge Slug Casing - Array spawns_12gslugcase; - spawns_12gslugcase.push(addAmmoEntry('HDSpentShell', hdb_12gslug_casing_spawn_bias)); - addAmmo('HDSpentSlug', spawns_12gslugcase, hdb_12gslug_persistent_spawning); - - // .451 Frei Box Pickup - Array spawns_420freibox; - spawns_420freibox.push(addAmmoEntry('ClipBoxPickup', hdb_420frei_box_spawn_bias)); - addAmmo('HD420BoxPickup', spawns_420freibox, hdb_420frei_persistent_spawning); - // .451 Frei Casing - Array spawns_420freicasing; - spawns_420freicasing.push(addAmmoEntry('HDSpent9mm', hdb_420frei_casing_spawn_bias)); - spawns_420freicasing.push(addAmmoEntry('HDSpent355', hdb_420frei_casing_spawn_bias)); - addAmmo('HDSpent420', spawns_420freicasing, hdb_420frei_persistent_spawning); - - // .066 Bore Box Pickup - Array spawns_069borebox; - spawns_069borebox.push(addAmmoEntry('ShellBoxRandom', hdb_069bore_box_spawn_bias)); - addAmmo('HD069BoreBox', spawns_069borebox, hdb_069bore_persistent_spawning); - // .066 Bore Casing - Array spawns_069borecasing; - spawns_069borecasing.push(addAmmoEntry('HDSpentShell', hdb_069bore_casing_spawn_bias)); - addAmmo('HDSpent069Bore', spawns_069borecasing, hdb_069bore_persistent_spawning); - - // 9mm NDM Box Pickup - Array spawns_NDMbox; - spawns_NDMbox.push(addAmmoEntry('ClipBoxPickup', hdb_NDM_box_spawn_bias)); - addAmmo('HDNDMBoxPickup', spawns_NDMbox, hdb_NDM_persistent_spawning); - // 9mm NDM Casing - Array spawns_NDMcasing; - spawns_NDMcasing.push(addAmmoEntry('HDSpent9mm', hdb_NDM_casing_spawn_bias)); - spawns_NDMcasing.push(addAmmoEntry('HDSpent355', hdb_NDM_casing_spawn_bias)); - addAmmo('HDSpentNDM', spawns_NDMcasing, hdb_NDM_persistent_spawning); - - // .50 OMG Box Pickup - Array spawns_50omgbox; - spawns_50omgbox.push(addAmmoEntry('ClipBoxPickup', hdb_50omg_box_spawn_bias)); - spawns_50omgbox.push(addAmmoEntry('RocketBoxRandom', hdb_50omg_box_spawn_bias)); - addAmmo('HD50OMGBoxPickup', spawns_50omgbox, hdb_50omg_persistent_spawning); - // .50 OMG Casing - Array spawns_50omgcasing; - spawns_50omgcasing.push(addAmmoEntry('HDCasingBits', hdb_50omg_casing_spawn_bias)); - addAmmo('HDSpent50OMG', spawns_50omgcasing, hdb_50omg_persistent_spawning); - - // .45 ACP Box Pickup - Array spawns_45acpbox; - spawns_45acpbox.push(addAmmoEntry('ClipBoxPickup', hdb_45acp_box_spawn_bias)); - addAmmo('HD45ACPBoxPickup', spawns_45acpbox, hdb_45acp_persistent_spawning); - // .45 ACP Casing - Array spawns_45acpcasing; - spawns_45acpcasing.push(addAmmoEntry('HDSpent9mm', hdb_45acp_casing_spawn_bias)); - addAmmo('HDSpent45ACP', spawns_45acpcasing, hdb_45acp_persistent_spawning); - - // 10mm Box Pickup - Array spawns_10mmBox; - spawns_10mmBox.push(addAmmoEntry('ClipBoxPickup', hdb_10mm_box_spawn_bias)); - addAmmo('HD10mBoxPickup', spawns_10mmBox, hdb_10mm_persistent_spawning); - // 10mm Casing - Array spawns_10mmBrass; - spawns_10mmBrass.push(addAmmoEntry('HDSpent9mm', hdb_10mm_casing_spawn_bias)); - spawns_10mmBrass.push(addAmmoEntry('HDSpent355', hdb_10mm_casing_spawn_bias)); - addAmmo('HDSpent10mm', spawns_10mmBrass, hdb_10mm_persistent_spawning); - - // .45 LC Box Pickup - Array spawns_45lcbox; - spawns_45lcbox.push(addAmmoEntry('ClipBoxPickup', hdb_45lc_box_spawn_bias)); - addAmmo('HD45LCBoxPickup', spawns_45lcbox, hdb_45lc_persistent_spawning); - // .45 LC Casing - Array spawns_45lccasing; - spawns_45lccasing.push(addAmmoEntry('HDSpent355', hdb_45lc_casing_spawn_bias)); - addAmmo('HDSpent45LC', spawns_45lccasing, hdb_45lc_persistent_spawning); - - // Gold .45 LC Box Pickup - Array spawns_g45lcbox; - spawns_g45lcbox.push(addAmmoEntry('ClipBoxPickup', hdb_g45lc_box_spawn_bias)); - addAmmo('HDGold45LCBoxPickup', spawns_g45lcbox, hdb_g45lc_persistent_spawning); - // Gold .45 LC Casing - Array spawns_g45lccasing; - spawns_g45lccasing.push(addAmmoEntry('HDSpent355', hdb_g45lc_casing_spawn_bias)); - addAmmo('HDSpentGold45LC', spawns_g45lccasing, hdb_g45lc_persistent_spawning); - - // Less-Lethal Shell Box - Array spawns_llsbox; - spawns_llsbox.push(addAmmoEntry('ShellBoxRandom', hdb_LLS_shellbox_spawn_bias)); - addAmmo('LLShellBoxPickup', spawns_llsbox, hdb_LLS_persistent_spawning); - // Less-Lethal Shell Pickup - Array spawns_llspickup; - spawns_llspickup.push(addAmmoEntry('ShellRandom', hdb_LLS_shell_spawn_bias)); - addAmmo('LLShellPickup', spawns_llspickup, hdb_LLS_persistent_spawning); - // Less-Lethal Shell Ammo - Array spawns_llsammo; - spawns_llsammo.push(addAmmoEntry('ShellRandom', hdb_LLS_shell_spawn_bias)); - addAmmo('HDLLShellAmmo', spawns_llsammo, hdb_LLS_persistent_spawning); - // Less-Lethal Shell Casing - Array spawns_llscasing; - spawns_llscasing.push(addAmmoEntry('HDSpentShell', hdb_LLS_casing_spawn_bias)); - addAmmo('HDLLSpentShell', spawns_llscasing, hdb_LLS_persistent_spawning); - - // Explosive Slug Box - Array spawns_eslugbox; - spawns_eslugbox.push(addAmmoEntry('ShellBoxRandom', hdb_ESlug_shellbox_spawn_bias)); - addAmmo('ExplosiveShellBoxPickup', spawns_eslugbox, hdb_ESlug_persistent_spawning); - // Explosive Slug Pickup - Array spawns_elugpickup; - spawns_elugpickup.push(addAmmoEntry('ShellRandom', hdb_ESlug_shell_spawn_bias)); - addAmmo('ExplosiveShellPickup', spawns_elugpickup, hdb_ESlug_persistent_spawning); - // Explosive Slug Ammo - Array spawns_eslugammo; - spawns_eslugammo.push(addAmmoEntry('ShellRandom', hdb_ESlug_shell_spawn_bias)); - addAmmo('HDExplosiveShellAmmo', spawns_eslugammo, hdb_ESlug_persistent_spawning); - // Explosive Slug Casing - Array spawns_eslugcasing; - spawns_eslugcasing.push(addAmmoEntry('HDSpentShell', hdb_ESlug_casing_spawn_bias)); - addAmmo('HDSpentExplosiveShell', spawns_eslugcasing, hdb_ESlug_persistent_spawning); - - // Flare Shell Box - Array spawns_fshellbox; - spawns_fshellbox.push(addAmmoEntry('ShellBoxRandom', hdb_FShell_shellbox_spawn_bias)); - addAmmo('FlareShellBoxPickup', spawns_fshellbox, hdb_FShell_persistent_spawning); - // Flare Shell Pickup - Array spawns_fshellpickup; - spawns_fshellpickup.push(addAmmoEntry('ShellRandom', hdb_FShell_shell_spawn_bias)); - addAmmo('FlareShellPickup', spawns_fshellpickup, hdb_FShell_persistent_spawning); - // Flare Shell Ammo - Array spawns_fshellammo; - spawns_fshellammo.push(addAmmoEntry('ShellRandom', hdb_FShell_shell_spawn_bias)); - addAmmo('HDFlareAmmo', spawns_fshellammo, hdb_FShell_persistent_spawning); - - // .56 Caliber Musket Ball - Array spawns_mball; - spawns_mball.push(addAmmoEntry('HDSpent9mm', hdb_MBall_casing_spawn_bias)); - spawns_mball.push(addAmmoEntry('HDSpent355', hdb_MBall_casing_spawn_bias)); - spawns_mball.push(addAmmoEntry('HDSpentShell', hdb_MBall_casing_spawn_bias)); - addAmmo('HDBallAmmo', spawns_mball, hdb_MBall_persistent_spawning); - - // 4-Gauge Saboted Slug Box - Array spawns_4gssbox; - spawns_4gssbox.push(addAmmoEntry('ShellBoxRandom', hdb_4gss_shellbox_spawn_bias)); - addAmmo('HD4GSSpawn', spawns_4gssbox, hdb_4gss_persistent_spawning); - // 4-Gauge Saboted Slug Pickup - Array spawns_4gsspickup; - spawns_4gsspickup.push(addAmmoEntry('ShellRandom', hdb_4gss_shell_spawn_bias)); - addAmmo('HDFumbled4GS', spawns_4gsspickup, hdb_4gss_persistent_spawning); - // 4-Gauge Saboted Slug Ammo - Array spawns_4gssammo; - spawns_4gssammo.push(addAmmoEntry('ShellRandom', hdb_4gss_shell_spawn_bias)); - addAmmo('HD4GSAmmo', spawns_4gssammo, hdb_4gss_persistent_spawning); - // 4-Gauge Saboted Slug Casing - Array spawns_4gsscasing; - spawns_4gsscasing.push(addAmmoEntry('HDSpentShell', hdb_4gss_casing_spawn_bias)); - addAmmo('HDSpent4GS', spawns_4gsscasing, hdb_4gss_persistent_spawning); - - // 5mm Bumblebee Rimfire Box Pickup - Array spawns_5mmbox; - spawns_5mmbox.push(addAmmoEntry('ClipBoxPickup', hdb_5mm_box_spawn_bias)); - addAmmo('PB_5mmBoxPickup', spawns_5mmbox, hdb_5mm_persistent_spawning); - // 5mm Bumblebee Rimfire Casing - Array spawns_5mmcasing; - spawns_5mmcasing.push(addAmmoEntry('HDSpent9mm', hdb_5mm_casing_spawn_bias)); - addAmmo('HDSpent5mmMR', spawns_5mmcasing, hdb_5mm_persistent_spawning); - - // .50 Action Mega Box Pickup - Array spawns_50ambox; - spawns_50ambox.push(addAmmoEntry('ClipBoxPickup', hdb_50am_box_spawn_bias)); - addAmmo('PB_50AMBoxPickup', spawns_50ambox, hdb_50am_persistent_spawning); - // .50 Action Mega Casing - Array spawns_50amcasing; - spawns_50amcasing.push(addAmmoEntry('HDSpent9mm', hdb_50am_casing_spawn_bias)); - spawns_50amcasing.push(addAmmoEntry('HDSpent355', hdb_50am_casing_spawn_bias)); - addAmmo('HDSpent50AM', spawns_50amcasing, hdb_50am_persistent_spawning); - - // 6mm Flechette Box Pickup - Array spawns_6mmBox; - spawns_6mmBox.push(addAmmoEntry('ClipBoxPickup', hdb_6mm_box_spawn_bias)); - addAmmo('HD6mmFlechetteBoxPickup', spawns_6mmBox, hdb_6mm_persistent_spawning); - // 6mm Flechette Casing - Array spawns_6mmcasing; - spawns_6mmcasing.push(addAmmoEntry('HDSpent9mm', hdb_6mm_casing_spawn_bias)); - addAmmo('HDSpent6mmFlechette', spawns_6mmcasing, hdb_6mm_persistent_spawning); - - // 20mm Grenade Ammo - Array spawns_20mmgrenades; - spawns_20mmgrenades.push(addAmmoEntry('RocketBoxRandom', hdb_20mm_rbox_spawn_bias)); - addAmmo('WAN_20mmGrenadeBox', spawns_20mmgrenades, hdb_20mm_persistent_spawning); - - // Thunder Rockets - Array spawns_thunderrockets; - spawns_thunderrockets.push(addAmmoEntry('RocketBoxRandom', hdb_ThuRKT_rbox_spawn_bias)); - addAmmo('WAN_ThuRKTAmmo', spawns_thunderrockets, hdb_ThuRKT_persistent_spawning); - - // Tortoise Missiles - Array spawns_tortrockets; - spawns_tortrockets.push(addAmmoEntry('RocketBoxRandom', hdb_TortRKT_rbox_spawn_bias)); - addAmmo('Wan_TortRktAmmo', spawns_tortrockets, hdb_TortRKT_persistent_spawning); - - // .30-06 Box Pickup - Array spawns_3006box; - spawns_3006box.push(addAmmoEntry('ClipBoxPickup', hdb_3006_box_spawn_bias)); - spawns_3006box.push(addAmmoEntry('RocketAmmo', hdb_3006_box_spawn_bias)); - addAmmo('HD3006BoxPickup', spawns_3006box, hdb_3006_persistent_spawning); - // .30-06 Casing/Brass - Array spawns_3006casing; - spawns_3006casing.push(addAmmoEntry('HDCasingBits', hdb_3006_casing_spawn_bias)); - addAmmo('HDSpent3006', spawns_3006casing, hdb_3006_persistent_spawning); - - // 4-Gauge Buckshot Box - Array spawns_4gbsbox; - spawns_4gbsbox.push(addAmmoEntry('ShellBoxRandom', hdb_4gbs_shellbox_spawn_bias)); - addAmmo('HD4GBBox', spawns_4gbsbox, hdb_4gbs_persistent_spawning); - // 4-Gauge Buckshot Pickup - Array spawns_4gbspickup; - spawns_4gbspickup.push(addAmmoEntry('ShellRandom', hdb_4gbs_shell_spawn_bias)); - addAmmo('HD4GBPickup', spawns_4gbspickup, hdb_4gbs_persistent_spawning); - // 4-Gauge Buckshot Ammo - Array spawns_4gbsammo; - spawns_4gbsammo.push(addAmmoEntry('ShellRandom', hdb_4gbs_shell_spawn_bias)); - addAmmo('HD4GBAmmo', spawns_4gbsammo, hdb_4gbs_persistent_spawning); - // 4-Gauge Buckshot Casing - Array spawns_4gbscasing; - spawns_4gbscasing.push(addAmmoEntry('HDSpentShell', hdb_4gbs_casing_spawn_bias)); - addAmmo('HDSpent4GB', spawns_4gbscasing, hdb_4gbs_persistent_spawning); - - // Birdshot Box - Array spawns_birdbox; - spawns_birdbox.push(addAmmoEntry('ShellBoxRandom', hdb_bird_shellbox_spawn_bias)); - addAmmo('BirdshotShellBoxPickup', spawns_birdbox, hdb_bird_persistent_spawning); - // Birdshot Pickup - Array spawns_birdpickup; - spawns_birdpickup.push(addAmmoEntry('ShellRandom', hdb_bird_shell_spawn_bias)); - addAmmo('BirdshotShellPickup', spawns_birdpickup, hdb_bird_persistent_spawning); - // Birdshot Ammo - Array spawns_birdammo; - spawns_birdammo.push(addAmmoEntry('ShellRandom', hdb_bird_shell_spawn_bias)); - addAmmo('HDBirdshotShellAmmo', spawns_birdammo, hdb_bird_persistent_spawning); - // Birdshot Casing - Array spawns_birdcasing; - spawns_birdcasing.push(addAmmoEntry('HDSpentShell', hdb_bird_casing_spawn_bias)); - addAmmo('HDSpentBirdshotShell', spawns_birdcasing, hdb_bird_persistent_spawning); - - // .300 Savage Box Pickup - Array spawns_300savagebox; - spawns_300savagebox.push(addAmmoEntry('ShellBoxRandom', hdb_300savage_shellbox_spawn_bias)); - addAmmo('HDSavage300BoxPickup', spawns_300savagebox, hdb_300savage_persistent_spawning); - // .300 Savage Pickup - Array spawns_300savagepickup; - spawns_300savagepickup.push(addAmmoEntry('ShellRandom', hdb_300savage_shell_spawn_bias)); - addAmmo('HDSavage300Pickup', spawns_300savagepickup, hdb_300savage_persistent_spawning); - // .300 Savage Ammo - Array spawns_300savageammo; - spawns_300savageammo.push(addAmmoEntry('ShellRandom', hdb_300savage_shell_spawn_bias)); - addAmmo('Savage300Ammo', spawns_300savageammo, hdb_300savage_persistent_spawning); - // .300 Savage Casing - Array spawns_300savage_casing; - spawns_300savage_casing.push(addAmmoEntry('HDCasingBits', hdb_300savage_casing_spawn_bias)); - addAmmo('Savage300Brass', spawns_300savage_casing, hdb_300savage_persistent_spawning); - - // 7.62 Tokarev Box Pickup - Array spawns_7Tokarev_Box; - spawns_7Tokarev_Box.push(addAmmoEntry('ClipBoxPickup', hdb_7tokarev_box_spawn_bias)); - addAmmo('HD762TokarevBoxPickup', spawns_7Tokarev_Box, hdb_7tokarev_persistent_spawning); - // 7.62 Tokarev Casing - Array spawns_7Tokarev_Brass; - spawns_7Tokarev_Brass.push(addAmmoEntry('HDSpent9mm', hdb_7tokarev_casing_spawn_bias)); - addAmmo('TokarevBrass', spawns_7Tokarev_Brass, hdb_7tokarev_persistent_spawning); - } - - // Random stuff, stores it and forces negative values just to be 0. - bool giveRandom(int chance) { - if (chance > -1) { - let result = random(0, chance); - - if (hd_debug) console.printf("Rolled a "..(result + 1).." out of "..(chance + 1)); - - return result == 0; - } - - return false; - } - - // Tries to replace the item during spawning. - bool tryReplaceAmmo(ReplaceEvent e, string spawnName, int chance) { - if (giveRandom(chance)) { - if (hd_debug) console.printf(e.replacee.getClassName().." -> "..spawnName); - - e.replacement = spawnName; - - return true; - } - - return false; - } - - // Tries to create the ammunition via random spawning. - bool tryCreateAmmo(Actor thing, string spawnName, int chance) { - if (giveRandom(chance)) { - if (hd_debug) console.printf(thing.getClassName().." + "..spawnName); - - Actor.Spawn(spawnName, thing.pos); - - return true; - } - - return false; - } - - override void worldLoaded(WorldEvent e) { - - // Populates the main arrays if they haven't been already. - if (!cvarsAvailable) init(); - } - - override void checkReplacement(ReplaceEvent e) { - - // Populates the main arrays if they haven't been already. - if (!cvarsAvailable) init(); - - // If there's nothing to replace or if the replacement is final, quit. - if (!e.replacee || e.isFinal) return; - - // If thing being replaced is blacklisted, quit. - foreach (bl : blacklist) if (e.replacee is bl) return; - - string candidateName = e.replacee.getClassName(); - - // If current map is Range, quit. - if (level.MapName == 'RANGE') return; - - handleAmmoReplacements(e, candidateName); - } - - override void worldThingSpawned(WorldEvent e) { - - // Populates the main arrays if they haven't been already. - if (!cvarsAvailable) init(); - - // If thing spawned doesn't exist, quit - if (!e.thing) return; - - // If thing spawned is blacklisted, quit - foreach (bl : blacklist) if (e.thing is bl) return; - - string candidateName = e.thing.getClassName(); - - // Pointers for specific classes. - let ammo = HDAmmo(e.thing); - - // If the current map is Range, quit. - if (level.MapName == 'RANGE') return; - - handleAmmoSpawns(e.thing, ammo, candidateName); - } - - private void handleAmmoReplacements(ReplaceEvent e, string candidateName) { - - // Checks if the level has been loaded more than 1 tic. - bool prespawn = !(level.maptime > 1); - - // Iterates through the list of ammo candidates for e.replacee. - foreach (ammoSpawn : ammoSpawnList) { - - if ((prespawn || ammoSpawn.isPersistent) && ammoSpawn.replaceAmmo) { - foreach (spawnReplace : ammoSpawn.spawnReplaces) { - if (spawnReplace.name ~== candidateName) { - if (hd_debug) console.printf("Attempting to replace "..candidateName.." with "..ammoSpawn.spawnName.."..."); - - if (tryReplaceAmmo(e, ammoSpawn.spawnName, spawnReplace.chance)) return; - } - } - } - } - } - - private void handleAmmoSpawns(Actor thing, HDAmmo ammo, string candidateName) { - - // Checks if the level has been loaded more than 1 tic. - bool prespawn = !(level.maptime > 1); - - // Iterates through the list of item candidates for e.thing. - foreach (ammoSpawn : ammoSpawnList) { - - // if an item is owned or is an ammo (doesn't retain owner ptr), - // do not replace it. - let item = Inventory(thing); - if ( - (prespawn || ammoSpawn.isPersistent) - && (!(item && item.owner) && prespawn) - && !ammoSpawn.replaceAmmo - ) { - foreach (spawnReplace : ammoSpawn.spawnReplaces) { - if (spawnReplace.name ~== candidateName) { - if (hd_debug) console.printf("Attempting to spawn "..ammoSpawn.spawnName.." with "..candidateName.."..."); - - if (tryCreateAmmo(thing, ammoSpawn.spawnName, spawnReplace.chance)) return; - } - } - } - } - } -}