Post: Prestige Selector Shaders Problem
02-23-2016, 09:06 PM #1
BullyWiiPlaza
Climbing up the ladder
(adsbygoogle = window.adsbygoogle || []).push({}); I'm using a script to graphically select the prestige however, the prestige shaders on-screen do not work and they only show up as checkerboards. Yes, I did precache the shaders in my init() function but it's not working on local, private match and even online.

Here's Liam's code which I edited:
    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;
}

Thanks Smile
(adsbygoogle = window.adsbygoogle || []).push({});
02-23-2016, 09:19 PM #2
Procyon
Gym leader
Isn't this the one Liam released a while ago? Maybe try to NOT edit it once..?
02-23-2016, 09:34 PM #3
Loz
Vault dweller
normal prestiges shaders doesnt need to be precached, just 12-13-14-15

The following user thanked Loz for this useful post:

BullyWiiPlaza
02-23-2016, 10:36 PM #4
BullyWiiPlaza
Climbing up the ladder
Originally posted by Procyon View Post
Isn't this the one Liam released a while ago? Maybe try to NOT edit it once..?

It's not like a broke it, just see how it looks like now:
You must login or register to view this content. Why is the first prestige shader a checkerboard? I also want to have all 15 prestige shaders on-screen but it cuts off. The code from the first post is updated by the way. Applying prestiges does work from 1 to 15.

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo