Navigation

    Plutonium
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Donate
    1. Home
    2. AlexInVr

    AlexInVr (@AlexInVr)

    9
    Reputation
    29
    Posts
    34
    Profile views
    6
    Followers
    5
    Following
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Information about AlexInVr

    Joined
    Last Online
    Website
    twitch.tv/alexInVr
    Location
    Quebec
    Age
    21

    About me

    Passioniate High rounds player / modder / programmer

    Best posts made by AlexInVr

    • [ZM][RELEASE] First Box Patch + Timer + Movement Speed Patch for Verruckt

      Title says it all, This is a first box patch that will give you the flamethrower and the raygun up until round 20, It also has an integrated timer in it that's synchronized with the game without the need for external software, I can release a version with just the timer and the movement speed if someone would prefer that, just ask me.

      It also patches your backwards and strafe speed movement to console movement, it is 30% slower on pc by default.

      This can be changed using the console if you prefer otherwise

      player_backSpeedScale X (between 0 and 1 default is 0.7 on pc)

      player_strafeSpeedScale X (between 0 and 1 default is 0.7 on pc)

      anyways, add this script into your scripts folder and enjoy 🙂

      #include maps\_utility;
      #include common_scripts\utility;
      #include maps\_zombiemode_utility;
      
      //First Box by twitch.tv/AlexInVR
      
      init()
      {
      	 replacefunc(maps\_zombiemode_weapons::treasure_chest_ChooseRandomWeapon, ::custom_treasure_chest_ChooseRandomWeapon);
      	 replacefunc(maps\_zombiemode_weapons::treasure_chest_weapon_spawn, ::custom_treasure_chest_weapon_spawn);
      	thread onConnect();
         
      }
      
      onConnect()
      {
      	for(;;)
      	{
      		level waittill( "connecting", player );
      		player thread OnPlayerSpawned();
      	}
      }
      
      
      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;
      	time_text = string(GetTime() / 1000);
      	flag_wait("all_players_spawned");
      	while (1){
      		hud setTimerUp(1);
      		hud setTimer(time_text);
      	}
      	
      }
      
      
      custom_treasure_chest_ChooseRandomWeapon( player )
      {
      	if (level.round_number <= 20){
      		if (!(player HasWeapon("m2_flamethrower_zombie"))){
      			return "m2_flamethrower_zombie";
      		}
      
      		if (!(player HasWeapon("ray_gun"))){
      			return "ray_gun";
      		}
      
      		
      	}
      
      	keys = GetArrayKeys( level.zombie_weapons );
      
      	// Filter out any weapons the player already has
      	filtered = [];
      	for( i = 0; i < keys.size; i++ )
      	{
      		if( player HasWeapon( keys[i] ) )
      		{
      			continue;
      		}
      
      		//chrisP - make sure the chest doesn't give the player a bouncing betty
      		if(keys[i] == "mine_bouncing_betty")
      		{
      			continue;
      		}
      
      		filtered[filtered.size] = keys[i];
      	}
      
      	// Filter out the limited weapons
      	if( IsDefined( level.limited_weapons ) )
      	{
      		keys2 = GetArrayKeys( level.limited_weapons );
      		players = get_players();
      		for( q = 0; q < keys2.size; q++ )
      		{
      			count = 0;
      			for( i = 0; i < players.size; i++ )
      			{
      				if( players[i] HasWeapon( keys2[q] ) )
      				{
      					count++;
      				}
      
      				// check for last stand weapons that might not be on the player at the time
      				if (players[i] maps\_laststand::player_is_in_laststand())
      				{
      					for( m = 0; m < players[i].weaponInventory.size; m++ )
      					{
      						if (players[i].weaponInventory[m] == keys2[q])
      						{
      							count++;
      						}
      					}
      				}
      			}
      
      			if( count == level.limited_weapons[keys2[q]] )
      			{
      				filtered = array_remove( filtered, keys2[q] );
      			}
      		}
      	}
      
      	return filtered[RandomInt( filtered.size )];
      }
      
      custom_treasure_chest_weapon_spawn( chest, player )
      {
      	assert(IsDefined(player));
      	// spawn the model
      	model = spawn( "script_model", self.origin ); 
      	model.angles = self.angles +( 0, 90, 0 );
      
      	floatHeight = 40;
      
      	//move it up
      	model moveto( model.origin +( 0, 0, floatHeight ), 3, 2, 0.9 ); 
      
      	// rotation would go here
      
      	// make with the mario kart
      	modelname = undefined; 
      	rand = undefined; 
      	for( i = 0; i < 40; i++ )
      	{
      
      		if( i < 20 )
      		{
      			wait( 0.05 ); 
      		}
      		else if( i < 30 )
      		{
      			wait( 0.1 ); 
      		}
      		else if( i < 35 )
      		{
      			wait( 0.2 ); 
      		}
      		else if( i < 38 )
      		{
      			wait( 0.3 ); 
      		}
      
      		rand = custom_treasure_chest_ChooseRandomWeapon( player );
      		modelname = GetWeaponModel( rand );
      		model setmodel( modelname ); 
      
      
      	}
      
      	self.weapon_string = rand; // here's where the org get it's weapon type for the give function
      
      	// random change of getting the joker that moves the box
      	rand = Randomint(100);
      
      
      	//increase the chance of joker appearing from 0-100 based on amount of the time chest has been opened.
      	if(level.script != "nazi_zombie_prototype" && getdvar("magic_chest_movable") == "1")
      	{
      
      		if(level.chest_accessed < 5)
      		{		
      			chance_of_joker = 0;
      		}
      		else
      		{
      			chance_of_joker = level.chest_accessed + 3;
      		}
      
      		if (rand <= chance_of_joker)
      		{
      			model SetModel("zombie_teddybear");
      		//	model rotateto(level.chests[level.chest_index].angles, 0.01);
      			//wait(1);
      			model.angles = level.chests[level.chest_index].angles;		
      			wait 1;
      			flag_set("moving_chest_now");
      			level.chest_accessed = 0;
      
      			player maps\_zombiemode_score::add_to_player_score( 950 );
      
      		}
      
      	}
      
      	self notify( "randomization_done" );
      
      	if (flag("moving_chest_now"))
      	{
      		wait .5;	// we need a wait here before this notify
      		level notify("weapon_fly_away_start");
      		wait 2;
      		model MoveZ(500, 4, 3);
      		model waittill("movedone");
      		model delete();
      		self notify( "box_moving" );
      		level notify("weapon_fly_away_end");
      	}
      	else
      	{
      
      		model thread timer_til_despawn(floatHeight);
      		self waittill( "weapon_grabbed" );
      
      		if( !chest.timedOut )
      		{
      			model Delete();
      		}
      
      
      	}
      }
      
      
      
      timer_til_despawn(floatHeight)
      {
      
      
      	// SRS 9/3/2008: if we timed out, move the weapon back into the box instead of deleting it
      	putBackTime = 12;
      	self MoveTo( self.origin - ( 0, 0, floatHeight ), putBackTime, ( putBackTime * 0.5 ) );
      	wait( putBackTime );
      
      	if(isdefined(self))
      	{	
      		self Delete();
      	}
      }
      
      
      onPlayerSpawned()
      {
      	self endon( "disconnect" ); 
      
      	for( ;; )
      	{
      		level waittill( "connected", player ); 
                      self thread game_timer();
      		self SetClientDvars( 
      			"player_backSpeedScale", "1", 
      			"player_strafeSpeedScale", "1");
      
      		
      		wait 3;
      
      		self IPrintLnBold("First box by ^1twitch.tv/^2AlexInVR");
      	}
      
      }
      

      Here's what it looks like
      download (2).jpg

      posted in WAW Modding Releases & Resources
    • [ZM][RELEASE] First EVER box patch for moon + timer + speed patch

      so guys, I did it, I managed to create the first ever box patch for Moon, it will give you the wavegun, gersh and raygun for coop up until round 20, it also has a timer like my waw mods, and a speed patch to make your backspeed and strafe speed the same as on console,

      INSTALL INSTRUCTIONS:

      • REPLACE YOUR COMMON_ZOMBIE_PATCH.FF WITH THE ORIGINAL GAME FILE WHILE YOU PLAY THE MAP OR ELSE IT WILL NOT LOAD !! Please don't comment that the script is not working if you did not follow the instructions, I tested it before and it's working 100%

      • Create a folder named zombie_moon in your %localappdata%/Plutonium/Storage/t5/scripts/sp and place the file in it

      • Launch the map and enjoy 🙂

      • If you don't have the original common_zombie_patch.ff here it is, just unzip the file
        download

      if you find any issues in the gameplay please advise me, I am not a moon player so idk if it will do something to the gameplay, as far as I tested, everything works.

      #include maps\_utility; 
      #include common_scripts\utility;
      #include maps\_zombiemode_utility;
      
      
      init()
      {
              if ( GetDvar( #"zombiemode" ) == "1" )
              {
                  level thread onPlayerConnect();
                  replacefunc(maps\_zombiemode_weapons::treasure_chest_ChooseWeightedRandomWeapon, ::custom_treasure_chest_ChooseWeightedRandomWeapon);
              }
                  
      }
      
      
      any_player_has_weapon(weap)
      {	
      	players = get_players();
      	has_weap = false;
      	for(i = 0; players.size > i; i++)
      	{
      		if(players[i] maps\_zombiemode_weapons::has_weapon_or_upgrade(weap))
      			has_weap = true;
      	}
      	return has_weap;
      }
      
      
      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 - -820; 
      	hud.y = hud.y + 35; 
      	hud.alpha = 1;
      	time_text = string(GetTime() / 1000);
      	flag_wait("all_players_spawned");
      	while (1){
      		hud setTimerUp(1);
      		hud setTimer(time_text);
      	}
      	
      }
      
      patch_moon()
      {	
      	//WaveGun
      	if(!self maps\_zombiemode_weapons::has_weapon_or_upgrade("microwavegundw_zm") && !any_player_has_weapon("microwavegundw_zm"))
      				return "microwavegundw_zm";
      
      	//Gersh
      	if(!self maps\_zombiemode_weapons::has_weapon_or_upgrade("zombie_black_hole_bomb"))
      				return "zombie_black_hole_bomb";
      
      	//RayGun for coop
      	if(!self maps\_zombiemode_weapons::has_weapon_or_upgrade("ray_gun_zm"))
      				return "ray_gun_zm";
      }
      
      
      custom_treasure_chest_ChooseWeightedRandomWeapon( player )
      {
      	//First Box by Crybaby / AlexInVr
      
      	if(level.round_number < 20)
      	{
      		//Moon
      		if (level.script == "zombie_moon")
      			return player patch_moon();
      	}
      
      
      
      	keys = GetArrayKeys( level.zombie_weapons );
      
      	toggle_weapons_in_use = 0;
      	// Filter out any weapons the player already has
      	filtered = [];
      	for( i = 0; i < keys.size; i++ )
      	{
      		if( !maps\_zombiemode_weapons::get_is_in_box( keys[i] ) )
      		{
      			continue;
      		}
      		
      		if( isdefined( player ) && is_player_valid(player) && player maps\_zombiemode_weapons::has_weapon_or_upgrade( keys[i] ) )
      		{
      			if ( maps\_zombiemode_weapons::is_weapon_toggle( keys[i] ) )
      			{
      				toggle_weapons_in_use++;
      			}
      			continue;
      		}
      
      		if( !IsDefined( keys[i] ) )
      		{
      			continue;
      		}
      
      		num_entries = [[ level.weapon_weighting_funcs[keys[i]] ]]();
      		
      		for( j = 0; j < num_entries; j++ )
      		{
      			filtered[filtered.size] = keys[i];
      		}
      	}
      	
      	// Filter out the limited weapons
      	if( IsDefined( level.limited_weapons ) )
      	{
      		keys2 = GetArrayKeys( level.limited_weapons );
      		players = get_players();
      		pap_triggers = GetEntArray("zombie_vending_upgrade", "targetname");
      		for( q = 0; q < keys2.size; q++ )
      		{
      			count = 0;
      			for( i = 0; i < players.size; i++ )
      			{
      				if( players[i] maps\_zombiemode_weapons::has_weapon_or_upgrade( keys2[q] ) )
      				{
      					count++;
      				}
      			}
      
      			// Check the pack a punch machines to see if they are holding what we're looking for
      			for ( k=0; k<pap_triggers.size; k++ )
      			{
      				if ( IsDefined(pap_triggers[k].current_weapon) && pap_triggers[k].current_weapon == keys2[q] )
      				{
      					count++;
      				}
      			}
      
      			// Check the other boxes so we don't offer something currently being offered during a fire sale
      			for ( chestIndex = 0; chestIndex < level.chests.size; chestIndex++ )
      			{
      				if ( IsDefined( level.chests[chestIndex].chest_origin.weapon_string ) && level.chests[chestIndex].chest_origin.weapon_string == keys2[q] )
      				{
      					count++;
      				}
      			}
      			
      			if ( isdefined( level.random_weapon_powerups ) )
      			{
      				for ( powerupIndex = 0; powerupIndex < level.random_weapon_powerups.size; powerupIndex++ )
      				{
      					if ( IsDefined( level.random_weapon_powerups[powerupIndex] ) && level.random_weapon_powerups[powerupIndex].base_weapon == keys2[q] )
      					{
      						count++;
      					}
      				}
      			}
      
      			if ( maps\_zombiemode_weapons::is_weapon_toggle( keys2[q] ) )
      			{
      				toggle_weapons_in_use += count;
      			}
      
      			if( count >= level.limited_weapons[keys2[q]] )
      			{
      				filtered = array_remove( filtered, keys2[q] );
      			}
      		}
      	}
      	
      	// finally, filter based on toggle mechanic
      	if ( IsDefined( level.zombie_weapon_toggles ) )
      	{
      		keys2 = GetArrayKeys( level.zombie_weapon_toggles );
      		for( q = 0; q < keys2.size; q++ )
      		{
      			if ( level.zombie_weapon_toggles[keys2[q]].active )
      			{
      				if ( toggle_weapons_in_use < level.zombie_weapon_toggle_max_active_count )
      				{
      					continue;
      				}
      			}
      
      			filtered = array_remove( filtered, keys2[q] );
      		}
      	}
      
      	// try to "force" a little more "real randomness" by randomizing the array before randomly picking a slot in it
      	filtered = array_randomize( filtered );
      	return filtered[RandomInt( filtered.size )];
      }
      
      
      onPlayerConnect()
      {
      	for(;;)
      	{
      		level waittill ("connecting", player);
      
      		player thread onPlayerSpawned();
      	}
      }
      
      onPlayerSpawned()
      {
      	for(;;)
      	{
      		self waittill("spawned_player");
      		self thread game_timer();
      
      
      		self SetClientDvars( 
      			"player_backSpeedScale", "1", 
      			"player_strafeSpeedScale", "1");
      
      		
      		wait 3;
      
      		self IPrintLnBold("First box by ^1twitch.tv/^2AlexInVR");
      	}
      }
      
      

      PICS:

      0b0621bf-658f-4f15-a350-a647a36ac8fa-image.png

      posted in BO1 Modding Releases & Resources
    • [RESOURCE] Boilerplate GSC code for your first script

      I was going around the forums and stuff, and realized there isn't too much resources for newbies to learn GSC, and one fantastic thing in the world of programming are boilerplates, which save you alot of time,

      so thought I would share a boilerplate for anyone who wants to start a script

      #include maps\_utility;
      #include common_scripts\utility;
      #include maps\_zombiemode_utility;
      
      init()
      {
      	 thread onPlayerConnect();
      }
      
      onPlayerConnect()
      {
      	for(;;)
      	{
      		level waittill( "connecting", player );
      		player thread onPlayerSpawned();
      	}
      }
      
      onPlayerSpawned()
      {
      	self endon( "disconnect" ); 
      
      	for( ;; )
      	{
      		level waittill( "connected", player );
      	}
      	
      	
      }
      
      
      
      
      posted in BO1 Modding Releases & Resources
    • [ZM][FIX] Temporary fix for CZ crash

      This is a patch that disables the weapon in the game, I simply commented out the line that includes the weapon in the zombie mode and also disables the checks for dual wield. Should stop you from accidentally picking them up I guess

      Google drive link

      posted in BO1 Modding Releases & Resources

    Latest posts made by AlexInVr

    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @Nucleye So I looked at my crossbow thingy, and the reason why the crossbow is there is that it's a required weapon for the High round strat, either in solo or coop, If you didn't know, pack a punching the crossbow makes it so every arrow is a monkey bomb

      posted in BO1 Modding Releases & Resources
    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @scotlords Yeah so for the raygun you need to move the box atleast once

      b3a0e542-0dbc-4df7-a742-ee5224da67d1-image.png

      posted in BO1 Modding Releases & Resources
    • [ZM] [RELEASE] First Box patch + timer + movement speed patch NACHT DER UNTOTEN

      @chuyito9154 I'm sorry bro I don't speak spanish, using google translate your comment asks what does this mod do, without offense, I wrote everything in the title and the description of the post my guy, idk what to tell you more 😕

      posted in WAW Modding Releases & Resources
    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @scotlords Did you make sure to move the box atleast once ? you need to move it atleast once for the raygun to appear, this is in the original game code and wasn't too sure if it would be legit without it so I added it. I will also double check that I did add the raygun in coop 🙂

      posted in BO1 Modding Releases & Resources
    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @scotlords you gotta press the arrow in the upper right corner 8829cdc2-0122-4967-8ed0-e1fb64a079ac-image.png

      posted in BO1 Modding Releases & Resources
    • [ZM] [RELEASE] First Box patch + timer + movement speed patch NACHT DER UNTOTEN

      @MrConfetti Welcome my friend ! 🙂

      posted in WAW Modding Releases & Resources
    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @Nucleye I will work on fixing that and release an update soon, probably tommorow as I got stuff to do tonight

      posted in BO1 Modding Releases & Resources
    • [ZM] [RELEASE] First Box patch + timer + movement speed patch NACHT DER UNTOTEN

      @MrConfetti For sure,

      #include maps\_utility;
      #include common_scripts\utility;
      #include maps\_zombiemode_utility;
      
      //First Box by twitch.tv/AlexInVR
      
      init()
      {
      	thread OnPlayerConnect();
         
      }
      
      OnPlayerConnect()
      {
      	for(;;)
      	{
      		level waittill( "connecting", player );
      		player thread OnPlayerSpawned();
      	}
      }
      
      
      
      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;
      	time_text = string(GetTime() / 1000);
      	flag_wait("all_players_spawned");
      	while (1){
      		hud setTimerUp(1);
      		hud setTimer(time_text);
      	}
      	
      }
      
      OnPlayerSpawned()
      {
      	self endon( "disconnect" ); 
      
      	for( ;; )
      	{
      		
      		level waittill( "connected", player ); 
      		self thread game_timer();
      		self SetClientDvars( 
      			"player_backSpeedScale", "1", 
      			"player_strafeSpeedScale", "1");
      
      		
      		wait 3;
      
      		self IPrintLnBold("Timer and speed patch by ^1twitch.tv/^2AlexInVR");
      	}
      	level waittill( "connected", player ); 
      	
      }   
      
      posted in WAW Modding Releases & Resources
    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @Nucleye Yes but the crossbow isn't the first weapon, the crossbow is there for coop games, until round 19 it will give you the crossbow as last weapon in the box since it's there for coop games for maps that require it, if the first or second weapon in the box is a crossbow that means that it's a weapon required for the high round strategy

      posted in BO1 Modding Releases & Resources
    • [ZM][RELEASE] First box patch + timer + movement speed for ALL maps except moon

      @Nucleye which map ? I can update it for sure

      posted in BO1 Modding Releases & Resources