UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - jbird

Is there a way to make your grenades do 25 damage to other players?
9 years ago
Everything I try just takes 0 points
9 years ago
I'm trying to add to a perk to make you ads twice as fast and throw grenades twice as fast.
9 years ago
I am finally here to release a playable version of my mod. This mod can currently only be played on Der Riese.

! No longer available

Release Features:
-No walking zombies (only runners and sprinters)
-kar98k has a damage buff (as well as the upgraded version)
-When a player downs, they bleedout instantly
-Grief popup message on screen when a player downs
-If all players down, the round restarts and you are given your weapons back
-If 1 player is alive at the end of a round, they win the game and the game ends
-You get the M1 Garand from the box without grenade launcher attachment, and then once it is upgraded you get the grenade launcher attachment
-Increased the rate of fire for the sniper and for the magnum
-Powerups are changed to powerdowns, they do not effect the player that grabbed them
-Max Ammo -> Clip Unload (unloads all enemies clips on the current weapon they are holding)
-Nuke -> Punishment Points (takes 10% of enemies' points)
-Double Points -> Half Points (earn half points for 30 seconds)
-Insta Kill -> Death Walk (run at 70% movement speed for 30 seconds)
-Power is already on
-Teleporters are already linked
-Pack-a-Punch, and the two first room doors are already open
-Quick Revive is turned off since it is free-for-all
-No player dialog
-No dog rounds
-Powerdown spawns at the beginning of the game
-Whenever you use a teleporter, you spawn in 8 dogs and a powerdown
-No monkeys
-No sticky zombies
-Better knifing range

Update 1 Features:
-Punishment Points powerdown now takes 10% of a player's points instead of 1000 points
-Everyone that is alive gains 10% of their current points when a player dies
-Enemies Remaining text shows the correct amount of enemies remaining
-Grenades, molotovs, and bouncing betties can damage other players! (grenades do 25 damage, molotovs and betties do 50 damage)
-Bouncing betties can be triggered and destroyed by other players
-Gain 10 points when you damage a player with your equipment
-If you have molotovs, once you have used them all, you will be able to get them again from the box

Update 2 Features:
-Half Points now actually makes you earn half points
-Shooting a player slows them down and knifing a player pushes them!
-Shooting a player with an upgraded weapon slows them down twice as long
-Knifing a player with a Bowie Knife pushes them further
-Gain 10 points when you shoot or knife a player that is damaged
-Getting killed by a trap no longer makes you not get your weapons back if the round restarts
-Spectators now spawn in between rounds in 3 and 4 player games

Update 3 Features:
-Perk HUD now goes away if you are the last person to die when a round restarts
-Players now get pushed in the correct direction when knifed
-Griefing effect now happens at the center of the player
-Friendly fire is now disabled! You can now shoot and knife when close to other players
-Zombies health and amount of zombies now does not increase after a round restart
-The game breaking last stand bug is now gone!
-Tracer bullets added

Update 4 Features:
-Griefing players now works correctly with automatic weapons
-There is now a 1 second delay before you can grief someone again (fixes some problems, and plus this is how it is actually like in real grief)
-Can't slow people down with the Wunderwaffe, Flamethrower, or by placing a bouncing betty any longer
-Powerups glow red and have a red grab effect

Current bugs:
-Powerup's HUD still shows even if you aren't being effected by it
-You lose betties after a round restart
-You can't shoot players at long ranges (>250 units)
-Players breathe heavy after a round restart


Script helpers: DUKIP, JR-Imagine, arceus, n123q45, AoKMiKeY, daedra descent, buttkicker845, Harry Bo21, liamsa669, MakeCents, gamer9294
9 years ago
Want to have something happen when a player downs? Welp here ya go
Code Snippet
Plaintext
player_downed_function()
{
while( 1 )
{
players = get_players();
players_alive = 0;
for( i = 0; i < players.size; i++ )
{
if( is_player_valid(players[i]) )
{
players_alive++;
}
}
if( !IsDefined( level.players_alive_change ) )
{
level.players_alive_change = players.size;
}
if (players_alive < level.players_alive_change)
{
// put whatever you want to happen here
level.players_alive_change = players_alive;
}
else if(players_alive != level.players_alive_change) //so that the variable updates when spectators respawn
{
level.players_alive_change = players_alive;
}
wait(0.05);
}
}

If you the function to happen when a player bleeds out instead of downs, change

Code Snippet
Plaintext
if( is_player_valid(players[i]) )

to

Code Snippet
Plaintext
if( players[i].sessionstate != "spectator" )

Here is an example of what I used it for. I made it so that a message pops up showing how many players are left alive like in Grief mode.

Code Snippet
Plaintext
grief_msg()
{
while( 1 )
{
players = get_players();
players_alive = 0;
for( i = 0; i < players.size; i++ )
{
if( is_player_valid(players[i]) )
{
players_alive++;
}
}
if( !IsDefined( level.players_alive_change ) )
{
level.players_alive_change = players.size;
}
if (players_alive < level.players_alive_change && players_alive > 1)
{
iprintlnbold("Enemy Down! ["+players_alive+" Remaining]");
level.players_alive_change = players_alive;
}
else if(players_alive < level.players_alive_change && players_alive == 1)
{
iprintlnbold("All Enemies Down!");
wait(2.5);
iprintlnbold("Survive to Win!");
level.players_alive_change = players_alive;
}
else if(players_alive != level.players_alive_change) //so that the variable updates when spectators respawn
{
level.players_alive_change = players_alive;
}
wait(0.05);
}
}
9 years ago
I'm trying to have a message shown whenever a player downs or bleeds out but don't know exactly how to do it. This is what I've got
Code Snippet
Plaintext
grief_msg()
{
players = get_players();
for (i = 0; i < players.size; i++)
{
while( players[i].sessionstate == "spectator" || players[i] maps\_laststand::player_is_in_laststand() )
{
players = get_players();
players_alive = 0;
for( i = 0; i < players.size; i++ )
{
if( is_player_valid(players[i]) )
{
players_alive++;
}
}
if( players_alive == 1 && players.size != 1 )
{
iprintlnbold("All Enemies Down!");
wait (2.5);
iprintlnbold("Survive to Win!");
break;
}
else if( players_alive == 2 && players.size != 2 )
{
iprintlnbold("Enemy Down! [1 Remaining]");
break;
}
else if( players_alive == 3 && players.size != 3 )
{
iprintlnbold("Enemy Down! [2 Remaining]");
break;
}
else
{
return;
}
wait(0.05);
}
}
}
Can anyone help?
9 years ago
I know how to delete spawned in zombies, but it doesn't delete the dogs, how do I remove them?
9 years ago
I want to replace the round number text with different text that isn't the round number. I want it to be a variable that uses the tally mark system also.
9 years ago
I want to be able to put the players onto two "teams", basically the only things the teams will do for now is make it so you can't revive people on the other team and powerups don't effect the other team. How could I do this?
9 years ago
Code Snippet
Plaintext
rounds_won = 0;
        if( players_alive == 1 )
        {
                if( !is_player_valid(players[i]) )
                {
                        iprintlnbold("You have won this round!");
                        rounds_won++;
                        iprintln("Rounds Won: " + rounds_won);
                        if( rounds_won == 3 )
                        {
                                self freezeControls(true);
                                level notify( "end_game" );
                        }
                }

I'm trying to make a script that counts up 1 everytime the amount of players alive is 1. The iprintln says 1 everytime though, any help getting it working?
9 years ago
I'm trying to make it so if you knife a player they get pushed and if you shoot a player they get slowed down. Here's what I've got so far from jr imagine
Code Snippet
Plaintext
Callback_PlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime )
{
//CODER MOD: TOMMY K, this is to prevent a player killing another player
if( isdefined( eAttacker ) && isPlayer( eAttacker ) && ( !isDefined( level.friendlyexplosivedamage ) || !level.friendlyexplosivedamage ))
{
if( self != eAttacker )
{
//one player shouldn't damage another player, grenades, airstrikes called in by another player
return;
}
else if( sMeansOfDeath != "MOD_GRENADE_SPLASH"
&& sMeansOfDeath != "MOD_GRENADE"
&& sMeansOfDeath != "MOD_EXPLOSIVE"
&& sMeansOfDeath != "MOD_PROJECTILE"
&& sMeansOfDeath != "MOD_PROJECTILE_SPLASH"
&& sMeansOfDeath != "MOD_BURNED" )
{
//player should be able to damage they're selves with grenades and stuff
//otherwise don't damage the player, so like airstrikes  won't kill the player
return;
}
}

if( isDefined( eAttacker ) && isPlayer( eAttacker ) )
{
if( eAttacker meleeButtonPressed() )
{
self setVelocity( vectorToAngles( eAttacker.origin - self.origin ) ); // Not tested, you'll have to play around with this. Most likely won't push the player in the correct direction.

self setMoveSpeedScale( .3 );
wait( 1 );
self setMoveSpeedScale( 1 );
}

if( eAttacker attackButtonPressed() )
{
self setMoveSpeedScale( .3 );
wait( 1 );
self setMoveSpeedScale( 1 );
}
}

// Override MUST call finishPlayerDamage if the damage is to be applied
if( IsDefined( level.overridePlayerDamage ) )
{
self [[level.overridePlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime );
return;
}

self finishPlayerDamageWrapper( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime );
}

This is the part that was added:
Code Snippet
Plaintext
	if( isDefined( eAttacker ) && isPlayer( eAttacker ) )
{
if( eAttacker meleeButtonPressed() )
{
self setVelocity( vectorToAngles( eAttacker.origin - self.origin ) ); // Not tested, you'll have to play around with this. Most likely won't push the player in the correct direction.

self setMoveSpeedScale( .3 );
wait( 1 );
self setMoveSpeedScale( 1 );
}

if( eAttacker attackButtonPressed() )
{
self setMoveSpeedScale( .3 );
wait( 1 );
self setMoveSpeedScale( 1 );
}
}

Currently, it does absolutely nothing. Doesn't change a thing. Anyone know how to fix it?
9 years ago
Want the round to restart when everyone dies instead of the game ending? Well here ya go!
Go into _zombiemode.gsc and search for "self.intermission = true;"
Change it to
Code Snippet
Plaintext
self.intermission = false;
Then look for "if( count == players.size )"
Replace that function with this:
Code Snippet
Plaintext
	if( count == players.size )
{
//level notify( "end_game" );

self maps\_laststand::laststand_take_player_weapons();

zombs = getaiarray("axis");
for(i=0;i<zombs.size;i++)
{
zombs[i] delete(); //removes all currently spawned in zombies
}

maps\_zombiemode_powerups::powerup_round_start(); //restarts the amount of powerups you can earn this round
array_thread( players, maps\_zombiemode_blockers_new::rebuild_barrier_reward_reset ); //restarts your barrier points this round
level thread [[level.round_spawn_func]](); //makes the amount of zombies restart to its original amount for the round

players = get_players();
for( i = 0; i < players.size; i++ ) //respawns you back in and gives you your weapons back
{
players[i] spectator_respawn();
players[i] [[level.spawnPlayer]]();
while(1)
{
if(players[i] hasWeapon("zombie_colt"))
{
players[i] takeAllWeapons();
players[i] maps\_laststand::laststand_giveback_player_weapons();
if( isDefined( players[i].has_altmelee ) && players[i].has_altmelee )
{
players[i] SetPerk( "specialty_altmelee" );
}
level thread award_grenades_for_survivors(); //get 2 extra grenades when you spawn back in, optional
break;
}
wait(0.05);
}
}
iprintlnbold("You have been given another chance"); //message letting you know the round restarted, optional
}

Add this function at the bottom
Code Snippet
Plaintext
round_restart()
{
level endon( "intermission" );
/#
level endon( "kill_round" );
#/

if( level.intermission )
{
return;
}

if( level.enemy_spawns.size < 1 )
{
ASSERTMSG( "No spawners with targetname zombie_spawner in map." );
return;
}

/#
if ( GetDVarInt( "zombie_cheat" ) == 2 || GetDVarInt( "zombie_cheat" ) >= 4 )
{
return;
}
#/

level.zombie_total = 0;

count = 0;

//CODER MOD: TOMMY K
players = get_players();
for( i = 0; i < players.size; i++ )
{
players[i].zombification_time = 0;
}

max = level.zombie_vars["zombie_max_ai"];

multiplier = level.round_number / 5;
if( multiplier < 1 )
{
multiplier = 1;
}

// After round 10, exponentially have more AI attack the player
if( level.round_number >= 10 )
{
multiplier *= level.round_number * 0.15;
}

player_num = get_players().size;

if( player_num == 1 )
{
max += int( ( 0.5 * level.zombie_vars["zombie_ai_per_player"] ) * multiplier );
}
else
{
max += int( ( ( player_num - 1 ) * level.zombie_vars["zombie_ai_per_player"] ) * multiplier );
}



if(level.round_number < 3 && level.script == "nazi_zombie_asylum")
{
if(get_players().size > 1)
{

max = get_players().size * 3 + level.round_number;

}
else
{

max = 6;

}
}
else if ( level.first_round )
{
max = int( max * 0.2 );
}
else if (level.round_number < 3)
{
max = int( max * 0.4 );
}
else if (level.round_number < 4)
{
max = int( max * 0.6 );
}
else if (level.round_number < 5)
{
max = int( max * 0.8 );
}


level.zombie_total = max;
iprintln(level.zombie_total);
mixed_spawns = 0; // Number of mixed spawns this round.  Currently means number of dogs in a mixed round

// DEBUG HACK:
//max = 1;
old_spawn = undefined;
while( count < max )
{

spawn_point = level.enemy_spawns[RandomInt( level.enemy_spawns.size )];

if( !IsDefined( old_spawn ) )
{
old_spawn = spawn_point;
}
else if( Spawn_point == old_spawn )
{
spawn_point = level.enemy_spawns[RandomInt( level.enemy_spawns.size )];
}
old_spawn = spawn_point;

// iPrintLn(spawn_point.targetname + " " + level.zombie_vars["zombie_spawn_delay"]);
while( get_enemy_count() > 31 )
{
wait( 0.05 );
}

// MM Mix in dog spawns...
if ( IsDefined( level.mixed_rounds_enabled ) && level.mixed_rounds_enabled == 1 )
{
spawn_dog = false;
if ( level.round_number > 30 )
{
if ( RandomInt(100) < 3 )
{
spawn_dog = true;
}
}
else if ( level.round_number > 25 && mixed_spawns < 3 )
{
if ( RandomInt(100) < 2 )
{
spawn_dog = true;
}
}
else if ( level.round_number > 20 && mixed_spawns < 2 )
{
if ( RandomInt(100) < 2 )
{
spawn_dog = true;
}
}
else if ( level.round_number > 15 && mixed_spawns < 1 )
{
if ( RandomInt(100) < 1 )
{
spawn_dog = true;
}
}

if ( spawn_dog )
{
keys = GetArrayKeys( level.zones );
for ( i=0; i<keys.size; i++ )
{
if ( level.zones[ keys[i] ].is_occupied )
{
akeys = GetArrayKeys( level.zones[ keys[i] ].adjacent_zones );
for ( k=0; k<akeys.size; k++ )
{
if ( level.zones[ akeys[k] ].is_active &&
!level.zones[ akeys[k] ].is_occupied &&
level.zones[ akeys[k] ].dog_locations.size > 0 )
{
maps\_zombiemode_dogs::special_dog_spawn( undefined, 1 );
level.zombie_total--;
wait_network_frame();
}
}
}
}
}
}

ai = spawn_zombie( spawn_point );
if( IsDefined( ai ) )
{
level.zombie_total--;
ai thread round_spawn_failsafe();
count++;
}
wait( level.zombie_vars["zombie_spawn_delay"] );
wait_network_frame();
}

if( level.round_number > 3 )
{
zombies = getaiarray( "axis" );
while( zombies.size > 0 )
{
if( zombies.size == 1 && zombies[0].has_legs == true )
{
var = randomintrange(1, 4);
zombies[0] set_run_anim( "sprint" + var );                       
zombies[0].run_combatanim = level.scr_anim[zombies[0].animname]["sprint" + var];
}
wait(0.5);
zombies = getaiarray("axis");
}

}

}
9 years ago
I'm trying to make a script that ends the game when only one player is alive. Currently it ends the game no matter what after round 1

Code Snippet
Plaintext
spectators_respawn()
{
level endon( "between_round_over" );

if( !IsDefined( level.zombie_vars["spectators_respawn"] ) || !level.zombie_vars["spectators_respawn"] )
{
return;
}

if( !IsDefined( level.custom_spawnPlayer ) )
{
// Custom spawn call for when they respawn from spectator
level.custom_spawnPlayer = ::spectator_respawn;
}

while( 1 )
{
players_alive = 0;

players = get_players();
for( i = 0; i < players.size; i++ )
{
if( IsAlive( players[i] ))
{
players_alive++;
}

if( players[i].sessionstate == "spectator" && players_alive > 1 )
{
players[i] [[level.spawnPlayer]]();
//if( isDefined( players[i].has_altmelee ) && players[i].has_altmelee )
//{
// players[i] SetPerk( "specialty_altmelee" );
//}
if (isDefined(level.script) && level.round_number > 6 && players[i].score < 1500)
{
players[i].old_score = players[i].score;
players[i].score = 1500;
players[i] maps\_zombiemode_score::set_player_score_hud();
}
}
if( players_alive == 1 )
{
level notify( "end_game" );
}
else
{
return;
}
}

wait( 1 );
}
}
9 years ago
Is there a way to make zombie_vars not affect everyone? By using level.zombie_vars, it affects everyone.
I'm trying to make make a powerup using zombie_vars that doesn't affect the player that picks up the powerup.
9 years ago
I'm trying to make a powerup that makes you deal half damage for 30 seconds. How would you do this?
9 years ago
Loading ...