From 8e92eeef702f16982e0e535a89847a2bbeee562f Mon Sep 17 00:00:00 2001 From: Michael Fabian 'Xaymar' Dirks Date: Thu, 5 Jul 2018 03:49:24 +0200 Subject: [PATCH] proxy: Add proxy gamemode This gamemode is a simple proxy to allow the servers to be listed as "Prop Hunt" (using 'gamemode prop_hunt') while in reality playing "Prop Hunt Extended". This is primarily intended for servers where the barebone Prop Hunt configuration is active. --- proxy/addon.json | 7 + .../gamemodes/prop_hunt/gamemode/cl_init.lua | 25 ++ proxy/gamemodes/prop_hunt/gamemode/init.lua | 27 ++ .../gamemodes/prop_hunt/gamemode/sh_init.lua | 37 ++ proxy/gamemodes/prop_hunt/prop_hunt.txt | 401 ++++++++++++++++++ proxy_package.bat | 4 + proxy_release.bat | 4 + 7 files changed, 505 insertions(+) create mode 100644 proxy/addon.json create mode 100644 proxy/gamemodes/prop_hunt/gamemode/cl_init.lua create mode 100644 proxy/gamemodes/prop_hunt/gamemode/init.lua create mode 100644 proxy/gamemodes/prop_hunt/gamemode/sh_init.lua create mode 100644 proxy/gamemodes/prop_hunt/prop_hunt.txt create mode 100644 proxy_package.bat create mode 100644 proxy_release.bat diff --git a/proxy/addon.json b/proxy/addon.json new file mode 100644 index 0000000..c905a72 --- /dev/null +++ b/proxy/addon.json @@ -0,0 +1,7 @@ +{ + "title" : "Prop Hunt Extended (Proxy Gamemode)", + "type" : "gamemode", + "tags" : [ ], + "ignore" : [ + ] +} \ No newline at end of file diff --git a/proxy/gamemodes/prop_hunt/gamemode/cl_init.lua b/proxy/gamemodes/prop_hunt/gamemode/cl_init.lua new file mode 100644 index 0000000..908adf8 --- /dev/null +++ b/proxy/gamemodes/prop_hunt/gamemode/cl_init.lua @@ -0,0 +1,25 @@ +--[[ + The MIT License (MIT) + + Copyright (c) 2015 Xaymar + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +--]] + +include("sh_init.lua") \ No newline at end of file diff --git a/proxy/gamemodes/prop_hunt/gamemode/init.lua b/proxy/gamemodes/prop_hunt/gamemode/init.lua new file mode 100644 index 0000000..4b711a1 --- /dev/null +++ b/proxy/gamemodes/prop_hunt/gamemode/init.lua @@ -0,0 +1,27 @@ +--[[ + The MIT License (MIT) + + Copyright (c) 2015 Xaymar + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +--]] + +AddCSLuaFile("sh_init.lua") +AddCSLuaFile("cl_init.lua") +include "sh_init.lua" \ No newline at end of file diff --git a/proxy/gamemodes/prop_hunt/gamemode/sh_init.lua b/proxy/gamemodes/prop_hunt/gamemode/sh_init.lua new file mode 100644 index 0000000..c5cd2a1 --- /dev/null +++ b/proxy/gamemodes/prop_hunt/gamemode/sh_init.lua @@ -0,0 +1,37 @@ +--[[ + The MIT License (MIT) + + Copyright (c) 2015 Xaymar + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +--]] + +-- ------------------------------------------------------------------------- -- +--! Gamemode Information +-- ------------------------------------------------------------------------- -- +GM.Name = "Prop Hunt Extended" +GM.Author = "Michael Fabian 'Xaymar' Dirks" +GM.Email = "info@xaymar.com" +GM.Website = "http://xaymar.com/" + +GM.TeamBased = true +GM.AllowAutoTeam = true +GM.SecondsBetweenTeamSwitches = 10 + +DeriveGamemode("prophuntextended") \ No newline at end of file diff --git a/proxy/gamemodes/prop_hunt/prop_hunt.txt b/proxy/gamemodes/prop_hunt/prop_hunt.txt new file mode 100644 index 0000000..bbbadcb --- /dev/null +++ b/proxy/gamemodes/prop_hunt/prop_hunt.txt @@ -0,0 +1,401 @@ +"prop_hunt" +{ + "base" "prophuntextended" + "title" "Prop Hunt Extended" + "maps" "^ph_" + "menusystem" "1" + "workshopid" "468149739" + + "settings" + { + // Debug Settings + 1 + { + "name" "ph_debug" + "text" "Enable Debug Mode" + "type" "CheckBox" + "default" "0" + "help" "Prop Hunt: Enable Debug Mode" + } + + 2 + { + "name" "ph_debug_log" + "text" "Enable Debug Logging" + "type" "CheckBox" + "default" "1" + "help" "Prop Hunt: Enable Debug Logging" + } + + // Basic Settings + 100 + { + "name" "ph_gametype" + "text" "Game Type to use" + "type" "Numeric" + "default" "0" + "help" "Prop Hunt: Which Game Type should be played?" + } + 101 + { + "name" "mp_timelimit" + "text" "Map Time Limit" + "type" "Numeric" + "default" "0" + "help" "Map Time Limit (in Minutes)" + } + 102 + { + "name" "mp_friendlyfire" + "text" "Friendly fire" + "type" "Numeric" + "default" "0" + "help" "Allow friendly fire? (0 = No, 1 = Yes, 2 = Reflect)" + } + + // Round Settings + 200 + { + "name" "ph_round_limit" + "text" "Maximum Rounds Played" + "type" "Numeric" + "default" "10" + "help" "Round Manager: Maximum Rounds to Play on a single Map" + } + 201 + { + "name" "ph_round_timelimit" + "text" "Time Limit per Round" + "type" "Numeric" + "default" "180" + "help" "Round Manager: Time Limit per Round (in Seconds)" + } + 202 + { + "name" "ph_round_blindtime" + "text" "Seeker Blind time per Round" + "type" "Numeric" + "default" "-30" + "help" "Round Manager: Blind Time for Seekers (in Seconds, positive takes away from ph_round_timelimit, negative adds extra time to ph_round_timelimit)" + } + + // Team Settings + 300 + { + "name" "ph_teams_randomize" + "text" "Randomize Teams" + "type" "CheckBox" + "default" "1" + "help" "Teams: Randomize Teams instead of swapping each round" + } + 301 + { + "name" "ph_teams_weighted" + "text" "Randomize with weighted Score" + "type" "CheckBox" + "default" "1" + "help" "Teams: Use Weighted Randomization" + } + 302 + { + "name" "ph_teams_seekerpct" + "text" "Pct of Pl. becoming Seeker" + "type" "Numeric" + "default" "25" + "help" "Teams: Initial percentage of Seekers in Dead Hunt Game Type" + } + + // Seeker Settings + 400 + { + "name" "ph_seeker_health" + "text" "Seeker Health" + "type" "Numeric" + "default" "100" + "help" "Seekers: Initial Health" + } + 401 + { + "name" "ph_seeker_health_max" + "text" "Seeker Max Health" + "type" "Numeric" + "default" "100" + "help" "Seekers: Maximum Health" + } + 402 + { + "name" "ph_seeker_health_bonus" + "text" "Seeker Health Kill-Bonus" + "type" "Numeric" + "default" "20" + "help" "Seekers: Health Bonus per Kill" + } + 403 + { + "name" "ph_seeker_health_penalty" + "text" "Seeker Health Penalty" + "type" "Numeric" + "default" "5" + "help" "Seekers: Health Penalty per wrong Shot" + } + 404 + { + "name" "ph_seeker_weapons" + "text" "Seeker Weapons" + "type" "Text" + "default" "weapon_crowbar,weapon_pistol,weapon_ph_smg,weapon_shotgun" + "help" "Seekers: Initial Weapons (Weapon,Weapon,...)" + } + 405 + { + "name" "ph_seeker_ammo" + "text" "Seeker Ammo" + "type" "Text" + "default" "Pistol:100,SMG1:300,SMG1_Grenade:1,Buckshot:64" + "help" "Seekers: Initial Ammo (Ammo:Amount,Ammo:Amount,...)" + } + 406 + { + "name" "ph_seeker_walk_speed" + "text" "Seeker Walk Speed" + "type" "Numeric" + "default" "250" + "help" "Seekers: Walk Speed" + } + 407 + { + "name" "ph_seeker_sprint" + "text" "Seeker Sprint Allowed" + "type" "CheckBox" + "default" "1" + "help" "Seekers: Allow Sprinting" + } + 408 + { + "name" "ph_seeker_sprint_speed" + "text" "Seeker Sprint Speed" + "type" "Numeric" + "default" "500" + "help" "Seekers: Sprint Speed" + } + 409 + { + "name" "ph_seeker_jump_power" + "text" "Seeker Jump Power" + "type" "Numeric" + "default" "200" + "help" "Seekers: Jump Power" + } + + // Hider Settings + 500 + { + "name" "ph_hider_health" + "text" "Hider Health" + "type" "Numeric" + "default" "100" + "help" "Hiders: Initial Health" + } + 501 + { + "name" "ph_hider_health_max" + "text" "Hider Max Health" + "type" "Numeric" + "default" "100" + "help" "Hiders: Maximum Health" + } + 502 + { + "name" "ph_hider_health_scaling" + "text" "Hider Enable Health Scaling" + "type" "CheckBox" + "default" "1" + "help" "Hiders: Enable Health Scaling" + } + 503 + { + "name" "ph_hider_health_scaling_max" + "text" "Hider Scaled Max Health" + "type" "Numeric" + "default" "200" + "help" "Hiders: Maximum scaled Health" + } + 504 + { + "name" "ph_hider_allow_full_rotation" + "text" "Hider 3-Dimensional Rotation" + "type" "CheckBox" + "default" "0" + "help" "Hiders: Enable full 3D Rotation" + } + 505 + { + "name" "ph_hider_walk_speed" + "text" "Hider Walk Speed" + "type" "Numeric" + "default" "250" + "help" "Hiders: Walk Speed" + } + 506 + { + "name" "ph_hider_sprint" + "text" "Hider Sprint Allowed" + "type" "CheckBox" + "default" "0" + "help" "Hiders: Allow Sprinting" + } + 507 + { + "name" "ph_hider_sprint_speed" + "text" "Hider Sprint Speed" + "type" "Numeric" + "default" "500" + "help" "Hiders: Sprint Speed" + } + 507 + { + "name" "ph_hider_jump_power" + "text" "Hider Jump Power" + "type" "Numeric" + "default" "200" + "help" "Hiders: Jump Power" + } + + // Whitelist & Blacklist + 600 + { + "name" "ph_list_class_whitelist" + "text" "Allowed Entity Classes" + "type" "Text" + "default" "ph_prop,prop_physics,prop_physics_multiplayer,prop_physics_respawnable" + "help" "Anti-Cheat: Whitelisted Hider Classes" + } + 601 + { + "name" "ph_list_abuse_blacklist" + "text" "Abuse Blacklist" + "type" "Text" + "default" "func_button,func_door,func_door_rotation,prop_door_rotation,func_tracktrain,func_tanktrain,func_breakable" + "help" "Anti-Cheat: Entity Abuse Blacklist" + } + 602 + { + "name" "ph_list_model_blacklist" + "text" "Model Blacklist" + "type" "Text" + "default" "models/props/cs_assault/dollar.mdl,models/props/cs_assault/money.mdl,models/props/cs_office/snowman_arm.mdl,models/props/cs_office/projector_remote.mdl" + "help" "Anti-Cheat: Model Abuse Blacklist" + } + + // Taunts + 700 + { + "name" "ph_taunt_cooldown" + "text" "Cooldown for Taunts" + "type" "Numeric" + "default" "5" + "help" "Prop Hunt: Cooldown between Taunts" + } + 701 + { + "name" "ph_taunt_seekers" + "text" "Seeker Taunts" + "type" "Text" + "default" "bot/a_bunch_of_them.wav,bot/come_out_and_fight_like_a_man.wav,bot/come_out_wherever_you_are.wav,bot/come_to_papa.wav,bot/dont_worry_hell_get_it.wav,bot/hang_on_i_heard_something.wav,bot/hang_on_im_coming.wav,bot/i_dont_think_so.wav,bot/i_have_the_hostages.wav,bot/i_see_our_target.wav,bot/im_waiting_here.wav,bot/keeping_an_eye_on_the_hostages.wav,bot/nnno_sir.wav,bot/spotted_the_delivery_boy.wav,bot/target_acquired.wav,bot/target_spotted.wav,bot/you_heard_the_man_lets_go.wav" + "help" "Prop Hunt: Seeker Taunts" + } + 702 + { + "name" "ph_taunt_hiders" + "text" "Hider Taunts" + "type" "Text" + "default" "ambient/alarms/apc_alarm_pass1.wav,ambient/alarms/manhack_alert_pass1.wav,ambient/alarms/razortrain_horn1.wav,ambient/alarms/scanner_alert_pass1.wav,ambient/alarms/train_horn2.wav,ambient/alarms/train_horn_distant1.wav,ambient/alarms/warningbell1.wav,ambient/energy/whiteflash.wav,ambient/intro/alyxremove.wav,ambient/intro/logosfx.wav,ambient/levels/launch/1stfiringwarning.wav,ambient/levels/launch/rockettakeoffblast.wav,ambient/misc/ambulance1.wav,ambient/misc/carhonk1.wav,ambient/misc/carhonk2.wav,ambient/misc/carhonk3.wav,ambient/outro/gunshipcrash.wav,ambient/3dmeagle.wav,beams/beamstart5.wav,buttons/bell1.wav,buttons/weapon_cant_buy.wav,common/bass.wav,common/bugreporter_failed.wav,common/warning.wav,doors/door_squeek1.wav,friends/friend_join.wav,friends/friend_online.wav,friends/message.wav,hostage/hunuse/comeback.wav,hostage/hunuse/dontleaveme.wav,hostage/hunuse/yeahillstay.wav,items/gift_drop.wav,music/radio1.mp3,phx/eggcrack.wav,plats/elevbell1.wav,player/headshot1.wav,player/headshot2.wav,player/sprayer.wav,radio/enemydown.wav,radio/go.wav,radio/locknload.wav,radio/negative.wav,radio/rounddraw.wav,radio/takepoint.wav,resource/warning.wav,ui/achievement_earned.wav,ui/freeze_cam.wav,vehicles/junker/radar_ping_friendly1.wav,weapons/c4/c4_beep1.wav,weapons/c4/c4_click.wav,weapons/awp/awp1.wav,vo/canals/female01/gunboat_giveemhell.wav,vo/canals/female01/gunboat_justintime.wav,vo/canals/female01/stn6_incoming.wav,vo/canals/male01/gunboat_giveemhell.wav,vo/canals/male01/gunboat_justintime.wav,vo/canals/male01/stn6_incoming.wav,vo/canals/al_radio_stn6.wav,vo/canals/arrest_getgoing.wav,vo/canals/arrest_helpme.wav,vo/canals/arrest_lookingforyou.wav,vo/canals/boxcar_lethimhelp.wav,vo/canals/matt_closecall.wav,vo/canals/premassacre.wav,vo/ravenholm/aimforhead.wav,vo/ravenholm/bucket_patience.wav,vo/ravenholm/madlaugh01.wav,vo/ravenholm/madlaugh02.wav,vo/ravenholm/madlaugh03.wav,vo/ravenholm/madlaugh04.wav,weapons/strider_buster/ol12_stickybombcreator.wav,weapons/c4/c4_explode1.wav,weapons/357/357_fire2.wav,weapons/357/357_fire3.wav,weapons/scout/scout_fire-1.wav,weapons/smokegrenade/sg_explode.wav,weapons/grenade_launcher1.wav,weapons/explode3.wav,weapons/underwater_explode3.wav,items/nvg_on.wav,hostage/huse/letsdoit.wav,hostage/huse/illfollow.wav,hostage/huse/getouttahere.wav,doors/door_screen_move1.wav,doors/heavy_metal_stop1.wav,doors/default_move.wav,common/stuck2.wav,ambient/water_splash1.wav,ambient/water_splash2.wav,ambient/water_splash3.wav,ambient/weather/thunder1.wav,ambient/weather/thunder2.wav,ambient/weather/thunder3.wav,ambient/weather/thunder4.wav,ambient/weather/thunder5.wav,ambient/weather/thunder6.wav,ambient/outro/thunder7.wav,ambient/voices/crying_loop1.wav,ambient/voices/playground_memory.wav,ambient/voices/f_scream1.wav,ambient/voices/m_scream1.wav,ambient/voices/cough1.wav,ambient/voices/cough2.wav,ambient/voices/cough3.wav,ambient/voices/cough4.wav,ambient/overhead/plane1.wav,ambient/overhead/plane2.wav,ambient/overhead/plane3.wav,ambient/overhead/hel1.wav,ambient/overhead/hel2.wav,ambient/misc/truck_backup1.wav,ambient/misc/truck_drive1.wav,ambient/misc/truck_drive2.wav,ambient/machines/pneumatic_drill_1.wav,ambient/machines/pneumatic_drill_2.wav,ambient/machines/pneumatic_drill_3.wav,ambient/machines/pneumatic_drill_4.wav,ambient/machines/station_train_squeel.wav,ambient/machines/ticktock.wav,ambient/creatures/teddy.wav,ambient/creatures/town_child_scream1.wav,ambient/creatures/town_moan1.wav,ambient/creatures/town_muffled_cry1.wav,ambient/creatures/town_scared_breathing1.wav,ambient/creatures/town_scared_breathing2.wav,ambient/creatures/town_scared_sob1.wav,ambient/creatures/town_scared_sob2.wav,ambient/creatures/town_zombie_call1.wav" + "help" "Prop Hunt: Hider Taunts" + } + + // Camera + 800 + { + "name" "ph_camera_allow_noclip" + "text" "Camera Noclip Allowed" + "type" "CheckBox" + "default" "0" + "help" "Camera: Allow clients to disable camera collision" + } + 801 + { + "name" "ph_camera_distance_max" + "text" "Camera Distance Max." + "type" "Numeric" + "default" "150" + "help" "Camera: Maximum allowed distance to player." + } + 802 + { + "name" "ph_camera_distance_min" + "text" "Camera Distance Min." + "type" "Numeric" + "default" "30" + "help" "Camera: Minimum allowed distance to player." + } + 803 + { + "name" "ph_camera_distance_right_range" + "text" "Camera Horizontal Offset Range" + "type" "Numeric" + "default" "20" + "help" "Camera: Horizontal allowed camera distance range." + } + 804 + { + "name" "ph_camera_distance_up_range" + "text" "Camera Vertical Offset Range" + "type" "Numeric" + "default" "20" + "help" "Camera: Vertical allowed camera distance range." + } + 805 + { + "name" "ph_camera_lag_min" + "text" "Camera Lag Min." + "type" "Numeric" + "default" "0" + "help" "Camera: Minimum Camera Lag." + } + 806 + { + "name" "ph_camera_lag_max" + "text" "Camera Lag Max." + "type" "Numeric" + "default" "0.95" + "help" "Camera: Maximum Camera Lag." + } + + // Selection Halo + 900 + { + "name" "ph_selectionhalo_allow" + "text" "Selection Halo Allowed" + "type" "CheckBox" + "default" "1" + "help" "Selection Halo: Allow clients to enable halo around the currently looked at prop?" + } + 901 + { + "name" "ph_selectionhalo_approximate" + "text" "Selection Approximate Mode" + "type" "CheckBox" + "default" "1" + "help" "Selection Halo: Enable approximate selection halo, which only checks the forward vector on the client." + } + 902 + { + "name" "ph_selectionhalo_interval" + "text" "Selection Halo Allowed" + "type" "Numeric" + "default" "0.05" + "help" "Selection Halo: Interval for updates of the accuracte selection halo in seconds." + } + + } +} diff --git a/proxy_package.bat b/proxy_package.bat new file mode 100644 index 0000000..5b2dc24 --- /dev/null +++ b/proxy_package.bat @@ -0,0 +1,4 @@ +@ECHO OFF +call env.win.bat +"%GARRYSMODPATH%\bin\gmad.exe" create -folder "%CD%\proxy" -out "%CD%\proxy.gma" +PAUSE \ No newline at end of file diff --git a/proxy_release.bat b/proxy_release.bat new file mode 100644 index 0000000..12e3439 --- /dev/null +++ b/proxy_release.bat @@ -0,0 +1,4 @@ +@ECHO OFF +call env.win.bat +"%GARRYSMODPATH%\bin\gmpublish.exe" update -id 1327985306 -icon "media\gamemode_workshop.jpg" -addon "proxy.gma" -changes "" +PAUSE \ No newline at end of file