В чем ошибка

Kirillka_

Новичок
Автор темы
20
10
Версия MoonLoader
.026-beta
Не понимаю, в чем ошибка
Lua:
require "lib.moonloader"
local key = require 'vkeys'
local PED = getAllChars()
local encoding = require 'encoding'
local imgui = require 'imgui'
local inicfg = require 'inicfg'
local main_color = 0x5A90CE
local main_color_text = "{5A90CE}"
local tag = "{5A90CE}[deject]:"
u8 = encoding.UTF8
encoding.default = 'CP1251'

local a = {
    id = "-",
    nick = ""
}

local X, Y, Z = getCharCoordinates(playerPed)
local id1 = "-"
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage (tag .. "{FFFFFF}я работаю", -1)
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)
    local result, target = getCharPlayerIsTargeting(PED)
    while true do
        wait(0)
    if isKeyJustPressed(18,50) and not sampIsChatInputActive() and not sampIsDialogActive() and not isPauseMenuActive() and not isSampfuncsConsoleActive() then
        if a.id ~= "-" then
                sampSendChat ("/deject " .. a.id, -1)
                wait(1000)
                sampSendChat ("/me Разбил окно машины напротив правой рукой и выкинул из нее ".. a.nick, -1)
                a.id = "-"
            end
        end
if isKeyJustPressed(18) and not sampIsChatInputActive() and not sampIsDialogActive() and not isPauseMenuActive() and not isSampfuncsConsoleActive() then
for _, v in pairs(PED) do
    local pX, pY, pZ = getCharCoordinates(playerPed)
    local oX, oY, oZ = getCharCoordinates(PED)
        if getDistanceBetweenCoords3d(pX, pY, pZ, oX, oY, oZ) <= 5 then
            local bool1 = isCharInAnyCar(PED)
                if bool1 then
                    local result, id1 = sampGetPlayerIdByCharHandle(v)
                    a.nick = sampGetPlayerNickname(a.id)
                    end
                end
            end
        end
    end 
end




[ML] (error) deject: opcode '00A0' call caused an unhandled exception


я беру все ID в зоне стрима, отсекаю все, кроме тех кто на расстоянии 5 метров и меньше, сравниваю оставшиеся в машине или нет, получаю ID персонаж в машине(желательно водителя) и выкидываю из авто, как то так должно работать
 
Последнее редактирование:

Adrian G.

Известный
Проверенный
521
453
Начну с того, что куча лишнего в скрипте, сложно разобрать.
Функция getAllChars() должна быть в бесконечном цикле и получать педов постоянно. Указав её в начале скрипта, она сработает один раз, хотя игра ещё даже не загрузится. Так же и с getCharCoordinates(playerPed), твой пед ещё не появился, а функция уже отработала, вот и ошибка.

Дальше, в for в getCharCoordinates() и isCharInAnyCar() ты всунул массив целиком вместо переменной цикла, нужно совать в них переменную v.

1634555763262.png

Эта функция принимает один аргумент и в шестнадцатеричном, а не в десятичном представлении. Коды клавиш можешь чекнуть в lib/vkeys.lua(он у тебя кстати загружен в начале скрипта, но ты его не используешь почему-то, не говорю уже о имгуи и либе кодировки).
1634556399797.png

С массивом "a" ничего не понял. У тебя он не перезаписывается никак, а в функциях используется, тоже будут ошибки.




Я бы расписал по-подробней ещё что-нибудь, например о том, что необязательно использовать либу vkeys, когда у тебя загружен lib.moonloader или о том, что не нужно писать -1 в sampSendChat, но я правда устал вглядываясь в код.
 

Kirillka_

Новичок
Автор темы
20
10
Начну с того, что куча лишнего в скрипте, сложно разобрать.
Функция getAllChars() должна быть в бесконечном цикле и получать педов постоянно. Указав её в начале скрипта, она сработает один раз, хотя игра ещё даже не загрузится. Так же и с getCharCoordinates(playerPed), твой пед ещё не появился, а функция уже отработала, вот и ошибка.

Дальше, в for в getCharCoordinates() и isCharInAnyCar() ты всунул массив целиком вместо переменной цикла, нужно совать в них переменную v.

Посмотреть вложение 118291
Эта функция принимает один аргумент и в шестнадцатеричном, а не в десятичном представлении. Коды клавиш можешь чекнуть в lib/vkeys.lua(он у тебя кстати загружен в начале скрипта, но ты его не используешь почему-то, не говорю уже о имгуи и либе кодировки).
Посмотреть вложение 118292
С массивом "a" ничего не понял. У тебя он не перезаписывается никак, а в функциях используется, тоже будут ошибки.




Я бы расписал по-подробней ещё что-нибудь, например о том, что необязательно использовать либу vkeys, когда у тебя загружен lib.moonloader или о том, что не нужно писать -1 в sampSendChat, но я правда устал вглядываясь в код.
Насчет getAllChars(), ее в бесконеч. цикл нет смысла пихать ибо функция должна вызываться только при нажатии клавиши, да я не туда ее пихнул, не заметил. Тоже самое и getCharCoordinates(playerPed). vkeys, имгуи и кодировку я всегда подрубаю, так сказать начальный шаг при создании, сначала делаю рабочий одно костыльный скрипт и дописываю к нему имгуи. Массив "a" используется при вводе команде /deject и отыгровки в /me (никнейм), ошибок раньше с этим не было, но ладно. Про то, что vkeys можно не подрубать когда загружены либы не знал, -1 в конце sampSendChat пишу потому что стоит timestamp и время красится в черное.
 

Adrian G.

Известный
Проверенный
521
453
-1 в конце sampSendChat пишу потому что стоит timestamp и время красится в черное.
Думаю ты перепутал с sampAddChatMessage(), sampSendChat() совсем другая функция и работает по-другому.