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

Смена карты, если игроков меньше 8

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

Модератор: Leonidddd

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

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

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

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

Смена карты, если игроков меньше 8

Сообщение [N][E][M][E][C] » 26 апр 2021, 04:10

Автор: .......
Версия: 1.0
Описание: Есть подобные плагины, но всё же кому актуально.
Проверки на количество игроков производятся каждые 5 минут.
Так же добавлена проверка на админа, если админ с флагом admin_menu пресуствует на сервере, то ему будет выводить сообщение о низком онлайне, при этом карта меняться не будет.
Карта меняется рандомно.
Плагин становится на паузу на картах даст 2х2 и инферно 2х2.
Так же сообщение выводится всем игрокам перед сменой карты, с отсчотём секунд.

Код: Выделить всё
#include <amxmodx> 
 
#define PLAGIN "O.N.L.A.I.N" 
#define VERSION "1.0" 
#define AUTOR "[N][e][M][E][C]" 
 
#define limitPLAYERS 8 //количество людей |допускается| 
 
#define TIME_CHECK_PLAYERS 300.0 //через сколько секунд делать проверку на количество игроков(каждые 5 минут) 
#define TASK_ID_CHECK_PLAYERS 555 
#define TIME_MAPS_TASK 10.0 
#define TASK_ID_MAPS_TASK 666 
#define TIME_SECUND_TASK 1.0 
#define TASK_ID_SECUND_TASK 777 
 
new g_MapPrefixList
[][] = { 
 
"de_dust2_2x2", //на каких картах плагин ставим на паузу, и на какие карты меняем 
 "de_inferno_2x2" //каличество карт можно добавлять 
} 
 
new const message
[2][] = { 
 
"Админитратор, обратите внимание^n низкий онлайн ^"не хватает %d игрок%s^"", //сообщение администраторам 
 "Внимание!!! Низкий онлайн!!!:^nнам не хватает %d игрок%s,^nкарта смениться через %d сек... на %s" //сообщение игрокам 
} 
 
new g_messegeHUD
, g_maxplayers, randoms, g_timer, i, u, players; 
new ending
[4], szMapName[32], player[32]; 
 
public plugin_init
() { 
 register_plugin
(PLAGIN, VERSION, AUTOR); 
 
 get_mapname
(szMapName, charsmax(szMapName)); 
 
 for
(= 0; u < sizeof(g_MapPrefixList); u ++) { 
 if
(equali(g_MapPrefixList[u], szMapName)) 
 pause
("d"); 
 
} 
 
 set_task
(TIME_CHECK_PLAYERS, "check_players", TASK_ID_CHECK_PLAYERS, .flags = "b"); 
 
 g_maxplayers 
= get_maxplayers()+1; 
 g_messegeHUD 
= CreateHudSyncObj(); 
 randoms 
= random_num(0, charsmax(g_MapPrefixList)); 
} 
 
public check_players
() { 
 get_players
(player, players, "ch"); //не ситаем ботов и HLTV 
 
 if
(players < limitPLAYERS) { 
 ending 
= ((limitPLAYERS - players) > 4) ? "oв" : "a"; //окончание, если от 1 до 4 (игрока), 5 и выше (игроков) 
 
 for
(= 1; i < g_maxplayers; ++ i) { 
 if
(is_user_connected(i) && get_user_flags(i) & ADMIN_MENU) { 
 set_hudmessage
(255, 255, 255, -1.0, 0.55, 2, 0.1, 5.0, 0.02, 0.02, -1); 
 ShowSyncHudMsg
(i, g_messegeHUD, message[0], limitPLAYERS - players, ending); 
 return
; 
 
} 
 
} 
 
 remove_task
(TASK_ID_CHECK_PLAYERS); 
 set_task
(TIME_MAPS_TASK, "change_map", TASK_ID_MAPS_TASK, _, _, "a", 1); 
 g_timer 
= 9; 
 
 if
(g_timer) 
 set_task
(TIME_SECUND_TASK, "messege_HUD", TASK_ID_SECUND_TASK, _, _, "a", g_timer); 
 
} 
} 
 
public messege_HUD
() { 
 set_hudmessage
(255, 255, 255, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1); 
 ShowSyncHudMsg
(0, g_messegeHUD, message[1], limitPLAYERS - players, ending, g_timer--, g_MapPrefixList[randoms]); 
} 
 
public change_map
() 
 server_cmd
("changelevel %s", g_MapPrefixList[randoms]);
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 613
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 52 раз.
Поблагодарили: 83 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Смена карты, если игроков меньше 8

Сообщение [N][E][M][E][C] » 05 фев 2023, 13:47

Version rz 0.2

1.Полная оптимизация кода.
2.Добавлены квары:
ch_online "300" - интервал времени между проверками.
ch_players "8" - минимальное количество игроков для проверки.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 613
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 52 раз.
Поблагодарили: 83 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи


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

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

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