Что с моим кодом не так.

Stomi

Новичок
Автор темы
15
2
Версия MoonLoader
.026-beta
Прошу помогите, я кнч понимаю, что тупее этого кода нету, но помогите пж. Что там не так?
Lua:
require "lib.moonloader"
require "lib.samp.events"

local sampev = require "lib.samp.events"
local keys = require "vkeys"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    local x, y, z = getCharCoordinates(playerPed)
    local d = getDistanceBetweenCoords3d(px, py, pz, x, y, z)
        if d <= step then
            else
            local dx, dy, dz = px - x, py - y, pz - z
            x = x + step / d * dx
            y = y + step / d * dy
            z = z + step / d * dz
            setCharCoordinates(PLAYER_PED, x, y, z)
            setCharCoordinates(PLAYER_PED, px, py, pz)
                if isCharInArea3d(PLAYER_PED, 2476, -1424, 28, 2476, -1424, 28, true) and not sampIsChatInputActive() then
                setVirtualKeyDown(VK_MENU, true)
                wait(300)
                setVirtualKeyDown(VK_MENU, false)
                wait(300)
                sampSendDialogResponse(7971, 1, 4, false)
                wait(300)
                sampSendDialogResponse(7972, 1, 1, false)
                sampCloseCurrentDialogWithButton(1)
            end
        end

function isKeyCheckAvailable()
    if not isSampLoaded() then
        return true
    end
    if not isSampfuncsLoaded() then
        return not sampIsChatInputActive() and not sampIsDialogActive()
    end
    return not sampIsChatInputActive() and not sampIsDialogActive() and not isSampfuncsConsoleActive()
end
 

meowprd

Тот самый Котовский
Проверенный
1,299
730
wait(-1) в main забыл
тут не wait(-1), а бесконечный цикл должен быть.
проверки выполнятся один раз и все?
плюс потеряны end и ненужные else в центре кода.

Lua:
require "lib.moonloader"
require "lib.samp.events"

local sampev = require "lib.samp.events"
local keys = require "vkeys"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    while true do
        wait(0)
        local x, y, z = getCharCoordinates(playerPed)
        local d = getDistanceBetweenCoords3d(px, py, pz, x, y, z)
        if d <= step then
            local dx, dy, dz = px - x, py - y, pz - z
            x = x + step / d * dx
            y = y + step / d * dy
            z = z + step / d * dz
            setCharCoordinates(PLAYER_PED, x, y, z)
            setCharCoordinates(PLAYER_PED, px, py, pz)
            if isCharInArea3d(PLAYER_PED, 2476, -1424, 28, 2476, -1424, 28, true) and not sampIsChatInputActive() then
                setVirtualKeyDown(VK_MENU, true)
                wait(300)
                setVirtualKeyDown(VK_MENU, false)
                wait(300)
                sampSendDialogResponse(7971, 1, 4, false)
                wait(300)
                sampSendDialogResponse(7972, 1, 1, false)
                sampCloseCurrentDialogWithButton(1)
            end
        end
    end
end

function isKeyCheckAvailable()
    if not isSampLoaded() then
        return true
    end
    if not isSampfuncsLoaded() then
        return not sampIsChatInputActive() and not sampIsDialogActive()
    end
    return not sampIsChatInputActive() and not sampIsDialogActive() and not isSampfuncsConsoleActive()
end
 
  • Нравится
Реакции: Stomi

meowprd

Тот самый Котовский
Проверенный
1,299
730
Однаразово

Чот не робит
Тыкай
мб это неправильно?
я вообще не понимаю что твой скрипт должен делать)
у тебя в коде проверка на область внутри которой персонаж и действия с клавишами, мб дело в них
если там есть квестовый персонаж (а на нем 3d текст), то проще получить его координаты (или 3д текста) и проверять дистанцию уже до них, так будет лучше
 
  • Нравится
Реакции: Stomi

Stomi

Новичок
Автор темы
15
2
я вообще не понимаю что твой скрипт должен делать)
Вообще по сути хотел, чтобы когда перс оказываеться на нужных мне коордах будет нажматься алт и подбираться квест
если там есть квестовый персонаж (а на нем 3d текст), то проще получить его координаты (или 3д текста) и проверять дистанцию уже до них, так будет лучше
Ты имеешь ввиду типо этого, только чот этот код у меня тоже не робит. Хотя в консоле всё хорошо.
Lua:
require "lib.moonloader"
require "lib.samp.events"

local sampev = require "lib.samp.events"
local keys = require "vkeys"
local pos = 1

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    while true do wait(0)
        local x, y, z = getCharCoordinates(PLAYER_PED)
        local onobj, vx, vy, vz = false
            for id = 0, 2048 do
                if sampIs3dTextDefined(id) then
                    local string, color, posX, posY, posZ = sampGet3dTextInfoById(id)
                    if string:find("Томас") then
                        vx, vy, vz = posX, posY, posZ
                        if getDistanceBetweenCoords3d(x, y, z, vx, vy, vz) < 3 then
                            onobj = true
                        break
                    end
                end
            end
        end
            if onobj then
            setVirtualKeyDown(VK_MENU, true)
            wait(300)
            setVirtualKeyDown(VK_MENU, false)
            wait(300)
            sampSendDialogResponse(7971, 1, 4, false)
            wait(300)
            sampSendDialogResponse(7972, 1, 1, false)
            sampCloseCurrentDialogWithButton(1)
        end
    end
end

function isKeyCheckAvailable()
    if not isSampLoaded() then
        return true
    end
    if not isSampfuncsLoaded() then
        return not sampIsChatInputActive() and not sampIsDialogActive()
    end
    return not sampIsChatInputActive() and not sampIsDialogActive() and not isSampfuncsConsoleActive()
end
Я с лёгкостью могу поставить активацию на клавишу, только это мне на надо. Мне надо релизовать, чтобы активировалось через проверку.
 
Последнее редактирование: