крашит скрипт

Lance_Sterling

Известный
Автор темы
955
333
Версия MoonLoader
.026-beta
чо делать крашит скрипт с ошибкой
в логе
[23:52:16.810544] (error) gh.lua: cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'sampGetPlayerNickname'
E:\by.ryunosuke\moonloader\gh.lua:415: in function <E:\by.ryunosuke\moonloader\gh.lua:409>
[23:52:16.810544] (error) gh.lua: Script died due to an error. (1B3E5D24)
код
Код:
if imgui.Checkbox(u8'Убрать приписки платформ', tableOfNew.deleteplatforms) then
            mainIni.settings.deleteplatforms = tableOfNew.deleteplatforms.v
            inicfg.save(mainIni)
            if tableOfNew.deleteplatforms.v then
                lua_thread.create(function()
                    for k, v in ipairs(getAllChars()) do
                        wait(10)
                        if v ~= PLAYER_PED then
                            local id = select(2, sampGetPlayerIdByCharHandle(v))
                            local nick = sampGetPlayerNickname(id)
                            if nick:find('%[PC%]') then
                                table.insert(real_names, nick)
                                removePoopInNick(id, nick:gsub('%[PC%]', ''))
                            elseif nick:find('%[M%]') then
                                table.insert(real_names, nick)
                                removePoopInNick(id, nick:gsub('%[M%]', ''))
                            end
                        end
                    end
                end)
            else
                lua_thread.create(function()
                    for k, v in ipairs(getAllChars()) do
                        wait(10)
                        if v ~= PLAYER_PED then
                            local id = select(2, sampGetPlayerIdByCharHandle(v))
                            local nick = sampGetPlayerNickname(id)
                            for k, v in pairs(real_names) do
                                wait(10)
                                if v:gsub('%[PC%]', '') == nick then
                                    removePoopInNick(id, v)
                                elseif v:gsub('%[M%]', '') == nick then
                                    removePoopInNick(id, v)
                                end
                            end
                        end
                    end
                end)
            end
        end

без потока крашит игру вообще
и вообще с потоком скрипт какое то время работает а потом когда чекбоксы активирую пару раз может поработать а потом бац и краш
 

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,993
2,181
надеюсь правильно понял вопрос, если тебе надо искать ид чувака по нику из таблицы, то попробуй это
Lua:
-- в while true do
for _,v in pairs(List) do -- List - нужная таблица с никами
    local id = sampGetPlayerIdByNickname(v[1]) -- тут будет ид чувака из списка
    if id ~= nil and id ~= -1 then
        local res, handle = sampGetCharHandleBySampPlayerId(id)
        -- бла бла
    end
end

-- где-то в коде
function sampGetPlayerIdByNickname(nick)
    local _, myid = sampGetPlayerIdByCharHandle(playerPed)
    if tostring(nick) == sampGetPlayerNickname(myid) then return myid end
    for i = 0, sampGetMaxPlayerId() do if sampIsPlayerConnected(i) and sampGetPlayerNickname(i) == tostring(nick) then return i end end
end
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,762
2,585
надеюсь правильно понял вопрос, если тебе надо искать ид чувака по нику из таблицы, то попробуй это
Lua:
-- в while true do
for _,v in pairs(List) do -- List - нужная таблица с никами
    local id = sampGetPlayerIdByNickname(v[1]) -- тут будет ид чувака из списка
    if id ~= nil and id ~= -1 then
        local res, handle = sampGetCharHandleBySampPlayerId(id)
        -- бла бла
    end
end

-- где-то в коде
function sampGetPlayerIdByNickname(nick)
    local _, myid = sampGetPlayerIdByCharHandle(playerPed)
    if tostring(nick) == sampGetPlayerNickname(myid) then return myid end
    for i = 0, sampGetMaxPlayerId() do if sampIsPlayerConnected(i) and sampGetPlayerNickname(i) == tostring(nick) then return i end end
end
ipairs 😡
 
  • Вау
Реакции: MLycoris

Lance_Sterling

Известный
Автор темы
955
333
надеюсь правильно понял вопрос, если тебе надо искать ид чувака по нику из таблицы, то попробуй это
Lua:
-- в while true do
for _,v in pairs(List) do -- List - нужная таблица с никами
    local id = sampGetPlayerIdByNickname(v[1]) -- тут будет ид чувака из списка
    if id ~= nil and id ~= -1 then
        local res, handle = sampGetCharHandleBySampPlayerId(id)
        -- бла бла
    end
end

-- где-то в коде
function sampGetPlayerIdByNickname(nick)
    local _, myid = sampGetPlayerIdByCharHandle(playerPed)
    if tostring(nick) == sampGetPlayerNickname(myid) then return myid end
    for i = 0, sampGetMaxPlayerId() do if sampIsPlayerConnected(i) and sampGetPlayerNickname(i) == tostring(nick) then return i end end
end
Мне наоборот ник надо

Я ид получал только что бы ник получить
 
Последнее редактирование:

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,993
2,181
Мне наоборот ник надо

Я ид получал только что бы ник получить
тогда вот пара вариантов, если этим не помог, то придётся ждать кого-то умного
Lua:
for _,v in pairs(list) do
    local id = sampGetPlayerIdByNickname(v[1])
    sampAddChatMessage(v[1],-1) -- v[1] ник чувака
end

if sampIsPlayerConnected(arg) then -- тут без списка проверяем по ид ник чела
    local arg = sampGetPlayerNickname(arg)
end
 
  • Грустно
Реакции: Lance_Sterling

Lance_Sterling

Известный
Автор темы
955
333
тогда вот пара вариантов, если этим не помог, то придётся ждать кого-то умного
Lua:
for _,v in pairs(list) do
    local id = sampGetPlayerIdByNickname(v[1])
    sampAddChatMessage(v[1],-1) -- v[1] ник чувака
end

if sampIsPlayerConnected(arg) then -- тут без списка проверяем по ид ник чела
    local arg = sampGetPlayerNickname(arg)
end
Не совсем понял зачем лист то
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,762
2,585
тогда вот пара вариантов, если этим не помог, то придётся ждать кого-то умного
Lua:
for _,v in pairs(list) do
    local id = sampGetPlayerIdByNickname(v[1])
    sampAddChatMessage(v[1],-1) -- v[1] ник чувака
end

if sampIsPlayerConnected(arg) then -- тут без списка проверяем по ид ник чела
    local arg = sampGetPlayerNickname(arg)
end
В этом случае лучше юзать ipairs, т.к. с ключами ты никак не взаимодействуешь
 
  • Нравится
Реакции: MLycoris