mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 14:25:38 +03:00
Added show_activity changes to mapsmenu
Made mapsmenu use cellarray natives instead of MAX_MAPS
This commit is contained in:
parent
4cdd43b29b
commit
39f759368f
@ -37,7 +37,8 @@
|
|||||||
|
|
||||||
#define MAX_MAPS 64
|
#define MAX_MAPS 64
|
||||||
|
|
||||||
new g_mapName[MAX_MAPS][32]
|
new Array:g_mapName;
|
||||||
|
//new g_mapName[MAX_MAPS][32]
|
||||||
new g_mapNums
|
new g_mapNums
|
||||||
new g_menuPosition[33]
|
new g_menuPosition[33]
|
||||||
|
|
||||||
@ -64,6 +65,8 @@ public plugin_init()
|
|||||||
register_menucmd(register_menuid("Votemap Menu"), 1023, "actionVoteMapMenu")
|
register_menucmd(register_menuid("Votemap Menu"), 1023, "actionVoteMapMenu")
|
||||||
register_menucmd(register_menuid("The winner: "), 3, "actionResult")
|
register_menucmd(register_menuid("The winner: "), 3, "actionResult")
|
||||||
|
|
||||||
|
g_mapName=ArrayCreate(32);
|
||||||
|
|
||||||
new maps_ini_file[64];
|
new maps_ini_file[64];
|
||||||
get_configsdir(maps_ini_file, 63);
|
get_configsdir(maps_ini_file, 63);
|
||||||
format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);
|
format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);
|
||||||
@ -99,7 +102,10 @@ public actionResult(id, key)
|
|||||||
message_end()
|
message_end()
|
||||||
}
|
}
|
||||||
|
|
||||||
set_task(2.0, "delayedChange", 0, g_mapName[g_choosed], strlen(g_mapName[g_choosed]) + 1)
|
new tempMap[32];
|
||||||
|
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
|
||||||
|
|
||||||
|
set_task(2.0, "delayedChange", 0, tempMap, strlen(tempMap) + 1)
|
||||||
log_amx("Vote: %L", "en", "RESULT_ACC")
|
log_amx("Vote: %L", "en", "RESULT_ACC")
|
||||||
client_print(0, print_chat, "%L", LANG_PLAYER, "RESULT_ACC")
|
client_print(0, print_chat, "%L", LANG_PLAYER, "RESULT_ACC")
|
||||||
}
|
}
|
||||||
@ -129,8 +135,10 @@ public checkVotes(id)
|
|||||||
if (iResult >= iRatio)
|
if (iResult >= iRatio)
|
||||||
{
|
{
|
||||||
g_choosed = g_voteSelected[id][a]
|
g_choosed = g_voteSelected[id][a]
|
||||||
client_print(0, print_chat, "%L %s", LANG_PLAYER, "VOTE_SUCCESS", g_mapName[g_choosed])
|
new tempMap[32];
|
||||||
log_amx("Vote: %L %s", "en", "VOTE_SUCCESS", g_mapName[g_choosed])
|
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
|
||||||
|
client_print(0, print_chat, "%L %s", LANG_PLAYER, "VOTE_SUCCESS", tempMap);
|
||||||
|
log_amx("Vote: %L %s", "en", "VOTE_SUCCESS", tempMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_choosed != -1)
|
if (g_choosed != -1)
|
||||||
@ -138,7 +146,9 @@ public checkVotes(id)
|
|||||||
if (is_user_connected(id))
|
if (is_user_connected(id))
|
||||||
{
|
{
|
||||||
new menuBody[512]
|
new menuBody[512]
|
||||||
new len = format(menuBody, 511, g_coloredMenus ? "\y%L: \w%s^n^n" : "%L: %s^n^n", id, "THE_WINNER", g_mapName[g_choosed])
|
new tempMap[32];
|
||||||
|
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
|
||||||
|
new len = format(menuBody, 511, g_coloredMenus ? "\y%L: \w%s^n^n" : "%L: %s^n^n", id, "THE_WINNER", tempMap)
|
||||||
|
|
||||||
len += format(menuBody[len], 511 - len, g_coloredMenus ? "\y%L^n\w" : "%L^n", id, "WANT_CONT")
|
len += format(menuBody[len], 511 - len, g_coloredMenus ? "\y%L^n\w" : "%L^n", id, "WANT_CONT")
|
||||||
format(menuBody[len], 511-len, "^n1. %L^n2. %L", id, "YES", id, "NO")
|
format(menuBody[len], 511-len, "^n1. %L^n2. %L", id, "YES", id, "NO")
|
||||||
@ -154,8 +164,9 @@ public checkVotes(id)
|
|||||||
message_begin(MSG_ALL, SVC_INTERMISSION)
|
message_begin(MSG_ALL, SVC_INTERMISSION)
|
||||||
message_end()
|
message_end()
|
||||||
}
|
}
|
||||||
|
new tempMap[32];
|
||||||
set_task(2.0, "delayedChange", 0, g_mapName[g_choosed], strlen(g_mapName[g_choosed]) + 1)
|
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
|
||||||
|
set_task(2.0, "delayedChange", 0, tempMap, strlen(tempMap) + 1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
client_print(0, print_chat, "%L", LANG_PLAYER, "VOTE_FAILED")
|
client_print(0, print_chat, "%L", LANG_PLAYER, "VOTE_FAILED")
|
||||||
@ -214,19 +225,20 @@ displayVoteMapsMenu(id, pos)
|
|||||||
if (end > g_mapNums)
|
if (end > g_mapNums)
|
||||||
end = g_mapNums
|
end = g_mapNums
|
||||||
|
|
||||||
|
new tempMap[32];
|
||||||
for (new a = start; a < end; ++a)
|
for (new a = start; a < end; ++a)
|
||||||
{
|
{
|
||||||
|
ArrayGetString(g_mapName, a, tempMap, charsmax(tempMap));
|
||||||
if (g_voteSelectedNum[id] == 4 || isMapSelected(id, pos * 7 + b))
|
if (g_voteSelectedNum[id] == 4 || isMapSelected(id, pos * 7 + b))
|
||||||
{
|
{
|
||||||
++b
|
++b
|
||||||
|
|
||||||
if (g_coloredMenus)
|
if (g_coloredMenus)
|
||||||
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_mapName[a])
|
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, tempMap)
|
||||||
else
|
else
|
||||||
len += format(menuBody[len], 511-len, "#. %s^n", g_mapName[a])
|
len += format(menuBody[len], 511-len, "#. %s^n", tempMap)
|
||||||
} else {
|
} else {
|
||||||
keys |= (1<<b)
|
keys |= (1<<b)
|
||||||
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, g_mapName[a])
|
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, tempMap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +266,10 @@ displayVoteMapsMenu(id, pos)
|
|||||||
for (new c = 0; c < 4; c++)
|
for (new c = 0; c < 4; c++)
|
||||||
{
|
{
|
||||||
if (c < g_voteSelectedNum[id])
|
if (c < g_voteSelectedNum[id])
|
||||||
len += format(menuBody[len], 511-len, "%s^n", g_mapName[g_voteSelected[id][c]])
|
{
|
||||||
|
ArrayGetString(g_mapName, g_voteSelected[id][c], tempMap, charsmax(tempMap));
|
||||||
|
len += format(menuBody[len], 511-len, "%s^n", tempMap)
|
||||||
|
}
|
||||||
else
|
else
|
||||||
len += format(menuBody[len], 511-len, "^n")
|
len += format(menuBody[len], 511-len, "^n")
|
||||||
}
|
}
|
||||||
@ -310,6 +325,7 @@ public delayedChange(mapname[])
|
|||||||
|
|
||||||
public actionVoteMapMenu(id, key)
|
public actionVoteMapMenu(id, key)
|
||||||
{
|
{
|
||||||
|
new tempMap[32];
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
case 7:
|
case 7:
|
||||||
@ -348,14 +364,16 @@ public actionVoteMapMenu(id, key)
|
|||||||
|
|
||||||
for (new c = 0; c < g_voteSelectedNum[id]; ++c)
|
for (new c = 0; c < g_voteSelectedNum[id]; ++c)
|
||||||
{
|
{
|
||||||
len += format(menuBody[len], 511, "%d. %s^n", c + 1, g_mapName[g_voteSelected[id][c]])
|
ArrayGetString(g_mapName, g_voteSelected[id][c], tempMap, charsmax(tempMap));
|
||||||
|
len += format(menuBody[len], 511, "%d. %s^n", c + 1, tempMap)
|
||||||
keys |= (1<<c)
|
keys |= (1<<c)
|
||||||
}
|
}
|
||||||
|
|
||||||
keys |= (1<<8)
|
keys |= (1<<8)
|
||||||
len += format(menuBody[len], 511, "^n9. %L^n", id, "NONE")
|
len += format(menuBody[len], 511, "^n9. %L^n", id, "NONE")
|
||||||
} else {
|
} else {
|
||||||
len = format(menuBody, 511, g_coloredMenus ? "\y%L^n%s?^n\w^n1. %L^n2. %L^n" : "%L^n%s?^n^n1. %L^n2. %L^n", id, "CHANGE_MAP_TO", g_mapName[g_voteSelected[id][0]], id, "YES", id, "NO")
|
ArrayGetString(g_mapName, g_voteSelected[id][0], tempMap, charsmax(tempMap));
|
||||||
|
len = format(menuBody, 511, g_coloredMenus ? "\y%L^n%s?^n\w^n1. %L^n2. %L^n" : "%L^n%s?^n^n1. %L^n2. %L^n", id, "CHANGE_MAP_TO", tempMap, id, "YES", id, "NO")
|
||||||
keys = MENU_KEY_1|MENU_KEY_2
|
keys = MENU_KEY_1|MENU_KEY_2
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -375,18 +393,48 @@ public actionVoteMapMenu(id, key)
|
|||||||
get_user_authid(id, authid, 31)
|
get_user_authid(id, authid, 31)
|
||||||
get_user_name(id, name, 31)
|
get_user_name(id, name, 31)
|
||||||
|
|
||||||
switch (get_cvar_num("amx_show_activity"))
|
show_activity_key("ADMIN_V_MAP_1", "ADMIN_V_MAP_2", name);
|
||||||
|
|
||||||
|
new tempMapA[32];
|
||||||
|
new tempMapB[32];
|
||||||
|
new tempMapC[32];
|
||||||
|
new tempMapD[32];
|
||||||
|
if (g_voteSelectedNum[id] > 0)
|
||||||
{
|
{
|
||||||
case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_V_MAP_2", name)
|
ArrayGetString(g_mapName, g_voteSelected[id][0], tempMapA, charsmax(tempMapA));
|
||||||
case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_V_MAP_1")
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
copy(tempMapA, charsmax(tempMapA), "");
|
||||||
|
}
|
||||||
|
if (g_voteSelectedNum[id] > 1)
|
||||||
|
{
|
||||||
|
ArrayGetString(g_mapName, g_voteSelected[id][1], tempMapB, charsmax(tempMapB));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
copy(tempMapB, charsmax(tempMapB), "");
|
||||||
|
}
|
||||||
|
if (g_voteSelectedNum[id] > 2)
|
||||||
|
{
|
||||||
|
ArrayGetString(g_mapName, g_voteSelected[id][2], tempMapC, charsmax(tempMapC));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
copy(tempMapC, charsmax(tempMapC), "");
|
||||||
|
}
|
||||||
|
if (g_voteSelectedNum[id] > 3)
|
||||||
|
{
|
||||||
|
ArrayGetString(g_mapName, g_voteSelected[id][3], tempMapD, charsmax(tempMapD));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
copy(tempMapD, charsmax(tempMapD), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
log_amx("Vote: ^"%s<%d><%s><>^" vote maps (map#1 ^"%s^") (map#2 ^"%s^") (map#3 ^"%s^") (map#4 ^"%s^")",
|
log_amx("Vote: ^"%s<%d><%s><>^" vote maps (map#1 ^"%s^") (map#2 ^"%s^") (map#3 ^"%s^") (map#4 ^"%s^")",
|
||||||
name, get_user_userid(id), authid,
|
name, get_user_userid(id), authid,
|
||||||
g_voteSelectedNum[id] > 0 ? g_mapName[g_voteSelected[id][0]] : "",
|
tempMapA, tempMapB, tempMapC, tempMapD)
|
||||||
g_voteSelectedNum[id] > 1 ? g_mapName[g_voteSelected[id][1]] : "",
|
|
||||||
g_voteSelectedNum[id] > 2 ? g_mapName[g_voteSelected[id][2]] : "",
|
|
||||||
g_voteSelectedNum[id] > 3 ? g_mapName[g_voteSelected[id][3]] : "")
|
|
||||||
}
|
}
|
||||||
case 8: displayVoteMapsMenu(id, ++g_menuPosition[id])
|
case 8: displayVoteMapsMenu(id, ++g_menuPosition[id])
|
||||||
case 9: displayVoteMapsMenu(id, --g_menuPosition[id])
|
case 9: displayVoteMapsMenu(id, --g_menuPosition[id])
|
||||||
@ -423,14 +471,13 @@ public actionMapsMenu(id, key)
|
|||||||
get_user_authid(id, authid, 31)
|
get_user_authid(id, authid, 31)
|
||||||
get_user_name(id, name, 31)
|
get_user_name(id, name, 31)
|
||||||
|
|
||||||
switch (get_cvar_num("amx_show_activity"))
|
new tempMap[32];
|
||||||
{
|
ArrayGetString(g_mapName, a, tempMap, charsmax(tempMap));
|
||||||
case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_CHANGEL_2", name, g_mapName[a])
|
|
||||||
case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_CHANGEL_1", g_mapName[a])
|
|
||||||
}
|
|
||||||
|
|
||||||
log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name, get_user_userid(id), authid, g_mapName[a])
|
show_activity_key("ADMIN_CHANGEL_1", "ADMIN_CHANGEL_2", name, tempMap);
|
||||||
set_task(2.0, "delayedChange", 0, g_mapName[a], strlen(g_mapName[a]) + 1)
|
|
||||||
|
log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name, get_user_userid(id), authid, tempMap)
|
||||||
|
set_task(2.0, "delayedChange", 0, tempMap, strlen(tempMap) + 1)
|
||||||
/* displayMapsMenu(id, g_menuPosition[id]) */
|
/* displayMapsMenu(id, g_menuPosition[id]) */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -444,6 +491,7 @@ displayMapsMenu(id, pos)
|
|||||||
return
|
return
|
||||||
|
|
||||||
new menuBody[512]
|
new menuBody[512]
|
||||||
|
new tempMap[32]
|
||||||
new start = pos * 8
|
new start = pos * 8
|
||||||
new b = 0
|
new b = 0
|
||||||
|
|
||||||
@ -460,7 +508,8 @@ displayMapsMenu(id, pos)
|
|||||||
for (new a = start; a < end; ++a)
|
for (new a = start; a < end; ++a)
|
||||||
{
|
{
|
||||||
keys |= (1<<b)
|
keys |= (1<<b)
|
||||||
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, g_mapName[a])
|
ArrayGetString(g_mapName, a, tempMap, charsmax(tempMap));
|
||||||
|
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, tempMap)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end != g_mapNums)
|
if (end != g_mapNums)
|
||||||
@ -476,23 +525,69 @@ displayMapsMenu(id, pos)
|
|||||||
|
|
||||||
show_menu(id, keys, menuBody, -1, menuName)
|
show_menu(id, keys, menuBody, -1, menuName)
|
||||||
}
|
}
|
||||||
|
stock bool:ValidMap(mapname[])
|
||||||
|
{
|
||||||
|
if ( is_map_valid(mapname) )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// If the is_map_valid check failed, check the end of the string
|
||||||
|
new len = strlen(mapname) - 4;
|
||||||
|
|
||||||
|
// The mapname was too short to possibly house the .bsp extension
|
||||||
|
if (len < 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ( equali(mapname[len], ".bsp") )
|
||||||
|
{
|
||||||
|
// If the ending was .bsp, then cut it off.
|
||||||
|
// the string is byref'ed, so this copies back to the loaded text.
|
||||||
|
mapname[len] = '^0';
|
||||||
|
|
||||||
|
// recheck
|
||||||
|
if ( is_map_valid(mapname) )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
load_settings(filename[])
|
load_settings(filename[])
|
||||||
{
|
{
|
||||||
if (!file_exists(filename))
|
new fp = fopen(filename, "r");
|
||||||
return 0
|
|
||||||
|
|
||||||
new text[256]
|
if (!fp)
|
||||||
new a, pos = 0
|
|
||||||
|
|
||||||
while (g_mapNums < MAX_MAPS && read_file(filename, pos++, text, 255, a))
|
|
||||||
{
|
{
|
||||||
if (text[0] == ';') continue
|
return 0;
|
||||||
if (parse(text, g_mapName[g_mapNums], 31) < 1) continue
|
|
||||||
if (!is_map_valid(g_mapName[g_mapNums])) continue
|
|
||||||
|
|
||||||
g_mapNums++
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1
|
|
||||||
|
new text[256];
|
||||||
|
new tempMap[32];
|
||||||
|
|
||||||
|
while (!feof(fp))
|
||||||
|
{
|
||||||
|
fgets(fp, text, charsmax(text));
|
||||||
|
|
||||||
|
if (text[0] == ';')
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (parse(text, tempMap, charsmax(tempMap)) < 1)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!ValidMap(tempMap))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayPushString(g_mapName, tempMap);
|
||||||
|
g_mapNums++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user