- 283
- 90
у меня есть диалог с id = 171
вот он. мне нужно получить текст с организация, масть и ранг и вывести его в код:
в 96 строку вставить в .. orga организацию
ну так дальше. как сделать я не знаю, но сделал начало в 26 строке
вот он. мне нужно получить текст с организация, масть и ранг и вывести его в код:
Lua:
script_name('Namalsk Leader Helper')
script_author('Cort_Quwin')
script_version('0.1')
require "memory"
local hook = require 'lib.samp.events'
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local menu = 1
local window = imgui.ImBool(false)
function main()
while not isSampAvailable() do wait(200) end
wait(1000)
sampAddChatMessage("{e8a321}[Namalsk Leader's Helper]{ffffff} - Успешно загружен! ", -1)
sampAddChatMessage("{e8a321}[Namalsk Leader's Helper]{ffffff} - Автор: Cort_Quwin", -1)
sampRegisterChatCommand("zle", cmd_startt)
handle, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
nick = sampGetPlayerNickname(id)
imgui.Process = false
if sampIsLocalPlayerSpawned() then
wait(7000)
sampSendChat('/stats')
return false
end
while true do
wait(0)
end
end
function cmd_startt()
window.v = not window.v
imgui.Process = window.v
end
local fontsize = nil
function imgui.BeforeDrawFrame()
if fontsize == nil then
fontsize = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 30.0, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic()) -- вместо 30 любой нужный размер
end
end
function imgui.CenterText(text)
imgui.SetCursorPosX(imgui.GetWindowSize().x / 2 - imgui.CalcTextSize(text).x / 2)
imgui.Text(text)
end
function imgui.OnDrawFrame()
if window.v then
local resX, resY = getScreenResolution()
local sizeX, sizeY = 650, 280 -- 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("text", window, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar)
imgui.PushFont(fontsize)
imgui.CenterText("Namalsk Leader's Helper")
imgui.PopFont()
imgui.BeginChild('##vkladki', imgui.ImVec2(160, 195), true)
if imgui.Button(u8'Ваш аккаунт', imgui.ImVec2(139, 40)) then
menu = 1
end
if imgui.Button(u8'Собеседования', imgui.ImVec2(139, 40)) then
menu = 2
end
if imgui.Button(u8'Лекции', imgui.ImVec2(139, 40)) then
menu = 3
end
if imgui.Button(u8'Прочее', imgui.ImVec2(139, 40)) then
menu = 4
end
imgui.EndChild()
imgui.SameLine()
imgui.BeginChild('##menushki', imgui.ImVec2(450, 195), true)
if menu == 1 then
imgui.NewLine()
imgui.NewLine()
imgui.CenterText(u8'Ваш NickName: ' .. nick)
imgui.CenterText(u8'Ваша организация: ' .. orga)
imgui.CenterText(u8'Ваш ранг: ' .. rang)
end
if menu == 2 then
imgui.BeginChild('##voprosi', imgui.ImVec2(130, 160), true)
imgui.CenterText(u8'Вопросы')
imgui.Separator()
if imgui.Button(u8'Начало', imgui.ImVec2(110,20)) then
sampSendChat('Здравствуйте, Вы на собеседование ?')
end
if imgui.Button(u8'Паспорт', imgui.ImVec2(110,20)) then
sampSendChat('Предоставьте документ, удостоверяющий вашу личность')
end
if imgui.Button(u8'Отыгровка', imgui.ImVec2(110,20)) then
lua_thread.create(function()
sampSendChat('/me взял документ из рук человека напротив')
wait(1700)
sampSendChat('/do Паспорт в руках...')
wait(1700)
sampSendChat('/me открыл паспорт на нужной странице')
wait(1700)
sampSendChat('/me изучил паспорт')
wait(1700)
sampSendChat('/do Паспорт изучен...')
wait(1700)
sampSendChat('/me вернул документ владельцу')
wait(1700)
sampSendChat('/do Передача...')
end)
end
if imgui.Button(u8'Одобрено', imgui.ImVec2(110, 20)) then
lua_thread.create(function()
sampSendChat('Думаю, вы нам подходите')
wait(1700)
sampSendChat('/me достал пакет с формой и бейджик из под стола')
wait(1700)
sampSendChat('/me передал форму и бейджик человеку напротив')
wait(1200)
sampSetChatInputText('/invite ')
end)
end
if imgui.Button(u8'Отказано', imgui.ImVec2(110, 20)) then
lua_thread.create(function()
sampSendChat('Думаю, вы нам не подходите')
wait(1700)
sampSendChat('Вы сободны')
end)
end
imgui.EndChild()
imgui.SameLine()
imgui.BeginChild('##dop', imgui.ImVec2(295, 160), true)
imgui.CenterText(u8'Дополнительные вопросы')
imgui.Separator()
imgui.CenterText(u8'Проверка на МГ')
if imgui.Button(u8'Проверка на МГ (1)', imgui.ImVec2(275, 30)) then
lua_thread.create(function()
sampSendChat('Сядьте')
wait(2000)
sampSendChat('/b Вставай, дам 7 ранг')
wait(2000)
sampSendChat('/b Вставай, дам 7 ранг')
wait(2000)
sampSendChat('Вставайте')
wait(2000)
sampSendChat('Продолжим')
end)
end
if imgui.Button(u8'Проверка на МГ (2)', imgui.ImVec2(275, 30)) then
lua_thread.create(function()
sampSendChat('/b МГ, ДМ, ТК, СК в /b')
wait(2000)
sampSendChat('/b МГ, ДМ, ТК, СК в /b')
wait(2000)
sampSetChatInputText('Хорошо')
end)
end
if imgui.Button(u8'Проверка на МГ (3)', imgui.ImVec2(275, 30)) then
lua_thread.create(function()
sampSendChat('Что такое МГ?')
wait(2000)
sampSetChatInputText('Хорошо')
wait(5000)
sampSendChat('Что такое ДМ?')
wait(1200)
sampSetChatInputText('Хорошо')
wait(2000)
sampSendChat('Продолжим')
end)
end
imgui.EndChild()
imgui.CenterText(u8'Нажмите на пункт, чтобы вывести его в чат.')
end
if menu == 3 then
imgui.CenterText(u8'Лекции')
imgui.Separator()
if imgui.Button(u8'Рация', imgui.ImVec2(430, 25)) then
lua_thread.create(function()
sampSendChat('/s Рация — это источник связи с коллегами организации,')
wait(1200)
sampSendChat('/s Для передачи важной информации.')
wait(1200)
sampSendChat('/s В рации запрещены всякие оскорбления, мат, угрозы.')
wait(1200)
sampSendChat('/s За нарушение данных правил вы будете наказаны.')
wait(1200)
sampSendChat('/s На этом лекция окончена.')
wait(1200)
sampSendChat('/s У кого есть вопросы по этой лекции?')
wait(1200)
sampSendChat('/time')
wait(300)
setVirtualKeyDown(119, true)
wait(20)
setVirtualKeyDown(119, false)
end)
end
if imgui.Button(u8'Субординация', imgui.ImVec2(430, 25)) then
lua_thread.create(function()
sampSendChat('Здравия желаю')
wait(1200)
sampSendChat('Сейчас я проведу лекцию на тему "Субординация"')
wait(1200)
sampSendChat('Субординация — военная дисциплина, система служебных отношений, связанных с подчинением одних')
wait(1200)
sampSendChat('Она предусматривает уважительные отношения между руководителем и подчинённым')
wait(1200)
sampSendChat('А также порядка доклада результатов выполнения распоряжения руководителей')
wait(1200)
sampSendChat('В гос.организациях правила субординации устанавливают:')
wait(1200)
sampSendChat('Порядок соблюдения определённых традиций')
wait(1200)
sampSendChat('Так же для обращения к старшему по званию, нужно сказать "товарищ Звание"')
wait(1200)
sampSendChat('Примеры обращения и замены неправильных слов:')
wait(1200)
sampSendChat('"Здравствуйте" на "Здравия желаю"')
wait(1200)
sampSendChat('"Да" на "Так точно"')
wait(1200)
sampSendChat('"Нет" на "Никак нет"')
wait(1200)
sampSendChat('"Можно?" на "Разрешите?"')
wait(1200)
sampSendChat('"Не знаю" - "Не могу знать"')
wait(1200)
sampSendChat('"Ладно, хорошо" на "Есть"')
wait(1200)
sampSendChat('Несоблюдение субординации - это нарушение устава, за которое вы получите наказание')
wait(1200)
sampSendChat('Спасибо за внимание')
wait(1200)
sampSendChat('/time')
wait(300)
setVirtualKeyDown(119, true)
wait(20)
setVirtualKeyDown(119, false)
end)
end
if imgui.Button(u8'MetaGaming', imgui.ImVec2(430, 25)) then
lua_thread.create(function()
sampSendChat('/b Здравствуйте, сейчас я проведу лекцию на тему MetaGaming.')
wait(1200)
sampSendChat('/b MG - это использование ООС с реального мира, в простой чат.')
wait(1200)
sampSendChat('/b IC чат - это чат виртуального мира, то есть нашей игры.')
wait(1200)
sampSendChat('/b Если игрок задал вопрос в /b чат, а Вы ответили...')
wait(1200)
sampSendChat('/b В простой чат, это уже считается MG. Также и на оборот.')
wait(1200)
sampSendChat('/b Если игрок Вам задал вопрос в простой чат, а Вы ответили в /b .')
wait(1200)
sampSendChat('/b Если Вам задали вопрос в /b - вы должны ответить на него тоже...')
wait(1200)
sampSendChat('/b В /b чат. Просьба не нарушать правила сервера... ')
wait(1200)
sampSendChat('/b И соблюдать их в строгом режиме или Вас может наказать Администрация.')
wait(1200)
sampSendChat('/b Лекция на MetaGaming окончена. ')
wait(1200)
sampSendChat('/b Спасибо за внимание')
wait(1200)
sampSendChat('/time')
wait(300)
setVirtualKeyDown(119, true)
wait(20)
setVirtualKeyDown(119, false)
end)
end
if imgui.Button(u8'Правила поведения на посту', imgui.ImVec2(430, 25)) then
lua_thread.create(function()
sampSendChat('Здравствуйте, сегодня я проведу лекцию на тему "Поведение на посту"')
wait(1200)
sampSendChat('Стоя на посту вы должны соблюдать некоторые правила.')
wait(1200)
sampSendChat('Запрещено спать на посту.')
wait(1000)
sampSendChat('/b спать = стоять в АФК')
wait(1200)
sampSendChat('Запрещено самовольно покидать пост')
wait(1200)
sampSendChat('Запрещено без причины пользоваться оружием на посту')
wait(1200)
sampSendChat('Нарушать эти правила строго запрещено.')
wait(1200)
sampSendChat('/s Лекция окончена.')
wait(1200)
sampSendChat('/time')
wait(300)
setVirtualKeyDown(119, true)
wait(20)
setVirtualKeyDown(119, false)
end)
end
if imgui.Button(u8'Правила поведения на тренировке', imgui.ImVec2(430, 25)) then
lua_thread.create(function()
sampSendChat('Здравия желаю,коллеги сейчас я проведу вам лекцию')
wait(1200)
sampSendChat('Лекция на тему "Правила поведения на тренировке"')
wait(1200)
sampSendChat('С самого начала я хочу сказать что такое тренеровка..')
wait(1200)
sampSendChat('Тренеровка-это осмысленная физическая деятельность, направленная на развитие силы..')
wait(1200)
sampSendChat('выносливости, ловкости, техничности, скорости и других физических и психологических навыков.')
wait(1200)
sampSendChat('1. Слушаться старших по званию')
wait(1200)
sampSendChat('2. Доставать оружие только по приказу.')
wait(1200)
sampSendChat('3. Не покидать строй,только по приказу.')
wait(1200)
sampSendChat('4. В строю запрещенно спать.')
wait(1200)
sampSendChat('/s Лекция окончена.')
wait(1200)
sampSendChat('/time')
wait(300)
setVirtualKeyDown(119, true)
wait(20)
setVirtualKeyDown(119, false)
end)
end
end
if menu == 4 then
imgui.NewLine()
imgui.CenterText(u8'автор скрипта: cort_quwin')
imgui.CenterText(u8'vk автора: vk.com/maksim04qa')
imgui.CenterText(u8'группа ВК: vk.com/quwin_cln')
end
imgui.EndChild()
if imgui.Button('close', imgui.ImVec2(50,20)) then
window.v = not window.v
imgui.Process = window.v
end
imgui.End()
end
end
function hook.OnShowDialog(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)
if dialogId == (171) and sampIsLocalPlayerSpawned() then
return false
end
end
function imgui.VerticalSeparator()
local p = imgui.GetCursorScreenPos()
imgui.GetWindowDrawList():AddLine(imgui.ImVec2(p.x, p.y), imgui.ImVec2(p.x, p.y + imgui.GetContentRegionMax().y), imgui.GetColorU32(imgui.GetStyle().Colors[imgui.Col.Separator]))
end
function imgui.TextColoredRGB(text)
local style = imgui.GetStyle()
local colors = style.Colors
local ImVec4 = imgui.ImVec4
local explode_argb = function(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
local getcolor = function(color)
if color:sub(1, 6):upper() == 'SSSSSS' then
local r, g, b = colors[1].x, colors[1].y, colors[1].z
local a = tonumber(color:sub(7, 8), 16) or colors[1].w * 255
return ImVec4(r, g, b, a / 255)
end
local color = type(color) == 'string' and tonumber(color, 16) or color
if type(color) ~= 'number' then return end
local r, g, b, a = explode_argb(color)
return imgui.ImColor(r, g, b, a):GetVec4()
end
local render_text = function(text_)
for w in text_:gmatch('[^\r\n]+') do
local text, colors_, m = {}, {}, 1
w = w:gsub('{(......)}', '{%1FF}')
while w:find('{........}') do
local n, k = w:find('{........}')
local color = getcolor(w:sub(n + 1, k - 1))
if color then
text[#text], text[#text + 1] = w:sub(m, n - 1), w:sub(k + 1, #w)
colors_[#colors_ + 1] = color
m = n
end
w = w:sub(1, n - 1) .. w:sub(k + 1, #w)
end
if text[0] then
for i = 0, #text do
imgui.TextColored(colors_[i] or colors[1], u8(text[i]))
imgui.SameLine(nil, 0)
end
imgui.NewLine()
else imgui.Text(u8(w)) end
end
end
render_text(text)
end
function style()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
local ImVec2 = imgui.ImVec2
style.WindowRounding = 4.0
style.WindowTitleAlign = ImVec2(0.5, 0.5)
style.ChildWindowRounding = 2.0
style.FrameRounding = 2.0
style.ItemSpacing = ImVec2(10, 5)
style.ScrollbarSize = 15
style.ScrollbarRounding = 0
style.GrabMinSize = 9.6
style.GrabRounding = 1.0
style.WindowPadding = ImVec2(10, 10)
style.AntiAliasedLines = true
style.AntiAliasedShapes = true
style.FramePadding = ImVec2(5, 4)
style.DisplayWindowPadding = ImVec2(27, 27)
style.DisplaySafeAreaPadding = ImVec2(5, 5)
style.ButtonTextAlign = ImVec2(0.5, 0.5)
colors[clr.Text] = ImVec4(0.92, 0.92, 0.92, 1.00)
colors[clr.TextDisabled] = ImVec4(0.44, 0.44, 0.44, 1.00)
colors[clr.WindowBg] = ImVec4(0.06, 0.06, 0.06, 1.00)
colors[clr.ChildWindowBg] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
colors[clr.ComboBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
colors[clr.Border] = ImVec4(0.51, 0.36, 0.15, 1.00)
colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.FrameBg] = ImVec4(0.11, 0.11, 0.11, 1.00)
colors[clr.FrameBgHovered] = ImVec4(0.51, 0.36, 0.15, 1.00)
colors[clr.FrameBgActive] = ImVec4(0.78, 0.55, 0.21, 1.00)
colors[clr.TitleBg] = ImVec4(0.51, 0.36, 0.15, 1.00)
colors[clr.TitleBgActive] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)
colors[clr.MenuBarBg] = ImVec4(0.11, 0.11, 0.11, 1.00)
colors[clr.ScrollbarBg] = ImVec4(0.06, 0.06, 0.06, 0.53)
colors[clr.ScrollbarGrab] = ImVec4(0.21, 0.21, 0.21, 1.00)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.47, 0.47, 0.47, 1.00)
colors[clr.ScrollbarGrabActive] = ImVec4(0.81, 0.83, 0.81, 1.00)
colors[clr.CheckMark] = ImVec4(0.78, 0.55, 0.21, 1.00)
colors[clr.SliderGrab] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.SliderGrabActive] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.Button] = ImVec4(0.51, 0.36, 0.15, 1.00)
colors[clr.ButtonHovered] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.ButtonActive] = ImVec4(0.78, 0.55, 0.21, 1.00)
colors[clr.Header] = ImVec4(0.51, 0.36, 0.15, 1.00)
colors[clr.HeaderHovered] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.HeaderActive] = ImVec4(0.93, 0.65, 0.14, 1.00)
colors[clr.Separator] = ImVec4(0.21, 0.21, 0.21, 1.00)
colors[clr.SeparatorHovered] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.SeparatorActive] = ImVec4(0.78, 0.55, 0.21, 1.00)
colors[clr.ResizeGrip] = ImVec4(0.21, 0.21, 0.21, 1.00)
colors[clr.ResizeGripHovered] = ImVec4(0.91, 0.64, 0.13, 1.00)
colors[clr.ResizeGripActive] = ImVec4(0.78, 0.55, 0.21, 1.00)
colors[clr.CloseButton] = ImVec4(0.47, 0.47, 0.47, 1.00)
colors[clr.CloseButtonHovered] = ImVec4(0.98, 0.39, 0.36, 1.00)
colors[clr.CloseButtonActive] = ImVec4(0.98, 0.39, 0.36, 1.00)
colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)
colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
colors[clr.TextSelectedBg] = ImVec4(0.26, 0.59, 0.98, 0.35)
colors[clr.ModalWindowDarkening] = ImVec4(0.80, 0.80, 0.80, 0.35)
end
style()
ну так дальше. как сделать я не знаю, но сделал начало в 26 строке