• Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse

Plutonium

[ZM][RELEASE] ZWR Safe patch for ALL maps

Scheduled Pinned Locked Moved WAW Modding Releases & Resources
10 Posts 7 Posters 823 Views
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AlexInVrundefined Offline
    AlexInVrundefined Offline
    AlexInVr
    wrote on last edited by AlexInVr
    #1

    So, I had a record for a 1000 sr on shi no that I did when there wasn't any rule on the ZWR website about patches for waw, now there is one, you aren't allowed first boxes at all, but timer, and backspeed is allowed, so I decided to make this universal patch that works with all maps

    I had to overwrite the round_think function just to add the round_start and round_end event, so that the round timer could work correctly.

    Known "problems":

    • on round 1, when the round ends the round timer removes and adds 1 second until the next round begins, that's it, it just goes like -> 12.2, 12.1, 12.2, 12.1 etc.... it fixes itself the next round.

    • there is a 1 second delay between both timers, could probably fix it with a wait(1); but ngl I was a bit lazy, will fix later, it still works fine, 1 second won't kill you

    #include maps\_utility;
    #include common_scripts\utility;
    #include maps\_zombiemode_utility;
    
    //ZWR safe patch by twitch.tv/AlexInVR
    
    init()
    {
    	replacefunc(maps\_zombiemode::round_think, ::custom_round_think);
    	thread on_connect();
       
    }
    
    on_connect()
    {
    	for(;;)
    	{
    		level waittill( "connecting", player );
    		player thread on_player_spawned();
    	}
    }
    
    
    custom_round_think()
    {
    	for( ;; )
    	{
    		level.round_spawn_func = maps\_zombiemode::round_spawning;
    		//////////////////////////////////////////
    		//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.round_timer = level.zombie_vars["zombie_round_time"]; 
    		
    		add_later_round_spawners();
    
    		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 );
    
    		level thread maps\_zombiemode::award_grenades_for_survivors();
    
    		level.round_start_time = getTime();
    		level thread [[level.round_spawn_func]]();
    		level notify("start_of_round");
    
    		maps\_zombiemode::round_wait(); 
    		level.first_round = false;
    		level notify("end_of_round");
    
    		level thread maps\_zombiemode::spectators_respawn();
    
    		//		round_text( &"ZOMBIE_ROUND_END" );
    		level thread maps\_zombiemode::chalk_round_hint();
    
    		wait( level.zombie_vars["zombie_between_round_time"] ); 
    
    		// here's the difficulty increase over time area
    		timer = level.zombie_vars["zombie_spawn_delay"];
    
    		if( timer < 0.08 )
    		{
    			timer = 0.08; 
    		}	
    
    		level.zombie_vars["zombie_spawn_delay"] = timer * 0.95;
    
    		// Increase the zombie move speed
    		level.zombie_move_speed = level.round_number * 8;
    
    		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.x = hud.x - -700; 
    	hud.y = hud.y + 35; 
    	hud.alpha = 1;
    	flag_wait("all_players_spawned");
    	hud setTimerUp(1);
    }
    
    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";
    	timerHud.x = timerHud.x - -700; 
    	timerHud.y = timerHud.y + 45;
    	timerHud.color =  (1, 0, 0);
    	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;
    		freeze_time(timerHud, time); 
    	}
    	
    }
    
    freeze_time(hud, time)
    {
    	level endon("start_of_round");
    	time = time - 0.1;
    	while(1)
    	{
    		hud settimer(time);
    		wait(0.5);
    	}
    }
    
    on_player_spawned()
    {
    	self endon( "disconnect" ); 
    
    	for( ;; )
    	{
    		
    		level waittill( "connected", player ); 
    		self thread game_timer();
    		self thread round_timer();
    		self SetClientDvars( 
    			"player_backSpeedScale", "1", 
    			"player_strafeSpeedScale", "1");
    		
    		wait 3;
    
    		self IPrintLnBold("ZWR safe patch by ^1twitch.tv/^2AlexInVR");
    	}
    	level waittill( "connected", player ); 
    	
    }   
    
    trakinaundefined 1 Reply Last reply
    0
  • FaZe Flickundefined Offline
    FaZe Flickundefined Offline
    FaZe Flick
    wrote on last edited by
    #2

    you mind compiling this script into a compiled file? i dont know how i can use this if i dont know how to compile it myself. you should do the same for the others you made

    JezuzLizardundefined 1 Reply Last reply
    0
  • JezuzLizardundefined Offline
    JezuzLizardundefined Offline
    JezuzLizard Plutonium Staff
    replied to FaZe Flick on last edited by
    #3

    FaZe Flick No Plutonium client requires you to manually compile. You can just put the GSCs in the scripts folder and the game will auto compile them.

    Defined_Leafundefined 1 Reply Last reply
    0
  • trakinaundefined Offline
    trakinaundefined Offline
    trakina
    replied to AlexInVr on last edited by
    #4
    This post is deleted!
    1 Reply Last reply
    0
  • Weezlundefined Offline
    Weezlundefined Offline
    Weezl
    wrote on last edited by
    #5

    the round timer seems to not work on nacht, i dont know if youd know any fix for that but id love one

    1 Reply Last reply
    0
  • Mystic_YTundefined Offline
    Mystic_YTundefined Offline
    Mystic_YT
    wrote on last edited by
    #6

    the round timer only works for shi no numa and der riese for me is there a fix so it works for nacht and verruckt as well?

    AlexInVrundefined 1 Reply Last reply
    0
  • AlexInVrundefined Offline
    AlexInVrundefined Offline
    AlexInVr
    replied to Mystic_YT on last edited by
    #7

    Mystic_YT Will take a look at it soon when I get the time, sorry about the inconvenience !

    1 Reply Last reply
    0
  • Mystic_YTundefined Offline
    Mystic_YTundefined Offline
    Mystic_YT
    wrote on last edited by
    #8

    np, at least we have a round timer for waw now i appreciate it as i always wanted one for waw

    1 Reply Last reply
    0
  • Defined_Leafundefined Offline
    Defined_Leafundefined Offline
    Defined_Leaf
    replied to JezuzLizard on last edited by
    #9

    JezuzLizard what scripts folder?

    Defined_Leafundefined 1 Reply Last reply
    0
  • Defined_Leafundefined Offline
    Defined_Leafundefined Offline
    Defined_Leaf
    replied to Defined_Leaf on last edited by
    #10

    Defined_Leaf I found the folder area but when labeling the folder as nazi_zombie_sumpf with the patch.gsc note it doesnt launch with it

    1 Reply Last reply
    0

  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login

  • Don't have an account? Register

  • Login or register to search.