Помогите с получением айдишникa.

cort

Активный
Автор темы
283
89
Версия MoonLoader
.026-beta
всем привет, решил сделать меню взаемодействий, а скрипт крашит.


Lua:
function main()
    while not isSampAvailable() do wait(200) end
    wait(1000)
    sampAddChatMessage("{00FF00}[Leader Tools]{ffffff} - Успешно загружен! ", -1)
    sampAddChatMessage("{00FF00}[Leader Tools]{ffffff} - Автор: Cort_Quwin", -1)

    sampRegisterChatCommand("lt", cmd_start)

    handle, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    imgui.Process = false

    while true do
        wait(0)

        local result, id = sampGetPlayerIdOnTargetKey(VK_MENU)
        if result then
            sampAddChatMessage('{00FF00}[Leader Tools]{ffffff} - Выбран игрок: {AEBD38}'..sampGetPlayerNickname(id)..' {598234}['..id..']', -1)
            target.v = not target.v
            imgui.Process = target.v
        end

    end
end

function sampGetPlayerIdOnTargetKey(key)
    local result, ped = getCharPlayerIsTargeting(PLAYER_HANDLE)
    if result then
        if isKeyJustPressed(key) then
            return sampGetPlayerIdByCharHandle(ped)
        end
    end
    return false
end

Вот маин и после него нужная функция.


Lua:
    if target.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 235 -- WINDOW SIZE (37)
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"Меню взаемодействий", nil, imgui.WindowFlags.NoResize)
        imgui.Separator()
        if imgui.Button(u8'Повысить', imgui.ImVec2(65, 30)) then
            sampSetChatInputText('/setrank '.. ped)       
        end
        imgui.End()
    end

ВОт в ondrawe frame. Как только жму ПОвысить то скрипт крашит, раньше оно писало мой айди, но мне нужно айди чела.
 

Sergey_Turner

Участник
102
7
На сколько я понял, тебе нужно вставить получение id`шника таргета непосредственно туда, где он и будет использоваться.
OnDrawFrame:
   if target.v then
        local _, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- Это
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 235 -- WINDOW SIZE (37)
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"Меню взаемодействий", nil, imgui.WindowFlags.NoResize)
        imgui.Separator()
        if imgui.Button(u8'Повысить', imgui.ImVec2(65, 30)) then
            sampSetChatInputText('/setrank '.. ped)    
        end
        imgui.End()
    end
 
  • Нравится
Реакции: cort

Dmitriy Makarov

25.05.2021
Проверенный
2,500
1,130
Если вариант выше не сработает, попробуй как тут сделать.
 
  • Нравится
Реакции: cort

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,762
2,586
всем привет, решил сделать меню взаемодействий, а скрипт крашит.


Lua:
function main()
    while not isSampAvailable() do wait(200) end
    wait(1000)
    sampAddChatMessage("{00FF00}[Leader Tools]{ffffff} - Успешно загружен! ", -1)
    sampAddChatMessage("{00FF00}[Leader Tools]{ffffff} - Автор: Cort_Quwin", -1)

    sampRegisterChatCommand("lt", cmd_start)

    handle, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    imgui.Process = false

    while true do
        wait(0)

        local result, id = sampGetPlayerIdOnTargetKey(VK_MENU)
        if result then
            sampAddChatMessage('{00FF00}[Leader Tools]{ffffff} - Выбран игрок: {AEBD38}'..sampGetPlayerNickname(id)..' {598234}['..id..']', -1)
            target.v = not target.v
            imgui.Process = target.v
        end

    end
end

function sampGetPlayerIdOnTargetKey(key)
    local result, ped = getCharPlayerIsTargeting(PLAYER_HANDLE)
    if result then
        if isKeyJustPressed(key) then
            return sampGetPlayerIdByCharHandle(ped)
        end
    end
    return false
end

Вот маин и после него нужная функция.


Lua:
    if target.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 235 -- WINDOW SIZE (37)
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"Меню взаемодействий", nil, imgui.WindowFlags.NoResize)
        imgui.Separator()
        if imgui.Button(u8'Повысить', imgui.ImVec2(65, 30)) then
            sampSetChatInputText('/setrank '.. ped)      
        end
        imgui.End()
    end

ВОт в ondrawe frame. Как только жму ПОвысить то скрипт крашит, раньше оно писало мой айди, но мне нужно айди чела.
id:
-- в function main()
sampRegisterChatCommand("chekid", function(id) -- регистрация команды, в которой аргумент это id плеера

    local playerID = id -- записываешь аргумент в переменную.

end)