[AHK / ASI] Tesla Radar — наваливаем без штрафов

Статус
В этой теме нельзя размещать новые ответы.

muxui

Все ты можешь.
Пользователь
Сообщения
98
Реакции
52
Баллы
0
Сервер
Trilliant

Всем привет.
Будучи лихачем, я купил Clover FPT и решил на нем немного навалить. Но, как оказалось, мне хватило 10-ти минут, чтобы система не давала мне садиться в транспорт из-за накопившихся долгов. Знакомая ситуация, не так ли?
Как-раз таки это и заставило меня написать радар для камер.


Функциональность
- Предупреждает за 100 метров о том, что рядом камера.
- Ставит на камеру маркер для большей видимости.
- Автоматически сбрасывает скорость, если скорость автомобиля превышает 60 км/ч.


Скриншоты
1585715591097.png
Метка-чекпоинт на камере

1585715650895.png
Уведомление в чат

Исходный код
Код скрипта нет смысла прятать. А возможно, он кому-то поможет.
JavaScript:
#NoEnv
#UseHook
#SingleInstance, Force
#Persistent

#Include <UDF>

#IfWinActive, GTA:SA:MP

global pos := 0

Loop {
    
    if (isPlayerInAnyVehicle() && isPlayerDriver()) {
        
        o := getClosestObjectByModel(18880)
        dist := getDistance([o.XPOS, o.YPOS, o.ZPOS], getPlayerPos()) 
        
        if (dist < 100 && dist > 0 && pos <> o.XPOS) {
            addChatMessage("{FF1435}< T > {FFFFFF}Внимание! Через {FF1435}" Round(dist, 1) "м {FFFFFF}зафиксирована " (pos ? "еще одна " : "") "камера (помечена маркером).")
            setCheckpoint(o.XPOS, o.YPOS, o.ZPOS, 4)
            pos := o.XPOS
            
            while (getVehicleSpeed() > 70) {
                if (!isDialogOpen() && !isChatOpen()) {
                    Send, {vk53 Down}
                }
            }
            Send, {vk53 Up}
        } else if (dist > 100 && pos) {
            pos := 0
        }
    }
}


Ссылку на готовый скрипт скинет модератор под этим постом.
Открыт к предложениям по улучшению.
Спасибо!

 
Последнее редактирование:

Vincent Stefano

Винцеслав Сфетланов
Пользователь
Сообщения
1,269
Реакции
1,206
Баллы
0
Возраст
25
Сервер
Ой, хотел у вас попросить функции: getDistance(), getClosestObjectByModel() или же Ваш UDF.
Спасибки заранее.
 

muxui

Все ты можешь.
Пользователь
Сообщения
98
Реакции
52
Баллы
0
Сервер
Trilliant
Ой, хотел у вас попросить функции: getDistance(), getClosestObjectByModel() или же Ваш UDF.
Спасибки заранее.
Функция getDistance() есть в оригинальном UDF, функцию getClosestObjectByModel() можно найти в интернете.
Свой UDF, к сожалению, не солью.
 

Vincent Stefano

Винцеслав Сфетланов
Пользователь
Сообщения
1,269
Реакции
1,206
Баллы
0
Возраст
25
Сервер
Функция getDistance() есть в оригинальном UDF, функцию getClosestObjectByModel() можно найти в интернете.
Свой UDF, к сожалению, не солью.
Вместо того, чтоб сказать, что есть в интернете, могли бы и скинуть. Ну ладно, не смею Вас напрягать, поищу сам!
 

muxui

Все ты можешь.
Пользователь
Сообщения
98
Реакции
52
Баллы
0
Сервер
Trilliant
Вместо того, чтоб сказать, что есть в интернете, могли бы и скинуть. Ну ладно, не смею Вас напрягать, поищу сам!
Функцию getClosestObjectByModel() я нашел в интернете и перевел под свой UDF. Мне что, вместо тебя идти и гуглить?
 

Jose_Rayden

Вечно молодой, вечно Хося
Пользователь
Сообщения
386
Реакции
31
Баллы
0
Хорошая идея, но я б сказал, что скрипт "сыроват"
Есть ещё, что доработать. (В скриптах для сампа я не силен, просто говорю то, что заметил, как пользователь)


1. 100 метров обнаружения камер слишком мало для быстрых авто(может конечно он на большей дистанции не палит из-за механики прорисовки в игре и тд, не знаю этого, просто факт).
Например инфернус дт фпт даже не успевает тормознуть, с 220 сбрасывает всего до 190.
Даже на туризмо дт , с отличными тормозами скорость полностью не сбрасывалась, потому штраф был 500$(да, лучше чем 1.500, но все равно ж не полностью сработал)

*ПРУФ*
• Да, это проблема тормозов на нем, но тем не менее, скрипт просто не успевает за 100 метров.

2. Скрипт тормозит тачку даже там, где не надо. Хороший пример, который я заметил уже через 5 минут после установки: пролет, где раньше была стройка(от мэрии лс до банка лс). Скрипт видит камеру, которая находится на дороге левее и автоматически тормозит, хоть камера тут и не штрафует.
*ПРУФ*

3. Ещё одна проблема, её зафрапсить сложнее, тк не видно клаву: На поворотах многие(в частности я) тормозят, чтоб легче входить в поворот. Если в этот момент скрипт будет пытаться тормознуть, а "гонщик" опять зажмет кнопку "Вперед"-скрипт не успеет тормознуть авто ещё раз и будет штраф(это можно заметить например на элегии, которая очень сильно дрифтит, и повороте около г.VineWood)

PS Автор все равно молодец, но гораздо надежнее "запомнить", где самые проблемные места и тормозить заранее.
Я конечно понимаю, что не все задроты,как я(Press F мне) и не знают всех мест с камерами, как хорошо тормозит и разгоняется каждая тачка, тем не менее для себя я решил, что лучше полагаться на свои силы,а не скрипт, который иногда даже мешает
 

Jose_Rayden

Вечно молодой, вечно Хося
Пользователь
Сообщения
386
Реакции
31
Баллы
0
На счет проблемы более надежного торможения:
Что если попробовать использовать лимит скорости, а не просто скриптовый сброс до отметки? С лимитом скорости ты никак не наберешь больше разрешенных, а если скрипт будет только тормозить, то можно случайно разогнаться в ненужный момент
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху