Answered Un-verify Host Problem

Ubstion

Member
Messages
18
Reaction score
8
Points
8
The Menu base by Shark:
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_rank;

//BO2 GSC Menu Base By Shark

init()
{
level thread onplayerconnect();
}

onplayerconnect()
{
for(;:wink:
{
level waittill( "connecting", player );
if(player isHost())
player.status = "Host";
else
player.status = "Unverified";

player thread onplayerspawned();
}
}

onplayerspawned()
{
self endon( "disconnect" );
level endon( "game_ended" );

self.MenuInit = false;

for(;:wink:
{
self waittill( "spawned_player" );
self welcomeMessage();
if( self.status == "Host" || self.status == "CoHost" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified")
{
if (!self.MenuInit)
{
self.MenuInit = true;
self thread MenuInit();
self thread closeMenuOnDeath();
}
}
}
}

drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}

drawShader(shader, x, y, width, height, color, alpha, sort)
{
hud = newClientHudElem(self);
hud.elemtype = "icon";
hud.color = color;
hud.alpha = alpha;
hud.sort = sort;
hud.children = [];
hud setParent(level.uiParent);
hud setShader(shader, width, height);
hud.x = x;
hud.y = y;
return hud;
}

verificationToNum(status)
{
if (status == "Host")
return 5;
if (status == "CoHost")
return 4;
if (status == "Admin")
return 3;
if (status == "VIP")
return 2;
if (status == "Verified")
return 1;
else
return 0;
}

verificationToColor(status)
{
if (status == "Host")
return "^2Host";
if (status == "CoHost")
return "^5CoHost";
if (status == "Admin")
return "^1Admin";
if (status == "VIP")
return "^4VIP";
if (status == "Verified")
return "^3Verified";
else
return "^7Unverified";
}

changeVerificationMenu(player, verlevel)
{
if( player.status != verlevel)
{
player.status = verlevel;

self.menu.title destroy();
self.menu.title = drawText("[" + verificationToColor(player.status) + "^7] " + player.name, "objective", 2, 280, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
self.menu.title FadeOverTime(0.3);
self.menu.title.alpha = 1;

if(player.status == "Unverified")
self thread destroyMenu(player);

player suicide();
self iPrintln("Set Access Level For " + player.name + " To " + verificationToColor(verlevel));
player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
}
else
{
self iPrintln("Access Level For " + player.name + " Is Already Set To " + verificationToColor(verlevel));
}
}

changeVerification(player, verlevel)
{
player.status = verlevel;
}

Iif(bool, rTrue, rFalse)
{
if(bool)
return rTrue;
else
return rFalse;
}

welcomeMessage()
{
notifyData = spawnstruct();
notifyData.titleText = "Welcome " + self.name + " To Menu"; //Line 1
notifyData.notifyText = "Your Status Is " + verificationToColor(self.status); //Line 2
notifyData.glowColor = (0.3, 0.6, 0.3); //RGB Color array divided by 100
notifyData.duration = 5; //Change Duration
notifyData.font = "objective"; //font
notifyData.hideWhenInMenu = false;
self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
}

CreateMenu()
{
self add_menu("Main Menu", undefined, "Unverified");
self add_option("Main Menu", "Sub Menu 1", ::submenu, "SubMenu1", "Sub Menu 1");
self add_option("Main Menu", "Sub Menu 2", ::submenu, "SubMenu2", "Sub Menu 2");
self add_option("Main Menu", "Sub Menu 3", ::submenu, "SubMenu3", "Sub Menu 3");
self add_option("Main Menu", "Players", ::submenu, "PlayersMenu", "Players");

self add_menu("SubMenu1", "Main Menu", "Admin");
self add_option("SubMenu1", "Option 1");
self add_option("SubMenu1", "Option 2");
self add_option("SubMenu1", "Option 3");

self add_menu("SubMenu2", "Main Menu", "VIP");
self add_option("SubMenu2", "Option 1");
self add_option("SubMenu2", "Option 2");
self add_option("SubMenu2", "Option 3");

self add_menu("SubMenu3", "Main Menu", "Verified");
self add_option("SubMenu3", "Option 1");
self add_option("SubMenu3", "Option 2");
self add_option("SubMenu3", "Option 3");

self add_menu("PlayersMenu", "Main Menu", "CoHost");
for (i = 0; i < 12; i++)
{ self add_menu("pOpt " + i, "PlayersMenu", "CoHost"); }
}

updatePlayersMenu()
{
self.menu.menucount["PlayersMenu"] = 0;
for (i = 0; i < 12; i++)
{
player = level.players;
name = player.name;

playersizefixed = level.players.size - 1;
if(self.menu.curs["PlayersMenu"] > playersizefixed)
{
self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
self.menu.curs["PlayersMenu"] = playersizefixed;
}

self add_option("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + player.name, ::submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + player.name);

self add_menu_alt("pOpt " + i, "PlayersMenu");
self add_option("pOpt " + i, "Give CoHost", ::changeVerificationMenu, player, "CoHost");
self add_option("pOpt " + i, "Give Admin", ::changeVerificationMenu, player, "Admin");
self add_option("pOpt " + i, "Give VIP", ::changeVerificationMenu, player, "VIP");
self add_option("pOpt " + i, "Verify", ::changeVerificationMenu, player, "Verified");
self add_option("pOpt " + i, "Unverify", ::changeVerificationMenu, player, "Unverified");
}
}

add_menu_alt(Menu, prevmenu)
{
self.menu.getmenu[Menu] = Menu;
self.menu.menucount[Menu] = 0;
self.menu.previousmenu[Menu] = prevmenu;
}

add_menu(Menu, prevmenu, status)
{
self.menu.status[Menu] = status;
self.menu.getmenu[Menu] = Menu;
self.menu.scrollerpos[Menu] = 0;
self.menu.curs[Menu] = 0;
self.menu.menucount[Menu] = 0;
self.menu.previousmenu[Menu] = prevmenu;
}

add_option(Menu, Text, Func, arg1, arg2)
{
Menu = self.menu.getmenu[Menu];
Num = self.menu.menucount[Menu];
self.menu.menuopt[Menu][Num] = Text;
self.menu.menufunc[Menu][Num] = Func;
self.menu.menuinput[Menu][Num] = arg1;
self.menu.menuinput1[Menu][Num] = arg2;
self.menu.menucount[Menu] += 1;
}

openMenu()
{
self freezeControls( false );
self StoreText("Main Menu", "Main Menu");

self.menu.background FadeOverTime(0.3);
self.menu.background.alpha = 0.65;

self.menu.line MoveOverTime(0.15);
self.menu.line.y = -50;

self.menu.scroller MoveOverTime(0.15);
self.menu.scroller.y = self.menu.opt[self.menu.curs[self.menu.currentmenu]].y+1;
self.menu.open = true;
}

closeMenu()
{
for(i = 0; i < self.menu.opt.size; i++)
{
self.menu.opt FadeOverTime(0.3);
self.menu.opt.alpha = 0;
}

self.menu.background FadeOverTime(0.3);
self.menu.background.alpha = 0;

self.menu.title FadeOverTime(0.3);
self.menu.title.alpha = 0;

self.menu.line MoveOverTime(0.15);
self.menu.line.y = -550;

self.menu.scroller MoveOverTime(0.15);
self.menu.scroller.y = -500;
self.menu.open = false;
}

destroyMenu(player)
{
player.MenuInit = false;
closeMenu();

wait 0.3;

for(i=0; i < self.menu.menuopt[player.menu.currentmenu].size; i++)
{ player.menu.opt destroy(); }

player.menu.background destroy();
player.menu.scroller destroy();
player.menu.line destroy();
player.menu.title destroy();
player notify( "destroyMenu" );
}

closeMenuOnDeath()
{
self endon("disconnect");
self endon( "destroyMenu" );
level endon("game_ended");
for (;:wink:
{
self waittill("death");
self.menu.closeondeath = true;
self submenu("Main Menu", "Main Menu");
closeMenu();
self.menu.closeondeath = false;
}
}

StoreShaders()
{
self.menu.background = self drawShader("white", 320, -50, 300, 500, (0, 0, 0), 0, 0);
self.menu.scroller = self drawShader("white", 320, -500, 300, 17, (0, 0, 0), 255, 1);
self.menu.line = self drawShader("white", 170, -550, 2, 500, (0, 0, 0), 255, 2);
}

StoreText(menu, title)
{
self.menu.currentmenu = menu;
self.menu.title destroy();
self.menu.title = drawText(title, "objective", 2, 280, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
self.menu.title FadeOverTime(0.3);
self.menu.title.alpha = 1;

for(i=0; i < self.menu.menuopt[menu].size; i++)
{
self.menu.opt destroy();
self.menu.opt = drawText(self.menu.menuopt[menu], "objective", 1.6, 280, 68 + (i*20), (1, 1, 1), 0, (0, 0, 0), 0, 4);
self.menu.opt FadeOverTime(0.3);
self.menu.opt.alpha = 1;
}
}

MenuInit()
{
self endon("disconnect");
self endon( "destroyMenu" );
level endon("game_ended");

self.menu = spawnstruct();
self.toggles = spawnstruct();

self.menu.open = false;

self StoreShaders();
self CreateMenu();

for(;:wink:
{
if(self MeleeButtonPressed() && self adsbuttonpressed() && !self.menu.open) // Open.
{
openMenu();
}
if(self.menu.open)
{
if(self usebuttonpressed())
{
if(isDefined(self.menu.previousmenu[self.menu.currentmenu]))
{
self submenu(self.menu.previousmenu[self.menu.currentmenu]);
}
else
{
closeMenu();
}
wait 0.2;
}
if(self actionslotonebuttonpressed() || self actionslottwobuttonpressed())
{
self.menu.curs[self.menu.currentmenu] += (Iif(self actionslottwobuttonpressed(), 1, -1));
self.menu.curs[self.menu.currentmenu] = (Iif(self.menu.curs[self.menu.currentmenu] < 0, self.menu.menuopt[self.menu.currentmenu].size-1, Iif(self.menu.curs[self.menu.currentmenu] > self.menu.menuopt[self.menu.currentmenu].size-1, 0, self.menu.curs[self.menu.currentmenu])));

self.menu.scroller MoveOverTime(0.15);
self.menu.scroller.y = self.menu.opt[self.menu.curs[self.menu.currentmenu]].y+1;
}
if(self jumpbuttonpressed())
{
self thread [[self.menu.menufunc[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]]]](self.menu.menuinput[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]], self.menu.menuinput1[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]]);
wait 0.2;
}
}
wait 0.05;
}
}

submenu(input, title)
{
if (verificationToNum(self.status) >= verificationToNum(self.menu.status[input]))
{
for(i=0; i < self.menu.opt.size; i++)
{ self.menu.opt destroy(); }

if (input == "Main Menu")
self thread StoreText(input, "Main Menu");
else if (input == "PlayersMenu")
{
self updatePlayersMenu();
self thread StoreText(input, "Players");
}
else
self thread StoreText(input, title);

self.CurMenu = input;

self.menu.scrollerpos[self.CurMenu] = self.menu.curs[self.CurMenu];
self.menu.curs[input] = self.menu.scrollerpos[input];

if (!self.menu.closeondeath)
{
self.menu.scroller MoveOverTime(0.15);
self.menu.scroller.y = self.menu.opt[self.menu.curs[self.CurMenu]].y+1;
}
}
else
{
self iPrintln("Only Players With ^1" + verificationToColor(self.menu.status[input]) + " ^7Can Access This Menu!");
}
}

//Functions

In this menu you could make the host un-verified or make them Admin, or worse V.I.P.

My question to you is how do you fix it so they can't touch the hosts verification?
Another question is how can i stealth this menu so it doesn't pop up on kill-cams or spectator's view?
Third question is whenever you die the welcome message keeps popping up how do i prevent that as well?
 
Last edited:

Pyrex BLJ

im done :)
Staff member
Messages
607
Reaction score
339
Points
953
changeVerificationMenu(player, verlevel)
{
Code:
if( player.status != verlevel)
{
player.status = verlevel;

self.menu.title destroy();
self.menu.title = drawText("[" + verificationToColor(player.status) + "^7] " + player.name, "objective", 2, 280, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
self.menu.title FadeOverTime(0.3);
self.menu.title.alpha = 1;

if(player.status == "Unverified")
self thread destroyMenu(player);

player suicide();
self iPrintln("Set Access Level For " + player.name + " To " + verificationToColor(verlevel));
player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
}
else
{
self iPrintln("Access Level For " + player.name + " Is Already Set To " + verificationToColor(verlevel));
}
}
where it says
Code:
if( player.status != verlevel)
in the changeVerificationMenu function change it to
Code:
if( player.status != verlevel && !player isHost())
 

Harry

Certified Sick ℂunt
Premium Member
Messages
1,263
Reaction score
968
Points
973
Stealth Menu is easy.
In your OpenMenu function, place another variable under all off the variables there like this:
self.menu.shader.alpha = 0;

And do that in the place that your text is being stored. PM me your source if you want me to help you.


To prevent welcome message, do this:

In your onPlayerSpawned function, find the for method, and under that you should see:
self waittill("spawned_player");
And under that functions that you would call, in closing your welcome message.

Around your welcome message, do this: (under the self waittill)

if(self.MessageShown == false)
{
self WelcomeMessage();
self.MessageShown = true;
}

And done :smile:

~Harry
 
Top