[ZM][RELEASE][PLUTO SCRIPT] Backspeed + game and round timer patch
-
After a request on Discord, I decided to release the script for everyone to use, because a lot of patches are being gatekept or not a lot of patchers release their stuff.
It's a pluto only version but I have a steam version also that I can release, it's just harder to customize if you don't know what you are doing:
Install instructions:
-
Turn on file extensions in your windows explorer, see this link if you don't know how
-
Press windows + r, a dialog box will open
-
Inside it type in %LOCALAPPDATA%\Plutonium\storage\t5\scripts\sp
-
Create a folder with the name of the map you want to play
-
Kino: zombie_theater
-
Asc: zombie_cosmodrome
-
Shang: zombie_temple
-
Moon: zombie_moon
-
Cotd: zombie_coast
Waw maps:
-
Nacht: zombie_cod5_prototype
-
Verruckt: zombie_cod5_asylum
-
Shi no: zombie_cod5_sumpf
-
Der riese: zombie_cod5_factory
-
Create a new file with the name of your choice, and make its file extension .gsc (example: patch.gsc)
-
copy and paste the code inside your gsc file
launch your game and enjoy !
I did not include the splash texts as some people don't like that, and I can understand, I'd just appreciate if you could leave a like on the post if my patch helped you
#include maps\_utility; #include common_scripts\utility; #include maps\_zombiemode_utility; init() { if ( GetDvar( #"zombiemode" ) == "1" ) { replacefunc(maps\_zombiemode::round_think, ::custom_round_think); level thread onPlayerConnect(); } } custom_round_think() { for( ;; ) { ////////////////////////////////////////// //designed by prod DT#36173 maxreward = 50 * level.round_number; if ( maxreward > 500 ) maxreward = 500; level.zombie_vars["rebuild_barrier_cap_per_round"] = maxreward; ////////////////////////////////////////// level.pro_tips_start_time = GetTime(); level.zombie_last_run_time = GetTime(); // Resets the last time a zombie ran level thread maps\_zombiemode_audio::change_zombie_music( "round_start" ); maps\_zombiemode::chalk_one_up(); // round_text( &"ZOMBIE_ROUND_BEGIN" ); maps\_zombiemode_powerups::powerup_round_start(); players = get_players(); array_thread( players, maps\_zombiemode_blockers::rebuild_barrier_reward_reset ); //array_thread( players, maps\_zombiemode_ability::giveHardpointItems ); level thread maps\_zombiemode::award_grenades_for_survivors(); bbPrint( "zombie_rounds: round %d player_count %d", level.round_number, players.size ); level.round_start_time = GetTime(); level thread [[level.round_spawn_func]](); level notify( "start_of_round" ); [[level.round_wait_func]](); level.first_round = false; level notify( "end_of_round" ); level thread maps\_zombiemode_audio::change_zombie_music( "round_end" ); UploadStats(); if ( 1 != players.size ) { level thread maps\_zombiemode::spectators_respawn(); //level thread last_stand_revive(); } // round_text( &"ZOMBIE_ROUND_END" ); level maps\_zombiemode::chalk_round_over(); // here's the difficulty increase over time area timer = level.zombie_vars["zombie_spawn_delay"]; if ( timer > 0.08 ) { level.zombie_vars["zombie_spawn_delay"] = timer * 0.95; } else if ( timer < 0.08 ) { level.zombie_vars["zombie_spawn_delay"] = 0.08; } // // Increase the zombie move speed level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"]; level.round_number++; level notify( "between_round_over" ); } } game_timer() { hud = create_simple_hud( self ); hud.foreground = true; hud.sort = 1; hud.hidewheninmenu = true; hud.alignX = "left"; hud.alignY = "top"; hud.horzAlign = "user_left"; hud.vertAlign = "user_top"; hud.alpha = 1; //=======================CUSTOM SECTION============== hud.x = hud.x - -720; //This is for the position on X axis, decrease this number to move it further left, and increase it to go right. hud.y = hud.y + 35; //This is for the position on Y axis, decrease this number to move it down, and increase it to go up. hud.fontscale = 1.2; //This is for the font size, increase it by whatever you want and see what you like hud.color = (255, 255, 255); //This is for the color using RGB, use a website for that //========================================= time_text = string(GetTime() / 1000); flag_wait("all_players_spawned"); while (1){ hud setTimerUp(1); hud setTimer(time_text); } } round_timer() { timerHud = create_simple_hud( self ); timerHud.foreground = true; timerHud.sort = 1; timerHud.hidewheninmenu = true; timerHud.alignX = "left"; timerHud.alignY = "top"; timerHud.horzAlign = "user_left"; timerHud.vertAlign = "user_top"; //=======================CUSTOM SECTION============== timerHud.x = timerHud.x - -720; //This is for the position on X axis, decrease this number to move it further left, and increase it to go right. timerHud.y = timerHud.y + 45; //This is for the position on Y axis, decrease this number to move it down, and increase it to go up. timerHud.fontscale = 1.2; //This is for the font size, increase it by whatever you want and see what you like timerHud.color = (255, 0, 0); //This is for the color using RGB, use a website for that //========================================= timerHud.alpha = 1; flag_wait("all_players_spawned"); for (;;){ start_time = GetTime() / 1000; timerHud setTimerUp(0); level waittill("end_of_round"); end_time = GetTime() / 1000; time = end_time - start_time; set_time_frozen(timerHud, time); } } set_time_frozen(hud, time) { level endon("start_of_round"); time = time - 0.1; while(1) { hud settimer(time); wait(0.5); } } onPlayerConnect() { for(;;) { level waittill ("connecting", player); player thread onPlayerSpawned(); } } onPlayerSpawned() { for(;;) { self waittill("spawned_player"); self thread game_timer(); //Thread the global timer self thread round_timer(); //Thread the round timer self SetClientDvars("player_backSpeedScale", "1", "player_strafeSpeedScale", "1"); //Patch speed to be same as console } }
-
-
-
works exactly as intended with no need of a download
-
Would this work for coop games? Shall all of us have the patch installed?
-
Asmotoanico scripts are server side so only the server can load them, so here the server is the host
-
Resxt Oh, nice. Thanks for the answer
-
Script works perfectly! Just wondering what the "custom Round Think" lines do? (lines 17-87) and if they're essential or just QoL fixes (Not very knowledgeable on these kinds of things so apologies if this is a silly question)
-
I was also able to move the timer location to be in the top left corner for people with 1080p monitors. Ive never used a 1440p monitor so you might have to tweak a little more for those
For the game timer fix the X-Y on lines 105 & 106 to:
hud.x = hud.x - 1;
hud.y = hud.y + -5;For the Round timer fix the X-Y on lines 130 & 131 to:
hud.x = hud.x - 1;
hud.y = hud.y + 9;I would also change the fontscale from 1.2 to 1.6 on lines 107 & 132 just so the timers can be a tad bigger.
I also changed "settimerup" from 1 to 0 on line 113 just so the timers can start together (Just personal preference)
The timer should now look like the photo I shared.
-
Hulkster So basically the custom round think is just so I could add in the notifiers for the round timer, I basically copy pasted the regular method, and added 2 notifiers lmao
-
AlexInVr Ohh I see. Thanks for clarifying! And thank you for the script as well!
-
Hulkster you're welcome man, enjoy !
-
and for five is there a name for the folder?