precachePrestigeShaders()
{
level.prestigeShaders = [];
for(prestigeIndex = 0; prestigeIndex < 15; prestigeIndex++)
{
shaderName = "rank_prestige";
if(prestigeIndex < 10)
{
shaderName += "0";
}
shaderName += prestigeIndex;
level.prestigeShaders[level.prestigeShaders.size] = shaderName;
}
foreach(prestigeShader in level.prestigeShaders)
{
precacheShader(prestigeShader);
}
}
prestigeSelector(player)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self freezeControls(true);
self disableWeapons();
self setBlur(10, 0.4);
prestigeHUDElements = [];
// Draw the prestige shaders in a circular way
for(m = 0; m < level.prestigeShaders.size; m++)
{
prestigeHUDElements[prestigeHUDElements.size] = self createPrestigeSelectorRectangle("CENTER", "CENTER", (sin(180+(m*36))*120)*-1, cos(180+(m*36))*120, 40, 40, (1, 1, 1), level.prestigeShaders[m], 1, 0.4);
}
prestigeHUDElements[0] scaleOverTime(0.3, 70, 70);
prestigeHUDElements[0] fadeOverTime(0.3);
prestigeHUDElements[0].alpha = 1;
selectedPrestigeText = self createPrestigeSelectorText("objective", 1.5, "CENTER", "CENTER", 0, 0, 1, 0, "Prestige 1");
selectedPrestigeText fadeOverTime(0.3);
selectedPrestigeText.alpha = 1;
wait 0.3;
curs = 0;
while(true)
{
// Scroll through prestiges
if(self adsButtonPressed() || self attackButtonPressed())
{
oldCurs = curs;
curs -= self adsButtonPressed();
curs += self attackButtonPressed();
if(curs < 0)
{
curs = prestigeHUDElements.size - 1;
}
else if(curs > prestigeHUDElements.size - 1)
{
curs = 0;
}
prestigeHUDElements[oldCurs] scaleOverTime(0.3, 50, 50);
prestigeHUDElements[oldCurs] fadeOverTime(0.3);
prestigeHUDElements[oldCurs].alpha = 0.4;
prestigeHUDElements[curs] scaleOverTime(0.3, 70, 70);
prestigeHUDElements[curs] fadeOverTime(0.3);
prestigeHUDElements[curs].alpha = 1;
selectedPrestigeText.alpha = 0;
selectedPrestigeText setSafeText("Prestige " + (curs + 1));
selectedPrestigeText fadeOverTime(0.3);
selectedPrestigeText.alpha = 1;
self playSound("uin_cmn_deny");
wait 0.3;
}
// Apply prestige
if(self useButtonPressed())
{
prestige = int(curs + 1);
player playSound("amb_light_buzz");
player setRank(player.pers["rank"], prestige);
player iPrintln("Prestige set to: ^2" + prestige);
if(self != player)
{
self iPrintln("Prestige for " + player.name + "has been set to: ^2" + prestige);
}
prestigeHUDElements[curs] moveOverTime(0.3);
prestigeHUDElements[curs] setPoint("CENTER", "CENTER", 0, 0);
wait 0.3;
prestigeHUDElements[curs] thread flashThread();
wait 1;
break;
}
// Quit prestige selector
if(self meleeButtonPressed())
{
break;
}
wait 0.05;
}
foreach(prestigeHUDElement in prestigeHUDElements)
{
prestigeHUDElement destroy();
}
selectedPrestigeText destroy();
self freezeControls(false);
self enableWeapons();
self setBlur(0, 0.4);
}
createPrestigeSelectorText(font, fontScale, align, relative, x, y, sort, alpha, text)
{
textElem = self createFontString(font, fontScale);
textElem setPoint(align, relative, x, y);
textElem.sort = sort;
textElem.alpha = alpha;
textElem setSafeText(text);
return textElem;
}
createPrestigeSelectorRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
{
boxElem = newClientHudElem(self);
boxElem.elemType = "bar";
if(!level.splitScreen)
{
boxElem.x = -2;
boxElem.y = -2;
}
boxElem.width = width;
boxElem.height = height;
boxElem.align = align;
boxElem.relative = relative;
boxElem.xOffset = 0;
boxElem.yOffset = 0;
boxElem.children = [];
boxElem.sort = sort;
boxElem.color = color;
boxElem.alpha = alpha;
boxElem.shader = shader;
boxElem setParent(level.uiParent);
boxElem setShader(shader, width, height);
boxElem.hidden = false;
boxElem setPoint(align, relative, x, y);
return boxElem;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.