Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include maps\_hud_util;
init()
{
PrecacheItem( "zombie_perk_bottle_revive" );
PrecacheShader( "byz_pp_shader" );
pp_trigger = GetEnt( "zombie_vending_pp", "targetname" );
pp_trigger thread pp_trigger_think();
level thread maps\_zombiemode_perks::machine_watcher_factory("pp_on");
thread wait_a_little();
thread turn_pp_on();
}
wait_a_little()
{
flag_wait( "all_players_connected" );
players = get_players();
for(i=0;i<players.size;i++)
{
players[i] thread pp_think();
}
}
pp_think()
{
flag_wait( "all_players_connected");
while(1)
{
if(self hasPerk("specialty_leadfoot"))
{
self SetClientDvars("g_gravity", "100");
}
wait .01;
}
wait .01;
}
turn_pp_on()
{
machine = getent("vending_pp", "targetname");
level waittill("juggernog_on");
machine vibrate((0,-100,0), 0.3, 0.4, 3);
machine playsound("perks_power_on");
machine thread maps\_zombiemode_perks::perk_fx("doubletap_light");
level notify( "specialty_leadfoot_power_on" );
}
pp_trigger_think()
{
perk = "specialty_leadfoot";
self SetHintString( &"ZOMBIE_FLAMES_UNAVAILABLE" );
self SetCursorHint( "HINT_NOICON" );
self UseTriggerRequireLookAt();
notify_name = perk + "_power_on";
level waittill("juggernog_on");
perk_hum = spawn("script_origin", self.origin);
perk_hum playloopsound("perks_machine_loop");
self thread check_player_has_perk(perk);
self SetHintString("^3Press & Hold &&1 To Buy Paranormal Potion ^2[Cost: 2000]");
for( ;; )
{
self waittill( "trigger", player );
index = maps\_zombiemode_weapons::get_player_index(player);
cost = 2000;
if (player maps\_laststand::player_is_in_laststand() )
{
continue;
}
if(player in_revive_trigger())
{
continue;
}
if( player isThrowingGrenade() )
{
wait( 0.1 );
continue;
}
if( player isSwitchingWeapons() )
{
wait(0.1);
continue;
}
if ( player HasPerk( perk ) )
{
self playsound("deny");
player thread maps\_zombiemode_perks::play_no_money_perk_dialog();
continue;
}
if ( player.score < cost )
{
self playsound("deny");
player thread maps\_zombiemode_perks::play_no_money_perk_dialog();
continue;
}
sound = "bottle_dispense3d";
player achievement_notify( "perk_used" );
playsoundatposition(sound, self.origin);
player maps\_zombiemode_score::minus_to_player_score( cost );
sting = "byz_pp_sting";
playsoundatposition(sting, self.origin);
gun = player perk_give_bottle_begin();
player.is_drinking = 1;
player waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete", "whoswho_death" );
// restore player controls and movement
player perk_give_bottle_end( gun, "specialty_leadfoot" );
player.is_drinking = undefined;
// TODO: race condition?
if ( player maps\_laststand::player_is_in_laststand() )
{
continue;
}
player SetPerk("specialty_leadfoot");
player thread maps\_zombiemode_perks::perk_vo(perk);
player setblur( 4, 0.1 );
wait(0.1);
player setblur(0, 0.1);
player perk_hud_create( perk );
//stat tracking
player.stats["perks"]++;
//player iprintln( "Bought Perk: " + perk );
bbPrint( "zombie_uses: playername %s playerscore %d round %d cost %d name %s x %f y %f z %f type perk",
player.playername, player.score, level.round_number, cost, perk, self.origin );
player thread perk_think( perk );
}
}
check_player_has_perk(perk)
{
dist = 128 * 128;
while(true)
{
players = get_players();
for( i = 0; i < players.size; i++ )
{
if(DistanceSquared( players[i].origin, self.origin ) < dist)
{
if(!players[i] hasperk(perk) && !(players[i] in_revive_trigger()) && (players[i].perk_hud.size < level.perk_limit))
{
if (IsDefined(level.script) && level.script == "nazi_zombie_theater")
self setinvisibletoplayer(players[i], false);
else
self setvisibletoplayer(players[i]);
}
else
{
self SetInvisibleToPlayer(players[i]);
}
}
}
wait(0.1);
}
}
perk_hud_create( perk )
{
if ( !IsDefined( self.perk_hud ) )
{
self.perk_hud = [];
}
shader = "byz_pp_shader";
hud = create_simple_hud( self );
hud.foreground = true;
hud.sort = 1;
hud.hidewheninmenu = false;
hud.alignX = "left";
hud.alignY = "bottom";
hud.horzAlign = "left";
hud.vertAlign = "bottom";
hud.x = self.perk_hud.size * 30;
hud.y = hud.y - 70;
hud.alpha = 1;
hud SetShader( shader, 24, 24 );
self.perk_hud[ perk ] = hud;
}
perk_think()
{
self waittill_any( "fake_death", "death", "player_downed", "whoswho_death" );
self UnsetPerk("specialty_leadfoot");
self SetClientDvars("g_gravity", "800");
self maps\_zombiemode_perks::perk_hud_destroy("specialty_leadfoot");
}
perk_give_bottle_begin()
{
self DisableOffhandWeapons();
self DisableWeaponCycling();
self AllowLean( false );
self AllowAds( false );
self AllowSprint( false );
self AllowProne( false );
self AllowMelee( false );
wait( 0.05 );
if ( self GetStance() == "prone" )
{
self SetStance( "crouch" );
}
gun = self GetCurrentWeapon();
weapon = "";
self GiveWeapon("zombie_perk_bottle_revive");
self SwitchToWeapon("zombie_perk_bottle_revive");
return gun;
}
perk_give_bottle_end( gun, perk )
{
assert( gun != "zombie_perk_bottle_revive" );
assert( gun != "syrette" );
self EnableOffhandWeapons();
self EnableWeaponCycling();
self AllowLean( true );
self AllowAds( true );
self AllowSprint( true );
self AllowProne( true );
self AllowMelee( true );
weapon = "";
weapon = "zombie_perk_bottle_revive";
// TODO: race condition?
if ( self maps\_laststand::player_is_in_laststand() )
{
self TakeWeapon(weapon);
return;
}
if ( gun != "none" && gun != "mine_bouncing_betty" )
{
self SwitchToWeapon( gun );
}
else
{
// try to switch to first primary weapon
primaryWeapons = self GetWeaponsListPrimaries();
if( IsDefined( primaryWeapons ) && primaryWeapons.size > 0 )
{
self SwitchToWeapon( primaryWeapons[0] );
}
}
self TakeWeapon(weapon);
}
bonfire_powerup( drop_item, player_won )
{
iPrintLnBold("^7Bonfire Sale");
level.pap_cost = 1000;
wait ( 30 );
iPrintLnBold("^7Bonfire Sale Over");
level.pap_cost = 5000;
}
level.box_cost = 600