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

UpdateService_Lite

Плагины для AMX Mod X, которые не удовлетворяют правилам оформления.

Модератор: Leonidddd

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

UpdateService_Lite

Сообщение WellasGooD » 07 мар 2020, 16:30

conversion.png

Автор: wellasgood
Версия: 1.0.2
Краткое описание: Обновление услуг на сервере без ручного вмешательства.
История обновлений: Вы должны зарегистрироваться, чтобы видеть ссылки.

Внимание! Если у Вас на сервере есть плагины на выдачу временных услуг игрокам (допустим на карту или другое время), и сброс идет по команде 'amx_reloadadmins', то будет деактивация такой услуги!

Обновление добавляемых услуг на сервере, через заданный интервал времени (дабы не ждать окончания карты или не делать перезапуск самостоятельно).

С установкой данного творения на сервер, Вы позабудете о нервотрепках, например, со стороны тех кто купил услугу онлайн, так как, в большинстве случаев приходится ждать смены карты, или в ручную вводить команду по обновлению.
Amx Mod X 1.8.2, Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev
melfyk
  1. Скомпилируйте плагин.
  2. Скопируйте скомпилированный файл .amxx в директорию: amxmodx/plugins/
  3. Пропишите .amxx в файле amxmodx/configs/plugins.ini
  4. Смените карту или перезапустите сервер.
В .sma:

Код: Выделить всё

//Режимы работы плагина. Откомментируйте то, что хотите использовать. (возможно комбинировать режимы)
#define GLOBAL_TASK_SYSTEM //[Режим] Запуск задачи по обновлению услуг через временной интервал до конца карты.

//#define ROUND_START_SYSTEM //[Режим] Запуск задачи по обновлению услуг в новом раунде.
//#define ROUND_START_TIME_USE //Использовать ли время до запуска обновления услуг в режиме ROUND_START_SYSTEM.

//#define ROUND_END_SYSTEM //[Режим] Запуск задачи по обновлению услуг в конце раунда.

const Float:GLOBAL_TASK_TIME = 120.0; //Интервал времени выполнения задачи для режима GLOBAL_TASK_SYSTEM (в секундах, формат через точку 0.0)
const Float:ROUND_START_TIME = 5.0; //Время до выполнения задачи для режима ROUND_START_SYSTEM (в секундах, формат через точку 0.0)


Внимание! Не ставьте слишком маленькое время для режима GLOBAL_TASK_SYSTEM (оптимальное предлагаемое время от знатоков: 180 сек)

Код: Выделить всё

#include <amxmodx>

//Режимы работы плагина. Откомментируйте то, что хотите использовать. (возможно комбинировать режимы)
#define GLOBAL_TASK_SYSTEM //[Режим] Запуск задачи по обновлению услуг через временной интервал до конца карты.

//#define ROUND_START_SYSTEM //[Режим] Запуск задачи по обновлению услуг в новом раунде.
//#define ROUND_START_TIME_USE //Использовать ли время до запуска обновления услуг в режиме ROUND_START_SYSTEM.

//#define ROUND_END_SYSTEM //[Режим] Запуск задачи по обновлению услуг в конце раунда.

#if defined GLOBAL_TASK_SYSTEM
const Float:GLOBAL_TASK_TIME = 120.0; //Интервал времени выполнения задачи для режима GLOBAL_TASK_SYSTEM (в секундах, формат через точку 0.0)
#endif

#if defined ROUND_START_TIME_USE
const Float:ROUND_START_TIME = 5.0; //Время до выполнения задачи для режима ROUND_START_SYSTEM (в секундах, формат через точку 0.0)
#endif

new const PLUGIN[] = "UpdateService_Lite";
new const VERSION[] = "1.0.2";
new const AUTHOR[] = "wellasgood";

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR);

   #if defined ROUND_START_SYSTEM
   register_logevent("RoundStart", 2, "1=Round_Start");
   #endif

   #if defined ROUND_END_SYSTEM
   register_logevent("RoundEnd", 2, "1=Round_End");
   #endif

   #if defined GLOBAL_TASK_SYSTEM
   set_task(GLOBAL_TASK_TIME, "UpdateServiceCmd", .flags = "b");
   #endif
}

#if defined ROUND_START_SYSTEM
public RoundStart()
{
   #if defined ROUND_START_TIME_USE
   set_task(ROUND_START_TIME, "UpdateServiceCmd");
   #else
   UpdateServiceCmd();
   #endif
}
#endif

#if defined ROUND_END_SYSTEM
public RoundEnd()
{
   UpdateServiceCmd();
}
#endif

public UpdateServiceCmd()
{
   server_cmd("amx_reloadadmins");
}

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось WellasGooD 09 мар 2020, 16:48, всего редактировалось 2 раз(а).
Аватара пользователя
WellasGooD
Скриптер
 
Сообщения: 14
Зарегистрирован: 11 ноя 2016, 12:12
Откуда: Russia
Благодарил (а): 3 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Amxx Pawn
Visual Basic Application (VBA Excel, Outlook VBA)

Re: UpdateService_Lite

Сообщение Leonidddd » 07 мар 2020, 21:39

Плагин требует доработки. Пока автор не найдет способ избавится от ненужного бесконечного таска плагин будет в неутвержденных, некоторые способы автору уже сообщали.

Не утверждено. Ожидается доработка плагина // Leonidddd
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2352
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 185 раз.
Поблагодарили: 655 раз.

Re: UpdateService_Lite

Сообщение liFe iS GoOD » 07 мар 2020, 23:36

ой , это что , amxx ?

Код: Выделить всё
#include <amxmodx>
#include <hamsandwich>

const UPDATE_INTERVAL = 30;

new g_iNextUpdateTimeStamp;

public plugin_init() {
    RegisterHam(Ham_Killed, "player", "Forward__HamKilledPlayer_Post", .Post = true);
}

public Forward__HamKilledPlayer_Post() {
    if (get_systime() > g_iNextUpdateTimeStamp) {
        server_cmd("amx_reloadadmins");
        g_iNextUpdateTimeStamp = get_systime(.offset = UPDATE_INTERVAL);
    }
}
 
Аватара пользователя
liFe iS GoOD
Модератор
 
Сообщения: 1408
Зарегистрирован: 24 май 2012, 19:48
Благодарил (а): 115 раз.
Поблагодарили: 468 раз.

Re: UpdateService_Lite

Сообщение WellasGooD » 08 мар 2020, 12:31

Leonidddd писал(а):Плагин требует доработки. Пока автор не найдет способ избавится от ненужного бесконечного таска плагин будет в неутвержденных, некоторые способы автору уже сообщали.

Не утверждено. Ожидается доработка плагина // Leonidddd



Добрый день! А что, если мод на сервере CSDM, с бесконечным раундом? Тут без set_task не обойтись.

Добавлено спустя 45 секунд:
Я предлагаю пользователю выбрать удобный режим. Не вижу проблем в глобальном set_task.
Аватара пользователя
WellasGooD
Скриптер
 
Сообщения: 14
Зарегистрирован: 11 ноя 2016, 12:12
Откуда: Russia
Благодарил (а): 3 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Amxx Pawn
Visual Basic Application (VBA Excel, Outlook VBA)

Re: UpdateService_Lite

Сообщение Leonidddd » 09 мар 2020, 00:14

WellasGooD, добрый день, модератор выше скинул только примерный код, что без сет таска можно обойтись.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2352
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 185 раз.
Поблагодарили: 655 раз.

Re: UpdateService_Lite

Сообщение WellasGooD » 09 мар 2020, 11:37

liFe iS GoOD писал(а):ой , это что , amxx ?

Код: Выделить всё
#include <amxmodx>
#include <hamsandwich>

const UPDATE_INTERVAL = 30;

new g_iNextUpdateTimeStamp;

public plugin_init() {
    RegisterHam(Ham_Killed, "player", "Forward__HamKilledPlayer_Post", .Post = true);
}

public Forward__HamKilledPlayer_Post() {
    if (get_systime() > g_iNextUpdateTimeStamp) {
        server_cmd("amx_reloadadmins");
        g_iNextUpdateTimeStamp = get_systime(.offset = UPDATE_INTERVAL);
    }
}


Не всегда такое будет удобно, но как вариант, для некоторых целей.
Аватара пользователя
WellasGooD
Скриптер
 
Сообщения: 14
Зарегистрирован: 11 ноя 2016, 12:12
Откуда: Russia
Благодарил (а): 3 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Amxx Pawn
Visual Basic Application (VBA Excel, Outlook VBA)

Re: UpdateService_Lite

Сообщение WellasGooD » 09 мар 2020, 16:45

Произошло обновление до версии (1.0.2). Архив был обновлен. Информация по обновлению (ссылка в первом посте)
Аватара пользователя
WellasGooD
Скриптер
 
Сообщения: 14
Зарегистрирован: 11 ноя 2016, 12:12
Откуда: Russia
Благодарил (а): 3 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Amxx Pawn
Visual Basic Application (VBA Excel, Outlook VBA)

Re: UpdateService_Lite

Сообщение Leonidddd » 26 мар 2020, 21:22

WellasGooD, нет, не то ж..
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2352
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 185 раз.
Поблагодарили: 655 раз.


Вернуться в Неутвержденные плагины

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

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