Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±

    По поводу Античита

    Привет всем пользователям pro pawn хочу задать вопрос.
    Я сделал анти-чит на SetVehicleHealth и когда садишься в машину у которой 1000.0 хп проходит таймер 1 секунда и хп тачки равняется 0.

    Помогите исправить ошибку мою объясните что я не так сделал.

    код:
    PHP код:
    new Float:AntiCheatHealthVehicle[MAX_VEHICLES];//Проверка на хп автомобиля 
    PHP код:
    stock SetVehicleHealthAC(vehicleidFloathealth)
    {
        if(
    health 250.0health 250.0;
        else if(
    health 1000.0health 1000.0;
        
    AntiCheatHealthVehicle[vehicleid] = health;
        
    SetVehicleHealth(vehicleidhealth);
        return 
    1;
    }
    #if    defined    _ALS_SetVehicleHealth
        #undef    SetVehicleHealth
    #else
        #define    _ALS_SetVehicleHealth
    #endif
    #define SetVehicleHealth SetVehicleHealthAC 
    ну и последнее таймер раз в секунду
    PHP код:
            new FloatCARHPvehicleid GetPlayerVehicleID(i);
            
    GetVehicleHealth(vehicleidCARHP);
            if(
    _:AntiCheatHealthVehicle[vehicleid] != _:CARHP)
            {
                if((
    AntiCheatHealthVehicle[vehicleid] > CARHP && CARHP != INVALID_VEHICLE_ID))
                {
                    
    AntiCheatHealthVehicle[vehicleid] = CARHP;
                }
                if((
    AntiCheatHealthVehicle[vehicleid] < CARHP && CARHP != INVALID_VEHICLE_ID))
                {
                    new 
    okroz[90];
                    
    format(okrozsizeof(okroz), "<<Warning>> Игрок %s[%d]: Возможно изменяет хп тачки [Было: %.0f]:[Стало: %.0f]"Name(i), iCARHPAntiCheatHealthVehicle[vehicleid]);
                    
    SendAdminMessage(COLOR_ADMINokroz);
                    
    SetVehicleHealthAC(vehicleidAntiCheatHealthVehicle[vehicleid]);
                }
            } 
    - - - Добавлено - - -

    Может я таймер не правильно использую не знаю.

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Dima_Tushin Посмотреть сообщение
    PHP код:
    new Float:AntiCheatHealthVehicle[MAX_VEHICLES];//Проверка на хп автомобиля 
    Это не проверка, а всего лишь массив. Сама же проверка проводится в односекундном таймере.
    Кстати, все значение массива по умолчанию равны 0. Кто будет их инициализировать при создании транспорта (CreateVehicle(Ex)/AddStaticVehicle(Ex))?
    + нужно обновлять их ещё и при респавне транспорта (OnVehicleSpawn).

    P.S.: Это ещё что?
    Цитата Сообщение от Dima_Tushin Посмотреть сообщение
    Код:
    if((AntiCheatHealthVehicle[vehicleid] > CARHP && CARHP != INVALID_VEHICLE_ID))
    Во-первых, зачем нужно сравнение ХП машины с её ID?
    Во-вторых, если вы хотели сделать проверку существования машины, GetPlayerVehicleID при несуществующем транспорте возвращает 0, а не INVALID_VEHICLE.
    В-третьих, по идее, невалидные значения нужно отсеивать вообще сразу, перед их использованием. Иначе можно словить выход за пределы массива и код, находящийся после места возникновения ошибки, работать не будет, а вы будете задаваться вопросом "ой, а почему у меня не срабатывает код?"
    На всякий случай лучше прямо сейчас проверьте мод крашдетектом.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. #3
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±
    Вот я убрал вот это CARHP != INVALID_VEHICLE_ID
    я сделал CrashDetector как мне проверить чтобы выявить ошибку?

  4. #4
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Dima_Tushin Посмотреть сообщение
    Вот я убрал вот это CARHP != INVALID_VEHICLE_ID
    я сделал CrashDetector как мне проверить чтобы выявить ошибку?
    Cоздай в pawno, файл конфигурации (.cfg).
    Название pawn.cfg, в нем пропиши - d3 и все выходы и прочая нечесть выводиться в server.log

  5. #5
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Всё это уже давно расписано здесь.
    Просто нужно читать содержимое всей темы, а не только то, что написано под словом "скачать" - тогда и не будет таких вопросов.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 

Информация о теме

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

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •