Проверенный
Пользователь
- Сообщения
- 499
- Реакции
- 271
- Помог
- 6 раз(а)
- Ошибка
-
L 08/16/2018 - 15:42:42: Start of error session.
L 08/16/2018 - 15:42:42: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20180816.log")
L 08/16/2018 - 15:42:42: Invalid CVAR pointer
L 08/16/2018 - 15:42:42: [AMXX] Run time error 10 (plugin "map_manager_scheduler.amxx") (native "get_pcvar_num") - debug not enabled!
L 08/16/2018 - 15:42:42: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 08/16/2018 - 19:47:22: Invalid CVAR pointer
L 08/16/2018 - 19:47:22: [AMXX] Displaying debug trace (plugin "map_manager_scheduler.amxx")
L 08/16/2018 - 19:47:22: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 08/16/2018 - 19:47:22: [AMXX] [0] map_manager_scheduler.sma::event_deathmsg (line 271)
- ОС
- Windows
- Amx Mod X
-
AMX Mod X 1.8.2 (http://www.amxmodx.org)
- Билд
-
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 13:12:29 Aug 29 2013 (6153)
- ReGamedll
-
Не установлен
- Версия Metamod
-
Metamod v1.21p37 2013/05/30 (5:13)
- Список метамодулей
-
[ 1] VoiceTranscoder RUN - vtc.so v2017RC3 ini ANY
[ 2] AMX Mod X RUN - amxmodx.so v1.8.2 ini Start ANY
[ 3] dproto_EF RUN - dproto.so v0.9.582 ini Start Never
[ 4] LocalizeBug Fix RUN - localizebugfix.s v2.4 ini Start Never
[ 5] WHBlocker RUN - whblocker.so v1.5.692 ini ANY
[ 6] Semiclip RUN - semiclip.so v2.2 ini ANY
[ 7] Admin Free Look RUN - adminfreelook_am v1.5.3 pl2 ANY
[ 8] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl2 ANY
[ 9] Engine RUN - engine_amxx_i386 v1.8.2 pl2 ANY
[10] okapi RUN - okapi_amxx_i386. v1.0 pl2 ANY
[11] Orpheu RUN - orpheu_amxx_i386 v2.6.3 pl2 ANY
[12] CStrike RUN - cstrike_amxx_i38 v1.8.2 pl2 ANY
[13] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl2 ANY
[14] MySQL RUN - mysql_amxx_i386. v1.8.2 pl2 ANY
[15] CSX RUN - csx_amxx_i386.so v1.8.2 pl2 ANY
[16] Fun RUN - fun_amxx_i386.so v1.8.2 pl2 ANY
- Список плагинов
-
[ 1] Spam-NameBot 1.2.1 Aleksandr E. spam_name.amxx running
[ 2] Advanced Gag 1.4.1 neygomon amx_gag.amxx running
[ 3] opengl detector 0.8.30cs kanagava opengl_detector running
[ 4] AIM detector 0.9.2cs kanagava aim_detector.am running
[ 5] Admin Loader 2.5.2 neygomon admin_loader_fo running
[ 6] FreshBans 1.3.6 kanagava fresh_bans.amxx running
[ 7] [Amx] SnipersLimit 03.09.2016 vk.com/CSPlugin amx_sniperslimi running
[ 8] Admin Chat 1.8.2 AMXX Dev Team adminchat.amxx running
[ 9] Menus Front-End 1.8.2 AMXX Dev Team menufront.amxx running
[ 10] Maps Menu 1.8.2 AMXX Dev Team mapsmenu.amxx running
[ 11] Restrict Weapons 1.8.2 AMXX Dev Team restmenu.amxx running
[ 12] Admin Votes 1.8.2 AMXX Dev Team adminvote.amxx running
[ 13] CS Stats Logging 1.8.2 AMXX Dev Team stats_logging.a running
[ 14] Screen Shot Menu 1.2 Bonaqua | DimaS screen_shot_men running
[ 15] Autoresponder/Advertis 0.5 MaximusBrood reklama_in_chat running
[ 16] Reset Score 1.0 SKAJIbnEJIb resetscore_rbs. running
[ 17] Aliases checker 0.8.2 kanagava alias_checker.a running
[ 18] AFK Manager v1.4d Leon McVeran afk_manager.amx running
[ 19] Lite Translit 2.74 neygomon lite_translit.a running
[ 20] StatsX GUI 1.8 AMXX Dev Team statsx_gui_skil running
[ 21] Auto Demo Recorder 2.2.1 F@nt0M auto_demo_recor running
[ 22] Parachute New 1.0 Csserv.Ru parachute_new.a running
[ 23] Lite Admin ESP 1.0 neygomon lite_admin_esp. running
[ 24] Auto Game Restart with 1.0 AbeX auto_rr.amxx running
[ 25] IDEAL VIP by Ba/lePa 3.2 Ba/lePa ideal_vip.amxx running
[ 26] Ping Control 1.31 neygomon ping_control.am running
[ 27] Admin Commands 1.8.2 AMXX Dev Team admincmd.amxx running
[ 28] Players Menu 1.8.2 AMXX Dev Team plmenu.amxx running
[ 29] Team Balance Control 1.3.9 gyxoBka team_balance_co running
[ 30] Stats Configuration 1.8.2 AMXX Dev Team statscfg.amxx running
[ 31] auto_change_map 1.0 Black_Hawk auto_change_map running
[ 32] Time Bonus 1.1 SKOBAR1K time_bonus.amxx running
[ 33] Night VIP 0.1 F@nt0M night_vip.amxx running
[ 34] Map Manager: Core 3.0.0-Beta Mistrick map_manager_cor debug
[ 35] Map Manager: Scheduler 0.0.9 Mistrick map_manager_sch debug
[ 36] Map Manager: Rtv 0.0.3 Mistrick map_manager_rtv debug
[ 37] Map Manager: Nominatio 0.0.7 Mistrick map_manager_nom debug
[ 38] Map Manager: BlockList 0.0.3 Mistrick map_manager_blo debug
[ 39] Map Manager: Online so 0.0.1 Mistrick map_manager_onl debug
[ 40] Map Manager: Effects 0.0.8 Mistrick map_manager_eff debug
[ 41] Map Manager: Informer 0.0.5 Mistrick map_manager_inf debug
[ 42] Map Manager: Advanced 0.0.4 Mistrick map_manager_adv debug
- Автор плагина
- Mistrick
- Версия плагина
- Map Manager [Modular] 3.0 Beta 4
- Исходный код
-
#include <amxmodx>
#include <amxmisc>
#include <map_manager>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
#define PLUGIN "Map Manager: Scheduler"
#define VERSION "0.0.9"
#define AUTHOR "Mistrick"
#pragma semicolon 1
#if !defined client_disconnected
#define client_disconnected client_disconnect
#endif
#define get_num(%0) get_pcvar_num(g_pCvars[%0])
#define set_num(%0,%1) set_pcvar_num(g_pCvars[%0],%1)
#define get_float(%0) get_pcvar_float(g_pCvars[%0])
#define set_float(%0,%1) set_pcvar_float(g_pCvars[%0],%1)
#define get_string(%0,%1,%2) get_pcvar_string(g_pCvars[%0],%1,%2)
#define EVENT_SVC_INTERMISSION "30"
enum (+=100) {
TASK_CHECKTIME,
TASK_DELAYED_CHANGE,
TASK_CHANGE_TO_DEFAULT
};
enum {
CHANGE_AFTER_VOTE,
CHANGE_NEXT_ROUND,
CHANGE_MAP_END
};
enum Cvars {
CHANGE_TYPE,
TIMELEFT_TO_VOTE,
ROUNDS_TO_VOTE,
FRAGS_TO_VOTE,
VOTE_IN_NEW_ROUND,
LAST_ROUND,
SECOND_VOTE,
SECOND_VOTE_PERCENT,
CHANGE_TO_DEFAULT,
DEFAULT_MAP,
EXTENDED_TYPE,
EXTENDED_MAX,
EXTENDED_TIME,
EXTENDED_ROUNDS,
MAXROUNDS,
WINLIMIT,
TIMELIMIT,
CHATTIME,
FRAGLIMIT,
FRAGSLEFT,
NEXTMAP
};
new g_pCvars[Cvars];
new bool:g_bVoteInNewRound;
new g_iTeamScore[2];
new Float:g_fOldTimeLimit;
new g_iExtendedNum;
new g_iVoteType;
new g_sSecondVoteMaps[2][MAPNAME_LENGTH];
new bool:g_bChangeMapNextRound;
new g_sPrefix[32];
new g_sCurMap[MAPNAME_LENGTH];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
g_pCvars[CHANGE_TYPE] = register_cvar("mapm_change_type", "1"); // 0 - after end vote, 1 - in round end, 2 - after end map
g_pCvars[TIMELEFT_TO_VOTE] = register_cvar("mapm_timeleft_to_vote", "2"); // minutes
g_pCvars[ROUNDS_TO_VOTE] = register_cvar("mapm_rounds_to_vote", "2"); // rounds
g_pCvars[FRAGS_TO_VOTE] = register_cvar("mapm_frags_to_vote", "5"); // frags
g_pCvars[VOTE_IN_NEW_ROUND] = register_cvar("mapm_vote_in_new_round", "0"); // 0 - disable, 1 - enable
g_pCvars[LAST_ROUND] = register_cvar("mapm_last_round", "0"); // 0 - disable, 1 - enable
g_pCvars[SECOND_VOTE] = register_cvar("mapm_second_vote", "0"); // 0 - disable, 1 - enable
g_pCvars[SECOND_VOTE_PERCENT] = register_cvar("mapm_second_vote_percent", "50");
g_pCvars[CHANGE_TO_DEFAULT] = register_cvar("mapm_change_to_default_map", "0"); // minutes, 0 - disable
g_pCvars[DEFAULT_MAP] = register_cvar("mapm_default_map", "de_dust2");
g_pCvars[EXTENDED_TYPE] = register_cvar("mapm_extended_type", "0"); // 0 - minutes, 1 - rounds
g_pCvars[EXTENDED_MAX] = register_cvar("mapm_extended_map_max", "3");
g_pCvars[EXTENDED_TIME] = register_cvar("mapm_extended_time", "15"); // minutes
g_pCvars[EXTENDED_ROUNDS] = register_cvar("mapm_extended_rounds", "3"); // rounds
g_pCvars[MAXROUNDS] = get_cvar_pointer("mp_maxrounds");
g_pCvars[WINLIMIT] = get_cvar_pointer("mp_winlimit");
g_pCvars[TIMELIMIT] = get_cvar_pointer("mp_timelimit");
g_pCvars[CHATTIME] = get_cvar_pointer("mp_chattime");
g_pCvars[FRAGLIMIT] = get_cvar_pointer("mp_fraglimit");
g_pCvars[FRAGSLEFT] = get_cvar_pointer("mp_fragsleft");
g_pCvars[NEXTMAP] = register_cvar("amx_nextmap", "", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY);
register_concmd("mapm_start_vote", "concmd_startvote", ADMIN_MAP);
register_concmd("mapm_stop_vote", "concmd_stopvote", ADMIN_MAP);
register_clcmd("votemap", "clcmd_votemap");
register_event("DeathMsg", "event_deathmsg", "a");
register_event("TeamScore", "event_teamscore", "a");
register_event("HLTV", "event_newround", "a", "1=0", "2=0");
// register_event("TextMsg", "event_restart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in");
register_event(EVENT_SVC_INTERMISSION, "event_intermission", "a");
set_task(10.0, "task_checktime", TASK_CHECKTIME, .flags = "b");
}
public plugin_cfg()
{
get_mapname(g_sCurMap, charsmax(g_sCurMap));
mapm_get_prefix(g_sPrefix, charsmax(g_sPrefix));
}
public plugin_natives()
{
register_library("map_manager_scheduler");
register_native("map_scheduler_start_vote", "native_start_vote");
register_native("is_vote_will_in_next_round", "native_vote_will_in_next_round");
register_native("is_last_round", "native_is_last_round");
}
public native_start_vote(plugin, params)
{
if(g_bVoteInNewRound) {
return 0;
}
enum { arg_type = 1 };
planning_vote(get_param(arg_type));
return 1;
}
public native_vote_will_in_next_round(plugin, params)
{
return g_bVoteInNewRound;
}
public native_is_last_round(plugin, params)
{
return g_bChangeMapNextRound;
}
public plugin_end()
{
if(g_fOldTimeLimit > 0.0) {
set_float(TIMELIMIT, g_fOldTimeLimit);
}
restore_limits();
}
restore_limits()
{
if(g_iExtendedNum) {
if(get_num(EXTENDED_TYPE) == EXTEND_ROUNDS) {
new win_limit = get_num(WINLIMIT);
if(win_limit) {
set_pcvar_num(g_pCvars[WINLIMIT], win_limit - g_iExtendedNum * get_num(EXTENDED_ROUNDS));
}
new max_rounds = get_num(MAXROUNDS);
if(max_rounds) {
set_pcvar_num(g_pCvars[MAXROUNDS], max_rounds - g_iExtendedNum * get_num(EXTENDED_ROUNDS));
}
} else {
new Float:timelimit = get_float(TIMELIMIT);
if(timelimit) {
new Float:restored_value = timelimit - float(g_iExtendedNum * get_num(EXTENDED_TIME));
set_float(TIMELIMIT, restored_value);
}
}
g_iExtendedNum = 0;
}
}
public concmd_startvote(id, level, cid)
{
if(!cmd_access(id, level, cid, 1)) {
return PLUGIN_HANDLED;
}
new name[32]; get_user_name(id, name, charsmax(name));
log_amx("%s started vote", id ? name : "Server");
planning_vote(VOTE_BY_CMD);
return PLUGIN_HANDLED;
}
public concmd_stopvote(id, level, cid)
{
if(!cmd_access(id, level, cid, 1)) {
return PLUGIN_HANDLED;
}
new name[32]; get_user_name(id, name, charsmax(name));
log_amx("%s stopped vote", id ? name : "Server");
mapm_stop_vote();
if(g_bVoteInNewRound) {
g_bVoteInNewRound = false;
if(g_fOldTimeLimit > 0.0) {
set_float(TIMELIMIT, g_fOldTimeLimit);
}
}
return PLUGIN_HANDLED;
}
public clcmd_votemap()
{
// Block default vote
return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
if(!is_user_bot(id) && !is_user_hltv(id)) {
remove_task(TASK_CHANGE_TO_DEFAULT);
}
}
public client_disconnected(id)
{
new Float:change_time = get_float(CHANGE_TO_DEFAULT);
if(change_time > 0.0 && !get_players_num(id)) {
set_task(change_time * 60, "task_change_to_default", TASK_CHANGE_TO_DEFAULT);
}
}
public task_change_to_default()
{
if(get_players_num()) {
return;
}
new default_map[MAPNAME_LENGTH]; get_string(DEFAULT_MAP, default_map, charsmax(default_map));
if(!is_map_valid(default_map)) {
return;
}
log_amx("map changed to default[%s]", default_map);
set_pcvar_string(g_pCvars[NEXTMAP], default_map);
intermission();
}
public task_checktime()
{
if(is_vote_started() || is_vote_finished() || get_float(TIMELIMIT) <= 0.0) {
return 0;
}
new Float:time_to_vote = get_float(TIMELEFT_TO_VOTE);
new timeleft = get_timeleft();
if(timeleft <= floatround(time_to_vote * 60.0) && get_players_num()) {
log_amx("[checktime]: start vote, timeleft %d", timeleft);
planning_vote(VOTE_BY_SCHEDULER);
}
return 0;
}
public event_deathmsg()
{
if(get_num(FRAGLIMIT)) {
if(get_num(FRAGSLEFT) <= get_num(FRAGS_TO_VOTE)) {
log_amx("[deathmsg]: start vote, fragsleft %d", get_num(FRAGSLEFT));
mapm_start_vote(VOTE_BY_SCHEDULER);
}
}
}
public event_teamscore()
{
new team[2]; read_data(1, team, charsmax(team));
g_iTeamScore[(team[0] == 'C') ? 0 : 1] = read_data(2);
}
public event_newround()
{
new max_rounds = get_num(MAXROUNDS);
if(!is_vote_finished() && max_rounds && (g_iTeamScore[0] + g_iTeamScore[1]) >= max_rounds - get_num(ROUNDS_TO_VOTE)) {
log_amx("[newround]: start vote, maxrounds %d [%d]", max_rounds, g_iTeamScore[0] + g_iTeamScore[1]);
mapm_start_vote(VOTE_BY_SCHEDULER);
}
new win_limit = get_num(WINLIMIT) - get_num(ROUNDS_TO_VOTE);
if(!is_vote_finished() && win_limit > 0 && (g_iTeamScore[0] >= win_limit || g_iTeamScore[1] >= win_limit)) {
log_amx("[newround]: start vote, winlimit %d [CT: %d, T: %d]", win_limit, g_iTeamScore[0], g_iTeamScore[1]);
mapm_start_vote(VOTE_BY_SCHEDULER);
}
if(g_bVoteInNewRound && !is_vote_started()) {
log_amx("[newround]: start vote, timeleft %d, new round", get_timeleft());
mapm_start_vote(g_iVoteType);
}
if(is_vote_finished() && g_bChangeMapNextRound) {
new nextmap[MAPNAME_LENGTH]; get_string(NEXTMAP, nextmap, charsmax(nextmap));
client_print_color(0, print_team_default, "%s^1 %L^3 %s^1.", g_sPrefix, LANG_PLAYER, "MAPM_NEXTMAP", nextmap);
intermission();
}
}
/*
public event_restart()
{
if(get_num(RESTORE_MAP_LIMITS)) {
restore_limits();
}
}
*/
public event_intermission()
{
if(task_exists(TASK_DELAYED_CHANGE)) {
log_amx("double intermission, how?");
return;
}
new Float:chattime = get_float(CHATTIME);
set_float(CHATTIME, chattime + 1.0);
set_task(chattime, "delayed_change", TASK_DELAYED_CHANGE);
}
public delayed_change()
{
new nextmap[MAPNAME_LENGTH]; get_string(NEXTMAP, nextmap, charsmax(nextmap));
set_float(CHATTIME, get_float(CHATTIME) - 1.0);
server_cmd("changelevel %s", nextmap);
}
planning_vote(type)
{
g_iVoteType = type;
if(get_num(VOTE_IN_NEW_ROUND)) {
g_bVoteInNewRound = true;
g_fOldTimeLimit = get_float(TIMELIMIT);
if(g_fOldTimeLimit > 0.0) {
set_float(TIMELIMIT, 0.0);
}
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_VOTE_WILL_BEGIN");
log_amx("[planning_vote]: vote in new round.");
} else {
mapm_start_vote(type);
}
}
public mapm_can_be_extended(type)
{
if(type == VOTE_BY_SCHEDULER_SECOND) {
return EXTEND_BLOCKED;
}
if(g_iExtendedNum >= get_num(EXTENDED_MAX)) {
return EXTEND_BLOCKED;
}
return EXTEND_ALLOWED;
}
public mapm_prepare_votelist(type)
{
if(type != VOTE_BY_SCHEDULER_SECOND) {
return;
}
for(new i; i < sizeof(g_sSecondVoteMaps); i++) {
mapm_push_map_to_votelist(g_sSecondVoteMaps[i], PUSH_BY_SECOND_VOTE, CHECK_IGNORE_MAP_ALLOWED);
}
mapm_set_votelist_max_items(2);
}
public mapm_analysis_of_results(type, total_votes)
{
if(type == VOTE_BY_SCHEDULER_SECOND || !get_num(SECOND_VOTE)) {
return ALLOW_VOTE;
}
new max_items = mapm_get_count_maps_in_vote();
if(max_items <= 2) {
return ALLOW_VOTE;
}
new first, second, max_votes_first, max_votes_second;
new map[MAPNAME_LENGTH], votes;
for(new i, temp_votes, temp_index; i < max_items; i++) {
votes = mapm_get_voteitem_info(i, map, charsmax(map));
if(votes >= max_votes_first) {
temp_votes = max_votes_first;
temp_index = first;
max_votes_first = votes;
first = i;
if(temp_votes > max_votes_second) {
max_votes_second = temp_votes;
second = temp_index;
}
} else if(votes >= max_votes_second) {
max_votes_second = votes;
second = i;
}
}
new percent = total_votes ? floatround(max_votes_first * 100.0 / total_votes) : 0;
if(percent >= get_num(SECOND_VOTE_PERCENT)) {
return ALLOW_VOTE;
}
mapm_get_voteitem_info(first, g_sSecondVoteMaps[0], charsmax(g_sSecondVoteMaps[]));
mapm_get_voteitem_info(second, g_sSecondVoteMaps[1], charsmax(g_sSecondVoteMaps[]));
log_amx("[analysis]: second vote started. (%s, %s)", g_sSecondVoteMaps[0], g_sSecondVoteMaps[1]);
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_SECOND_VOTE");
mapm_start_vote(VOTE_BY_SCHEDULER_SECOND);
return ABORT_VOTE;
}
public mapm_vote_finished(const map[], type, total_votes)
{
if(g_fOldTimeLimit > 0.0) {
set_float(TIMELIMIT, g_fOldTimeLimit);
g_fOldTimeLimit = 0.0;
}
g_bVoteInNewRound = false;
// map extended
if(equali(map, g_sCurMap)) {
g_iExtendedNum++;
new win_limit = get_num(WINLIMIT);
new max_rounds = get_num(MAXROUNDS);
if(get_num(EXTENDED_TYPE) == EXTEND_ROUNDS && (win_limit || max_rounds)) {
new rounds = get_num(EXTENDED_ROUNDS);
if(win_limit > 0) {
set_num(WINLIMIT, win_limit + rounds);
}
if(max_rounds > 0) {
set_num(MAXROUNDS, max_rounds + rounds);
}
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", rounds, LANG_PLAYER, "MAPM_ROUNDS");
} else {
new min = get_num(EXTENDED_TIME);
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", min, LANG_PLAYER, "MAPM_MINUTES");
set_float(TIMELIMIT, get_float(TIMELIMIT) + float(min));
}
mapm_set_vote_finished(false);
log_amx("[vote_finished]: map extended[%d].", g_iExtendedNum);
return 0;
}
// change map
if(!total_votes) {
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_NOBODY_VOTE", map);
} else {
client_print_color(0, print_team_default, "%s^1 %L^3 %s^1.", g_sPrefix, LANG_PLAYER, "MAPM_NEXTMAP", map);
}
set_pcvar_string(g_pCvars[NEXTMAP], map);
log_amx("[vote_finished]: nextmap is %s.", map);
if(get_num(LAST_ROUND)) {
// What if timelimit 0?
g_fOldTimeLimit = get_float(TIMELIMIT);
set_float(TIMELIMIT, 0.0);
g_bChangeMapNextRound = true;
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_LASTROUND");
log_amx("[vote_finished]: last round - saved timelimit is %f", g_fOldTimeLimit);
} else if(get_num(CHANGE_TYPE) == CHANGE_AFTER_VOTE) {
client_print_color(0, print_team_default, "%s^1 %L^1 %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_CHANGE", get_num(CHATTIME), LANG_PLAYER, "MAPM_SECONDS");
intermission();
} else if(get_num(CHANGE_TYPE) == CHANGE_NEXT_ROUND || type == VOTE_BY_RTV) {
g_bChangeMapNextRound = true;
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_MAP_CHANGE_NEXTROUND");
}
return 0;
}
Не работает часть функционала плагина, например timeleft и thetime. Те ошибки, где "Invalid CVAR pointer" повторялись на тысячи строк, скопировал по одной. На всякий приложу и сам лог. Насчёт ОС не уверен, понятия не имею какая там стоит на csserv.ru.
В этой теме было размещено решение! Перейти к решению.
Вложения
-
392.3 KB Просмотры: 535
Последнее редактирование: