#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_rank;
#include maps\mp\gametypes\_globallogic_score;
#include maps\mp\gametypes\sd;
#include maps\mp\bots\_bot;
#include maps\mp\gametypes\_menus;
#include maps\mp\gametypes\_pregame;
#include maps\mp\gametypes\_dev;
#include maps\mp\gametypes\_globallogic;
#include maps\mp\gametypes\_globallogic_utils;
#include maps\mp\gametypes\_class;
#include maps\mp\gametypes\shrp;
#include maps\mp\gametypes\_wager;
#include maps\mp\_scoreevents;
#include maps\mp\teams\_teams;
#include maps\mp\gametypes\_spawnlogic;
#include maps\mp\gametypes\_spawning;
#include maps\mp\killstreaks\_turret_killstreak;
init()
{
level.loadoutKillstreaksEnabled = false;
level.teamscoreperkill = 1;
precacheShader("menu_black_box_faded");
precacheShader("gradient_center");
level.onplayerkilled = ::crank_onPlayerKilled;
level.crank_secPerKill = 20;
level.crank_randomPrimaryColor = false;
level.crank_introEnabled = false;
crank_addPrimaryColorChoice((1,0,0));
crank_addPrimaryColorChoice((0,1,0));
crank_addPrimaryColorChoice((0,0,1));
crank_addPrimaryColorChoice((1,1,0));
crank_addPrimaryColorChoice((0,1,1));
if(!level.crank_randomPrimaryColor)
level.crank_primaryColor = (0,0,1);
else
level.crank_primaryColor = level.crank_primaryColorChoices[randomIntRange(0, level.crank_primaryColorChoices.size)];
maps/mp/gametypes/_wager::addpowerup( "specialty_unlimitedsprint", "perk", "Inf. Sprint", "perk_lightweight" );
maps/mp/gametypes/_wager::addpowerup( "specialty_fastads", "perk", "Faster Aim", "perk_dexterity" );
maps/mp/gametypes/_wager::addpowerup( "specialty_fastreload", "perk", "Faster Reload", "perk_fast_hands" );
maps/mp/gametypes/_wager::addpowerup( "specialty_scavenger", "perk", "Scavenger", "perk_scavenger" );
maps/mp/gametypes/_wager::addpowerup( "specialty_healthregen", "perk", "Quick Health Regen", "perk_flak_jacket" );
level thread crank_onPlayerConnect();
if(level.crank_introEnabled)
{
level notify("end_crank_Intro");
level thread crank_Intro();
}
}
crank_Intro()
{
level endon("end_crank_Intro");
wait 7.65;
bg = level drawShader("white", 1023, 1023, 0, 0, "", "", (0,0,0), 0, 0, true);
text = level drawString(1, "C-R-A-/-N-K-E-D", true, 4.2, (1,1,1), 0, level.crank_primaryColor, 0, 0, 0, "", "", 1, true);
phrase = level drawString(1, "Kill Get Cranked\n\n\n\n\n Repeat", true, 3, (1,1,1), 0, level.crank_primaryColor, 0, 30, -80, "", "", 1, true);
line = level drawShader("white", 1, 5, 0, 4, "", "", (0,0,0), 0, 2, true);
bg.alpha = 0;
text.alpha = 0;
text.color = (1,1,1);
text.glowalpha = 0;
line.alpha = 0;
line scaleOverTime(0.01, 1, 5);
bg fadeOverTime(1);
bg.alpha = 1;
text fadeOverTime(1);
text.alpha = 1;
wait 1.5;
line.alpha = 1;
line scaleOverTime(1, 1023, 5);
text fadeOverTime(0.6);
text.color = level.crank_primaryColor;
phrase fadeOverTime(0.6);
phrase.alpha = 1;
phrase.glowalpha = 1;
wait 5;
line scaleOverTime(0.5, 1, 5);
wait 0.45;
bg fadeOverTime(0.3);
bg.alpha = 0;
line fadeOverTime(0.01);
line.alpha = 0;
text fadeOverTime(0.3);
text.alpha = 0;
phrase fadeOverTime(0.3);
phrase.alpha = 0;
wait 0.3;
bg destroyElem();
text destroyElem();
phrase destroyElem();
line destroyElem();
}
crank_addPrimaryColorChoice(color)
{
if(!isDefined(level.crank_primaryColorChoices))
level.crank_primaryColorChoices = [];
if(!isDefined(level.crank_colorChoiceNum))
level.crank_colorChoiceNum = 0;
else
level.crank_colorChoiceNum += 1;
level.crank_primaryColorChoices[level.crank_colorChoiceNum] = color;
}
crank_onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread crank_onPlayerSpawned();
}
}
crank_onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;
{
self waittill("spawned_player");
level.loadoutKillstreaksEnabled = false;
if(!isDefined(self.crank_huds))
{
self.crank_huds = [];
self.crank_huds["timerValue"] = self drawString(2, 0, true, 6, (1,1,1), 0, level.crank_primaryColor, 0, 70, 0, "LEFT", "LEFT", 2);
self.crank_huds["crankedText"] = self drawString(1, "CRANKED /", true, 6, (1,1,1), 0, level.crank_primaryColor, 0, -660, 0, "RIGHT", "RIGHT", 2);
self.crank_huds["crankedShader"] = self drawShader("menu_black_box_faded", 330, 50, -570, 0, "", "", (0,0,0), 1, 0);
self.crank_huds["crankedBg"] = self drawShader("gradient_center", 1023, 1023, 0, 0, "", "", level.crank_primaryColor, 0, 0);
}
self.hud_damagefeedback.color = (1,1,1);
self.crank_killstreak = 0;
self clearperks();
self setmovespeedscale(1);
self maps/mp/gametypes/_wager::clearpowerups();
}
}
crank_hudSpawnEffect()
{
//-570
self.crank_huds["timerValue"].alpha = 1;
self.crank_huds["timerValue"].glowalpha = 1;
self.crank_huds["crankedShader"].alpha = 1;
self.crank_huds["crankedShader"].glowalpha = 0.3;
self.crank_huds["crankedText"].alpha = 1;
self.crank_huds["crankedText"].glowalpha = 1;
self.crank_huds["crankedText"].foreground = true;
self.crank_huds["crankedBg"] fadeOverTime(0.2);
self.crank_huds["crankedBg"].alpha = 0.21;
self.crank_huds["crankedShader"].x = -570;
self.crank_huds["crankedText"].fontscale = 6;
self.crank_huds["timerValue"].fontscale = 6;
self.crank_huds["crankedShader"] moveOverTime(0.12);
self.crank_huds["crankedShader"].x = -360;
self.crank_huds["timerValue"] changeFontScaleOverTime(0.12);
self.crank_huds["timerValue"].fontscale = 3;
self.crank_huds["crankedText"] changeFontScaleOverTime(0.12);
self.crank_huds["crankedText"].fontscale = 3;
}
crank_hudExitEffect()
{
self.crank_huds["timerValue"] changeFontScaleOverTime(0.47);
self.crank_huds["timerValue"].fontscale = 6;
self.crank_huds["crankedText"] changeFontScaleOverTime(0.47);
self.crank_huds["crankedText"].fontscale = 6;
self.crank_huds["timerValue"] fadeOverTime(0.5);
self.crank_huds["timerValue"].alpha = 0;
self.crank_huds["crankedText"] fadeOverTime(0.5);
self.crank_huds["crankedText"].alpha = 0;
self.crank_huds["crankedBg"] fadeOverTime(0.2);
self.crank_huds["crankedBg"].alpha = 0;
self.crank_huds["crankedShader"] moveOverTime(0.2);
self.crank_huds["crankedShader"].x = -570;
}
crank_timerCountdown()
{
self endon("disconnect");
self endon("game_ended");
self endon("death");
self endon("end_crank_timerCountdown");
self.crank_huds["timerValue"] fadeOverTime(0.1);
self.crank_huds["timerValue"].alpha = 1;
self.crank_huds["timerValue"].glowalpha = 1;
if(!self.crank_cranked)
{
self.hud_damagefeedback.color = level.crank_primaryColor;
self crank_hudSpawnEffect();
self setmovespeedscale(1.15);
self setPerk("specialty_longersprint");
self setperk("specialty_fallheight");
self setperk("specialty_fasttoss");
self setperk("specialty_fastequipmentuse");
self setperk("specialty_fastladderclimb");
self setperk("specialty_fastmantle");
self playlocalsound( "mpl_wager_humiliate" );
self.health = 100;
self.crank_cranked = true;
}
for(i=level.crank_secPerKill; i>-1;i--)
{
self.crank_huds["timerValue"].color = level.crank_primaryColor;
self.crank_huds["timerValue"].fontscale = 5;
self.crank_huds["timerValue"] setString(2, i, false);
self.crank_huds["timerValue"] changeFontScaleOverTime(0.12);
self.crank_huds["timerValue"].fontscale = 3;
self.crank_huds["timerValue"] fadeOverTime(0.12);
self.crank_huds["timerValue"].color = (1,1,1);
self playsoundtoplayer("uin_alert_lockon_start", self);
if(i==0)
{
self crank_hudExitEffect();
self playsoundtoplayer("uin_alert_lockon", self);
self.crank_cranked = false;
self suicide();
}
wait 1;
}
}
crank_onPlayerKilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration )
{
if(getDvar("g_gametype") == "tdm")
{
if ( isplayer( attacker ) == 0 || attacker.team == self.team )
{
return;
}
attacker maps/mp/gametypes/_globallogic_score::giveteamscoreforobjective( attacker.team, level.teamscoreperkill );
self maps/mp/gametypes/_globallogic_score::giveteamscoreforobjective( self.team, level.teamscoreperdeath * -1 );
if ( smeansofdeath == "MOD_HEAD_SHOT" )
{
attacker maps/mp/gametypes/_globallogic_score::giveteamscoreforobjective( attacker.team, level.teamscoreperheadshot );
}
}
else if(getDvar("g_gametype") == "dm")
{
if ( !isplayer( attacker ) || self == attacker )
{
return;
}
attacker maps/mp/gametypes/_globallogic_score::givepointstowin( level.teamscoreperkill );
self maps/mp/gametypes/_globallogic_score::givepointstowin( level.teamscoreperdeath * -1 );
if ( smeansofdeath == "MOD_HEAD_SHOT" )
{
attacker maps/mp/gametypes/_globallogic_score::givepointstowin( level.teamscoreperheadshot );
}
}
if(attacker != self)
{
//attacker maps/mp/gametypes/_wager::givepowerup( 0 );
attacker notify("end_crank_timerCountdown");
attacker thread crank_timerCountdown();
attacker.crank_killstreak += 1;
if(attacker.crank_killstreak == 2)
{
attacker maps/mp/gametypes/_wager::givepowerup( level.poweruplist[0] );
}
else if(attacker.crank_killstreak==3)
{
attacker maps/mp/gametypes/_wager::givepowerup( level.poweruplist[1] );
}
else if(attacker.crank_killstreak==4)
{
attacker maps/mp/gametypes/_wager::givepowerup( level.poweruplist[2] );
}
else if(attacker.crank_killstreak==5)
{
attacker maps/mp/gametypes/_wager::givepowerup( level.poweruplist[3] );
}
else if(attacker.crank_killstreak==6)
{
attacker maps/mp/gametypes/_wager::givepowerup( level.poweruplist[4] );
}
}
if(self.crank_cranked)
{
self notify("end_crank_timerCountdown");
self crank_hudExitEffect();
self.crank_cranked = false;
}
}
getHUDInfo(arg)
{
if(arg=="color")
return self.color;
else if(arg=="alpha")
return self.alpha;
else if(arg=="x")
return self.x;
else if(arg=="y")
return self.y;
else if(arg=="text")
return self.text;
else if(arg=="sort")
return self.sort;
else if(arg=="width")
return self.width;
else if(arg=="height")
return self.height;
}
setString(type, text, disableOverflowCount)
{
if(!disableOverflowCount)
{
if(!isDefined(level.overflowfix_result))
level.overflowfix_result = 0;
else
level.overflowfix_result += 1;
//level notify("overflow_result");
}
self.text = text;
if(type==1)
self setText(text);
else if(type==2)
self setValue(text);
}
drawString(type, text, disableOverflowCount, scale, color, alpha, glowcolor, glowalpha, x, y, xa, ya, sort, client, team)
{
if(!client || !isDefined(client))
hud = self createFontString("objective", scale);
else
hud = level createServerFontString("objective", scale, team);
hud.sort = sort;
hud setString(type, text, disableOverflowCount);
hud setPoint(xa, ya, x, y);
hud.color = color;
hud.alpha = alpha;
hud.glowcolor = glowcolor;
hud.glowalpha = glowalpha;
hud.archived = true;
return hud;
}
drawShader(shader, width, height, x, y, xa, ya, color, alpha, sort, client, team)
{
if(!client || !isDefined(client))
hud = createIcon(shader, width, height);
else
hud = createServerIcon(shader, width, height, team);
hud.width = width;
hud.height = height;
hud.sort = sort;
hud setPoint(xa, ya, x, y);
hud.color = color;
hud.alpha = alpha;
hud.archived = true;
return hud;
}
drawBar(width, height, color, alpha, flashfrac, x, y, xa, ya, sort, client, team, selected)
{
if(!client || !isDefined(client))
hud = createBar(color, width, height, flashfrac);
else
hud = createServerBar(color, width, height, flashfrac, team, selected);
hud.sort = sort;
hud setPoint(xa, ya, x, y);
hud updateBar((flashfrac));
hud.alpha = alpha;
hud.archived = true;
return hud;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.