Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.
4 страниц V   1 2 3 »

Возможно ли вообще такое написать?

by Fan
сообщение 23.5.2013, 13:17
Сообщение #1
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

В общем, наверное все знают о проблеме онлайна ночью и утром, а именно, что когда стоит даст-все в шоколаде, а когда выйдет какой нибудь кабул-то сразу пустой сервер. Есть плагин ночного режима, но там есть маааленькая проблема-админ может поменять карту, и тогда все, все сбилось.
В общем требуется плагин ночного режима, но с доработками, а именно:
а)админ в период этого режима не может ставить голосование за карту, менять карту
б)ртв отключается
в)когда на сервере больше 15 человек-ставиться dust2, когда меньше 6-dust2_2x2

Возможно ли вообще такое написать? Если кто то может такое написать, милости прошу в лс, пообщаемся.

Update^
Исходник Map on Time 1.4
Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <core>
#include <engine>
#include <fakemeta>
#include <orpheu>
#include <nvault>

#define PLUGIN    "Map On Time"
#define AUTHOR    "Trofian"
#define VERSION    "1.4"

#define IsPlayer(%1) (1 <= (%1) <= 32)
#pragma tabsize 0

// global  constants
#define PATH_CFG "mot.ini"

// global  variables
new g_massParams[32][32]
new g_countParams
new g_standartTimeleft

new g_startTime_h[32]
new g_stopTime_h[32]
new g_startTime_m[32]
new g_stopTime_m[32]
new g_map[32][32]

new g_nowMap[32]
new g_nowStartTime_h
new g_nowStopTime_h
new g_nowStartTime_m
new g_nowStopTime_m

new g_nextMap[32]
new g_nextStartTime_h
new g_nextStopTime_h
new g_nextStartTime_m
new g_nextStopTime_m

new bool:g_b_motModeOn = false
new bool:g_b_hookTimeleft = false
new bool:g_b_showhud = false

new OrpheuFunction:o_IndexOfEdict

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("mp_timelimit","20")
    register_cvar("mot_show_hud","1")
    register_cvar("mot_light","0")
    register_dictionary("mot.txt")
    register_dictionary("timeleft.txt")
    OrpheuRegisterHook(OrpheuGetFunction("UTIL_ClientPrint"), "On_ClientPrint_Pre", OrpheuHookPre)
    o_IndexOfEdict = OrpheuGetFunction("IndexOfEdict")
    register_concmd("amx_mot","moton", ADMIN_SLAY,"<on/off>")
    g_standartTimeleft = get_cvar_num("mp_timelimit")
    read_cfg_and_calls()
}

public read_cfg_and_calls()
{
    // func var's
    new f_configsDir[64]
    new f_numSymb
    new f_line = 0
    new f_textline[32]
    new f_period = 0
    //-------------------
    
    get_configsdir(f_configsDir, 63)
    format(f_configsDir, 63, "%s/%s", f_configsDir, PATH_CFG)
    
        if (!file_exists(f_configsDir))
        {
            server_print("[%s] File ^"%s^" doesn't exist.", PLUGIN, f_configsDir)
            return PLUGIN_HANDLED
        }
        
        while (f_line = read_file (f_configsDir, f_line, f_textline, 255, f_numSymb))
        {
            g_massParams[f_period] = f_textline
            analysisOfParameters(f_period)
            f_period = f_period + 1
        }
        g_countParams = f_period-1
        pre_chek()
        return PLUGIN_CONTINUE
}

public analysisOfParameters(num)
{    
    // func var's
    new f_all[32]
    new f_temp[6]
    //-------------------

    f_all = g_massParams[num]
    
    // start time h & convert
    format(f_temp,5,"%s%s",f_all[0], f_all[1])
    g_startTime_h[num] = str_to_num(f_temp)
    
    // stop time h & convert
    format(f_temp,5,"%s%s",f_all[6], f_all[7])
    g_stopTime_h[num] = str_to_num(f_temp)
    
    // start time m & convert
    format(f_temp,5,"%s%s",f_all[3], f_all[4])
    g_startTime_m[num] = str_to_num(f_temp)
    
    // stop time m & convert
    format(f_temp, 5,"%s%s",f_all[9], f_all[10])
    g_stopTime_m[num] = str_to_num(f_temp)
    
    // map name
    for (new i = 0; i<20; i++)
    {
        g_map[num][i] = f_all[i+12]
    }
    
    return PLUGIN_CONTINUE
}

public pre_chek()
{        
    if (g_countParams+1 == 0)
    {
        server_print("[%s] Error: Config file is empty!", PLUGIN)
        return PLUGIN_HANDLED
    }

    if(g_countParams+1 < 0)
    {
        server_print("[%s] Error: Unknown error! (debug: g_countParams = %d)", PLUGIN, g_countParams)
        return PLUGIN_HANDLED
    }
    
    if(g_countParams+1 >= 1)
    {
        set_task (5.0, "chek_and_show")
    }
    return PLUGIN_CONTINUE
}

public chek_and_show()
{
    // func var's
    new f_timeHours
    new f_timeMinutes
    new f_map[32]
    new f_nowStartTime[32]
    new f_nowStopTime[32]
    new f_nextStartTime[32]
    new f_nextStopTime[32]
    //-------------------
    
    set_task (25.0, "chek_and_show")
    time (f_timeHours, f_timeMinutes)
    get_mapname(f_map, 31)
    
    for (new i = 0; i<=g_countParams; i++)
    {    
        if(f_timeHours == g_startTime_h[i] && f_timeMinutes == g_startTime_m[i])
        {    
            if(g_b_motModeOn == true || equali(f_map, g_map[i]))
            {    
                g_b_motModeOn = true
                g_nowMap = g_map[i]
                g_nowStartTime_h = g_startTime_h[i]
                g_nowStopTime_h = g_stopTime_h[i]
                g_nowStartTime_m = g_startTime_m[i]
                g_nowStopTime_m = g_stopTime_m[i]
                
                g_nextMap = g_map[i+1]
                g_nextStartTime_h = g_startTime_h[i+1]
                g_nextStopTime_h = g_stopTime_h[i+1]
                g_nextStartTime_m = g_startTime_m[i+1]
                g_nextStopTime_m = g_stopTime_m[i+1]
                
                g_b_hookTimeleft = true
                g_b_showhud = true
                server_cmd("mp_timelimit 0")
                    switch (get_cvar_num("mot_light"))
                    {
                        case 0:
                            {
                                // nothing
                            }
        
                        case 1:
                            {
                                engfunc(EngFunc_LightStyle, 0, 107)
                            }
        
                        case 2:
                            {
                                engfunc(EngFunc_LightStyle, 0, 105)
                            }
        
                        case 3:
                            {
                                engfunc(EngFunc_LightStyle, 0, 103)
                            }
                    }
            }else{    
                server_cmd("changelevel %s", g_map[i])
            }
        }
        else if(f_timeHours == g_stopTime_h[i] && f_timeMinutes == g_stopTime_m[i])
        {
            if(g_b_motModeOn == true)
            {
                server_cmd("mp_timelimit %d", g_standartTimeleft)
                g_b_motModeOn = false
            }
            g_b_motModeOn = false
            g_b_showhud = false
            g_b_hookTimeleft = false
        }
        
        if(g_b_showhud == true && get_cvar_num("mot_show_hud") == 1)
        {
                format(f_nowStartTime, 31, "%d", g_nowStartTime_m)
                format(f_nowStopTime, 31, "%d", g_nowStopTime_m)
                format(f_nextStartTime, 31, "%d", g_nextStartTime_m)
                format(f_nextStopTime, 31, "%d", g_nextStopTime_m)
                
                if(g_nowStartTime_m >=0 && g_nowStartTime_m <= 9)
                    format(f_nowStartTime, 31, "0%d", g_nowStartTime_m)
                if(g_nowStopTime_m >=0 && g_nowStopTime_m <= 9)
                    format(f_nowStopTime, 31, "0%d", g_nowStopTime_m)
                if(g_nextStartTime_m >=0 && g_nextStartTime_m <= 9)
                    format(f_nextStartTime, 31, "0%d", g_nextStartTime_m)
                if(g_nextStopTime_m >=0 && g_nextStopTime_m <= 9)
                    format(f_nextStopTime, 31, "0%d", g_nextStopTime_m)
                
            if(g_nowStopTime_h == g_nextStartTime_h && g_nowStopTime_m == g_nextStartTime_m)
                {
                    set_hudmessage(0, 255, 0, 0.16, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_ON", g_nowMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h,  f_nowStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)    
                    set_hudmessage(0, 255, 0, 0.50, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_NEXT_MAP", g_nextMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nextStartTime_h, f_nextStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nextStopTime_h, f_nextStopTime)
                    }else{
                    set_hudmessage(0, 255, 0, 0.16, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_ON", g_nowMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h,  f_nowStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)        
                }
        }
    }
}

// hook timeleft
// http://amx-x.ru/viewtopic.php?f=9&t=1439
public OrpheuHookReturn:On_ClientPrint_Pre(p_Edict, i_Type, s_Message[190])
{
    if (g_b_hookTimeleft == true)
    {
        // func var's
        new f_text[32]
        new f_nowStartTime[32]
        new f_nowStopTime[32]
        //-------------------
        
        format(f_nowStartTime, 31, "%d", g_nowStartTime_m)
        format(f_nowStopTime, 31, "%d", g_nowStopTime_m)
        if(g_nowStartTime_m >=0 && g_nowStartTime_m <= 9)
            format(f_nowStartTime, 31, "0%d", g_nowStartTime_m)
        if(g_nowStopTime_m >=0 && g_nowStopTime_m <= 9)
            format(f_nowStopTime, 31, "0%d", g_nowStopTime_m)
        
        format (f_text, 31, "%L", LANG_PLAYER, "NO_T_LIMIT")
        
        trim(s_Message)
        
        if (equal(s_Message, f_text) && i_Type == print_chat)
        {
            static id
            
            id = OrpheuCall(o_IndexOfEdict, p_Edict)
            
            if (IsPlayer(id))
            {
                client_print(id, i_Type, "%L %s %L %d:%s %L %d:%s", LANG_PLAYER, "CHAT_PRINT", g_nowMap, LANG_PLAYER, "HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h, f_nowStartTime, LANG_PLAYER, "HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)
                return OrpheuSupercede
            }
            
        }
        return OrpheuIgnored
    }
    return OrpheuIgnored
}

public moton(id, level, cid)
{
    if (!cmd_access(id, level, cid, 3))
        return PLUGIN_HANDLED
  
    // func var's
    new f_a_motoffon[16]
    //-------------------
  
    read_argv(1, f_a_motoffon, 15)
  
    if(equali(f_a_motoffon, "off"))
    {
        server_cmd("mp_timelimit %d", g_standartTimeleft)
        g_b_motModeOn = false
        g_b_showhud = false
        g_b_hookTimeleft = false
        engfunc(EngFunc_LightStyle, 0, 109)
        client_print(id, print_console, "[%s] Night Mode stoped^n[%s] In 25 seconds hud will off", PLUGIN, PLUGIN)
    }else{
        client_print(id, print_console, "[%s] What... What do you want?^n[%s] You can stop Night mode: ^"amx_mot off^"", PLUGIN, PLUGIN)
    }
    return PLUGIN_CONTINUE
}


Отредактировал: by Fan, - 23.5.2013, 13:46
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя Flyfisherman
сообщение 23.5.2013, 13:19
Сообщение #2
Стаж: 13 лет

Сообщений: 415
Благодарностей: 363
Полезность: 549

Меценат Меценат

Мне бы тоже была бы интересна такая штуковина.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 4ertik
сообщение 23.5.2013, 13:25
Сообщение #3
Стаж: 15 лет

Сообщений: 120
Благодарностей: 49
Полезность: 56

тоже интересно , если что + буду
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 23.5.2013, 13:27
Сообщение #4
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Плагин с 0 писать, или корректировать уже готовый?
Если просто добавить то, что вы написали в готовый, то выложите исх.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 23.5.2013, 13:31
Сообщение #5
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Было бы лучше если он был написал с 0) А так я + ставлю
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 23.5.2013, 13:35
Сообщение #6
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Я бы сделал, если бы мне дали исходник уже готового плагина.
Как-то лень мне писать все сначала, да и знаний может не хватить.

Отредактировал: Nickk, - 23.5.2013, 13:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя n1ke:D
сообщение 23.5.2013, 13:43
Сообщение #7


Стаж: 13 лет

Сообщений: 376
Благодарностей: 180
Полезность: 691

Меценат Меценат

Допиши определенные нужные функции,и будет тебе данный плагин.
https://c-s.net.ua/forum/topic38023.html?hl=night+map
По крайней мере,при смене карты ночью,она через 10 секунд ставиться назад.
Так же rtv не работает вроде,timeleft тоже.

Отредактировал: HardStyle11, - 23.5.2013, 13:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
by Fan
сообщение 23.5.2013, 13:48
Сообщение #8
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

Вставил исходник в первый пост.
Но думаю не пригодится он, слишком баганое оно, надо с нуля писать.
Ах да, насчет написания, не за спасибо оно будет, все будет оплачено, естественно с соглашением о том, что все права на исходник принадлежат мне.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 23.5.2013, 13:48
Сообщение #9


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Есть более интересная "фишка" http://forum.forteam.ru/index.php?showtopic=14500
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sergggzi
сообщение 23.5.2013, 13:50
Сообщение #10
Иконка группы

Стаж: 13 лет

Сообщений: 6536
Благодарностей: 6222
Полезность: 807

такой есть, брал с этого же форума, но откуда сложно уже вспомнить

Скрытый текст

Код
#include <amxmodx>
#include <amxmisc>
#include <core>
#include <engine>
#include <fakemeta>
#include <nvault>

#define PLUGIN    "Map On Time"
#define AUTHOR    "Trofian fix"
#define VERSION    "1.5"

#define IsPlayer(%1) (1 <= (%1) <= 32)
#pragma tabsize 0

// global  constants
#define PATH_CFG "mot.ini"

new pcvar_night_start_hour
new pcvar_night_end_hour
new hour, minute, second

// global  variables
new g_massParams[32][32]
new g_countParams
new g_standartTimeleft

new g_startTime_h[32]
new g_stopTime_h[32]
new g_startTime_m[32]
new g_stopTime_m[32]
new g_map[32][32]

new g_nowMap[32]
new g_nowStartTime_h
new g_nowStopTime_h
new g_nowStartTime_m
new g_nowStopTime_m

new g_nextMap[32]
new g_nextStartTime_h
new g_nextStopTime_h
new g_nextStartTime_m
new g_nextStopTime_m

new bool:g_b_motModeOn = false
new bool:g_b_hookTimeleft = false
new bool:g_b_showhud = false

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("mp_timelimit","20")
    register_cvar("mot_show_hud","1")
    register_cvar("mot_light","0")

    pcvar_night_start_hour = register_cvar("night_start_hour", "3");
    pcvar_night_end_hour = register_cvar("night_end_hour", "8");

    register_clcmd("say rtv","Block")
    register_clcmd("say_team rtv","Block")
    register_clcmd("say /rtv","Block")
    register_clcmd("say_team /rtv","Block")

    register_dictionary("mot.txt")
    register_dictionary("timeleft.txt")
    register_concmd("amx_mot","moton", ADMIN_SLAY,"<on/off>")
    register_clcmd("say timeleft", "show_timeleft")
    register_clcmd("say_team timeleft", "show_timeleft")
    g_standartTimeleft = get_cvar_num("mp_timelimit")
    read_cfg_and_calls()
}

public read_cfg_and_calls()
{
    // func var's
    new f_configsDir[64]
    new f_numSymb
    new f_line = 0
    new f_textline[32]
    new f_period = 0
    //-------------------
    
    get_configsdir(f_configsDir, 63)
    format(f_configsDir, 63, "%s/%s", f_configsDir, PATH_CFG)
    
        if (!file_exists(f_configsDir))
        {
            server_print("[%s] File ^"%s^" doesn't exist.", PLUGIN, f_configsDir)
            return PLUGIN_HANDLED
        }
        
        while (f_line = read_file (f_configsDir, f_line, f_textline, 255, f_numSymb))
        {
            g_massParams[f_period] = f_textline
            analysisOfParameters(f_period)
            f_period = f_period + 1
        }
        g_countParams = f_period-1
        pre_chek()
        return PLUGIN_CONTINUE
}

public analysisOfParameters(num)
{    
    // func var's
    new f_all[32]
    new f_temp[6]
    //-------------------

    f_all = g_massParams[num]
    
    // start time h & convert
    format(f_temp,5,"%s%s",f_all[0], f_all[1])
    g_startTime_h[num] = str_to_num(f_temp)
    
    // stop time h & convert
    format(f_temp,5,"%s%s",f_all[6], f_all[7])
    g_stopTime_h[num] = str_to_num(f_temp)
    
    // start time m & convert
    format(f_temp,5,"%s%s",f_all[3], f_all[4])
    g_startTime_m[num] = str_to_num(f_temp)
    
    // stop time m & convert
    format(f_temp, 5,"%s%s",f_all[9], f_all[10])
    g_stopTime_m[num] = str_to_num(f_temp)
    
    // map name
    for (new i = 0; i<20; i++)
    {
        g_map[num][i] = f_all[i+12]
    }
    
    return PLUGIN_CONTINUE
}

public pre_chek()
{        
    if (g_countParams+1 == 0)
    {
        server_print("[%s] Error: Config file is empty!", PLUGIN)
        return PLUGIN_HANDLED
    }

    if(g_countParams+1 < 0)
    {
        server_print("[%s] Error: Unknown error! (debug: g_countParams = %d)", PLUGIN, g_countParams)
        return PLUGIN_HANDLED
    }
    
    if(g_countParams+1 >= 1)
    {
        set_task (5.0, "chek_and_show")
    }
    return PLUGIN_CONTINUE
}

public chek_and_show()
{
    // func var's
    new f_timeHours
    new f_timeMinutes
    new f_map[32]
    new f_nowStartTime[32]
    new f_nowStopTime[32]
    new f_nextStartTime[32]
    new f_nextStopTime[32]
    //-------------------
    
    set_task (25.0, "chek_and_show")
    time (f_timeHours, f_timeMinutes)
    get_mapname(f_map, 31)
    
    for (new i = 0; i<=g_countParams; i++)
    {    
        if(f_timeHours == g_startTime_h[i] && f_timeMinutes == g_startTime_m[i])
        {    
            if(g_b_motModeOn == true || equali(f_map, g_map[i]))
            {    
                g_b_motModeOn = true
                g_nowMap = g_map[i]
                g_nowStartTime_h = g_startTime_h[i]
                g_nowStopTime_h = g_stopTime_h[i]
                g_nowStartTime_m = g_startTime_m[i]
                g_nowStopTime_m = g_stopTime_m[i]
                
                g_nextMap = g_map[i+1]
                g_nextStartTime_h = g_startTime_h[i+1]
                g_nextStopTime_h = g_stopTime_h[i+1]
                g_nextStartTime_m = g_startTime_m[i+1]
                g_nextStopTime_m = g_stopTime_m[i+1]
                
                g_b_hookTimeleft = true
                g_b_showhud = true
                server_cmd("mp_timelimit 0")
                    switch (get_cvar_num("mot_light"))
                    {
                        case 0:
                            {
                                // nothing
                            }
        
                        case 1:
                            {
                                engfunc(EngFunc_LightStyle, 0, 107)
                            }
        
                        case 2:
                            {
                                engfunc(EngFunc_LightStyle, 0, 105)
                            }
        
                        case 3:
                            {
                                engfunc(EngFunc_LightStyle, 0, 103)
                            }
                    }
            }else{    
                server_cmd("changelevel %s", g_map[i])
            }
        }
        else if(f_timeHours == g_stopTime_h[i] && f_timeMinutes == g_stopTime_m[i])
        {
            if(g_b_motModeOn == true)
            {
                server_cmd("mp_timelimit %d", g_standartTimeleft)
                g_b_motModeOn = false
            }
            g_b_motModeOn = false
            g_b_showhud = false
            g_b_hookTimeleft = false
        }
        
        if(g_b_showhud == true && get_cvar_num("mot_show_hud") == 1)
        {
                format(f_nowStartTime, 31, "%d", g_nowStartTime_m)
                format(f_nowStopTime, 31, "%d", g_nowStopTime_m)
                format(f_nextStartTime, 31, "%d", g_nextStartTime_m)
                format(f_nextStopTime, 31, "%d", g_nextStopTime_m)
                
                if(g_nowStartTime_m >=0 && g_nowStartTime_m <= 9)
                    format(f_nowStartTime, 31, "0%d", g_nowStartTime_m)
                if(g_nowStopTime_m >=0 && g_nowStopTime_m <= 9)
                    format(f_nowStopTime, 31, "0%d", g_nowStopTime_m)
                if(g_nextStartTime_m >=0 && g_nextStartTime_m <= 9)
                    format(f_nextStartTime, 31, "0%d", g_nextStartTime_m)
                if(g_nextStopTime_m >=0 && g_nextStopTime_m <= 9)
                    format(f_nextStopTime, 31, "0%d", g_nextStopTime_m)
                
            if(g_nowStopTime_h == g_nextStartTime_h && g_nowStopTime_m == g_nextStartTime_m)
                {
                    set_hudmessage(0, 255, 0, 0.16, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_ON", g_nowMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h,  f_nowStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)    
                    set_hudmessage(0, 255, 0, 0.50, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_NEXT_MAP", g_nextMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nextStartTime_h, f_nextStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nextStopTime_h, f_nextStopTime)
                    }else{
                    set_hudmessage(0, 255, 0, 0.16, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_ON", g_nowMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h,  f_nowStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)        
                }
        }
    }
}

public show_timeleft(id)
{
    if (g_b_hookTimeleft == true)
    {
        // func var's
        new f_text[32]
        new f_nowStartTime[32]
        new f_nowStopTime[32]
        //-------------------
        
        format(f_nowStartTime, 31, "%d", g_nowStartTime_m)
        format(f_nowStopTime, 31, "%d", g_nowStopTime_m)
        if(g_nowStartTime_m >=0 && g_nowStartTime_m <= 9)
            format(f_nowStartTime, 31, "0%d", g_nowStartTime_m)
        if(g_nowStopTime_m >=0 && g_nowStopTime_m <= 9)
            format(f_nowStopTime, 31, "0%d", g_nowStopTime_m)
        
        format (f_text, 31, "%L", LANG_PLAYER, "NO_T_LIMIT")
        
        client_print(id, print_chat, "%L %s %L %d:%s %L %d:%s", LANG_PLAYER, "CHAT_PRINT", g_nowMap, LANG_PLAYER, "HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h, f_nowStartTime, LANG_PLAYER, "HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}

public moton(id, level, cid)
{
    if (!cmd_access(id, level, cid, 3))
        return PLUGIN_HANDLED
  
    // func var's
    new f_a_motoffon[16]
    //-------------------
  
    read_argv(1, f_a_motoffon, 15)
  
    if(equali(f_a_motoffon, "off"))
    {
        server_cmd("mp_timelimit %d", g_standartTimeleft)
        g_b_motModeOn = false
        g_b_showhud = false
        g_b_hookTimeleft = false
        engfunc(EngFunc_LightStyle, 0, 109)
        client_print(id, print_console, "[%s] Night Mode stoped^n[%s] In 25 seconds hud will off", PLUGIN, PLUGIN)
    }else{
        client_print(id, print_console, "[%s] What... What do you want?^n[%s] You can stop Night mode: ^"amx_mot off^"", PLUGIN, PLUGIN)
    }
    return PLUGIN_CONTINUE
}

public Block(id)
{    
    if(g_b_motModeOn)
    {
    client_print(0, print_chat, "* RTV не работает в ^"Ночном режиме^"!");
        return PLUGIN_HANDLED
    }    
    return PLUGIN_CONTINUE;
}



одно время использовал. Блокирует админов и rtv
не силен в плагинах, но предполагаю, что именно здесь выставляется время, когда админы не могут сменить карту

Код
    pcvar_night_start_hour = register_cvar("night_start_hour", "3");
    pcvar_night_end_hour = register_cvar("night_end_hour", "8");


Отредактировал: sergggzi, - 23.5.2013, 14:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
by Fan
сообщение 23.5.2013, 13:51
Сообщение #11
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

Цитата(Rejiser @ 23.5.2013, 15:48) *
Есть более интересная "фишка" http://forum.forteam.ru/index.php?showtopic=14500

Мне нужно готовое решение, все в одном, а не по отдельности.
Самая большая проблема-это то, что админ может сменить карту.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Leksandr
сообщение 23.5.2013, 13:54
Сообщение #12
Стаж: 13 лет
Город: Украина, Сумы (Ахтырка)

Сообщений: 1000
Благодарностей: 458
Полезность: 821

Цитата(by Fan @ 23.5.2013, 15:51) *
Самая большая проблема-это то, что админ может сменить карту.


Есть плагин типа список ночных админов, в этом списке не давай им флаг на смену карты и все.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
by Fan
сообщение 23.5.2013, 13:56
Сообщение #13
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

Цитата(sergggzi @ 23.5.2013, 15:50) *
такой есть, брал с этого же форума, но откуда сложно уже вспомнить

Скрытый текст

Код
#include <amxmodx>
#include <amxmisc>
#include <core>
#include <engine>
#include <fakemeta>
#include <nvault>

#define PLUGIN    "Map On Time"
#define AUTHOR    "Trofian fix"
#define VERSION    "1.5"

#define IsPlayer(%1) (1 <= (%1) <= 32)
#pragma tabsize 0

// global  constants
#define PATH_CFG "mot.ini"

new pcvar_night_start_hour
new pcvar_night_end_hour
new hour, minute, second

// global  variables
new g_massParams[32][32]
new g_countParams
new g_standartTimeleft

new g_startTime_h[32]
new g_stopTime_h[32]
new g_startTime_m[32]
new g_stopTime_m[32]
new g_map[32][32]

new g_nowMap[32]
new g_nowStartTime_h
new g_nowStopTime_h
new g_nowStartTime_m
new g_nowStopTime_m

new g_nextMap[32]
new g_nextStartTime_h
new g_nextStopTime_h
new g_nextStartTime_m
new g_nextStopTime_m

new bool:g_b_motModeOn = false
new bool:g_b_hookTimeleft = false
new bool:g_b_showhud = false

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("mp_timelimit","20")
    register_cvar("mot_show_hud","1")
    register_cvar("mot_light","0")

    pcvar_night_start_hour = register_cvar("night_start_hour", "3");
    pcvar_night_end_hour = register_cvar("night_end_hour", "8");

    register_clcmd("say rtv","Block")
    register_clcmd("say_team rtv","Block")
    register_clcmd("say /rtv","Block")
    register_clcmd("say_team /rtv","Block")

    register_dictionary("mot.txt")
    register_dictionary("timeleft.txt")
    register_concmd("amx_mot","moton", ADMIN_SLAY,"<on/off>")
    register_clcmd("say timeleft", "show_timeleft")
    register_clcmd("say_team timeleft", "show_timeleft")
    g_standartTimeleft = get_cvar_num("mp_timelimit")
    read_cfg_and_calls()
}

public read_cfg_and_calls()
{
    // func var's
    new f_configsDir[64]
    new f_numSymb
    new f_line = 0
    new f_textline[32]
    new f_period = 0
    //-------------------
    
    get_configsdir(f_configsDir, 63)
    format(f_configsDir, 63, "%s/%s", f_configsDir, PATH_CFG)
    
        if (!file_exists(f_configsDir))
        {
            server_print("[%s] File ^"%s^" doesn't exist.", PLUGIN, f_configsDir)
            return PLUGIN_HANDLED
        }
        
        while (f_line = read_file (f_configsDir, f_line, f_textline, 255, f_numSymb))
        {
            g_massParams[f_period] = f_textline
            analysisOfParameters(f_period)
            f_period = f_period + 1
        }
        g_countParams = f_period-1
        pre_chek()
        return PLUGIN_CONTINUE
}

public analysisOfParameters(num)
{    
    // func var's
    new f_all[32]
    new f_temp[6]
    //-------------------

    f_all = g_massParams[num]
    
    // start time h & convert
    format(f_temp,5,"%s%s",f_all[0], f_all[1])
    g_startTime_h[num] = str_to_num(f_temp)
    
    // stop time h & convert
    format(f_temp,5,"%s%s",f_all[6], f_all[7])
    g_stopTime_h[num] = str_to_num(f_temp)
    
    // start time m & convert
    format(f_temp,5,"%s%s",f_all[3], f_all[4])
    g_startTime_m[num] = str_to_num(f_temp)
    
    // stop time m & convert
    format(f_temp, 5,"%s%s",f_all[9], f_all[10])
    g_stopTime_m[num] = str_to_num(f_temp)
    
    // map name
    for (new i = 0; i<20; i++)
    {
        g_map[num][i] = f_all[i+12]
    }
    
    return PLUGIN_CONTINUE
}

public pre_chek()
{        
    if (g_countParams+1 == 0)
    {
        server_print("[%s] Error: Config file is empty!", PLUGIN)
        return PLUGIN_HANDLED
    }

    if(g_countParams+1 < 0)
    {
        server_print("[%s] Error: Unknown error! (debug: g_countParams = %d)", PLUGIN, g_countParams)
        return PLUGIN_HANDLED
    }
    
    if(g_countParams+1 >= 1)
    {
        set_task (5.0, "chek_and_show")
    }
    return PLUGIN_CONTINUE
}

public chek_and_show()
{
    // func var's
    new f_timeHours
    new f_timeMinutes
    new f_map[32]
    new f_nowStartTime[32]
    new f_nowStopTime[32]
    new f_nextStartTime[32]
    new f_nextStopTime[32]
    //-------------------
    
    set_task (25.0, "chek_and_show")
    time (f_timeHours, f_timeMinutes)
    get_mapname(f_map, 31)
    
    for (new i = 0; i<=g_countParams; i++)
    {    
        if(f_timeHours == g_startTime_h[i] && f_timeMinutes == g_startTime_m[i])
        {    
            if(g_b_motModeOn == true || equali(f_map, g_map[i]))
            {    
                g_b_motModeOn = true
                g_nowMap = g_map[i]
                g_nowStartTime_h = g_startTime_h[i]
                g_nowStopTime_h = g_stopTime_h[i]
                g_nowStartTime_m = g_startTime_m[i]
                g_nowStopTime_m = g_stopTime_m[i]
                
                g_nextMap = g_map[i+1]
                g_nextStartTime_h = g_startTime_h[i+1]
                g_nextStopTime_h = g_stopTime_h[i+1]
                g_nextStartTime_m = g_startTime_m[i+1]
                g_nextStopTime_m = g_stopTime_m[i+1]
                
                g_b_hookTimeleft = true
                g_b_showhud = true
                server_cmd("mp_timelimit 0")
                    switch (get_cvar_num("mot_light"))
                    {
                        case 0:
                            {
                                // nothing
                            }
        
                        case 1:
                            {
                                engfunc(EngFunc_LightStyle, 0, 107)
                            }
        
                        case 2:
                            {
                                engfunc(EngFunc_LightStyle, 0, 105)
                            }
        
                        case 3:
                            {
                                engfunc(EngFunc_LightStyle, 0, 103)
                            }
                    }
            }else{    
                server_cmd("changelevel %s", g_map[i])
            }
        }
        else if(f_timeHours == g_stopTime_h[i] && f_timeMinutes == g_stopTime_m[i])
        {
            if(g_b_motModeOn == true)
            {
                server_cmd("mp_timelimit %d", g_standartTimeleft)
                g_b_motModeOn = false
            }
            g_b_motModeOn = false
            g_b_showhud = false
            g_b_hookTimeleft = false
        }
        
        if(g_b_showhud == true && get_cvar_num("mot_show_hud") == 1)
        {
                format(f_nowStartTime, 31, "%d", g_nowStartTime_m)
                format(f_nowStopTime, 31, "%d", g_nowStopTime_m)
                format(f_nextStartTime, 31, "%d", g_nextStartTime_m)
                format(f_nextStopTime, 31, "%d", g_nextStopTime_m)
                
                if(g_nowStartTime_m >=0 && g_nowStartTime_m <= 9)
                    format(f_nowStartTime, 31, "0%d", g_nowStartTime_m)
                if(g_nowStopTime_m >=0 && g_nowStopTime_m <= 9)
                    format(f_nowStopTime, 31, "0%d", g_nowStopTime_m)
                if(g_nextStartTime_m >=0 && g_nextStartTime_m <= 9)
                    format(f_nextStartTime, 31, "0%d", g_nextStartTime_m)
                if(g_nextStopTime_m >=0 && g_nextStopTime_m <= 9)
                    format(f_nextStopTime, 31, "0%d", g_nextStopTime_m)
                
            if(g_nowStopTime_h == g_nextStartTime_h && g_nowStopTime_m == g_nextStartTime_m)
                {
                    set_hudmessage(0, 255, 0, 0.16, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_ON", g_nowMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h,  f_nowStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)    
                    set_hudmessage(0, 255, 0, 0.50, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_NEXT_MAP", g_nextMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nextStartTime_h, f_nextStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nextStopTime_h, f_nextStopTime)
                    }else{
                    set_hudmessage(0, 255, 0, 0.16, 0.0, 0, 26.0, 26.0, 0.1, 0.1, -1)
                    show_hudmessage (0, "%L %s^n%L %d:%s %L %d:%s^n" ,LANG_PLAYER, "HUD_MESSAGE_ON", g_nowMap , LANG_PLAYER,"HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h,  f_nowStartTime, LANG_PLAYER,"HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)        
                }
        }
    }
}

public show_timeleft(id)
{
    if (g_b_hookTimeleft == true)
    {
        // func var's
        new f_text[32]
        new f_nowStartTime[32]
        new f_nowStopTime[32]
        //-------------------
        
        format(f_nowStartTime, 31, "%d", g_nowStartTime_m)
        format(f_nowStopTime, 31, "%d", g_nowStopTime_m)
        if(g_nowStartTime_m >=0 && g_nowStartTime_m <= 9)
            format(f_nowStartTime, 31, "0%d", g_nowStartTime_m)
        if(g_nowStopTime_m >=0 && g_nowStopTime_m <= 9)
            format(f_nowStopTime, 31, "0%d", g_nowStopTime_m)
        
        format (f_text, 31, "%L", LANG_PLAYER, "NO_T_LIMIT")
        
        client_print(id, print_chat, "%L %s %L %d:%s %L %d:%s", LANG_PLAYER, "CHAT_PRINT", g_nowMap, LANG_PLAYER, "HUD_MESSAGE_ON_BEGIN", g_nowStartTime_h, f_nowStartTime, LANG_PLAYER, "HUD_MESSAGE_ON_END", g_nowStopTime_h, f_nowStopTime)
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}

public moton(id, level, cid)
{
    if (!cmd_access(id, level, cid, 3))
        return PLUGIN_HANDLED
  
    // func var's
    new f_a_motoffon[16]
    //-------------------
  
    read_argv(1, f_a_motoffon, 15)
  
    if(equali(f_a_motoffon, "off"))
    {
        server_cmd("mp_timelimit %d", g_standartTimeleft)
        g_b_motModeOn = false
        g_b_showhud = false
        g_b_hookTimeleft = false
        engfunc(EngFunc_LightStyle, 0, 109)
        client_print(id, print_console, "[%s] Night Mode stoped^n[%s] In 25 seconds hud will off", PLUGIN, PLUGIN)
    }else{
        client_print(id, print_console, "[%s] What... What do you want?^n[%s] You can stop Night mode: ^"amx_mot off^"", PLUGIN, PLUGIN)
    }
    return PLUGIN_CONTINUE
}

public Block(id)
{    
    if(g_b_motModeOn)
    {
    client_print(0, print_chat, "* RTV не работает в ^"Ночном режиме^"!");
        return PLUGIN_HANDLED
    }    
    return PLUGIN_CONTINUE;
}



одно время использовал. Блокирует админов и rtv

Попробую затестить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sergggzi
сообщение 23.5.2013, 14:02
Сообщение #14
Иконка группы

Стаж: 13 лет

Сообщений: 6536
Благодарностей: 6222
Полезность: 807

Цитата(by Fan @ 23.5.2013, 13:56) *
Попробую затестить.

Отпиши потом, как протестишь, чтобы знать работает оно или нет. Но должно работать. )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Alexan23
сообщение 23.5.2013, 14:54
Сообщение #15


Стаж: 15 лет
Город: Рязань

Сообщений: 1404
Благодарностей: 624
Полезность: 803

by Fan,
Вот тут есть все кроме когда на сервере больше 15 человек-ставиться dust2, когда меньше 6-dust2_2x2

Настройка
В файле mot.ini прописывать в таком формате:01:00 09:25 de_dust2
В файле mot_block_words.ini можно прописать команды которые будут блокироваться, если включён ночной режим.
Плагин должен быть прописан в самом верху plugins.ini !

Cvars (прописывать в server.cfg):
mot_show_hud 0/1 - не отображать/отображать hud сообщение (стандартно 1)
mot_light 0/1/2/3 - задаёт уровень освещённости карты во время ночного режима 1 - чуть темнее 2 - ещё темнее 3 - достаточно темно 0 - обычное освещение (стандартно 0)

Команды:
amx_mot off - Принудительно отключение ночного режима, доступна администраторам с флагом e (slay/slap). Для тех кто в танке - вводить в консоли без кавычек



Сам пользуюсь и все устраивает
Прикрепленные файлы:
Прикрепленный файл  map_on_time_1.6.rar ( 4,25 килобайт ) Кол-во скачиваний: 19


Антискука xD [WoRlD] ® 2010-2017
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя nsgenn
сообщение 23.5.2013, 14:59
Сообщение #16


Стаж: 13 лет

Сообщений: 885
Благодарностей: 561
Полезность: 667

могу написать с 0, но только завтра вечером
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя trancer1
сообщение 23.5.2013, 16:11
Сообщение #17


Стаж: 13 лет

Сообщений: 344
Благодарностей: 88
Полезность: 221

Цитата(nsgenn @ 23.5.2013, 16:59) *
могу написать с 0, но только завтра вечером

нужно отвечать так:
Цитата
напишу с 0, но только завтра вечером

smile.gif

ps.gif Вопрос: а будет ли все это дело работать вместе с ufps?

Отредактировал: trancer1, - 23.5.2013, 16:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя perfectblood0
сообщение 23.5.2013, 16:22
Сообщение #18
Стаж: 17 лет

Сообщений: 5065
Благодарностей: 2685
Полезность: 488

Безумно давно ищу такую штуку=)
поддерживаю всех
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sergggzi
сообщение 23.5.2013, 16:24
Сообщение #19
Иконка группы

Стаж: 13 лет

Сообщений: 6536
Благодарностей: 6222
Полезность: 807

Цитата(trancer1 @ 23.5.2013, 16:11) *
нужно отвечать так:

smile.gif

ps.gif Вопрос: а будет ли все это дело работать вместе с ufps?

Не помню, какая команда в ufps для голосования за карту, но я ее переделал под привычную rtv(раньше стояла другая голосовалка и все привыкли к rtv) и под плагин ночного режима.
Либо в плагин ночного режима добавить команду голосования для блокировки, которая используется в ufps. Несколько вариантов.

Отредактировал: sergggzi, - 23.5.2013, 16:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 23.5.2013, 16:27
Сообщение #20


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

nsgenn,
да, давай пили плагин. Мы если че скинемся тебе на печеньки rolleyes.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
4 страниц V   1 2 3 »
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: