Русское сообщество по скриптингу

Auto Restart: авторестарт карты через определённое время

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

Auto Restart: авторестарт карты через определённое время

Сообщение Subb98 » 28 апр 2014, 14:10

[align=justify]Автор: Subb98
Текущая версия: 0.1b
Источник: Вы должны зарегистрироваться, чтобы видеть ссылки.



Описание:
Данный плагин производит рестарт карты через определённое время после начала игры. Содержит две версии: стандартную (auto_restart.sma) и для серверов с бесконечным раундом (auto_restart_ur.sma).

Особенности:
  • Поддержка мультиязычности (перевод на русский и английский языки)
  • Блокировка сообщений 'Game Commencing!' и 'The game will restart in N SECOND' во время работы плагина
  • Остановка работы плагина после выполнения рестарта карты
Модули:
  • Ham Sandwich (только в auto_restart_ur.sma)
[/align]
Настройки:
[pawn]
  1. #define RESTART_TIME 20 // Кол-во времени в секундах, через которое произойдёт рестарт (только целые числа; по умолчанию 20)
[/pawn]
Скриншоты:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Auto Restart: авторестарт карты через определённое время

Сообщение ZombiA:D » 28 апр 2014, 15:23

А это в dhud переделать можно?))
или с ним сервер грузиться больше?

Код: Выделить всё
#include <amxmodx>
#include <hamsandwich>
#include <dhudmessage>
 
#pragma semicolon 1
 
#define RESTART_TIME 20 // Кол-во времени в секундах, через которое произойдёт рестарт (только целые числа; по умолчанию 20)
 
new bool:g_bTimeCount;
 
new g_pHudSyncObj;
 
public plugin_init()
{
        register_plugin("Auto Restart""0.1b""Subb98");
        register_dictionary("auto_restart.txt");
        register_message(get_user_msgid("TextMsg"), "MessageTextMsg");
        RegisterHam(Ham_Spawn"player""HamSpawnPlayerPost"1);
        g_pHudSyncObj CreateHudSyncObj();
}
 
public HamSpawnPlayerPost()
{
        if(!g_bTimeCount && get_playersnum() > 1)
        {
                g_bTimeCount true;
                set_task(1.0"TimeCount"___"a"RESTART_TIME);
        }
}
 
public MessageTextMsg()
{
        new szArg[24];
        get_msg_arg_string(2szArgcharsmax(szArg));
        if(equal(szArg"#Game_will_restart_in"))
        {
                return PLUGIN_HANDLED;
        }
        return PLUGIN_CONTINUE;
}
 
public TimeCount()
{
        static iTimeCounter;
        set_dhudmessage(2550__0.25__1.0__, -1);
        ShowSyncHudMsg(0g_pHudSyncObj"%L"LANG_PLAYER"AR_AUTO_RESTART"RESTART_TIME iTimeCounter++);
        if(iTimeCounter == RESTART_TIME)
        {
                set_task(3.0"ShowGameStartedMsg");
                server_cmd("sv_restart 1");
        }
}
 
public ShowGameStartedMsg()
{
        set_dhudmessage(0255__0.25__5.0__, -1);
        ShowSyncHudMsg(0g_pHudSyncObj"%L"LANG_PLAYER"AR_GAME_STARTED");
        pause("d");
Аватара пользователя
ZombiA:D
 
Сообщения: 70
Зарегистрирован: 16 апр 2013, 21:58
Благодарил (а): 39 раз.
Поблагодарили: 2 раз.
Языки программирования: Counter-Strike 1.6

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Subb98 » 28 апр 2014, 15:43

[align=justify]ZombiA:D, DHUD'ом таймер делать нежелательно, это будет не очень красиво выглядеть т.к. следующее сообщение либо будет накладываться на предыдущее, либо будет "моргать" (если мы будем отсылать пустые сообщения для очистки каналов DHUD'а).[/align]
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Auto Restart: авторестарт карты через определённое время

Сообщение ZombiA:D » 28 апр 2014, 15:52

subb98 писал(а):[align=justify]ZombiA:D, DHUD'ом таймер делать нежелательно, это будет не очень красиво выглядеть т.к. следующее сообщение либо будет накладываться на предыдущее, либо будет "моргать" (если мы будем отсылать пустые сообщения для очистки каналов DHUD'а).[/align]

вон оно как значит... понятно)
Аватара пользователя
ZombiA:D
 
Сообщения: 70
Зарегистрирован: 16 апр 2013, 21:58
Благодарил (а): 39 раз.
Поблагодарили: 2 раз.
Языки программирования: Counter-Strike 1.6

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Safety1st » 28 апр 2014, 16:45

Правильнее будет:
[pawn]
  1. server_cmd("sv_restart 1")
[/pawn]-->
[pawn]
  1. set_cvar_num("sv_restart", 1)
[/pawn]
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Touch Dev1l » 28 апр 2014, 16:56

Developer, а разница?
Аватара пользователя
Touch Dev1l
 
Сообщения: 1304
Зарегистрирован: 14 апр 2013, 13:50
Забанен
Благодарил (а): 126 раз.
Поблагодарили: 254 раз.

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Subb98 » 28 апр 2014, 17:01

Спасибо, исправил. Разница лишь в том, что мы меняем значение квара напрямую, не отправляя при этом команду серверу (если я правильно всё понимаю, исходники функции не смотрел).

П.с.: печально, что DJ_WEST решил ввести ограничение на редактирование сообщений, весьма неудобно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Safety1st » 28 апр 2014, 17:14

Touch Dev1l писал(а):Developer, а разница?

Есть команды, есть квары. Для первых используется натива server_cmd, для вторых - [g/s]et_cvar_*. Установить новое значение cvar'а командой, конечно, можно, но этот путь чуть 'длиннее' и предназначен для человека. У плагинов же есть возможность установить напрямую.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Schibeki » 28 апр 2014, 23:35

Sub98,а можешь в стандартном рестарте заблокировать сообщение игры и сделать: Рестарт через n секунд?
Какая разница,что говорят у тебя за спиной,когда в лицо сказать не могут...
Аватара пользователя
Schibeki
 
Сообщения: 127
Зарегистрирован: 12 мар 2014, 10:43
Откуда: Беларусь, Витебск
Благодарил (а): 13 раз.
Поблагодарили: 12 раз.
Опыт программирования: Около года
Языки программирования: PAWN, C#, Java

Re: Auto Restart: авторестарт карты через определённое время

Сообщение Subb98 » 28 апр 2014, 23:39

[align=justify]Schibeki, что вы подразумеваете под "стандартным" рестартом? Функцию, вызываемую кварами sv_restart/sv_restartroud? И вы мне предлагаете заменить стандартные сообщения движка кастромными? Да, это возможно, но смысла особого я в этом не вижу.[/align]
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

След.

Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6