void OpenTopToMenu(int client, int type)
{
char buffer[256];
for(int i = 0; i < Rating.Length && i < sizeof(aadata); i++)
{
Rating.GetString(i, buffer, sizeof(buffer));
Format(aadata[i], sizeof(aadata[]), "#%d. %s [%i]", i+1, buffer, Scores.Get(i));
TrimString(aadata[i]);
}
Panel hPanel = CreatePanel(INVALID_HANDLE);
switch(type)
{
case 2: Format(buffer, sizeof(buffer), "%t", "GhostTOP");
case 3: Format(buffer, sizeof(buffer), "%t", "CtsTOP");
}
hPanel.SetTitle(buffer);
hPanel.DrawItem(" ", ITEMDRAW_SPACER|ITEMDRAW_RAWLINE);
hPanel.DrawText("-----------------------------");
hPanel.DrawItem(" ", ITEMDRAW_SPACER|ITEMDRAW_RAWLINE);
int i = iMenuPos[client] * 10;
int start = i;
int end = i + 9;
if(end > iMax) end = iMax;
for(int k = i; k <= end; k++)
{
hPanel.DrawText(aadata[k]);
}
hPanel.DrawItem(" ", ITEMDRAW_SPACER|ITEMDRAW_RAWLINE);
hPanel.DrawText("-----------------------------");
hPanel.DrawItem(" ", ITEMDRAW_SPACER|ITEMDRAW_RAWLINE);
if(iMenuPos[client])
{
hPanel.CurrentKey = 6;
FormatEx(buffer, sizeof(buffer), "<== (%d - %d)", start - 9, start);
hPanel.DrawItem(buffer);
}
if(end < iMax-1)
{
i = end + 11;
if(i > iMax) i = iMax;
hPanel.CurrentKey = 7;
FormatEx(buffer, sizeof(buffer), "==> (%d - %d)", end + 2, i);
hPanel.DrawItem(buffer);
}
hPanel.DrawItem(" ", ITEMDRAW_SPACER|ITEMDRAW_RAWLINE);
hPanel.CurrentKey = 8;
hPanel.DrawItem("Назад");
hPanel.CurrentKey = 9;
hPanel.DrawItem("Выход");
hPanel.Send(client, PanelHandler, 30);
currenttype[client] = type;
delete hPanel;
}
public int PanelHandler(Menu menu, MenuAction action, int client, int item)
{
switch(item)
{
case 6:
{
iMenuPos[client]--;
OpenTopToMenu(client, currenttype[client]);
}
case 7:
{
iMenuPos[client]++;
OpenTopToMenu(client, currenttype[client]);
}
case 8:
{
iMenuPos[client] = 0;
OpenRatingMenu(client);
}
case 9: iMenuPos[client] = 0;
}
return 0;
}