specialist()
{
self endon( "death" );
self endon( "disconnect" );
self thread WatchKSLights();
self thread initKillstreakHUD();
for(;
{
self waittill("killed_enemy");
switch(self.pers["cur_kill_streak"])
{
case 2:
self thread perkMessage( "Scavenger Unlocked", "specialty_scavenger_upgrade" );
self maps\mp\perks\_perks::givePerk("specialty_scavenger");
self maps\mp\perks\_perks::givePerk("specialty_extraammo");
break;
case 4:
self thread perkMessage( "Hardline Unlocked", "specialty_hardline_upgrade" );
self maps\mp\perks\_perks::givePerk("specialty_hardline");
self maps\mp\perks\_perks::givePerk("specialty_rollover");
break;
case 5:
self thread perkMessage( "Commando Unlocked", "specialty_commando_upgrade" );
self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
break;
case 7:
self thread perkMessage( "Specialist Achieved", "specialty_onemanarmy_upgrade" );
//add your own all perks code here
self thread xpBonusText();
self.xpScaler = 2;
self setClientDvar("g_speed",205);
}
}
}
createKSIcon(ksShader, y)
{
self endon("disconnect");
self endon( "death" );
ksIcon = createIcon( ksShader, 20, 20 );
ksIcon setPoint( "BOTTOM RIGHT", "BOTTOM RIGHT", -32, y );
ksIcon.alpha = 0.325;
ksIcon.hideWhenInMenu = true;
ksIcon.foreground = true;
return ksIcon;
}
xpBonusText()
{
self endon( "death" );
self waittill("killed_enemy");
self thread xpBonus("^7Specialist Bonus", (1, 1, 0.5), 0);
wait 0.1;
self thread xpBonusText();
}
xpBonus(message, hudColor, glowAlpha)
{
self endon("disconnect");
self endon( "death" );
self.bonusnoticeb destroy();
self.bonusnotice destroy();
self.bonusnotice = self createFontString("hudbig", 0.5);
self.bonusnotice setPoint("CENTERMIDDLE", "CENTERMIDDLE", 95, -35);
self.bonusnotice.color = hudColor;
self.bonusnotice.glowColor = hudColor;
self.bonusnotice.glowAlpha = glowAlpha;
self.bonusnotice.fontscale = 0.65;
self.bonusnotice setText(message);
self.bonusnoticeb = self createFontString("hudbig", 1);
self.bonusnoticeb setPoint("CENTERMIDDLE", "CENTERMIDDLE", 95, -35);
self.bonusnoticeb.color = hudColor;
self.bonusnoticeb.glowColor = hudColor;
self.bonusnoticeb.glowAlpha = glowAlpha;
self.bonusnoticeb.fontscale = 0.65;
self.bonusnoticeb setText(message);
self.bonusnoticeb destroy();
wait 1.5;
self.bonusnotice destroy();
}
perkMessage( title, icon )
{
pmessage = spawnstruct();
pmessage.iconName = icon;
pmessage.titleText = title;
self thread maps\mp\gametypes\_hud_message::notifyMessage( pmessage );
}
WatchKSLights()
{
self.killstreakLightUp=0;
self endon("StopMw3KSLights");
self endon("death");
for(i=1;i<7;i++)
{
self.LightUpKS[i]=createIcon( "white", 10, 5 );
self.LightUpKS[i] setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", -15, (i*-10) -90 );
self.LightUpKS[i].color=(0,0,0);
self.LightUpKS[i].alpha=0.6;
self thread DestroyKSWatchOnDeath(self.LightUpKS[i]);
}
for(;
{
self.killstreakLightUp = self.pers["cur_kill_streak"];
if(self.killstreakLightUp!=0)
{
self.LightUpKS[self.killstreakLightUp].color=(1,1,0);
self.LightUpKS[self.killstreakLightUp].alpha=1;
}
wait 0.01;
}
}
initKillstreakHUD()
{
self endon( "disconnect" );
self endon( "death" );
// Get killstreak icons
ksOne = ( "specialty_scavenger_upgrade" );
ksTwo = ( "specialty_hardline_upgrade" );
ksThr = ( "specialty_commando_upgrade" );
ksFr = ( "specialty_onemanarmy_upgrade" );
wait 0.1;
// Create the killstreak counter HUD
self.ksOneIcon = createKSIcon(ksOne, -90);
self.ksTwoIcon = createKSIcon(ksTwo, -110);
self.ksThrIcon = createKSIcon(ksThr, -130);
self.ksFrIcon = createKSIcon(ksFr, -150);
self.ksOneIcon.alpha = 0.325;
self.ksTwoIcon.alpha = 0.325;
self.ksThrIcon.alpha = 0.325;
self.ksFrIcon.alpha = 0;
self thread checkKSProgression();
}
checkKSProgression()
{
self endon("disconnect");
self endon( "death" );
if(self.perk1active == 1)
{
self.ksOneIcon.alpha = 1;
}
if(self.perk2active == 1)
{
self.ksTwoIcon.alpha = 1;
}
if(self.perk3active == 1)
{
self.ksThrIcon.alpha = 1;
}
if(self.perk4active == 1)
{
self.ksFrIcon.alpha = 1;
}
}
DestroyKSWatchOnDeath(elem)
{
self waittill("death");
elem destroy();
}
specialist()
{
for(;
{
self waittill("killed_enemy");
switch(self.pers["cur_kill_streak"])
{
case 3:
self thread perkMessage( "Scavenger Unlocked", "specialty_scavenger" );
self maps\mp\perks\_perks::givePerk("specialty_scavenger_upgrade");
break;
case 5:
self thread perkMessage( "Hardline Unlocked", "specialty_hardline" );
self maps\mp\perks\_perks::givePerk("specialty_hardline");
break;
case 7:
self thread perkMessage( "Commando Unlocked", "specialty_commando" );
self maps\mp\perks\_perks::givePerk("specialty_commando");
break;
}
}
}
perkMessage( title, icon )
{
pmessage = spawnstruct();
pmessage.iconName = icon;
pmessage.titleText = title;
self thread maps\mp\gametypes\_hud_message::notifyMessage( pmessage );
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.