Взять информацию с диалогового окна

NotFound

Участник
Автор темы
74
22
Версия MoonLoader
.026-beta
Пытаюсь написать скрипт, который сможет хранить и выводить информацию полученную с диалогового окна. Получилось взять целочисленное значение, а буквенное не получается, консоль выводит что данная переменная пустая.

Lua:
require "lib.sampfuncs"
local sampev = require 'lib.samp.events'
local inicfg = require 'inicfg'

function main()
  if not isSampfuncsLoaded() or not isSampLoaded() then return end
  while not isSampAvailable() do wait(100) end
  wait(0)
  thread = lua_thread.create_suspended(thread_function)
end

function sampev.onShowDialog(dialogId,s,t,b1,b2,text)
  if dialogId == 0 then
    local rang = text:match("%{FFFFFF%}Ранг:                %{66c2ff%}(%d+)")
    local position = text:match("%{FFFFFF%}Подразделение:        %{66c2ff}(%a+)")
    local subdivision = text:match("{FFFFFF}Должность:            {66c2ff}(%a+)")
    print(rang)
    print(position)
    print(subdivision)
  end
end
Само диалоговое окно:
unknown.png

Сампфункс лог:
Код:
{FFFFFF}Организация:            {66c2ff}ТВ и радио
{FFFFFF}Подразделение:        {66c2ff}Телецентр
{FFFFFF}Должность:            {66c2ff}Светотехник
{FFFFFF}Ранг:                {66c2ff}4
Что выводит мне консоль:
Код:
{C0C0C0}[ML] {7DD156}(script) {E0E0E0}stats.lua: {C0C0C0}4
{C0C0C0}[ML] {7DD156}(script) {E0E0E0}stats.lua: {C0C0C0}nil
{C0C0C0}[ML] {7DD156}(script) {E0E0E0}stats.lua: {C0C0C0}nil
unknown.png
Что не так я сделал?
 

mofee1

Участник
16
2
Тот же результат - пустые переменные
регулярка %a - это английская буква
Подставь вместо %a+ выражение %S+
Если ранги только на русском, можно попробовать %W+
 
Последнее редактирование:

mofee1

Участник
16
2
что-то упустил. Единственное, лучше лучше использовать {.+} вместо точного hex кода цвета, ни раз сам попадался на то, что на сервере в разных строках использовался разный цвет буквально на пару оттенков. И вместо ручной табуляции %s+ , так как тоже легко ошибиться
Lua - Урок по регулярным выражениям
 
  • Нравится
Реакции: NotFound