Поиск Плагин на увеличение скорости бега по флагам доступа

Сообщения
106
Реакции
19
Помог
1 раз(а)
Здравствуйте. В поиске плагина отдельного, который увеличивает скорость передвижения (бега на сервере CS 1.6) по флагам с разными значениями. Суть в том, чтобы можно было настроить детально, допустим на сервере 5 привилегий и на каждый флаг можно было задать своё значение увеличение скорости передвижения, отличимое от дефолтной. Пример конфига или в исходнике хотя бы:

"n" "15" // Увеличение скорости на 15% по флагу-доступа n
"o" "10" // Увеличение скорости на 10% по флагу-доступа o
"p" "8" // Увеличение скорости на 8% по флагу-доступа p
"q" "5" // Увеличение скорости на 5% по флагу-доступа q
"s" "3" // Увеличение скорости на 3% по флагу-доступа s

(это как пример, важно, чтобы доступов можно было сделать 1 или 3 или 7 и т.д.)
Простыми словами, похожий функионал, как в VIP RBS есть, только отдельным плагином. Может у кого-то есть что-то подобное или нет, то тогда только в "Заказы" идти)). Спасибо за внимание!
 
Сообщения
12
Реакции
0
ну компилируется без ошибок, проверяйте

Код:
#include <amxmodx>
#include <fun>

// Параметры ускорения
new const Float:SPEED_MULTIPLIERS[] = {1.1, 1.2, 1.3, 1.4}; // Множители скорости для каждого флага
new const ACCESS_FLAGS[] = "abcd"; // Флаги доступа, которые ускоряют игроков

// Инициализация плагина
public plugin_init() {
    register_plugin("Speed Booster", "1.0", "YourName");

    // Хук на событие "ResetHUD" (вызывается при спавне игрока)
    register_event("ResetHUD", "OnPlayerSpawn", "b");
}

// Функция, вызываемая при спавне игрока
public OnPlayerSpawn(id) {
    // Проверяем, жив ли игрок и имеет ли он нужный флаг доступа
    if (is_user_alive(id)) {
        new Float:speed_multiplier = get_highest_speed_multiplier(id); // Получаем наибольший множитель скорости
        set_user_speed(id, speed_multiplier); // Устанавливаем скорость игрока
    } else {
        set_user_speed(id, 1.0); // Устанавливаем стандартную скорость
    }
}

// Функция получения наибольшего множителя скорости на основе флагов доступа
Float:get_highest_speed_multiplier(id) {
    // Получаем флаги доступа игрока
    new flags = get_user_flags(id);
    new Float:highest_multiplier = 1.0; // Стандартное значение скорости

    // Перебираем флаги доступа и выбираем наибольший множитель
    for (new i = 0; i < sizeof ACCESS_FLAGS; i++) {
        if (flags & (1 << (ACCESS_FLAGS[i] - 'a'))) {
            highest_multiplier = floatmax(highest_multiplier, SPEED_MULTIPLIERS[i]);
        }
    }

    // Возвращаем наибольший множитель
    return highest_multiplier;
}

// Функция для установки скорости игрока
set_user_speed(id, Float:speed_multiplier) {
    if (!is_user_alive(id)) return;

    // Устанавливаем максимальную скорость игрока
    set_user_maxspeed(id, 250.0 * speed_multiplier); // 250.0 - стандартная скорость
}
 
Последнее редактирование:
Сообщения
106
Реакции
19
Помог
1 раз(а)
Решение нашли. Всем спасибо. Тему можно закрывать.
 
Сообщения
335
Реакции
93
Помог
2 раз(а)
soda, думаю, могут быть конфликты, связанные со сбросом скорости
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу