LUA, вечный прицел, как его сделать нормальным? (пофиксить).

Adriano_Martini

Активный
Автор темы
145
39
Мне очень понравился этот прицел, это простая точка и при наведении на игрока она становится красным, так вот это вечный прицел, как сделать так чтобы он не был вечным? а работал лишь тогда когда я зажимаю ПКМ.

скажите мне пж если там стиллеры, с паблика качал, код открытый, прогнал через AVP, но всё таки есть сомнения, хз почему.
Вот собственно говоря сам код:

Lua:
require("lib.moonloader")
require("lib.sampfuncs")
local vkeys = require("vkeys")
local memory = require("memory")
local inicfg = require("inicfg")
local config_direct = "infinity_crosshair"
local iniconfig = inicfg.load(nil, config_direct)
if iniconfig == nil then
    ini = {
        main = {
            customCrosshairActive = true,
            showCrosshairInstantly = true,
            reactToVehicle = false,
            gameCrosshair = false,
            outOfAiming = false,
            ?osshairSizeX = 4.0,
            crosshairSizeY = 4.0,
        }
    }
    inicfg.save(ini, config_direct)
    iniconfig = inicfg.load(nil, config_direct)
end

local customCrosshairActive = iniconfig["main"]["customCrosshairActive"]
local gameCrosshair = iniconfig["main"]["disableGameCrosshair"]
local showCrosshairInstantly = iniconfig["main"]["showCrosshairInstantly"]
local reactToVehicle = iniconfig["main"]["reactToVehicle"]
local outOfAiming = iniconfig["main"]["outOfAiming"]
local ?osshairSizeX = iniconfig["main"]["?osshairSizeX"]
local crosshairSizeY = iniconfig["main"]["crosshairSizeY"]

function join_argb(a, r, g, b)
    local argb = b
    argb = bit.bor(argb, bit.lshift(g, 8))
    argb = bit.bor(argb, bit.lshift(r, 16))
    argb = bit.bor(argb, bit.lshift(a, 24))
    return argb
end

function set_crosshair_render_state(param)
    crosshair = {5825260,5825281,5825270,5825265,5825471,5825498,5825489,5825480,5825568,5825587,5825578,5825573,5825633,5825660,5825651,5825638,5825638,5825159,5825180,5825175,5825170}
    for i, val in ipairs(crosshair) do
        memory.write(val, param and 255 or 0, 1, true)
    end
end

function main()
    while not isSampAvailable() do wait(100) end
    local crosshairPos = {convertGameScreenCoordsToWindowScreenCoords(339.1, 179.1)}
    if customCrosshairActive then
        set_crosshair_render_state(gameCrosshair and true or false)
    end
    while customCrosshairActive do
        wait(0)
        local cam = {getActiveCameraCoordinates()}
        local aim = {convertScreenCoordsToWorld3D(crosshairPos[1], crosshairPos[2], 3000)}
        local result, colPoint = processLineOfSight(cam[1], cam[2], cam[3], aim[1], aim[2], aim[3], false, reactToVehicle and true or false, true, false, false, false, false, false)
        if result then
            if isLineOfSightClear(cam[1], cam[2], cam[3], colPoint.pos[1], colPoint.pos[2], colPoint.pos[3], true, reactToVehicle and false or true, false, true, true) then
                color = true
                if isCharInCar(PLAYER_PED, getVehiclePointerHandle(colPoint.entity)) then
                    color = false
                end
                if PLAYER_PED == getCharPointerHandle(colPoint.entity) then
                    color = false
                end
            end
        else
            color = false
        end
        if outOfAiming == false then
            if showCrosshairInstantly == true or (showCrosshairInstantly == true and isKeyDown(vkeys.VK_RBUTTON)) then
                renderDrawPolygon(crosshairPos[1], crosshairPos[2], ?osshairSizeX, crosshairSizeY, 48, 0, color and join_argb(255, 255, 21, 0) or -1)
            end
        else
            if not isKeyDown(vkeys.VK_RBUTTON) then
                renderDrawPolygon(crosshairPos[1], crosshairPos[2], ?osshairSizeX, crosshairSizeY, 48, 0, color and join_argb(255, 255, 21, 0) or -1)
            end
        end
    end
end
 

Adriano_Martini

Активный
Автор темы
145
39
В чём проблема полезть в конфиг и изменить значение?)
Полез в конфиг, изменил значение "showCrosshairInstantly" на "false", по итогу прицел вообще пропал, как LUA прицел, так и прицел из hud.txd, не понимаю почему это так, потому-что когда стоит на "true", то прицел показывается постоянно, даже когда не навожу, а при "false" прицел вообще из игры пропадает даже когда навожусь, короче непонятно ничего...
 

P0M61K

Активный
264
54
Полез в конфиг, изменил значение "showCrosshairInstantly" на "false", по итогу прицел вообще пропал, как LUA прицел, так и прицел из hud.txd, не понимаю почему это так, потому-что когда стоит на "true", то прицел показывается постоянно, даже когда не навожу, а при "false" прицел вообще из игры пропадает даже когда навожусь, короче непонятно ничего...
так собственно я удивился тому что оказывается за оффтопом следят. Собственно ближе к делу. Я писал в удалённом сообщении что проверю че не так. И я обнаружил кучу говнокода который даже я вроде бы как не проверял. И собственно могу отмазаться тем что я кодил в 3 часа ночи. Этот говнокод по идее должен быть нормальным. Настраивается через конфиг.
Lua:
require("lib.moonloader")
require("lib.sampfuncs")
local vkeys = require("vkeys")
local memory = require("memory")
local inicfg = require("inicfg")
local config_direct = "infinity_crosshair"
local iniconfig = inicfg.load(nil, config_direct)
if iniconfig == nil then
    ini = {
        main = {
            customCrosshairActive = true,
            showCrosshairInstantly = true,
            reactToVehicle = false,
            gameCrosshair = false,
            outOfAiming = false,
            сrosshairSizeX = 4.0,
            crosshairSizeY = 4.0,
        }
    }
    inicfg.save(ini, config_direct)
    iniconfig = inicfg.load(nil, config_direct)
end

local customCrosshairActive = iniconfig["main"]["customCrosshairActive"]
local gameCrosshair = iniconfig["main"]["disableGameCrosshair"]
local showCrosshairInstantly = iniconfig["main"]["showCrosshairInstantly"]
local reactToVehicle = iniconfig["main"]["reactToVehicle"]
local outOfAiming = iniconfig["main"]["outOfAiming"]
local сrosshairSizeX = iniconfig["main"]["сrosshairSizeX"]
local crosshairSizeY = iniconfig["main"]["crosshairSizeY"]

function join_argb(a, r, g, b)
    local argb = b
    argb = bit.bor(argb, bit.lshift(g, 8))
    argb = bit.bor(argb, bit.lshift(r, 16))
    argb = bit.bor(argb, bit.lshift(a, 24))
    return argb
end

function set_crosshair_render_state(param)
    crosshair = {5825260,5825281,5825270,5825265,5825471,5825498,5825489,5825480,5825568,5825587,5825578,5825573,5825633,5825660,5825651,5825638,5825638,5825159,5825180,5825175,5825170}
    for i, val in ipairs(crosshair) do
        memory.write(val, param and 255 or 0, 1, true)
    end
end

function main()
    while not isSampAvailable() do wait(100) end
    local crosshairPos = {convertGameScreenCoordsToWindowScreenCoords(339.1, 179.1)}
    if customCrosshairActive then
        set_crosshair_render_state(gameCrosshair and true or false)
    end
    local show
    while customCrosshairActive do
        wait(0)
        local cam = {getActiveCameraCoordinates()}
        local aim = {convertScreenCoordsToWorld3D(crosshairPos[1], crosshairPos[2], 3000)}
        local result, colPoint = processLineOfSight(cam[1], cam[2], cam[3], aim[1], aim[2], aim[3], false, reactToVehicle and true or false, true, false, false, false, false, false)
        if result then
            if isLineOfSightClear(cam[1], cam[2], cam[3], colPoint.pos[1], colPoint.pos[2], colPoint.pos[3], true, reactToVehicle and false or true, false, true, true) then
                color = true
                if isCharInCar(PLAYER_PED, getVehiclePointerHandle(colPoint.entity)) then
                    color = false
                end
                if PLAYER_PED == getCharPointerHandle(colPoint.entity) then
                    color = false
                end
            end
        else
            color = false
        end
        if outOfAiming == true then
            show = true
        else
            if showCrosshairInstantly == true then
                if isKeyDown(vkeys.VK_RBUTTON) then
                    show = true
                else
                    show = false
                end
            else
                if isKeyDown(vkeys.VK_RBUTTON) then
                    if isKeyJustPressed(vkeys.VK_RBUTTON) then
                        wait(500)
                        show = true
                    end
                else
                    show = false
                end
            end
        end
        if show == true then renderDrawPolygon(crosshairPos[1], crosshairPos[2], сrosshairSizeX, crosshairSizeY, 48, 0, color and join_argb(255, 255, 21, 0) or -1) end
    end
end
--ps да кстати я его истинный автор :) и я и запостил его в группу токо тсс... а то ещё узнают что я написал говнокод потом хейтить будут

а да там ищо надо фиксить отстсвите прицела на других оружиях на которых он не стандартный но может я сделаю кастомный и на них но это не факт
 
Последнее редактирование: