Основная информация
Проблема: Не отключается ночной режим
Ошибка:
Amx Mod X: 1.8.3-dev
Билд:
ReGamedll:
Список модулей:
Список плагинов:
Список метамодулей:
Исходник:
Комментарий:
Начал тестировать плагин, но столкнулся с проблемой. Плагин входит в ночной режим, команды rtv, amx_vote блокируются, как и положено, но вот плагин не выходит из ночного режима. Время истекает, а сервер остается на последней карте ночного режима с timelimit 0. Помогите решить эту проблему.
Проблема: Не отключается ночной режим
Ошибка:
Дополнительная информацияПлагин не выходит из ночного режима
Amx Mod X: 1.8.3-dev
Билд:
Код:
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 17:35:12 Jul 5 2017 (7559)
ReGamedll:
Код:
Список модулей:
PHP:
Currently loaded modules:
name version author status
[ 1] Ham Sandwich 1.8.3-dev+ AMX Mod X Dev Team running
[ 2] CSX 1.8.3-dev+ AMX Mod X Dev Team running
2 modules, 2 correct
Список плагинов:
HTML:
Currently loaded plugins:
name version author file status
[ 1] Night MapList 1.1 neygomon night_maplist.a running
[ 2] Admin Base 1.8.3-dev+ AMXX Dev Team admin.amxx running
[ 3] Admin Commands 1.8.3-dev+ AMXX Dev Team admincmd.amxx running
[ 4] Admin Help 1.8.3-dev+ AMXX Dev Team adminhelp.amxx running
[ 5] Slots Reservation 1.8.3-dev+ AMXX Dev Team adminslots.amxx running
[ 6] Multi-Lingual System 1.8.3-dev+ AMXX Dev Team multilingual.am running
[ 7] Menus Front-End 1.8.3-dev+ AMXX Dev Team menufront.amxx running
[ 8] Commands Menu 1.8.3-dev+ AMXX Dev Team cmdmenu.amxx running
[ 9] Players Menu 1.8.3-dev+ AMXX Dev Team plmenu.amxx running
[ 10] Maps Menu 1.8.3-dev+ AMXX Dev Team mapsmenu.amxx running
[ 11] Plugin Menu 1.8.3-dev+ AMXX Dev Team pluginmenu.amxx running
[ 12] Admin Chat 1.8.3-dev+ AMXX Dev Team adminchat.amxx running
[ 13] Anti Flood 1.8.3-dev+ AMXX Dev Team antiflood.amxx running
[ 14] Scrolling Message 1.8.3-dev+ AMXX Dev Team scrollmsg.amxx running
[ 15] Info. Messages 1.8.3-dev+ AMXX Dev Team imessage.amxx running
[ 16] Admin Votes 1.8.3-dev+ AMXX Dev Team adminvote.amxx running
[ 17] NextMap 1.8.3-dev+ AMXX Dev Team nextmap.amxx running
[ 18] Nextmap Chooser 1.8.3-dev+ AMXX Dev Team mapchooser.amxx running
[ 19] TimeLeft 1.8.3-dev+ AMXX Dev Team timeleft.amxx running
[ 20] Pause Plugins 1.8.3-dev+ AMXX Dev Team pausecfg.amxx running
[ 21] Stats Configuration 1.8.3-dev+ AMXX Dev Team statscfg.amxx running
[ 22] StatsX 1.8.3-dev+ AMXX Dev Team statsx.amxx running
22 plugins, 22 running
Список метамодулей:
PHP:
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.8.3-d ini Start ANY
[ 2] dproto_EF RUN - dproto_i386.so v0.9.548 ini Start Never
[ 3] VoiceTranscoder RUN - VoiceTranscoder. v2017RC3 ini ANY ANY
[ 4] FakeDetector RUN - fakedetector_mm_ v2.1.3 ini Start Never
[ 5] LocalizeBug Fix RUN - localizebugfix_m v2.4 ini Start Never
[ 6] WHBlocker RUN - whblocker_mm_i38 v1.5.620 ini Chlvl ANY
[ 7] Ham Sandwich RUN - hamsandwich_amxx v1.8.3-d pl1 ANY ANY
[ 8] CSX RUN - csx_amxx_i386.so v1.8.3-d pl1 ANY ANY
8 plugins, 8 running
Исходник:
Код:
#include amxmodx
#if AMXX_VERSION_NUM < 183
#define engine_changelevel(%0) server_cmd("changelevel %s", %0)
#endif
new g_pTimeLimit, g_iOldTime, Float:g_flResetTime;
new bool:g_bNight;
enum _:DATA
{
NAME[32],
FROM,
TO
}
new g_aMaps[128][DATA];
new g_iCountMaps;
public plugin_init()
{
#define VERSION "1.1"
register_plugin("Night MapList", VERSION, "neygomon");
register_cvar("light_maplist", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
register_event("TextMsg", "eGameCommencing", "a", "2=#Game_Commencing", "2=#Game_will_restart_in");
register_event("HLTV", "eRoundStart", "a", "1=0", "2=0");
register_clcmd("say rtv", "RtvHook");
register_clcmd("say_team rtv", "RtvHook");
register_clcmd("say /rtv", "RtvHook");
register_clcmd("say_team rtv", "RtvHook");
register_clcmd("amx_rtv", "RtvHook");
g_pTimeLimit = get_cvar_pointer("mp_timelimit");
}
public plugin_cfg()
{
new fHand = fopen("addons/amxmodx/configs/night_maps.ini", "rt");
if(!fHand) set_fail_state("File ^"addons/amxmodx/configs/night_maps.ini^" not found OR not read!");
new buffer[64], sFrom[6], sTo[6];
new sTemp[4][3];
new iFrom, iTo;
while(!feof(fHand))
{
fgets(fHand, buffer, charsmax(buffer)); trim(buffer);
if(!buffer[0] || buffer[0] == ';') continue;
if(parse(buffer, g_aMaps[g_iCountMaps][NAME], charsmax(g_aMaps[][NAME]), sFrom, charsmax(sFrom), sTo, charsmax(sTo)))
{
replace_all(sFrom, charsmax(sFrom), ":", " ");
replace_all(sTo, charsmax(sTo), ":", " ");
if(parse(sFrom, sTemp[0], charsmax(sTemp[]), sTemp[1], charsmax(sTemp[])) &&
parse(sTo, sTemp[2], charsmax(sTemp[]), sTemp[3], charsmax(sTemp[])))
{
iFrom = str_to_num(sTemp[0]) * 60 * 60 + str_to_num(sTemp[1]) * 60;
iTo = str_to_num(sTemp[2]) * 60 * 60 + str_to_num(sTemp[3]) * 60;
g_aMaps[g_iCountMaps][FROM] = iFrom;
g_aMaps[g_iCountMaps][TO] = (iFrom > iTo) ? (86400 - iFrom) + iFrom + iTo : iTo;
g_iCountMaps++;
}
}
}
if(!g_iCountMaps) set_fail_state("Maps not found OR invalid syntax file! Check ^"addons/amxmodx/configs/night_maps.ini^"");
}
public plugin_end()
if(g_iOldTime)
set_pcvar_num(g_pTimeLimit, g_iOldTime);
public client_putinserver(id)
if(g_bNight)
remove_user_flags(id, ADMIN_MAP|ADMIN_VOTE);
public eGameCommencing()
g_flResetTime = get_gametime();
public eRoundStart()
{
static CurHour, CurMinute; time(CurHour, CurMinute);
new CurTime = CurHour * 60 * 60 + CurMinute * 60;
if(g_aMaps[0][FROM] <= CurTime || CurTime < g_aMaps[g_iCountMaps-1][TO])
{
new IdMap = CheckMaps(CurTime); if(IdMap == -1) return;
static map[32]; if(!map[0]) get_mapname(map, charsmax(map));
if(!equal(map, g_aMaps[IdMap][NAME]))
{
engine_changelevel(g_aMaps[IdMap][NAME]);
return;
}
else if(!g_bNight)
{
g_bNight = true;
RemovePlayersFlags();
g_iOldTime = get_pcvar_num(g_pTimeLimit);
set_pcvar_num(g_pTimeLimit, 0);
}
}
else if(g_bNight)
{
set_pcvar_num(g_pTimeLimit, floatround(get_gametime() - g_flResetTime) / 60 + 5);
g_bNight = false;
}
}
public RtvHook(id)
{
if(g_bNight)
{
ChatColor(id, "^1[^4INFO^1] ^4RTV не работает в ^3Ночном режиме!");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
RemovePlayersFlags()
{
static players[32], pcount;
get_players(players, pcount, "ch");
for(new i; i < pcount; i++)
remove_user_flags(players, ADMIN_MAP|ADMIN_VOTE);
}
stock CheckMaps(cTime)
{
for(new i; i < g_iCountMaps; i++)
{
if(cTime >= g_aMaps[FROM] && cTime < g_aMaps[TO])
return i;
}
return -1;
}
/*
stock CheckMaps(cTime)
{
new iTemp;
for(new i; i < g_iCountMaps; i++)
{
if(cTime >= g_aMaps[FROM] && cTime < g_aMaps[TO])
iTemp = i;
}
return (iTemp > 0) ? iTemp : -1;
}
*/
stock ChatColor(const id, const szMessage[], any:...)
{
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id)
{
if(!is_user_connected(id)) return;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players);
write_byte(players);
write_string(szMsg);
message_end();
}
}
Комментарий:
Начал тестировать плагин, но столкнулся с проблемой. Плагин входит в ночной режим, команды rtv, amx_vote блокируются, как и положено, но вот плагин не выходит из ночного режима. Время истекает, а сервер остается на последней карте ночного режима с timelimit 0. Помогите решить эту проблему.
В этой теме было размещено решение! Перейти к решению.
Вложения
-
2.8 KB Просмотры: 257