Окна имгуи в /re, как сделать?

Mico

Активный
Автор темы
246
46
Версия MoonLoader
.026-beta
Приветствую, я у многих спрашивал, никто не дал точный ответ. Я хочу сделать окно имгуи в реконе, допустим /re 56, и сразу появляются окна с наказаниями, статистикой и ещё кнопочки, ну стандартный тулс к примеру. Можете подсказать? Знаю можно в тулсах полазить, но в них не разберёшься полностью, та и не поймёшь смысл.
 

Mico

Активный
Автор темы
246
46
Срабатывает при переключении режима наблюдателя.
true - наблюдатель
false - выход из наблюдателя
Lua:
function samp.onTogglePlayerSpectating(state)
    --code
end
Вроде бы понял, а вроде бы нет :D
Только что в code писать? Мне
тоже самое кидали, и даже не объяснили, я сделал как понял, создал окно, но только окно открывалось и переходило в /re, а выйти не мог. Или же просто писaл /re оно открывалось. Пытался сделать кнопку, чтобы по иду человека, за которым слежу, можно было посмотреть стату, итог крашилось все.
 

Sana_Minotazaki

Участник
75
2
Срабатывает при переключении режима наблюдателя.
true - наблюдатель
false - выход из наблюдателя
Lua:
function samp.onTogglePlayerSpectating(state)
    --code
end
Он хочет заменить диалог серверный на imgui
 

nomio

Известный
551
208
Приветствую, я у многих спрашивал, никто не дал точный ответ. Я хочу сделать окно имгуи в реконе, допустим /re 56, и сразу появляются окна с наказаниями, статистикой и ещё кнопочки, ну стандартный тулс к примеру. Можете подсказать? Знаю можно в тулсах полазить, но в них не разберёшься полностью, та и не поймёшь смысл.
По сути эти "кнопочки" от аризоны например,это тексдравы вроде,можешь их просто удалять и рисовать имуги.Можешь чекать находишься ли ты щас в спеке и потом уже рисовать имуги,можно как нуб чекать текстдравы и удалять их и потом рисовать имуги.Все-таки что сложного?
 

Fomikus

Известный
Проверенный
474
343
Приветствую, я у многих спрашивал, никто не дал точный ответ. Я хочу сделать окно имгуи в реконе, допустим /re 56, и сразу появляются окна с наказаниями, статистикой и ещё кнопочки, ну стандартный тулс к примеру. Можете подсказать? Знаю можно в тулсах полазить, но в них не разберёшься полностью, та и не поймёшь смысл.
Как-то так?
Lua:
local samp = require 'lib.samp.events'
local imgui = require "imgui"

local current_player = -1
local spec_tools = imgui.ImBool(false)

function samp.onTogglePlayerSpectating(state)
	spec_tools.v = state
	if not state then 
		current_player = -1
	end
end

function samp.onSpectatePlayer(id, type)
	current_player = id
end

function imgui.OnDrawFrame()
	if spec_tools.v then
		imgui.SetNextWindowSize(imgui.ImVec2(400, 150), spec_tools, imgui.Cond.FirstUseEver)
		if not window_pos then
			ScreenX, ScreenY = getScreenResolution()
			imgui.SetNextWindowPos(imgui.ImVec2(ScreenX / 2 , ScreenY / 5), imgui.Cond.FirsUseEver, imgui.ImVec2(0.5, 0.5))
			window_pos = true
		end
		imgui.Begin('Spec window', spec_tools, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.NoMove)
		imgui.Text("Current player - "..current_player)
		imgui.End()
	end
end
 
Последнее редактирование:
  • Нравится
Реакции: Vintik

Mico

Активный
Автор темы
246
46
По сути эти "кнопочки" от аризоны например,это тексдравы вроде,можешь их просто удалять и рисовать имуги.Можешь чекать находишься ли ты щас в спеке и потом уже рисовать имуги,можно как нуб чекать текстдравы и удалять их и потом рисовать имуги.Все-таки что сложного?
Только как их удалять, я уже 4 месяца в луа, а научился базовым функциям только :D
 

Mico

Активный
Автор темы
246
46
Как-то так?
Lua:
local samp = require 'lib.samp.events'
local imgui = require "imgui"

local current_player = -1
local spec_tools = imgui.ImBool(false)

function samp.onTogglePlayerSpectating(state)
    spec_tools.v = state
    if not state then
        current_player = -1
    end
end

function samp.onSpectatePlayer(id, type)
    current_player = id
end

function imgui.OnDrawFrame()
    if spec_tools.v then
        imgui.SetNextWindowSize(imgui.ImVec2(400, 150), spec_tools, imgui.Cond.FirstUseEver)
        if not window_pos then
            ScreenX, ScreenY = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(ScreenX / 2 , ScreenY / 5), imgui.Cond.FirsUseEver, imgui.ImVec2(0.5, 0.5))
            window_pos = true
        end
        imgui.Begin('Spec window', spec_tools, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.NoMove)
        imgui.Text("Current player - "..current_player)
        imgui.End()
    end
end
Попробую это, спасибо.