Find funktionen:
Fjern
Find
Fjern
Gem og compile
Code:
Help_ShowMainMenu(client) {
new Handle:menu = CreateMenu(Help_MainMenuHandler);
SetMenuExitBackButton(menu, false);
SetMenuTitle(menu, "Help Menu\n ");
new msize = GetArraySize(g_helpMenus);
new hmenu[HelpMenu];
new String:menuid[10];
for (new i = 0; i < msize; ++i) {
Format(menuid, sizeof(menuid), "helpmenu_%d", i);
GetArrayArray(g_helpMenus, i, hmenu[0]);
AddMenuItem(menu, menuid, hmenu[name]);
}
AddMenuItem(menu, "maplist", "Map Rotation");
if (GetConVarBool(g_cvarAdmins))
AddMenuItem(menu, "admins", "List Online Admins");
DisplayMenu(menu, client, 30);
}
Fjern
Code:
if (GetConVarBool(g_cvarAdmins))
AddMenuItem(menu, "admins", "List Online Admins");
Find
Code:
public Help_MainMenuHandler(Handle:menu, MenuAction:action, param1, param2) {
if (action == MenuAction_End) {
CloseHandle(menu);
} else if (action == MenuAction_Select) {
new String:buf[64];
new msize = GetArraySize(g_helpMenus);
if (param2 == msize) { // Maps
new Handle:mapMenu = CreateMenu(Help_MenuHandler);
SetMenuExitBackButton(mapMenu, true);
ReadMapList(g_mapArray, g_mapSerial, "default");
Format(buf, sizeof(buf), "Current Rotation (%d maps)\n ", GetArraySize(g_mapArray));
SetMenuTitle(mapMenu, buf);
if (g_mapArray != INVALID_HANDLE) {
new mapct = GetArraySize(g_mapArray);
new String:mapname[64];
for (new i = 0; i < mapct; ++i) {
GetArrayString(g_mapArray, i, mapname, sizeof(mapname));
AddMenuItem(mapMenu, mapname, mapname, ITEMDRAW_DISABLED);
}
}
DisplayMenu(mapMenu, param1, 30);
} else if (param2 == msize+1) { // Admins
new Handle:adminMenu = CreateMenu(Help_MenuHandler);
SetMenuExitBackButton(adminMenu, true);
SetMenuTitle(adminMenu, "Online Admins\n ");
new maxc = GetMaxClients();
new String:aname[64];
for (new i = 1; i < maxc; ++i) {
if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i) && (GetUserFlagBits(i) & ADMFLAG_GENERIC) == ADMFLAG_GENERIC) {
GetClientName(i, aname, sizeof(aname));
AddMenuItem(adminMenu, aname, aname, ITEMDRAW_DISABLED);
}
}
DisplayMenu(adminMenu, param1, 30);
} else { // Menu from config file
if (param2 <= msize) {
new hmenu[HelpMenu];
GetArrayArray(g_helpMenus, param2, hmenu[0]);
new String:mtitle[512];
Format(mtitle, sizeof(mtitle), "%s\n ", hmenu[title]);
if (hmenu[type] == HelpMenuType_Text) {
new Handle:cpanel = CreatePanel();
SetPanelTitle(cpanel, mtitle);
new String:text[128];
new String:junk[128];
for (new i = 0; i < hmenu[itemct]; ++i) {
ReadPackString(hmenu[items], junk, sizeof(junk));
ReadPackString(hmenu[items], text, sizeof(text));
DrawPanelText(cpanel, text);
}
for (new j = 0; j < 7; ++j)
DrawPanelItem(cpanel, " ", ITEMDRAW_NOTEXT);
DrawPanelText(cpanel, " ");
DrawPanelItem(cpanel, "Back", ITEMDRAW_CONTROL);
DrawPanelItem(cpanel, " ", ITEMDRAW_NOTEXT);
DrawPanelText(cpanel, " ");
DrawPanelItem(cpanel, "Exit", ITEMDRAW_CONTROL);
ResetPack(hmenu[items]);
SendPanelToClient(cpanel, param1, Help_MenuHandler, 30);
CloseHandle(cpanel);
} else {
new Handle:cmenu = CreateMenu(Help_CustomMenuHandler);
SetMenuExitBackButton(cmenu, true);
SetMenuTitle(cmenu, mtitle);
new String:cmd[128];
new String:desc[128];
for (new i = 0; i < hmenu[itemct]; ++i) {
ReadPackString(hmenu[items], cmd, sizeof(cmd));
ReadPackString(hmenu[items], desc, sizeof(desc));
new drawstyle = ITEMDRAW_DEFAULT;
if (strlen(cmd) == 0)
drawstyle = ITEMDRAW_DISABLED;
AddMenuItem(cmenu, cmd, desc, drawstyle);
}
ResetPack(hmenu[items]);
DisplayMenu(cmenu, param1, 30);
}
}
}
}
}
Code:
else if (param2 == msize+1) { // Admins
new Handle:adminMenu = CreateMenu(Help_MenuHandler);
SetMenuExitBackButton(adminMenu, true);
SetMenuTitle(adminMenu, "Online Admins\n ");
new maxc = GetMaxClients();
new String:aname[64];
for (new i = 1; i < maxc; ++i) {
if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i) && (GetUserFlagBits(i) & ADMFLAG_GENERIC) == ADMFLAG_GENERIC) {
GetClientName(i, aname, sizeof(aname));
AddMenuItem(adminMenu, aname, aname, ITEMDRAW_DISABLED);
}
}
DisplayMenu(adminMenu, param1, 30);
}
Gem og compile
