Продление карты происходит 3 раза, хотя в исходнике изменено на 2.

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#1
Всем привет. Помогите разобратся, чтобы карту продлевать можна было 2 раза, в исходнике изменяю значения на 2
C++:
g_pExendedMax = register_cvar("mm_extendedmap_max", "2"); // количество продлений
но при голосование выбора карты за смену или продления, то карту можна 3 раза продлевать, а надо чтобы было 2 продлить карту.
Или в этой строке надо изменить что-то:
C++:
if(!g_bRockVote && get_pcvar_num(g_pTimeLimit) != 0 && g_iExtendedMax < get_pcvar_num(g_pExendedMax))
    {
        iPercent = 0;
        if(g_iTotal)
            iPercent = floatround(g_iVoteItem[i]*100.0/g_iTotal);
C++:
#include <amxmodx>
#include <fakemeta> // Закомментируйте или удалите, если не хотите использовать модуль fakemeta. [Для АМХХ 1.8.3 лучше оставить как есть]

#if (AMXX_VERSION_NUM < 183) || defined NO_NATIVE_COLORCHAT
    #include <colorchat>
#else
    #define DontChange print_team_default
    #define Blue print_team_blue
    #define Red print_team_red
    #define Grey print_team_grey
#endif

#define PLUGIN "Map Manager"
#define AUTHOR "Mistrick | neygomon"

#pragma semicolon 1

#define SELECT_MAPS 4            // Число карт в голосовании. Максимум 8
#define VOTE_TIME 10            // Время голосования
#define NOMINATE_MAX 4            // Максимальное число номинаций
#define NOMINATE_PLAYER_MAX 1        // Максимальное число карт для номиначии одним игроком
#define MAP_BLOCK 5             // Количество последних сыгранных карт, которые не будут предлагаться для голосования
#define HUD_RESULT_COLOR 0, 55, 255     // Цвет результатов голосования
#define MAPSMENU             // Включить или выключить say /maps (По дефолту выключен)
//#define DEBUG             // Сообщения для отладки. Файл mapmanager_debug.log
#define CSDM             // Включать на серверах с бесконечными раундами... CSDM/GG/Soccer Jam
#define MINIMAPS             // Включить поддержку второго списка карт (По дефолту выключен)
                    // [Если включаете, то создайте minimaps.ini в amxmodx/configs] [аля night mode]
#if defined MINIMAPS
    #define MINIMAPS_START 23     // Время начала подгрузки карт minimaps [аля night mode]
    #define MINIMAPS_END 8     // Время окончания подгрузки карт minimaps [аля night mode]
#endif
#if defined CSDM
    #define VERSION "0.5.7 CSDM"
#else
    #define VERSION "0.5.7 RND"
#endif

#define TASK_TIMER 978462
#define TASK_VOTEMENU 978162

enum _:BLOCKED_DATA { MAP[33], COUNT }
enum _:NOMINATE_DATA { MAP[33], PLAYER, ID }

new const FILE_BLOCKEDMAPS[] = "addons/amxmodx/data/blockedmaps.ini";

new const PREFIX[] = "^1[^4MapManager^1]";
 
new Array:g_iMapsArray, Array:g_iNominateArray;

new g_pLoadMapsType, g_pShowSelects, g_pShowResultAfterVote, g_pShowResultType;
new g_pTimeLimit, g_pExendedMax;
new g_pExendedTime, g_pRockEnable, g_pRockPercent, g_pRockDelay, g_pRockShow, g_pNextMap, g_pFriendlyFire, g_pBlockPlayers, g_pAdminVoteWeight, g_pAdminRTVWeight;

new bool:g_bBeInVote, bool:g_bVoteFinished, bool:g_bRockVote, bool:g_bHasVoted[33], bool:g_bRockVoted[33];

new g_iExtendedMax, g_iStartPlugin, g_iLoadMaps;
new g_iInMenu[SELECT_MAPS], g_iVoteItem[SELECT_MAPS + 1], g_iTotal, g_iVoteTime, g_iRockVote;
new g_iNominatedMaps[33];
#if defined MAPSMENU
    new g_iPage[33];
#endif

#if !defined CSDM
    new pcv_mp_buytime, g_buytime, pcv_mp_roundtime, Float:flt_roundtime, g_pShowHUDLastRound;
    new bool:g_buytimeRepare = false;
#endif
 
new g_msgScreenFade, fade, pcv_mp_freezetime, g_freezetime, g_timelimit;
new bool:g_freezetimeRepare = false, bool:g_timelimitRepare = false, bool:g_Work = false;

new g_szInMenuMapName[SELECT_MAPS][33], g_BlockedMaps[MAP_BLOCK][BLOCKED_DATA], g_szCurrentMap[32];

new const g_szPrefixes[][] = {"cs_", "as_", "de_"};
new const g_szSound[][] = { "",    "fvox/one",    "fvox/two",    "fvox/three" };

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
 
    g_pLoadMapsType = register_cvar("mm_loadmapstype", "1");//0 - load all maps from maps folder, 1 - load maps from file
    g_pShowSelects = register_cvar("mm_showselects", "1");//0 - disable, 1 - all, 2 - self
    g_pShowResultAfterVote = register_cvar("mm_show_result_aftervote", "1");//0 - disable, 1 - enable
    g_pShowResultType = register_cvar("mm_showresulttype", "0");//0 - menu, 1 - hud
    g_pBlockPlayers = register_cvar("mm_block_players", "1"); // 1 - yes, 0 - off
    g_pExendedTime = register_cvar("mm_extendedtime", "10"); //minutes
    g_pExendedMax = register_cvar("mm_extendedmap_max", "2"); // количество продлений
    g_pAdminVoteWeight = register_cvar("mm_adminvote_weight", "1"); // вес голоса админа при голосовании [флаг ADMIN_MENU]
    g_pAdminRTVWeight = register_cvar("mm_adminrtv_weight", "1"); // вес голоса админа в RTV [флаг ADMIN_MENU]
    #if !defined CSDM
        g_pShowHUDLastRound = register_cvar("mm_show_lastround", "1"); // показывать HUD последнего раунда или нет
    #endif
 
    g_pNextMap = register_cvar("amx_nextmap", "");
 
    g_pRockEnable = register_cvar("mm_rtv_enable", "1");//0 - disable, 1 - enable
    g_pRockPercent = register_cvar("mm_rtv_percent", "60");
    g_pRockDelay = register_cvar("mm_rtv_delay", "3");//minutes
    g_pRockShow = register_cvar("mm_rtv_show", "0");//0 - all, 1 - self

    register_concmd("amx_rtv", "Command_StartVote", ADMIN_MAP);
    register_clcmd("say ff", "Command_FriendlyFire");
#if defined MAPSMENU
    register_clcmd("say maps", "Command_MapsList");
    register_clcmd("say /maps", "Command_MapsList");
#endif
    register_clcmd("say rtv", "Command_RTV");
    register_clcmd("say /rtv", "Command_RTV");
    register_clcmd("say nextmap", "Command_Nextmap");
    register_clcmd("say timeleft", "Command_Timeleft");
    register_clcmd("say thetime", "Command_TheTime");
    register_clcmd("say currentmap", "Command_CurrentMap");
    register_clcmd("say", "Command_Say");
    register_clcmd("say_team", "Command_Say");
    #if !defined CSDM
        register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0");
    #endif
    register_event("TextMsg", "Event_GameRestart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in");
 
    register_cvar ("nmm_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
 
    register_menucmd(register_menuid("Vote_Menu"), 1023, "VoteMenu_Handler");
#if defined MAPSMENU
    register_menucmd(register_menuid("MapsList_Menu"), 1023, "MapsListMenu_Handler");
#endif
    g_iNominateArray = ArrayCreate(NOMINATE_DATA);
    g_iStartPlugin = get_systime();
 
    g_msgScreenFade = get_user_msgid ("ScreenFade");
    pcv_mp_freezetime = get_cvar_pointer ("mp_freezetime");
    #if !defined CSDM
        pcv_mp_buytime = get_cvar_pointer ("mp_buytime");
        pcv_mp_roundtime = get_cvar_pointer ("mp_roundtime");
    #endif
    g_pTimeLimit = get_cvar_pointer("mp_timelimit");
    g_pFriendlyFire = get_cvar_pointer("mp_friendlyfire");
     
    Load_BlockedMaps();
    Load_MapList();
 
    set_task(15.0, "CheckTime", .flags = "b");
 
    // set_cvar_string("mapcyclefile", FILE_MAPS);
#if defined DEBUG
    log_to_file("mapmanager_debug.log", "PLUGIN_INIT: %s", g_szCurrentMap);
#endif
}

public plugin_cfg()
{
    #if !defined CSDM
        flt_roundtime = get_pcvar_float(pcv_mp_roundtime);
    #endif
    set_cvar_float("sv_restart", 1.0);
#if defined DEBUG
    log_to_file("mapmanager_debug.log", "[plugin_cfg] g_pTimeLimit: %d", get_pcvar_num(g_pTimeLimit));
#endif
}
 
public plugin_end()
{
    if(g_freezetimeRepare)
        set_pcvar_num(pcv_mp_freezetime, g_freezetime);
    #if !defined CSDM
        if(g_buytimeRepare)
            set_pcvar_num(pcv_mp_buytime, g_buytime);
    #endif
    if(g_timelimitRepare)
        set_pcvar_num(g_pTimeLimit, g_timelimit);
#if defined DEBUG
    log_to_file("mapmanager_debug.log", "[plugin_end] g_timelimitRepare: %d | g_pTimeLimit: %d", g_timelimitRepare, get_pcvar_num(g_pTimeLimit));
#endif    
    new const TEMP_FILE[] = "addons/amxmodx/data/temp.ini";
    new iTemp = fopen(TEMP_FILE, "wt");
 
    for(new i = 0; i < MAP_BLOCK; i++)
    {
        if(g_BlockedMaps[i][COUNT])
            fprintf(iTemp, "^"%s^" ^"%d^"^n", g_BlockedMaps[i][MAP], g_BlockedMaps[i][COUNT]);
    }
 
    fprintf(iTemp, "^"%s^" ^"%d^"^n", g_szCurrentMap, MAP_BLOCK);
    fclose(iTemp);
 
    delete_file(FILE_BLOCKEDMAPS);
#if defined DEBUG
    new iRename = rename_file(TEMP_FILE, FILE_BLOCKEDMAPS, 1);
    log_to_file("mapmanager_debug.log", "PLUGIN_END: File Renamed? %d", iRename);
    log_to_file("mapmanager_debug.log", "- - - - - - - - - - - - - - -");
#else
    rename_file(TEMP_FILE, FILE_BLOCKEDMAPS, 1);
#endif
}

public client_disconnect(id)
{
    if(task_exists(id + TASK_VOTEMENU)) remove_task(id + TASK_VOTEMENU);
    if(g_bRockVoted[id])
    {
        g_bRockVoted[id] = false;
        if(get_user_flags(id) & ADMIN_MENU && get_pcvar_num(g_pAdminRTVWeight) != 0)
            g_iRockVote -= get_pcvar_num(g_pAdminRTVWeight);
        else
            g_iRockVote--;
    }
    if(g_iNominatedMaps[id])
        clear_nominated_maps(id);
}

//***** Commands *****//
public Command_StartVote(id, flag)
{
    if(~get_user_flags(id) & flag) return PLUGIN_HANDLED;
 
    if(g_Work)
    {
        if(id == 0)
            console_print(0, "[MapManager] VoteMap has already started");
        else
            console_print(id, "[MapManager] Голосование уже запущено! Ожидайте.");
    }
    else
    {
        if(id == 0)
            console_print(0, "[MapManager] VoteMap started");
        else
            console_print(id, "[MapManager] Голосование за досрочную смену карты запущено");
        #if !defined CSDM
            g_Work = true;
        #else
            StartVote(0);
        #endif
        client_print_color(0, DontChange, "%s^1 ^4Администратор ^1запустил ^3досрочное ^1голосование.", PREFIX);
     
        new name[32];
        get_user_name(id, name, charsmax(name));
        log_amx("Администратор %s запустил досрочное голосование", name);
        #if !defined CSDM
            if(get_pcvar_num(g_pShowHUDLastRound))
                hud_lastround();
        #endif
    }    
 

    return PLUGIN_HANDLED;
}

public Command_FriendlyFire(id)
    client_print_color(0, DontChange, "%s^1 На сервере^3 %s^1 огонь по своим.", PREFIX, get_pcvar_num(g_pFriendlyFire) ? "разрешён" : "запрещён");
 
public Command_TheTime(id)
{
    new time[64];
    get_time ("%d.%m.%Y - %H:%M:%S", time, sizeof (time) - 1);
    client_print_color(id, DontChange, "%s^1 Текущее время: ^3 %s^1", PREFIX, time);
}

#if defined MAPSMENU
public Command_MapsList(id)
    Show_MapsListMenu(id, g_iPage[id] = 0);
 
public Show_MapsListMenu(id, iPage)
{
#if defined _fakemeta_included
    set_pdata_int( id, 205, 0 );
#endif
    if(iPage < 0) return PLUGIN_HANDLED;
 
    new iMax = ArraySize(g_iMapsArray);
    new i = min(iPage * 8, iMax);
    new iStart = i - (i % 8);
    new iEnd = min(iStart + 8, iMax);
 
    iPage = iStart / 8;
    g_iPage[id] = iPage;
 
    new szMenu[512], iLen = 0, iLen_Max = charsmax(szMenu), szMapName[32];
 
    iLen = formatex(szMenu, iLen_Max, "\yСписок карт \w[%d/%d]:^n", iPage + 1, ((iMax - 1) / 8) + 1);
 
    new Keys, Item, iBlock, iNominator;
 
    for (i = iStart; i < iEnd; i++)
    {
        ArrayGetString(g_iMapsArray, i, szMapName, charsmax(szMapName));
        iBlock = get_blocked_map_count(szMapName);
        iNominator = is_map_nominated(szMapName);
        if(iBlock)
            iLen += formatex(szMenu[iLen], iLen_Max - iLen, "^n\r%d.\d %s[\r%d\d]", ++Item, szMapName, iBlock);
        else if(iNominator)
        {
            if(iNominator == id)
            {
                Keys |= (1 << Item);
                iLen += formatex(szMenu[iLen], iLen_Max - iLen, "^n\r%d.\w %s[\y*\w]", ++Item, szMapName);
             
            }
            else
                iLen += formatex(szMenu[iLen], iLen_Max - iLen, "^n\r%d.\d %s[\y*\d]", ++Item, szMapName);
        }
        else
        {
            Keys |= (1 << Item);
            iLen += formatex(szMenu[iLen], iLen_Max - iLen, "^n\r%d.\w %s", ++Item, szMapName);
        }
    }
    while(Item <= 8)
    {
        Item++;
        iLen += formatex(szMenu[iLen], iLen_Max - iLen, "^n");
    }
    if (iEnd < iMax)
    {
        Keys |= (1 << 8)|(1 << 9);    
        formatex(szMenu[iLen], iLen_Max - iLen, "^n\r9.\w %Вперед^n\r0.\w %s", iPage ? "Назад" : "Выход");
    }
    else
    {
        Keys |= (1 << 9);
        formatex(szMenu[iLen], iLen_Max - iLen, "^n^n\r0.\w %s", iPage ? "Назад" : "Выход");
    }
    show_menu(id, Keys, szMenu, -1, "MapsList_Menu");
    return PLUGIN_HANDLED;
}

public MapsListMenu_Handler(id, key)
{
    switch (key)
    {
        case 8: Show_MapsListMenu(id, ++g_iPage[id]);
        case 9: Show_MapsListMenu(id, --g_iPage[id]);
        default:
        {        
            new szMapName[33]; ArrayGetString(g_iMapsArray, key + g_iPage[id] * 8, szMapName, charsmax(szMapName));
            if(g_iNominatedMaps[id] && is_map_nominated(szMapName))
                remove_nominated_map(id, szMapName);
            else
                NominateMap(id, szMapName);
        }
    }
    return PLUGIN_HANDLED;
}
#endif

public Command_RTV(id)
{
    if(g_bVoteFinished || g_bBeInVote) return PLUGIN_HANDLED;
 
    if(!get_pcvar_num(g_pRockEnable)) return PLUGIN_CONTINUE;
 
    if(get_systime() - g_iStartPlugin < get_pcvar_num(g_pRockDelay) * 60)
    {
        new iMin = 1 + (get_pcvar_num(g_pRockDelay) * 60 - (get_systime() - g_iStartPlugin)) / 60;
        new szMin[16]; get_ending(iMin, "минут", "минута", "минуты", szMin, charsmax(szMin));
             
        client_print_color(id, DontChange, "%s^1 Вы не можете голосовать ^3за досрочную смену ^4карты^1. Осталось: ^4%d ^1%s.", PREFIX, iMin, szMin);
        return PLUGIN_HANDLED;
    }
 
    if(!g_bRockVoted[id])
    {
        g_bRockVoted[id] = true;
        if(get_user_flags(id) & ADMIN_MENU && get_pcvar_num(g_pAdminRTVWeight) != 0)
            g_iRockVote += get_pcvar_num(g_pAdminRTVWeight);
        else
            g_iRockVote++;
     
        new iVote = floatround(get_players_num() * get_pcvar_num(g_pRockPercent) / 100.0, floatround_ceil) - g_iRockVote;
     
        if(iVote > 0)
        {
            new szVote[16];    get_ending(iVote, "голосов", "голос", "голоса", szVote, charsmax(szVote));
         
            switch(get_pcvar_num(g_pRockShow))
            {
                case 0:
                {
                    new szName[33];
                    get_user_name(id, szName, charsmax(szName));
                    client_print_color(0, DontChange, "%s^3 %s^1 проголосовал ^3за смену ^4карты^1. Осталось: ^4%d ^1%s.", PREFIX, szName, iVote, szVote);
#if defined DEBUG
                    log_to_file("mapmanager_debug.log", "%s проголосовал за смену карты. Осталось: %d %s.", szName, iVote, szVote);
#else
                    log_amx("%s проголосовал за смену карты. Осталось: %d %s.", szName, iVote, szVote);
#endif                
                }
                case 1: client_print_color(id, DontChange, "%s^1 Ваш голос ^3учтён^1. Осталось:^4 %d ^1%s.", PREFIX, iVote, szVote);
            }
        }
        else
        {
            #if !defined CSDM
            g_bRockVote = true;
            g_Work = true;
            client_print_color(0, DontChange, "%s^1 Голосование за смену карты будет в новом раунде.", PREFIX);
#if defined DEBUG
            log_to_file("mapmanager_debug.log", "Голосование за смену карты будет в новом раунде.");
#endif
            #else
            StartVote(0);
            #endif
             
        }
    }
    else
    {
        new iVote = floatround(get_players_num() * get_pcvar_num(g_pRockPercent) / 100.0, floatround_ceil) - g_iRockVote;
        new szVote[16];    get_ending(iVote, "голосов", "голос", "голоса", szVote, charsmax(szVote));
        client_print_color(id, DontChange, "%s^1 Вы уже ^3голосовали^1. Осталось: ^4%d ^1%s.", PREFIX, iVote, szVote);
    }
 
    return PLUGIN_HANDLED;
}

public Command_Nextmap(id)
{
    new szMap[33]; get_pcvar_string(g_pNextMap, szMap, charsmax(szMap));
    client_print_color(0, Blue, "%s^1 Следующая карта: ^3%s^1.", PREFIX, szMap);
}[/CODE
 

Вложения

Последнее редактирование: Izmayl7

perfectblood0

Команда форума
Администратор
Регистрация
29 Окт 2017
Сообщения
1.560
Симпатии
492
#2
Кваром указать не судьба?
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#3
всмысле кваром указать?! тоесть где?! не понял немного.( в исходнике изначально стояло значение 3, поменял его на 2:
C++:
g_pExendedMax = register_cvar("mm_extendedmap_max", "2"); // количество продлений
но изменененное значение на 2 результата не дало, кол-во продление так и осталось 3.
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#5
Izmayl7, Исходник для тех, кто понимает что в нем делать. Для остальных- есть конфиг. В нем и меняйте.
так в этом плагине нету конфига. или мне внести данное значение из исходника в server.cfg или в amxx.cfg?!
 

georgeml

Постоялец
Регистрация
12 Сен 2017
Сообщения
380
Симпатии
157
#6
Izmayl7, Если нет конфига, введите в консоль сервера mm_extendedmap_max и посмотрите значение квара
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#7
Izmayl7, Если нет конфига, введите в консоль сервера mm_extendedmap_max и посмотрите значение квара
C++:
mm_extendedmap_max
"mm_extendedmap_max" is "2"
извеняюсь всё поперепутал... с этим всё правильно. надо было чтобы когда происходило голосование за смену или продление карты, то продление карты было 1 раз, но когда изменяю данное значение в исходнике:
C++:
g_pExendedMax = register_cvar("mm_extendedmap_max", "1"); // количество продлений
то когда происходит голосование за смену или продление карты то продление карты происходит 2 раза, а не 1 раз.
14 Ноя 2018
вот при таком значении в консоли пишет сёравно 2:
C++:
mm_extendedmap_max
"mm_extendedmap_max" is "2"
14 Ноя 2018
вот при таком значении:
CODE=cpp]g_pExendedMax = register_cvar("mm_extendedmap_max", "1"); // количество продлений[/CODE]
в консоли пишет сёравно 2:
C++:
mm_extendedmap_max
"mm_extendedmap_max" is "2"
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.485
Симпатии
503
Пол
Мужской
#10
Вроде как помнитса что плагин создает кфг свой... mapmanager.cfg
Но если всетаки нету.. то делайте как писали выше в amxx.cfg
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#11
Вроде как помнитса что плагин создает кфг свой... mapmanager.cfg
Но если всетаки нету.. то делайте как писали выше в amxx.cfg
нет не создается в данном случае. помогло как посоветовал georgeml, прописать в amxx.cfg:
C++:
mm_extendedmap_max "1"
за это огромное спасибо!)
И дабы не создать заново другую тему, то возникла другая проблемка, после добавления в amxx.cfg: mm_extendedmap_max "1",
перестал работать таймер отсчёта до конца карты:
56.jpg
C++:
#include <amxmodx>

public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
    set_task(1.0, "RegMsg");
}

public RegMsg()
{
    new msg = get_user_msgid("RoundTime");
    if(get_msg_block(msg) != BLOCK_NOT)
        set_msg_block(msg, BLOCK_NOT);
 
    register_message(msg, "msgRoundTime");
    register_message(get_user_msgid("HideWeapon"), "msgHideWeapon");
}

public msgRoundTime(msgId, msgDesc, msgEnt)
    set_msg_arg_int(1, ARG_SHORT, get_timeleft());
 
public msgHideWeapon(msgId, msgDesc, msgEnt)
{
    static flags; flags = get_msg_arg_int(1);
    if(flags & (1 << 4)) set_msg_arg_int(1, ARG_BYTE, flags & ~(1 << 4));
}
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.485
Симпатии
503
Пол
Мужской
#12
Izmayl7, приложите свой список плагинов под спойлер и через bb-code
командой в консоль amx_plugins
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#13
Izmayl7, приложите свой список плагинов под спойлер и через bb-code
командой в консоль amx_plugins
уже прикладывал в другой теме, вот:
C++:
Currently loaded plugins:       name                    version     author            file             status
[  1] admin_loader            0.3.7       kanagava          admin_loader.am  running
[  2] Admin ESP               0.3         Kost & miRror |   admin_esp_mini.  running
[  3] fb_forwards             0.1.7       Kanagava & Realu  fb_forwards.amx  running
[  4] FreshBans               1.3.9b      kanagava          fresh_bans_138_  running
[  5] CSDM Main               2.1.3c      CSDM Team         csdm_main.amxx   running
[  6] CSDM Equip              2.1.3c      CSDM Team         csdm_equip.amxx  running
[  7] CSDM Misc               2.1.3c      CSDM Team         csdm_misc.amxx   running
[  8] CSDM Spawns             2.1.3c      CSDM Team         csdm_spawn_pres  running
[  9] CSDM Stripper           2.1.3c      KWo               csdm_stripper.a  running
[ 10] CSDM Protection         2.1.3c      BAILOPAN          csdm_protection  running
[ 11] Advanced Gag            1.9.0       neygomon          amx_gag.amxx     running
[ 12] CSStatsX SQL            0.7.4       serfreeman1337    csstatsx_sql.am  running
[ 13] Admin Commands          1.8.2       AMXX Dev Team     admincmd.amxx    running
[ 14] Menus Front-End         1.5         neugomon          menufront_end.a  running
[ 15] Commands Menu           1.8.2       AMXX Dev Team     cmdmenu.amxx     running
[ 16] Players Menu            1.8.2       AMXX Dev Team     plmenu.amxx      running
[ 17] Maps Menu               1.8.2       AMXX Dev Team     mapsmenu.amxx    running
[ 18] Admin Votes             1.8.2       Wildness Team     adminvote.amxx   running
[ 19] [Reapi] Block Advert    1.4         neygomon          block_all_adver  running
[ 20] Map Manager             0.5.7 CSDM  Mistrick | neygo  mapmanager.amxx  running
[ 21] DemoRecoder             1.1         neygomon          amx_demorec.amx  running
[ 22] Parachute No Model      1.4         Name_PNM          Parachute_No_Mo  running
[ 23] Reset Score             1.0         AndrewZ           resetscore.amxx  running
[ 24] Advert Messages         1.2         neygomon          adverts.amxx     running
[ 25] GameName Changer        1.0         neugomon          gamename_change  running
[ 26] [ReAPI] Custom Models   1.6.1       neugomon          aacustom_models  running
[ 27] [reAPI] Flash Control   1.1         neugomon          flash_control.a  running
[ 28] Player Status           1.0         Player Status     player_status.a  running
[ 29] AFK Control             1.4.1 [NoR  neygomon          afk_control.amx  running
[ 30] Show timeleft for CSDM  1.0         neygomon          timer.amxx       running
[ 31] Advanced Experience Sy  0.5.8 Vega  serfreeman1337/s  aes_main.amxx    running
[ 32] AES: StatsX             0.5.8 Vega  serfreeman1337/s  aes_statsx_cstr  debug
[ 33] AES: CStrike Addon      0.5.8 Vega  serfreeman1337/s  aes_exp_cstrike  running
[ 34] AES: Informer           0.5.8 Vega  serfreeman1337/s  aes_informer.am  running
[ 35] AES: Admin Tools        0.5.8 Vega  serfreeman1337/s  aes_exp_editor.  running
[ 36] Lite VoteBan            1.4         neygomon          lite_voteban.am  running
[ 37] Lite Translit           2.8         neygomon          lite_translit.a
14 Ноя 2018
спасибо помогло!) ;) но вот вылезла другая проблема с показом таймера(
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.485
Симпатии
503
Пол
Мужской
#14
Izmayl7, а если етот плагин поставить выше mapmanager?
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#19
Izmayl7, Тогда, не вижу связи этих 2-х плагинов
если я уберу из amxx.cfg: mm_extendedmap_max "1", то таймер показывает отсчёт времени до конца карты и продление карты будет не 1 раз, а 2 раза продлеваться.
15 Ноя 2018
если я уберу из amxx.cfg: mm_extendedmap_max "1", то таймер показывает отсчёт времени до конца карты и продление карты будет не 1 раз, а 2 раза продлеваться.
хотя нет. странно чето таймер отсчёт карты перестал робить вообще. даже вернул как до этого было((
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
426
Симпатии
79
Пол
Мужской
#20
если отключаю плагин timer.amxx в plugins.ini, то таймер пропадает совсем. но когда плагин включен, то таймер отсчёта до конца карты стоит на месте, и не идёт отсчёт сколько до конца карты осталось.

Код:
#include <amxmodx>

public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
    set_task(1.0, "RegMsg");
}

public RegMsg()
{
    new msg = get_user_msgid("RoundTime");
    if(get_msg_block(msg) != BLOCK_NOT)
        set_msg_block(msg, BLOCK_NOT);

    register_message(msg, "msgRoundTime");
    register_message(get_user_msgid("HideWeapon"), "msgHideWeapon");
}

public msgRoundTime(msgId, msgDesc, msgEnt)
    set_msg_arg_int(1, ARG_SHORT, get_timeleft());

public msgHideWeapon(msgId, msgDesc, msgEnt)
{
    static flags; flags = get_msg_arg_int(1);
    if(flags & (1 << 4)) set_msg_arg_int(1, ARG_BYTE, flags & ~(1 << 4));