2 public MenuHandler_ChangeMap(Handle:menu, MenuAction:action, param1, param2)
4 if (action == MenuAction_Cancel)
6 if (param2 == MenuCancel_ExitBack && hTopMenu != INVALID_HANDLE)
8 DisplayTopMenu(hTopMenu, param1, TopMenuPosition_LastCategory);
11 else if (action == MenuAction_Select)
15 GetMenuItem(menu, param2, map, sizeof(map));
17 ShowActivity2(param1, "[SM] ", "%t", "Changing map", map);
19 LogAction(param1, -1, "\"%L\" changed map to \"%s\"", param1, map);
22 CreateDataTimer(3.0, Timer_ChangeMap, dp);
23 WritePackString(dp, map);
28 public AdminMenu_Map(Handle:topmenu,
30 TopMenuObject:object_id,
35 if (action == TopMenuAction_DisplayOption)
37 Format(buffer, maxlength, "%T", "Choose Map", param);
39 else if (action == TopMenuAction_SelectOption)
41 DisplayMenu(g_MapList, param, MENU_TIME_FOREVER);
45 public Action:Command_Map(client, args)
49 ReplyToCommand(client, "[SM] Usage: sm_map <map>");
50 return Plugin_Handled;
54 GetCmdArg(1, map, sizeof(map));
58 ReplyToCommand(client, "[SM] %t", "Map was not found", map);
59 return Plugin_Handled;
62 ShowActivity2(client, "[SM] ", "%t", "Changing map", map);
64 LogAction(client, -1, "\"%L\" changed map to \"%s\"", client, map);
67 CreateDataTimer(3.0, Timer_ChangeMap, dp);
68 WritePackString(dp, map);
70 return Plugin_Handled;
73 public Action:Timer_ChangeMap(Handle:timer, Handle:dp)
78 ReadPackString(dp, map, sizeof(map));
80 ServerCommand("changelevel \"%s\"", map);
85 new Handle:g_map_array = INVALID_HANDLE;
86 new g_map_serial = -1;
88 LoadMapList(Handle:menu)
92 if ((map_array = ReadMapList(g_map_array,
95 MAPLIST_FLAG_CLEARARRAY|MAPLIST_FLAG_NO_DEFAULT|MAPLIST_FLAG_MAPSFOLDER))
98 g_map_array = map_array;
101 if (g_map_array == INVALID_HANDLE)
106 RemoveAllMenuItems(menu);
108 decl String:map_name[64];
109 new map_count = GetArraySize(g_map_array);
111 for (new i = 0; i < map_count; i++)
113 GetArrayString(g_map_array, i, map_name, sizeof(map_name));
114 AddMenuItem(menu, map_name, map_name);