RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
jamp
jamp
Теги:
Скачать плагины cs
Серверные
Система стрибків:
Звичайний гравець
→ 1 стрибок (300)
VIP (b, c, f, h)
→ 2 стрибки
→ 2-й стрибок: 310
VIP ULTRA (e) / VIP-Pro (d)
→ 3 стрибки
→ 2-й: 310, 3-й: 330
Важливі деталі:
⏱ Затримка між стрибками: 0.2 сек
???? HUD показується один раз за раунд при першому стрибку
???? Лічильник стрибків скидається при приземленні
???? Флаги перевіряються при вході, спавні та зміні раунду
???? Є логування в консоль сервера
Підсумок:
???? Це VIP Jump System, який:
робить геймплей динамічнішим,
чітко розділяє привілеї VIP,
акуратно обмежує аб’юз (затримка + скидання)
Компилятор: 1.8.2
71
Команды:
Кваров и команд нет
.sma / .sp
#include
#include
#define PLUGIN "VIP Jump System" #define VERSION "1.5" #define AUTHOR "RPG_Alex" // Змінні для відстеження стрибків гравців new g_iJumpCount[33]; // Лічильник використаних додаткових стрибків new bool:g_bJumpKeyReleased[33]; // Чи відпущена клавіша стрибка new Float:g_fLastJumpTime[33]; // Час останнього стрибка new g_iMaxExtraJumps[33]; // Максимальна кількість додаткових стрибків (0/1/2) new g_szVIPStatus[33][32]; // Статус VIP гравця new bool:g_bHUDShown[33]; // Чи вже показано HUD гравцю // Нова сила стрибків за вашими побажаннями const Float:JUMP_POWER_FIRST = 300.0; // Перший стандартний стрибок (на землі) const Float:JUMP_POWER_SECOND = 310.0; // Другий стрибок (у повітрі) - тепер 310 const Float:JUMP_POWER_THIRD = 330.0; // Третій стрибок (у повітрі) - тепер 330 тільки для адмінів і VIP-Pro // ЗМІНА: Затримка між стрибками змінена з 0.5 на 0.2 секунди const Float:JUMP_DELAY = 0.2; // Затримка між стрибками (200 мс) public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); // Реєструємо перехоплення для відстеження стрибків register_forward(FM_PlayerPreThink, "OnPlayerPreThink"); // Реєструємо подію початку раунду register_event("HLTV", "OnRoundStart", "a", "1=0", "2=0"); register_logevent("OnRoundStart", 2, "1=Round_Start"); // Реєструємо подію спавну гравця register_event("ResetHUD", "OnPlayerSpawn", "be"); // Кольорове повідомлення про завантаження плагіна client_print_color(0, print_team_default, "^1[^4VIP JUMP^1] ^4Система VIP стрибків завантажена!"); server_print("[VIP JUMP] Плагін успішно завантажено"); } public client_putinserver(id) { // Скидаємо змінні для нового гравця ResetPlayerVariables(id); // Встановлюємо затримку 1 секунду перед перевіркою флагів set_task(1.0, "CheckPlayerFlags", id); } public OnPlayerSpawn(id) { // Перевіряємо, чи гравець живий if(!is_user_alive(id)) return; // Скидаємо змінні стрибків при спавні g_iJumpCount[id] = 0; g_bJumpKeyReleased[id] = true; g_bHUDShown[id] = false; // Перевіряємо флаги гравця при кожному спавні (затримка 0.1 секунди для надійності) set_task(0.1, "CheckPlayerFlags", id); } public OnRoundStart() { // Скидаємо HUD для всіх живих гравців на початку кожного раунду for(new i = 1; i <= 32; i++) { if(is_user_alive(i)) { g_bHUDShown[i] = false; } } // Додатково можна показати повідомлення про скидання server_print("[VIP JUMP] Новий раунд - HUD скинуто для всіх гравців"); } // Функція для скидання змінних гравця ResetPlayerVariables(id) { g_iJumpCount[id] = 0; g_bJumpKeyReleased[id] = true; g_fLastJumpTime[id] = 0.0; g_iMaxExtraJumps[id] = 0; g_szVIPStatus[id][0] = '^0'; g_bHUDShown[id] = false; } public CheckPlayerFlags(id) { // Перевіряємо, чи гравець ще на сервері if (!is_user_connected(id)) return; // Отримуємо флаги гравця new user_flags = get_user_flags(id); new szName[32]; get_user_name(id, szName, 31); // Попередні значення для порівняння new oldMaxJumps = g_iMaxExtraJumps[id]; new oldStatus[32]; copy(oldStatus, 31, g_szVIPStatus[id]); // ЗАУВАЖЕННЯ: Флаги мають бути маленькими літерами для Linux! // Визначаємо кількість додаткових стрибків на основі флагів з пріоритетом if (user_flags & read_flags("d")) { // Флаг d (VIP-Pro) - потрійний стрибок (2 додаткових) - ВИЩИЙ ПРІОРИТЕТ g_iMaxExtraJumps[id] = 2; copy(g_szVIPStatus[id], 31, "VIP-Pro"); } else if (user_flags & read_flags("e")) { // Флаг e (VIP ULTRA) - потрійний стрибок (2 додаткових) g_iMaxExtraJumps[id] = 2; copy(g_szVIPStatus[id], 31, "VIP ULTRA"); } else if (user_flags & read_flags("h")) { // Флаг h (Дівчина) - подвійний стрибок (1 додатковий) g_iMaxExtraJumps[id] = 1; copy(g_szVIPStatus[id], 31, "Дівчина"); } else if (user_flags & read_flags("f")) { // Флаг f (VIP-Free) - подвійний стрибок (1 додатковий) g_iMaxExtraJumps[id] = 1; copy(g_szVIPStatus[id], 31, "VIP-Free"); } else if (user_flags & read_flags("b")) { // Флаг b (VIP-Plus) - подвійний стрибок (1 додатковий) g_iMaxExtraJumps[id] = 1; copy(g_szVIPStatus[id], 31, "VIP-Plus"); } else if (user_flags & read_flags("c")) { // Флаг c (VIP-Ultimate) - подвійний стрибок (1 додатковий) g_iMaxExtraJumps[id] = 1; copy(g_szVIPStatus[id], 31, "VIP-Ultimate"); } else { // Звичайний гравець - без додаткових стрибків g_iMaxExtraJumps[id] = 0; copy(g_szVIPStatus[id], 31, "Гравець"); } // Показуємо повідомлення гравцю, якщо статус змінився if(!equal(oldStatus, g_szVIPStatus[id]) || oldMaxJumps != g_iMaxExtraJumps[id]) { if(g_iMaxExtraJumps[id] == 2) { client_print_color(id, print_team_default, "^1[^4VIP JUMP^1] ^4Ваш статус: ^3%s ^4- потрійний стрибок! (330)", g_szVIPStatus[id]); } else if(g_iMaxExtraJumps[id] == 1) { client_print_color(id, print_team_default, "^1[^4VIP JUMP^1] ^4Ваш статус: ^3%s ^4- подвійний стрибок! (310)", g_szVIPStatus[id]); } else { client_print_color(id, print_team_default, "^1[^4VIP JUMP^1] ^4Стандартні стрибки (300)"); } } // Логування для адміністрації server_print("[VIP JUMP] Гравець %d (%s) отримав %d додаткових стрибків, статус: %s", id, szName, g_iMaxExtraJumps[id], g_szVIPStatus[id]); } // Функція для показу HUD повідомлення ShowVIPHUD(id) { if(!is_user_connected(id)) return; // Показуємо HUD повідомлення в залежності від статусу if(g_iMaxExtraJumps[id] == 2) { // Потрійний стрибок if(equal(g_szVIPStatus[id], "VIP-Pro")) { ShowHUDMessage(id, "Привіт, VIP-Pro!^nТобі надано^nпотрійні стрибки^n3-й стрибок: 330"); } else if(equal(g_szVIPStatus[id], "VIP ULTRA")) { ShowHUDMessage(id, "Привіт, VIP ULTRA!^nТобі надано^nпотрійні стрибки^n3-й стрибок: 330"); } } else if(g_iMaxExtraJumps[id] == 1) { // Подвійний стрибок if(equal(g_szVIPStatus[id], "Дівчина")) { ShowHUDMessage(id, "Привіт, Дівчина!^nТобі надано^nподвійні стрибки^n2-й стрибок: 310"); } else if(equal(g_szVIPStatus[id], "VIP-Free")) { ShowHUDMessage(id, "Привіт, VIP-Free!^nТобі надано^nподвійні стрибки^n2-й стрибок: 310"); } else if(equal(g_szVIPStatus[id], "VIP-Plus")) { ShowHUDMessage(id, "Привіт, VIP-Plus!^nТобі надано^nподвійні стрибки^n2-й стрибок: 310"); } else if(equal(g_szVIPStatus[id], "VIP-Ultimate")) { ShowHUDMessage(id, "Привіт, VIP-Ultimate!^nТобі надано^nподвійні стрибки^n2-й стрибок: 310"); } } else { // Звичайний гравець ShowHUDMessage(id, "Привіт!^nТи не маєш VIP^nСтандартні стрибки^n1-й стрибок: 300"); } // Встановлюємо, що HUD вже показано g_bHUDShown[id] = true; } // Функція для відображення HUD повідомлення (фіолетовий колір) stock ShowHUDMessage(id, const message[]) { // Фіолетовий колір: R=128, G=0, B=128 set_hudmessage(128, 0, 128, 0.75, 0.25, 0, 6.0, 5.0, 0.1, 0.2, -1); show_hudmessage(id, message); } public client_disconnected(id) { // Видаляємо завдання, якщо гравець вийшов до закінчення затримки if (task_exists(id)) remove_task(id); // Скидаємо змінні ResetPlayerVariables(id); } public OnPlayerPreThink(id) { // Перевіряємо, чи гравець живий if (!is_user_alive(id)) return FMRES_IGNORED; // Отримуємо поточний стан гравця new flags = pev(id, pev_flags); new button = pev(id, pev_button); new oldbuttons = pev(id, pev_oldbuttons); new Float:current_time = get_gametime(); // Відстежуємо відпускання клавіші стрибка if (!(button & IN_JUMP) && (oldbuttons & IN_JUMP)) { g_bJumpKeyReleased[id] = true; } // Обробка натискання клавіші стрибка // ЗМІНА: 0.5 замінено на JUMP_DELAY (0.2 секунди) if ((button & IN_JUMP) && !(oldbuttons & IN_JUMP) && g_bJumpKeyReleased[id] && (current_time - g_fLastJumpTime[id] > JUMP_DELAY)) { // Перевіряємо, чи гравець не на землі (стрибок у повітрі) if (!(flags & FL_ONGROUND)) { // Перевіряємо, чи є доступні додаткові стрибки if (g_iJumpCount[id] < g_iMaxExtraJumps[id]) { // Виконуємо додатковий стрибок з відповідною силою new Float:velocity[3]; pev(id, pev_velocity, velocity); // Нова логіка для сили стрибків: if(g_iJumpCount[id] == 0) { // Другий стрибок (у повітрі) - 310 для всіх velocity[2] = JUMP_POWER_SECOND; } else if(g_iJumpCount[id] == 1) { // Третій стрибок (у повітрі) - 330 тільки для VIP-Pro і VIP ULTRA velocity[2] = JUMP_POWER_THIRD; } set_pev(id, pev_velocity, velocity); g_iJumpCount[id]++; g_bJumpKeyReleased[id] = false; g_fLastJumpTime[id] = current_time; // Логування сили стрибка server_print("[VIP JUMP] Гравець %d (%s) зробив %d-й додатковий стрибок, сила: %.1f", id, g_szVIPStatus[id], g_iJumpCount[id] + 1, velocity[2]); } } else { // Гравець стрибає на землі (перший стрибок) // Показуємо HUD, якщо ще не показували if (!g_bHUDShown[id]) { ShowVIPHUD(id); } // Логування стандартного стрибка server_print("[VIP JUMP] Гравець %d (%s) зробив перший стрибок (стандартний, 300)", id, g_szVIPStatus[id]); } } // Скидаємо лічильник, коли гравець на землі if (flags & FL_ONGROUND) { g_iJumpCount[id] = 0; g_bJumpKeyReleased[id] = true; } return FMRES_IGNORED; }
Отправить
Загрузил
melnikandriy57
2025-12-19 19:57:48
0
18
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
UA | PB | ZM | DM | CTF | FFA |
149.50.98.60:27036
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2026 Хостинг игровых серверов