Hollya
❤ GIRL SCRIPTER ❤
- Сообщения
- 128
- Реакции
- 32
Здравствуйте, помогите исправить, когда админ заходит в меню через админку и выбирает карту. - она сразу меняется.
Мне надо чтобы она именно ставилась в голосование как через команду sm_votemap
Чтобы у игроков сначала появилялось голосование типо "сменить карту на mg_LEGO? да / нет"
и только потом менялось.
На данный момент вот так сделано:
Не получается. требуется ваша помощь =)
Мне надо чтобы она именно ставилась в голосование как через команду sm_votemap
Чтобы у игроков сначала появилялось голосование типо "сменить карту на mg_LEGO? да / нет"
и только потом менялось.
На данный момент вот так сделано:
C-подобный:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include "include/admin_pr.inc" //inclide ot r1ko
#define FUNC "map"
new Handle:g_MapMenu = INVALID_HANDLE;
public bool Admin_OnKvLoadSelect(KeyValues &kv, const char[] display, const char[] func, int level, int rang)
{
if(StrEqual(FUNC,func))
{
return true;
}
return false;
}
public void Admin_OnMainMenuSelectItem(int client, const char[] display, const char[] func, int level, int rang)
{
if(StrEqual(FUNC,func))
{
/* *********** */
ShowMapMenu(client);
}
}
public OnMapStart()
{
g_MapMenu = BuildMapMenu();
}
public OnMapEnd()
{
if (g_MapMenu != INVALID_HANDLE)
{
CloseHandle(g_MapMenu);
g_MapMenu = INVALID_HANDLE;
}
}
Handle:BuildMapMenu()
{
/* Open the file */
new Handle:adtMaps = CreateArray(16, 0);
new Handle:file = OpenFile("maplist.txt", "rt");
if (file == INVALID_HANDLE)
{
file = OpenFile("cfg/maplist.txt", "rt");
if (file == INVALID_HANDLE)
{
new serial = -1;
new String:name[255];
ReadMapList(adtMaps, serial, "allexistingmaps__", MAPLIST_FLAG_MAPSFOLDER | MAPLIST_FLAG_NO_DEFAULT);
new mapcount = GetArraySize(adtMaps);
if (mapcount > 0)
{
new Handle:menu = CreateMenu(Menu_ChangeMap);
for (new i = 0; i < mapcount; i++)
{
GetArrayString(adtMaps, i, name, 255);
AddMenuItem(menu, name, name);
}
SetMenuTitle(menu, "Выбирете карту:");
// SetMenuTitle(menu, "%T", "AA_CHANGEMAP_Title", client);
return menu;
}
else return INVALID_HANDLE;
}
}
/* Create the menu Handle */
new Handle:menu = CreateMenu(Menu_ChangeMap),
String:mapname[255],
len;
while (!IsEndOfFile(file) && ReadFileLine(file, mapname, sizeof(mapname)))
{
if (mapname[0] == ';' || !IsCharAlpha(mapname[0]))
{
continue;
}
/* Cut off the name at any whitespace */
len = strlen(mapname);
for (new i = 0; i < len; i++)
{
if (IsCharSpace(mapname[i]))
{
mapname[i] = '\0';
break;
}
}
/* Check if the map is valid */
if (!IsMapValid(mapname))
{
continue;
}
/* Add it to the menu */
AddMenuItem(menu, mapname, mapname);
}
/* Make sure we close the file! */
CloseHandle(file);
/* Finally, set the title */
SetMenuTitle(menu, "Выбирете карту:");
return menu;
}
public Menu_ChangeMap(Handle:menu, MenuAction:action, param1, param2)
{
if (action == MenuAction_Select)
{
new String:info[32];
GetMenuItem(menu, param2, info, sizeof(info));
ServerCommand("changelevel %s", info);
PrintToChatAll("Карта меняется %s",info);
}
}
ShowMapMenu(client)
{
if (g_MapMenu == INVALID_HANDLE)
{
PrintToChat(client, "The maplist.txt or cfg/maplist.txt file was not found!");
Admin_OpenMainMenu(client);
return;
}
DisplayMenu(g_MapMenu, client, MENU_TIME_FOREVER);
return;
}
Не получается. требуется ваша помощь =)