Fixed amb729, implemented amb778. Admin needs ADMFLAG_CHANGEMAP to use sm_setnextmap
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401372
This commit is contained in:
parent
4441de43f4
commit
b24a28d834
@ -53,20 +53,17 @@ new Handle:g_Cvar_Mapcycle;
|
|||||||
|
|
||||||
new g_MapPos = -1;
|
new g_MapPos = -1;
|
||||||
new Handle:g_MapList = INVALID_HANDLE;
|
new Handle:g_MapList = INVALID_HANDLE;
|
||||||
|
|
||||||
#if 0
|
|
||||||
new bool:g_INS = false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public OnPluginStart()
|
public OnPluginStart()
|
||||||
{
|
{
|
||||||
|
LoadTranslations("common.phrases");
|
||||||
LoadTranslations("nextmap.phrases");
|
LoadTranslations("nextmap.phrases");
|
||||||
|
|
||||||
g_VGUIMenu = GetUserMessageId("VGUIMenu");
|
g_VGUIMenu = GetUserMessageId("VGUIMenu");
|
||||||
if (g_VGUIMenu == INVALID_MESSAGE_ID)
|
if (g_VGUIMenu == INVALID_MESSAGE_ID)
|
||||||
{
|
{
|
||||||
LogMessage("FATAL: Cannot find VGUIMenu user message id. Nextmap not loaded.");
|
LogError("FATAL: Cannot find VGUIMenu user message id. Nextmap not loaded.");
|
||||||
return;
|
SetFailState("VGUIMenu Not Found");
|
||||||
}
|
}
|
||||||
|
|
||||||
g_Cvar_Chattime = FindConVar("mp_chattime");
|
g_Cvar_Chattime = FindConVar("mp_chattime");
|
||||||
@ -76,10 +73,10 @@ public OnPluginStart()
|
|||||||
|
|
||||||
decl String:mapCycle[64];
|
decl String:mapCycle[64];
|
||||||
GetConVarString(g_Cvar_Mapcycle, mapCycle, 64);
|
GetConVarString(g_Cvar_Mapcycle, mapCycle, 64);
|
||||||
if (LoadMaps(mapCycle) == 0)
|
if (LoadMaps(mapCycle) < 1)
|
||||||
{
|
{
|
||||||
LogMessage("FATAL: Cannot load map cycle. Nextmap not loaded.");
|
LogError("FATAL: Cannot load map cycle. Nextmap not loaded.");
|
||||||
return;
|
SetFailState("Mapcycle Not Found");
|
||||||
}
|
}
|
||||||
|
|
||||||
HookUserMessage(g_VGUIMenu, UserMsg_VGUIMenu);
|
HookUserMessage(g_VGUIMenu, UserMsg_VGUIMenu);
|
||||||
@ -89,21 +86,11 @@ public OnPluginStart()
|
|||||||
|
|
||||||
RegConsoleCmd("say", Command_Say);
|
RegConsoleCmd("say", Command_Say);
|
||||||
RegConsoleCmd("say_team", Command_Say);
|
RegConsoleCmd("say_team", Command_Say);
|
||||||
|
|
||||||
#if 0
|
|
||||||
decl String:modname[64];
|
|
||||||
GetGameFolderName(modname, sizeof(modname));
|
|
||||||
|
|
||||||
if (strcmp(modname, "ins") == 0)
|
|
||||||
{
|
|
||||||
RegConsoleCmd("say2", Command_SayChat);
|
|
||||||
g_INS = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
RegAdminCmd("sm_setnextmap", Command_SetNextmap, ADMFLAG_CHANGEMAP, "sm_setnextmap <map>");
|
||||||
RegConsoleCmd("listmaps", Command_List);
|
RegConsoleCmd("listmaps", Command_List);
|
||||||
|
|
||||||
/* Set to the current map so OnMapStart() will know what to do */
|
// Set to the current map so OnMapStart() will know what to do
|
||||||
decl String:currentMap[64];
|
decl String:currentMap[64];
|
||||||
GetCurrentMap(currentMap, 64);
|
GetCurrentMap(currentMap, 64);
|
||||||
SetConVarString(g_Cvar_Nextmap, currentMap);
|
SetConVarString(g_Cvar_Nextmap, currentMap);
|
||||||
@ -133,7 +120,13 @@ public ConVarChange_Mapcyclefile(Handle:convar, const String:oldValue[], const S
|
|||||||
{
|
{
|
||||||
if (strcmp(oldValue, newValue, false) != 0)
|
if (strcmp(oldValue, newValue, false) != 0)
|
||||||
{
|
{
|
||||||
LoadMaps(newValue);
|
if (LoadMaps(newValue) < 1)
|
||||||
|
{
|
||||||
|
LogError("FATAL: Cannot load map cycle. Nextmap not loaded.");
|
||||||
|
SetFailState("Mapcycle Not Found");
|
||||||
|
}
|
||||||
|
|
||||||
|
FindAndSetNextMap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,13 +142,6 @@ public Action:Command_Say(client, args)
|
|||||||
startidx = 1;
|
startidx = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (g_INS)
|
|
||||||
{
|
|
||||||
startidx += 4;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
decl String:message[8];
|
decl String:message[8];
|
||||||
BreakString(text[startidx], message, sizeof(message));
|
BreakString(text[startidx], message, sizeof(message));
|
||||||
|
|
||||||
@ -169,6 +155,46 @@ public Action:Command_Say(client, args)
|
|||||||
|
|
||||||
return Plugin_Continue;
|
return Plugin_Continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Action:Command_SetNextmap(client, args)
|
||||||
|
{
|
||||||
|
if (args < 1)
|
||||||
|
{
|
||||||
|
ReplyToCommand(client, "[SM] Usage: sm_setnextmap <map>");
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
decl String:map[64];
|
||||||
|
GetCmdArg(1, map, sizeof(map));
|
||||||
|
|
||||||
|
if (!IsMapValid(map))
|
||||||
|
{
|
||||||
|
ReplyToCommand(client, "[SM] %t", "Map was not found", map);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowActivity(client, "%t", "Cvar changed", "sm_nextmap", map);
|
||||||
|
LogMessage("\"%L\" changed sm_nextmap to \"%s\"", client, map);
|
||||||
|
|
||||||
|
SetConVarString(g_Cvar_Nextmap, map);
|
||||||
|
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Action:Command_List(client, args)
|
||||||
|
{
|
||||||
|
PrintToConsole(client, "Map Cycle:");
|
||||||
|
|
||||||
|
new mapCount = GetArraySize(g_MapList);
|
||||||
|
decl String:mapName[32];
|
||||||
|
for (new i = 0; i < mapCount; i++)
|
||||||
|
{
|
||||||
|
GetArrayString(g_MapList, i, mapName, sizeof(mapName));
|
||||||
|
PrintToConsole(client, "%s", mapName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
public Action:UserMsg_VGUIMenu(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init)
|
public Action:UserMsg_VGUIMenu(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init)
|
||||||
{
|
{
|
||||||
@ -215,21 +241,6 @@ public Action:Timer_ChangeMap(Handle:timer, Handle:dp)
|
|||||||
return Plugin_Stop;
|
return Plugin_Stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Action:Command_List(client, args)
|
|
||||||
{
|
|
||||||
PrintToConsole(client, "Map Cycle:");
|
|
||||||
|
|
||||||
new mapCount = GetArraySize(g_MapList);
|
|
||||||
decl String:mapName[32];
|
|
||||||
for (new i = 0; i < mapCount; i++)
|
|
||||||
{
|
|
||||||
GetArrayString(g_MapList, i, mapName, sizeof(mapName));
|
|
||||||
PrintToConsole(client, "%s", mapName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Plugin_Handled;
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadMaps(const String:path[])
|
LoadMaps(const String:path[])
|
||||||
{
|
{
|
||||||
if (!FileExists(path))
|
if (!FileExists(path))
|
||||||
|
Loading…
Reference in New Issue
Block a user