Помощь в изменении скриптов

FYP

Известный
Автор темы
Администратор
1,768
5,971
Здесь вы можете попросить других пользователей внести какие-то небольшие изменения в скрипт, например, изменить активацию.
Для вопросов по программированию и разработке на форуме есть отдельная категория Разработка.

Рекомендации:
  1. Не просите о редактировании .asi, .sf, .luac, .dll, .exe и прочих файлов, не поддающихся простой декомпиляции. Скрипты формата .ahk (AutoHotKey), .lua (Lua/MoonLoader) и .cs (CLEO) легко поддаются изменению.
  2. Сообщения по типу "спасибо, помог" по правилам форума считаются флудом и скорее всего будут удалены. Если вам помогли, вы можете нажать кнопку Мне нравится под ответом - это даст понять, что ответ верный.
  3. За злонамеренное распространение вредоносного ПО - перманентный бан. Имейте это в виду.
Удаление копирайтов является нарушением авторских прав, если автор не дал на это своего разрешения. Правила BlastHack запрещают нарушать авторские права, поэтому если вам нужно их убрать - обращайтесь к автору.
 
Последнее редактирование:

TupoiShkolnik777

Новичок
2
0
Здравствуйте, помогите пожалуйста с таким вот скриптом:

Не знаю в чем ошибка, почему щас не работает, но в задумке скрита было:
Создать 2 окна Mimgui
В главном окне можно будет:
Вести свой ник в инпут и так же чтобы он использовался для кнопки "/id" (т.к на мобайле PLAYER_PED не корректно работает) ну и чтобы ник сохранился

1Чекбокс:
Для того чтобы 2 окно оставалось открытым даже пре выгрузке скрипта
И остальные чекбоксы для того чтобы убирать/удалять кнопки из 2 окна, типо: мне не нужна пока что кнопка members, я хочу ее убрать временно из 2 окна, вот для этого если это возможно
С 1 окном вродебы всё
2 окно: кнопки Mimgui с пробитием (своего) id, ну или же по Нику
Мемберс и тд, в общем вот как то так

На деле получилось говнокод, какие-то функции я не знаю как реализовать
т к это мой 1 скрипт что-то работает что-то не работает
Скрипт я особо не писал сам, сначала с помощью чата гпт, потом что-то брал из гайдов mimgui, от себя минимальное кол-во труда

после того как я добавил конфиг и еще что-то скрипт перестал запускаться

На некоторые названия кнопок и тд не обращайте внимания, хотел сначала сделать код проверить, а потом только название и тд изменить

Вроде всё расписал, спасибо большое тому, кто поможет


Lua:
require('lib.moonloader')

require('encoding').default = 'CP1251'

local u8 = require('encoding').UTF8

local imgui = require 'mimgui'

local inicfg = require 'inicfg'

local new, str = imgui.new, ffi.string



-- Конфиг

local settings = inicfg.load({

    setting =

    {

        inputsaved = '', -- значение инпута

        checkboxstatus = false, -- значение чекбокса

    }}, 'FrapsHelper.ini')



-- Окна

local WinState, show = imgui.new.bool(), imgui.new.bool()

local checkboxone = new.bool(settings.setting.checkboxstatus)

local inputt = new.char[256](u8(settings.setting.inputsaved))



function imgui.ColSeparator(hex,trans)

    local r,g,b = tonumber("0x"..hex:sub(1,2)), tonumber("0x"..hex:sub(3,4)), tonumber("0x"..hex:sub(5,6))

    if tonumber(trans) ~= nil and tonumber(trans) < 101 and tonumber(trans) > 0 then a = trans else a = 100 end

    imgui.PushStyleColor(imgui.Col.Separator, imgui.ImVec4(r/255, g/255, b/255, a/100))

    local colsep = imgui.Separator()

    imgui.PopStyleColor(1)

    return colsep

end



function imgui.ColoredButton(text,hex,trans,size)

    local r,g,b = tonumber("0x"..hex:sub(1,2)), tonumber("0x"..hex:sub(3,4)), tonumber("0x"..hex:sub(5,6))

    if tonumber(trans) ~= nil and tonumber(trans) < 101 and tonumber(trans) > 0 then a = trans else a = 60 end

    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(r/255, g/255, b/255, a/100))

    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(r/255, g/255, b/255, a/100))

    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(r/255, g/255, b/255, a/100))

    local button = imgui.Button(text, size)

    imgui.PopStyleColor(3)

    return button

end



function imgui.TextColoredRGB(text)

    local style = imgui.GetStyle()

    local colors = style.Colors

    local ImVec4 = imgui.ImVec4

    local explode_argb = function(argb)

        local a = bit.band(bit.rshift(argb, 24), 0xFF)

        local r = bit.band(bit.rshift(argb, 16), 0xFF)

        local g = bit.band(bit.rshift(argb, 8), 0xFF)

        local b = bit.band(argb, 0xFF)

        return a, r, g, b

    end

    local getcolor = function(color)

        if color:sub(1, 6):upper() == 'SSSSSS' then

            local r, g, b = colors[1].x, colors[1].y, colors[1].z

            local a = tonumber(color:sub(7, 8), 16) or colors[1].w * 255

            return ImVec4(r, g, b, a / 255)

        end

        local color = type(color) == 'string' and tonumber(color, 16) or color

        if type(color) ~= 'number' then return end

        local r, g, b, a = explode_argb(color)

        return imgui.ImVec4(r/255, g/255, b/255, a/255)

    end

    local render_text = function(text_)

        for w in text_:gmatch('[^\r\n]+') do

            local text, colors_, m = {}, {}, 1

            w = w:gsub('{(......)}', '{%1FF}')

            while w:find('{........}') do

                local n, k = w:find('{........}')

                local color = getcolor(w:sub(n + 1, k - 1))

                if color then

                    text[#text], text[#text + 1] = w:sub(m, n - 1), w:sub(k + 1, #w)

                    colors_[#colors_ + 1] = color

                    m = n

                end

                w = w:sub(1, n - 1) .. w:sub(k + 1, #w)

            end

            if text[0] then

                for i = 0, #text do

                    imgui.TextColored(colors_[i] or colors[1], u8(text[i]))

                    imgui.SameLine(nil, 0)

                end

                imgui.NewLine()

            else imgui.Text(u8(w)) end

        end

    end

    render_text(text)

end



local sizeX = imgui.GetIO().DisplaySize.x  -- Получаем ширину дисплея

        local sizeY = imgui.GetIO().DisplaySize.y  -- Получаем высоту дисплея



imgui.OnFrame(function() return show[0] and not isGamePaused() end, function()

        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 8.5, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))

        imgui.SetNextWindowSize(imgui.ImVec2(300, 370))  -- Размер окна

    imgui.Begin('Window Two', show, imgui.WindowFlags.NoDecoration)

    

        imgui.ColSeparator('7BFF00', 100)

        imgui.ColSeparator('7BFF00', 100)

        

           if imgui.TextColoredRGB(u8'{FF0000}TG Author: @Diego_skuf{FF0000}')then

        end

        

        imgui.ColSeparator('7BFF00', 100)

        imgui.ColSeparator('7BFF00',100)



        -- Кнопка "Time"

        if imgui.ColoredButton(u8'/time', '80FF00', 50,imgui.ImVec2(150, 50)) then

            sampSendChat("/time")

        end

        imgui.SameLine()



        -- Кнопка "/id"

        if imgui.ColoredButton(u8"/id", "80FF00",50, imgui.ImVec2(150, 50)) then

        sampSendChat("/id " .. select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))

        end

        

        imgui.ColSeparator('7BFF00', 100)

        imgui.ColSeparator('7BFF00',100)

        

                -- Кнопка "/showpass"

        

        if imgui.ColoredButton(u8" Passport My", '80FF00', 50, imgui.ImVec2(150, 50)) then

        sampSendChat("/showpass Justin_Williams")

        end

        

        imgui.SameLine()

        

                -- Кнопка "/jobprogress"

        

         if imgui.ColoredButton(u8"Успеваемость", '80FF00', 50, imgui.ImVec2(150, 50)) then

        sampSendChat("/jobprogress")

        end

        

        imgui.ColSeparator('7BFF00', 100)

        imgui.ColSeparator('7BFF00', 100)

        

                -- Кнопка "/members "

        

        if imgui.ColoredButton(u8"Мемберс", '80FF00', 50, imgui.ImVec2(150, 50)) then

        sampSendChat ("/members")

        end

        

        imgui.SameLine()

        

          if imgui.ColoredButton(u8"Статс", '80FF00', 50, imgui.ImVec2(150, 50)) then

        sampSendChat ("/stats")

        end

        

        imgui.ColSeparator('7BFF00',100)

        imgui.ColSeparator('7BFF00',100)



    imgui.End()

end).HideCursor = true -- HideCursor отвечает за то, чтобы курсор не показывался



imgui.OnFrame(function() return WinState[0] end, function(player)

    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))

    imgui.SetNextWindowSize(imgui.ImVec2(245, 280), imgui.Cond.Always)

    imgui.Begin('Window One', WinState, imgui.WindowFlags.NoResize + imgui.WindowFlags.AlwaysAutoResize)

    if imgui.Button('Open new window') then -- вкл/выкл второе окошко

        show[0] = not show[0]

    end

    

    if imgui.InputText('##Add', inputt, 256) then

        settings.setting.inputsaved = u8:decode(str(inputt)) -- значение вписывается в конфиг

        inicfg.save(settings, 'FrapsHelper.ini') -- конфиг сохраняется

    end

    

    if imgui.Checkbox(u8' ',checkboxone) then --   ,  ,      

        settings.setting.checkboxstatus = checkboxone[0] --      

        inicfg.save(settings, 'FrapsHelper.ini') --   

    end

    imgui.Text(u8'()  '..(settings.nigger.checkboxstatus and u8'' or u8''))

    imgui.Text(u8'()  '..(checkboxone[0] and u8'' or u8''))

    --   --

    

    imgui.SameLine()

    

    if imgui.Button(u8'Очистить строчку') then -- по этой кнопке можно очистить значение в конфиге

        imgui.StrCopy(inputt, '') -- очищает поле инпута

        settings.setting.inputsaved = ''

        inicfg.save(settings, 'FrapsHelper.ini')

    end



    imgui.End()

end)



function main()

    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)

    while true do wait(0)

        if changepos then -- редактирование позиции окошка, его можно впихнуть и в сам мимгуи

            posX, posY = getCursorPos() -- функция позволяет получить координаты курсора на экране

            if isKeyJustPressed(1) then -- если нажата ЛКМ, то сохраняем позицию

                changepos = false

            end

        end

    end

end
 

TupoiShkolnik777

Новичок
2
0
Ну и если можно то команду активации правильно и сделать и добавить для 2 окна если это нужно, хотя хз, я просто не знаю как правильно написать т.к если пишу как вроде везде то скрипт даже не запускается
 

Demid1993

Новичок
1
0
Почему нужная машина не взрывается, когда игрок в неё садится?
Вот код:
CLEO:
[/B]
if and
  not Car.Wrecked(0@)
  is_player_in_car $player_char in_car 0@
goto_if_false @INTRO_14396
add_one_off_sound 16 at 0.0 0.0 0.0
wait 1000
explode_car 0@
[B]
 

levushkin

Участник
43
10
Ну и если можно то команду активации правильно и сделать и добавить для 2 окна если это нужно, хотя хз, я просто не знаю как правильно написать т.к если пишу как вроде везде то скрипт даже не запускается
tLsr4Fy.png

Там сам разберешься, что поменять под себя.
Команды:
- /frapsbuttons
- /fraps

Lua:
require('lib.moonloader')
require('encoding').default = 'CP1251'
local u8 = require('encoding').UTF8
local imgui = require 'mimgui'
local inicfg = require 'inicfg'
local ffi = require 'ffi'
local new = imgui.new
local str = ffi.string

local settings = inicfg.load({
    setting = {
        nickname = '',
        keep_window_open = false,
        show_time = true,
        show_id = true,
        show_passport = true,
        show_jobprogress = true,
        show_members = true,
        show_stats = true
    }}, 'FrapsHelper.ini')

local mainWindowState = imgui.new.bool(false)
local buttonsWindowState = imgui.new.bool(false)

local nicknameInput = new.char[256](u8(settings.setting.nickname))
local keepWindowOpenCheckbox = new.bool(settings.setting.keep_window_open)
local showTimeCheckbox = new.bool(settings.setting.show_time)
local showIdCheckbox = new.bool(settings.setting.show_id)
local showPassportCheckbox = new.bool(settings.setting.show_passport)
local showJobprogressCheckbox = new.bool(settings.setting.show_jobprogress)
local showMembersCheckbox = new.bool(settings.setting.show_members)
local showStatsCheckbox = new.bool(settings.setting.show_stats)

function imgui.ColSeparator(hex, trans)
    local r, g, b = tonumber("0x"..hex:sub(1,2)), tonumber("0x"..hex:sub(3,4)), tonumber("0x"..hex:sub(5,6))
    local a = trans and math.min(math.max(trans, 0), 100) or 100
    imgui.PushStyleColor(imgui.Col.Separator, imgui.ImVec4(r/255, g/255, b/255, a/100))
    imgui.Separator()
    imgui.PopStyleColor(1)
end

function imgui.ColoredButton(text, hex, trans, size)
    local r, g, b = tonumber("0x"..hex:sub(1,2)), tonumber("0x"..hex:sub(3,4)), tonumber("0x"..hex:sub(5,6))
    local a = trans and math.min(math.max(trans, 0), 100) or 60
    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(r/255, g/255, b/255, a/100))
    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(r/255, g/255, b/255, a/100))
    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(r/255, g/255, b/255, a/100))
    local button = imgui.Button(text, size)
    imgui.PopStyleColor(3)
    return button
end

imgui.OnFrame(function() return mainWindowState[0] end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(300, 300))
    imgui.Begin('Fraps Helper Settings', mainWindowState)
    
    imgui.Text(u8'Ваш ник:')
    if imgui.InputText('##Nickname', nicknameInput, 256) then
        settings.setting.nickname = u8:decode(str(nicknameInput))
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    imgui.SameLine()
    if imgui.Button(u8'Очистить') then
        imgui.StrCopy(nicknameInput, '')
        settings.setting.nickname = ''
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    if imgui.Checkbox(u8'Сохранять окно кнопок открытым', keepWindowOpenCheckbox) then
        settings.setting.keep_window_open = keepWindowOpenCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    imgui.Separator()
    imgui.Text(u8'Показать/скрыть кнопки:')
    
    if imgui.Checkbox(u8'Time', showTimeCheckbox) then
        settings.setting.show_time = showTimeCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    if imgui.Checkbox(u8'ID', showIdCheckbox) then
        settings.setting.show_id = showIdCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    if imgui.Checkbox(u8'Passport', showPassportCheckbox) then
        settings.setting.show_passport = showPassportCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    if imgui.Checkbox(u8'Jobprogress', showJobprogressCheckbox) then
        settings.setting.show_jobprogress = showJobprogressCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    if imgui.Checkbox(u8'Members', showMembersCheckbox) then
        settings.setting.show_members = showMembersCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    if imgui.Checkbox(u8'Stats', showStatsCheckbox) then
        settings.setting.show_stats = showStatsCheckbox[0]
        inicfg.save(settings, 'FrapsHelper.ini')
    end
    
    imgui.End()
end)

imgui.OnFrame(function() return buttonsWindowState[0] end, function()
    local displaySize = imgui.GetIO().DisplaySize
    imgui.SetNextWindowPos(imgui.ImVec2(displaySize.x / 8.5, displaySize.y / 2), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(300, 400))
    imgui.Begin('Fraps Helper Buttons', buttonsWindowState, imgui.WindowFlags.NoDecoration)
    
    if imgui.ColoredButton(u8'Настройки', 'FFA500', 70, imgui.ImVec2(280, 30)) then
        mainWindowState[0] = not mainWindowState[0]
    end
    
    imgui.ColSeparator('7BFF00', 100)
    imgui.TextColored(imgui.ImVec4(1, 0, 0, 1), u8'TG Author: @Diego_skuf')
    imgui.ColSeparator('7BFF00', 100)
    
    if showTimeCheckbox[0] and imgui.ColoredButton(u8'/time', '80FF00', 50, imgui.ImVec2(150, 50)) then
        sampSendChat("/time")
    end
    
    imgui.SameLine()
    
    if showIdCheckbox[0] and imgui.ColoredButton(u8"/id", "80FF00", 50, imgui.ImVec2(150, 50)) then
        local nickname = u8:decode(str(nicknameInput))
        if nickname and nickname ~= '' then
            sampSendChat("/id " .. nickname)
        else
            sampSendChat("/id " .. select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
        end
    end
    
    imgui.ColSeparator('7BFF00', 100)
    
    if showPassportCheckbox[0] and imgui.ColoredButton(u8"Passport My", '80FF00', 50, imgui.ImVec2(150, 50)) then
        local nickname = u8:decode(str(nicknameInput))
        if nickname and nickname ~= '' then
            sampSendChat("/showpass " .. nickname)
        else
            sampSendChat("/showpass")
        end
    end
    
    imgui.SameLine()
    
    if showJobprogressCheckbox[0] and imgui.ColoredButton(u8"Успеваемость", '80FF00', 50, imgui.ImVec2(150, 50)) then
        sampSendChat("/jobprogress")
    end
    
    imgui.ColSeparator('7BFF00', 100)
    
    if showMembersCheckbox[0] and imgui.ColoredButton(u8"Мемберс", '80FF00', 50, imgui.ImVec2(150, 50)) then
        sampSendChat("/members")
    end
    
    imgui.SameLine()
    
    if showStatsCheckbox[0] and imgui.ColoredButton(u8"Статс", '80FF00', 50, imgui.ImVec2(150, 50)) then
        sampSendChat("/stats")
    end
    
    imgui.ColSeparator('7BFF00', 100)
    imgui.End()
end)

function main()
    sampRegisterChatCommand('fraps', function()
        mainWindowState[0] = not mainWindowState[0]
    end)
    
    sampRegisterChatCommand('frapsbuttons', function()
        buttonsWindowState[0] = not buttonsWindowState[0]
    end)
    
    if settings.setting.keep_window_open then
        buttonsWindowState[0] = true
    end
    
    while true do
        wait(0)
    end
end
 
  • Нравится
Реакции: TupoiShkolnik777

mango mango

Новичок
7
1
скрипт то правильно детектит сбив аптечки и нарко с помощью клео сбива, то не правильно и тригерится на хилл без сбива, не могу понять в чем проблема

Lua:
script_name("cleowarnings")
script_authors("laynez luv")


local sampev = require('lib.samp.events')

local anims = {}

function main()
    while not isSampAvailable() do wait(0) end

 sampAddChatMessage('{AA3333}<cleowarnings> {EEEEEE}Скрипт успешно загружен! Активация: {AA3333}Автоматическая {EEEEEE}| Автор: {AA3333}laynez luv', -1)


    while true do wait(0)
        for k, v in ipairs(anims) do
            if v.timer + v.time > os.clock() and (sampIsPlayerConnected(v.id) or select(2, sampGetPlayerIdByCharHandle(1)) == v.id) then
                if sampGetPlayerAnimationId(v.id) ~= v.animId and os.clock() - v.timer > 0.1 then
                    sampAddChatMessage(('<Warning> %s[%d] сбил анимацию %s'):format(sampGetPlayerNickname(v.id), v.id, v.animId == 610 and 'наркотиков' or 'аптечки'), 0xff730000)
                    table.remove(anims, k)
                end
            else
                table.remove(anims, k)
            end
        end
    end
end

function sampev.onApplyPlayerAnimation(playerId, animLib, animName, frameDelta, loop, lockX, lockY, freeze, time)
    -- print(playerId, animLib, animName, tostring(freeze), time)
    if animLib == 'GANGS' and animName == 'smkcig_prtl_F' then
        table.insert(anims, {id = playerId, time = 3.5, timer = os.clock(), animId = 610})
    elseif animLib == 'ped' and animName == 'gum_eat' then
        table.insert(anims, {id = playerId, time = 5.3, timer = os.clock(), animId = 1157})
    end
end

-- function sampev.onSendPlayerSync(data)
--     print(data.animationId, data.animationFlags)
-- end
 

^_^

Известный
50
2
Сделайте чтоб рыбий глаз плавно менял fov на 70 при прицеливании, а в обычном состоянии был 101.


Lua:
script_name('FishEyeEffect')
script_version_number(001)
script_author('Receiver')
script_url('https://vk.com/supreme1696')

local enabled = true
local locked = false

function main()
    repeat wait(0) until isSampAvailable()
 
    --[[_______________COMMANDS_______________]]--
    sampRegisterChatCommand('fisheye', function()
        enabled = not enabled
    end)

    while true do
        wait(0)
        if enabled then
            if isCurrentCharWeapon(PLAYER_PED, 34) and isKeyDown(2) then
                if not locked then
                    cameraSetLerpFov(70.0, 70.0, 1000, 1)
                    locked = true
                end
            else
                cameraSetLerpFov(101.0, 101.0, 1000, 1)
                locked = false
            end
        end
    end
end
 

Maslennica

Известный
1
0
Помогите подрихтовать скрипт на рендер PED'ов.
+ поиск по конкретному ID'у скина ped'а
+ ф-я активации/деактивации

ped_wh:
function main()
    repeat wait(0) until isSampAvailable()
    while true do wait(0)
        for _, value in ipairs(getAllChars()) do
            if value ~= PLAYER_PED and doesCharExist(value) then
                if isCharOnScreen(value) then
                    local x,y,z = getCharCoordinates(playerPed)
                    local posX,posY,posZ = getCharCoordinates(value)
                    local X,Y = convert3DCoordsToScreen(x, y, z)
                    local _X,_Y = convert3DCoordsToScreen(posX, posY, posZ)
                    renderDrawLine(X,Y,_X,_Y,2,-1)
                end
            end
        end
    end
end
 

SEYHMUS

Новичок
2
0
Я хочу, чтобы в этих кодах в качестве клавиши запуска и остановки использовалась клавиша Caps Lock, и чтобы при запуске и остановке внизу экрана ничего не отображалось. Я был бы очень рад, если бы вы могли отправить его мне таким образом, чтобы я мог отправить его напрямую Клео. Извините, мой русский не очень хорош.

cleo:
{$CLEO .cs}

0000: NOP
0001: wait 2000 ms
03A4: name_thread "$SPRINGFIELD_UGBASE"
03F0: enable_text_draw 1
0006: 31@ = 0

//Lab-41
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 121
004D: jump_if_false {Lab}-160
00D6: if
0039:   31@ == 0
004D: jump_if_false {Lab}-122
0AD1: show_formatted_text_highpriority "Aimbot ~g~enabled" time 1000
0006: 31@ = 1
0001: wait 200 ms
0002: jump {Lab}-160

//Lab-122
0AD1: show_formatted_text_highpriority "Aimbot ~r~disabled" time 1000
0006: 31@ = 0
0001: wait 200 ms

//Lab-160
00D6: if
0039:   31@ == 1
004D: jump_if_false {Lab}-273
00D6: if and
0AD2: 2@ = player $PLAYER_CHAR targeted_actor //IF and SET
82D8:   not actor $PLAYER_ACTOR current_weapon == 34
004D: jump_if_false {Lab}-224
0AB1: call_scm_func {Lab}-280 1 2@
0002: jump {Lab}-273

//Lab-224
00D6: if and
02D8:   actor $PLAYER_ACTOR current_weapon == 34
0AB1: call_scm_func {Lab}-1963 1 150.0 2@
004D: jump_if_false {Lab}-273
0AB1: call_scm_func {Lab}-280 1 2@

//Lab-273
0002: jump {Lab}-41

//Lab-280
0085: 2@ = 0@ // (int)
00D6: if and
056D:   actor 2@ defined
00E1:   player 0 pressed_key 6
004D: jump_if_false {Lab}-585
00D6: if and
8118:   not actor 2@ dead
02CB:   actor 2@ bounding_sphere_visible
004D: jump_if_false {Lab}-585
0A96: 6@ = actor 2@ struct
000A: 6@ += 68
0A8D: 3@ = read_memory 6@ size 4 virtual_protect 0
000A: 6@ += 4
0A8D: 4@ = read_memory 6@ size 4 virtual_protect 0
000A: 6@ += 4
0A8D: 5@ = read_memory 6@ size 4 virtual_protect 0
00A0: store_actor 2@ position_to 6@ 7@ 8@
0006: 10@ = 5
0006: 11@ = 5
005A: 10@ += 11@ // (int)
0093: 10@ = integer 10@ to_float
0007: 12@ = 17.0
0017: 12@ /= 360.0
006B: 3@ *= 12@ // (float)
006B: 4@ *= 12@ // (float)
006B: 5@ *= 12@ // (float)
006B: 3@ *= 10@ // (float)
006B: 4@ *= 10@ // (float)
006B: 5@ *= 10@ // (float)
005B: 6@ += 3@ // (float)
005B: 7@ += 4@ // (float)
005B: 8@ += 5@ // (float)
00D6: if
02D8:   actor $PLAYER_ACTOR current_weapon == 34
004D: jump_if_false {Lab}-563
0AB1: call_scm_func {Lab}-590 1 2@

//Lab-563
0AB1: call_scm_func {Lab}-968 4 2@ 6@ 7@ 8@

//Lab-585
0AB2: ret 0

//Lab-590
0007: 31@ = 6.0
0006: 29@ = 255
0006: 28@ = 55
0007: 27@ = 1.0
00D6: if
0021:   31@ > 8.0
004D: jump_if_false {Lab}-653
0006: 30@ = 1

//Lab-653
00D6: if
8031:   not  31@ >= 6.0
004D: jump_if_false {Lab}-681
0006: 30@ = 0

//Lab-681
00D6: if
0039:   30@ == 0
004D: jump_if_false {Lab}-709
000B: 31@ += 0.05

//Lab-709
00D6: if
0039:   30@ == 1
004D: jump_if_false {Lab}-737
000F: 31@ -= 0.05

//Lab-737
04C4: store_coords_to 1@ 2@ 3@ from_actor 0@ with_offset 0.0 0.0 0.0
0AB1: call_scm_func {Lab}-2356 3 1@ 2@ 3@ 4@ 5@
0087: 1@ = 4@ // (float)
005B: 1@ += 31@ // (float)
038E: draw_box_position 1@ 5@ size 27@ 8.0 RGBA 28@ 29@ 25 255
0087: 1@ = 4@ // (float)
0063: 1@ -= 31@ // (float)
038E: draw_box_position 1@ 5@ size 27@ 8.0 RGBA 28@ 29@ 25 255
0087: 1@ = 5@ // (float)
005B: 1@ += 31@ // (float)
038E: draw_box_position 4@ 1@ size 8.0 27@ RGBA 28@ 29@ 25 255
0087: 1@ = 5@ // (float)
0063: 1@ -= 31@ // (float)
038E: draw_box_position 4@ 1@ size 8.0 27@ RGBA 28@ 29@ 25 255
0AB2: ret 0

//Lab-968
0087: 4@ = 1@ // (float)
0087: 5@ = 2@ // (float)
0087: 6@ = 3@ // (float)
068D: get_camera_position_to 1@ 2@ 3@
04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
0063: 1@ -= 4@ // (float)
0063: 2@ -= 5@ // (float)
0096: make 1@ absolute_float
0096: make 2@ absolute_float
0087: 10@ = 1@ // (float)
0087: 11@ = 2@ // (float)
006B: 10@ *= 10@ // (float)
006B: 11@ *= 11@ // (float)
005B: 10@ += 11@ // (float)
01FB: 10@ = square_root 10@
0087: 11@ = 1@ // (float)
0087: 12@ = 10@ // (float)
0073: 11@ /= 12@ // (float)
0AA5: call 4327328 num_params 1 pop 1 11@
0AE9: pop_float 12@
0AA5: call 4775488 num_params 1 pop 1 11@
0AE9: pop_float 13@
00D6: if
0AB1: call_scm_func {Lab}-1863 0 16@
004D: jump_if_false {Lab}-1302
00D6: if
0AB1: call_scm_func {Lab}-1364 7 4@ 5@ 7@ 8@ 12@ 13@ 16@ 15@
004D: jump_if_false {Lab}-1302
00D6: if
0AB1: call_scm_func {Lab}-1307 6 4@ 5@ 6@ 7@ 8@ 9@
004D: jump_if_false {Lab}-1302
000B: 15@ += 0.0387
0A8C: write_memory 11989592 size 4 value 15@ virtual_protect 0

//Lab-1302
0AB2: ret 0

//Lab-1307
00D6: if
06BD:   no_obstacles_between 3@ 4@ 5@ and 0@ 1@ 2@ solid 1 car 0 actor 0 object 0 particle 0
004D: jump_if_false {Lab}-1357
0485:   return_true
0002: jump {Lab}-1359

//Lab-1357
059A:   return_false

//Lab-1359
0AB2: ret 0

//Lab-1364
00D6: if
0039:   6@ == 5
004D: jump_if_false {Lab}-1429
0007: 7@ = 0.011
0007: 8@ = 0.011
0007: 9@ = 1.5595
0007: 10@ = 1.582
0002: jump {Lab}-1599

//Lab-1429
00D6: if
0039:   6@ == 6
004D: jump_if_false {Lab}-1559
00D6: if
02D8:   actor $PLAYER_ACTOR current_weapon == 34
004D: jump_if_false {Lab}-1512
0007: 7@ = 0.039
0007: 8@ = 0.039
0007: 9@ = 1.532
0007: 10@ = 1.61
0002: jump {Lab}-1552

//Lab-1512
0007: 7@ = 0.02
0007: 8@ = 0.02
0007: 9@ = 1.5507
0007: 10@ = 1.5907

//Lab-1552
0002: jump {Lab}-1599

//Lab-1559
0007: 7@ = -0.003
0007: 8@ = -0.003
0007: 9@ = 1.572
0007: 10@ = 1.568

//Lab-1599
00D6: if and
0025:   2@ > 0@ // (float)
0025:   3@ > 1@ // (float)
004D: jump_if_false {Lab}-1642
0063: 5@ -= 8@ // (float)
0087: 15@ = 5@ // (float)

//Lab-1642
00D6: if and
0025:   2@ > 0@ // (float)
8035:   not  3@ >= 1@ // (float)
004D: jump_if_false {Lab}-1695
0013: 5@ *= -1.0
0063: 5@ -= 7@ // (float)
0087: 15@ = 5@ // (float)

//Lab-1695
00D6: if and
8035:   not  2@ >= 0@ // (float)
0025:   3@ > 1@ // (float)
004D: jump_if_false {Lab}-1738
005B: 4@ += 9@ // (float)
0087: 15@ = 4@ // (float)

//Lab-1738
00D6: if and
8035:   not  2@ >= 0@ // (float)
8035:   not  3@ >= 1@ // (float)
004D: jump_if_false {Lab}-1791
0013: 4@ *= -1.0
0063: 4@ -= 10@ // (float)
0087: 15@ = 4@ // (float)

//Lab-1791
0A8D: 11@ = read_memory 11989592 size 4 virtual_protect 0
0063: 11@ -= 15@ // (float)
00D6: if and
8031:   not  11@ >= 0.18
0021:   11@ > -0.18
004D: jump_if_false {Lab}-1853
0485:   return_true
0002: jump {Lab}-1855

//Lab-1853
059A:   return_false

//Lab-1855
0AB2: ret 1 15@

//Lab-1863
0A96: 0@ = actor $PLAYER_ACTOR struct
000A: 0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
00D6: if or
0039:   1@ == 2
0039:   1@ == 3
0039:   1@ == 4
0039:   1@ == 5
0039:   1@ == 6
0039:   1@ == 7
004D: jump_if_false {Lab}-1953
0485:   return_true
0002: jump {Lab}-1955

//Lab-1953
059A:   return_false

//Lab-1955
0AB2: ret 1 1@

//Lab-1963
0007: 28@ = 0.0

//Lab-1973
0A8D: 29@ = read_memory 12010640 size 4 virtual_protect 0
000A: 29@ += 4
0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
0006: 30@ = 0

//Lab-2013
0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
000A: 29@ += 1
00D6: if and
0029:   31@ >= 0
001B:   128 > 31@
004D: jump_if_false {Lab}-2299
005A: 31@ += 30@ // (int)
00D6: if
056D:   actor 31@ defined
004D: jump_if_false {Lab}-2299
00D6: if
803C:   not  $PLAYER_ACTOR == 31@ // (int)
004D: jump_if_false {Lab}-2299
04C4: store_coords_to 27@ 26@ 25@ from_actor 31@ with_offset 0.0 0.0 0.0
068D: get_camera_position_to 24@ 23@ 22@
00D6: if and
06BD:   no_obstacles_between 27@ 26@ 25@ and 24@ 23@ 22@ solid 1 car 0 actor 0 object 0 particle 0
80DF:   not actor 31@ driving
8118:   not actor 31@ dead
02CB:   actor 31@ bounding_sphere_visible
004D: jump_if_false {Lab}-2299
04C4: store_coords_to 10@ 11@ 12@ from_actor 31@ with_offset 0.0 0.0 0.0
0AB1: call_scm_func {Lab}-2356 3 10@ 11@ 12@ 13@ 14@
0509: 15@ = distance_between_XY 339.1 179.1 and_XY 13@ 14@
00D6: if
0035:   28@ >= 15@ // (float)
004D: jump_if_false {Lab}-2299
0AB2: ret 1 31@

//Lab-2299
000A: 30@ += 256
0019:   30@ > 35584
004D: jump_if_false {Lab}-2013
000B: 28@ += 8.0
001D:   28@ > 0@ // (int)
004D: jump_if_false {Lab}-1973
0AB2: ret 1 -1

//Lab-2356
0AC7: 14@ = var 0@ offset
0AC7: 15@ = var 3@ offset
0AC7: 16@ = var 6@ offset
0AC7: 17@ = var 9@ offset
0AA5: call 7392816 num_params 6 pop 6 0 0 17@ 16@ 15@ 14@
0007: 12@ = 640.0
0007: 13@ = 448.0
0A8D: 14@ = read_memory 12677188 size 4 virtual_protect 0
0A8D: 15@ = read_memory 12677192 size 4 virtual_protect 0
0093: 14@ = integer 14@ to_float
0093: 15@ = integer 15@ to_float
0073: 12@ /= 14@ // (float)
0073: 13@ /= 15@ // (float)
006B: 3@ *= 12@ // (float)
006B: 4@ *= 13@ // (float)
0AB2: ret 2 3@ 4@