как исправить баг в имгуи

Kegwineye.

Участник
Автор темы
478
20
короч, при нажатии чекбокса "Кости" они не отображаються. Выбираю линии, инфо о игроке все работает нажимаю "Кости" и все линии и информация пропадает а при закрытие окна мышь на экране

Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local activate = true

local checkinfobar = imgui.ImBool()
local checkdopinfobar = imgui.ImBool()
local themes = import "resource/imgui_themes.lua"
local window = imgui.ImBool(false)
local settings = {
    enabled = imgui.ImBool(false),
    line = imgui.ImBool(false),
    info = imgui.ImBool(false),
    call = imgui.ImBool(false),
    GodMode = imgui.ImBool(false),
    Bone = imgui.ImBool(false),
    BoneBox = imgui.ImBool(false),
    gunskill = imgui.ImBool(false)
}

local mem = require "memory"
local ffi = require "ffi"
local getBonePosition = ffi.cast("int (__thiscall*)(void*, float*, int, bool)", 0x5E4280)
optionsCommand = "skeletal"

local font = renderCreateFont('Arial Black', 10, 5)

function main()
    while not isSampAvailable() do wait(200) end

-- открытие меню
sampRegisterChatCommand('ch', function() window.v = not window.v end)
    imgui.Process = false
    window.v = true  --show window
                   imgui.SwitchContext()
    themes.SwitchColorTheme(5)
    activate = not activate
    if activate then
        setCharProofs(playerPed, true, true, true, true, true)
        writeMemory(0x96916E, 1, 1, false)
    else
        setCharProofs(playerPed, false, false, false, false, false)
        writeMemory(0x96916E, 1, 0, false)
    end
    while true do
        wait(0)
        imgui.Process = window.v


        if settings.Bone.v then
            if defaultState then
                defaultState = false
                nameTagOff()
                while true do wait(100) end
            else
                defaultState = true;
                if whVisible ~= "bones" and not nameTag then nameTagOn() end
                while true do wait(100) end
            end
        end
        if settings.GodMode.v then
                setCharProofs(playerPed, true, true, true, true, true)
                writeMemory(0x96916E, 1, 1, false)
            else
                setCharProofs(playerPed, false, false, false, false, false)
                writeMemory(0x96916E, 1, 0, false)
            end
        if settings.enabled.v then
            for k, v in pairs(getAllChars()) do
                local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
                local x, y, z = getCharCoordinates(v)
                local r_myX, r_myY = convert3DCoordsToScreen(myX, myY, myZ)
                local r_X, r_Y = convert3DCoordsToScreen(x, y, z)
                if settings.line.v then
                    if v ~= PLAYER_PED and isCharOnScreen(v) then
                        renderDrawLine(r_myX, r_myY, r_X, r_Y, 3, 0xFFA9A9A9)
                    end
                end
                if settings.info.v then
                    if v ~= PLAYER_PED and isCharOnScreen(v) then
                        _, id = sampGetPlayerIdByCharHandle(v)
                        renderFontDrawText(font, '\n{C0C0C0}Nick: {FF4500}' ..sampGetPlayerNickname(id).. '  {C0C0C0}[ID]: '..id..'\n{FF0000}HealthPoint: {FFFFFF}'..sampGetPlayerHealth(id)..'\n{4169E1}Armour: {FFFFFF}'..getCharArmour(v), r_X, r_Y, 0xFFFFFFFF, 0x90000000)
                    end
                end
            end
        end
    end
end

if settings.gunskill.v then
           registerIntStat(70, 1000.0)
        registerIntStat(71, 1000.0)
        registerIntStat(72, 1000.0)
        registerIntStat(76, 1000.0)
       registerIntStat(77, 1000.0)
      registerIntStat(78, 1000.0)
    registerIntStat(79, 1000.0)
end

function getBodyPartCoordinates(id, handle)
  local pedptr = getCharPointer(handle)
  local vec = ffi.new("float[3]")
  getBonePosition(ffi.cast("void*", pedptr), vec, id, true)
  return vec[0], vec[1], vec[2]
end

function nameTagOn()
    local pStSet = sampGetServerSettingsPtr();
    NTdist = mem.getfloat(pStSet + 39)
    NTwalls = mem.getint8(pStSet + 47)
    NTshow = mem.getint8(pStSet + 56)
    mem.setfloat(pStSet + 39, 1488.0)
    mem.setint8(pStSet + 47, 0)
    mem.setint8(pStSet + 56, 1)
    nameTag = true
end

function nameTagOff()
    local pStSet = sampGetServerSettingsPtr();
    mem.setfloat(pStSet + 39, NTdist)
    mem.setint8(pStSet + 47, NTwalls)
    mem.setint8(pStSet + 56, NTshow)
    nameTag = false
end

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

function explode_argb(argb)
  local a = bit.band(bit.rshift(argb, 24), 0xFF)
  local r = bit.band(bit.rshift(argb, 16), 0xFF)
  local g = bit.band(bit.rshift(argb, 8), 0xFF)
  local b = bit.band(argb, 0xFF)
  return a, r, g, b
end


function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowPos(imgui.ImVec2(650.0, 250.0), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(608.0, 370.0), imgui.Cond.FirstUseEver)
        imgui.Begin('Multi-Cheat Menu | By Han', window)
        imgui.BeginChild("Osnova", imgui.ImVec2(600, 337), true)
        if imgui.CollapsingHeader('WallHack Settings') then
        imgui.Checkbox(u8'Включить WallHack', settings.enabled)
        imgui.Checkbox(u8'Линия к игрокам', settings.line)
        imgui.SameLine()
        imgui.Checkbox(u8'Информация о игроках', settings.info)
             imgui.Checkbox(u8"Кости игрока", settings.Bone)
             imgui.SameLine()
     imgui.Checkbox(u8"Бокс на игроке", settings.BoneBox)
 end
     imgui.Separator()
             if imgui.CollapsingHeader(u8'Полезные Функции') then
             imgui.Checkbox(u8"Бессмертие", settings.GodMode)
             imgui.Checkbox(u8"Фулл скиллы оружия", settings.gunskill)
        end
             imgui.Separator()
     imgui.EndChild()
        imgui.End()
    end
end

cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'sampGetPlayerNickname'

[ML] (error) mulri-cheat-menu.lua: cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'sampGetPlayerNickname'
...ames\GTA-SA\Babetape GTA\moonloader\mulri-cheat-menu.lua:68: in function <...ames\GTA-SA\Babetape GTA\moonloader\mulri-cheat-menu.lua:26>
[ML] (error) mulri-cheat-menu.lua: Script died due to an error. (0BDBFDBC)

@chapo
 

Вложения

  • GTA_SA_MP 20.11.2021 22_52_17.png
    GTA_SA_MP 20.11.2021 22_52_17.png
    2.8 MB · Просмотры: 16
Последнее редактирование: