Как исправить?

l1ght777

Активный
Автор темы
345
53
Версия MoonLoader
Другое
Приветствую, не могу придумать как решить проблему. У меня есть таблица с тегами, которая парсится в нескольких mimgui окнах. Эти теги заменяются на значения, которые получаются только при инициализации скрипта, а из за этого данные будут неактуальными. Я пробовал продублировать таблицу в окна, и результат успешен, но это чересчур костыльно. Хотелось бы понять, как можно исправить это.

Lua:
local tags = {
   [1] = { tag = "{name}", value = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))):match("(.*)_.*"), example = "Меня зовут {name}.", result = "Меня зовут {name}.", question = "Ваше имя." },
   [2] = { tag = "{surname}", value = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))):match("_(.*)"), example = "Моя фамилия {surname}.", result = "Моя фамилия {surname}.", question = "Ваша фамилия." },
   [3] = { tag = "{id}", value = select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), example = "Введите команду /pass {id}.", result = "Введите команду /pass {id}.", question = "Ваш ID." },
   [4] = { tag = "{rang}", value = get_tag_rang(), example = "На связи {rang} {surname}.", result = "На связи {rang}.", question = "Ваша должность/звание." },
   [5] = { tag = "{frak}", value = get_tag_frak(), example = "Руки вверх! Это {frak}.", result = "Руки вверх! Это {frak}.", question = "Название вашей организации." },
   [6] = { tag = "{phone}", value = get_tag_number(), example = "Мой номер {phone}.", result = "Мой номер {phone}.", question = "Ваш номер телефона." },
   [7] = { tag = "{greeting}", value = today_hours(hour), example = "{greeting}, рад вас видеть.", result = "{greeting}, рад вас видеть.", question = "Приветствие от времени суток." },
   [8] = { tag = "{weapon}", value = get_my_weapon(), example = "Достал {weapon}.", result = "Достал {weapon}.", question = "Название оружия." },
   [9] = { tag = "{tag_r}", value = get_tag_tagr(), example = "{tag_r} Внимание всем постам!", result = "{tag_r} Внимание всем постам!", question = "Личный тэг для /r." },
   [10] = { tag = "{tag_f}", value = get_tag_tagf(), example = "{tag_f} LSPD, на связь...", result = "{tag_f} LSPD, на связь...", question = "Личный тэг для /f." },
   [11] = { tag = "{city}", value = get_tag_city(), example = "Сейчас я в {city}.", result = "Сейчас я в {city}.", question = "Текущий город." },
   [12] = { tag = "{zone}", value = get_tag_zone(), example = "Еду по району {zone}.", result = "Еду по району {zone}.", question = "Текущий район." },
   [13] = { tag = "{post}", value = get_tag_post(), example = "Нахожусь на посту {post}.", result = "Нахожусь на посту {post}", question = "Текущий пост." },
   [14] = { tag = "{kvadrat}", value = kvadrat(), example = "Нахожусь в квадрате {kvadrat}.", result = "Нахожусь в квадрате {kvadrat}.", question = "Текущий квадрат." },
   [15] = { tag = "{cardinalp}", value = direction(), example = "Преступник скрылся в {cardinalp} направлении", result = "Преступник скрылся в {cardinalp} направлении", question = "Направление камеры." },
   [16] = { tag = "{time1}", value = os.date('%d %m %Y, %H:%M:%S'), example = "Сейчас {time1}.", result = "Сейчас {time1}.", question = "Текущая дата и время." },
   [17] = { tag = "{time2}", value = os.date('%H:%M:%S'), example = "Сейчас на часах {time2}.", result = "Сейчас на часах {time2}.", question = "Текущее время." },
   [18] = { tag = "{dd}", value = os.date('%d'), example = "{dd} день(-ей).", result = "{dd} день(-ей).", question = "Текущий день." },
   [19] = { tag = "{mm}", value = os.date('%m'), example = "{mm} месяц(-ев).", result = "{mm} месяц(-ев).", question = "Текущий номер месяца." },
   [20] = { tag = "{YY}", value = os.date('%Y'), example = "Сейчас {YY} год.", result = "Сейчас {YY} год.", question = "Текущий год (4 цифры)." },
   [21] = { tag = "{yy}", value = os.date('%y'), example = "{yy} год.", result = "{yy} год.", question = "Текущий год (2 цифры)." },
   [22] = { tag = "{H}", value = os.date('%H'), example = "Сейчас {H} час(-ов).", result = "Сейчас {H} час(-ов).", question = "Текущий час." },
   [23] = { tag = "{M}", value = os.date('%M'), example = "{M} минут(-ы).", result = "{M} минут(-ы).", question = "Текущая минута." },
   [24] = { tag = "{S}", value = os.date('%S'), example = "{S} секунд(-ы).", result = "{S} секунд(-ы).", question = "Текущая секунда." },
   [25] = { tag = "{day}", value = days[tonumber(os.date('%w')) + 1], example = "Сегодня {day}.", result = "Сегодня {day}.", question = "Текущее название дня недели." },
   [26] = { tag = "{month}", value = get_month_date(unix_time), example = "Сейчас {month}.", result = "Сейчас {month}.", question = "Текущее название месяца." },
   [27] = { tag = "{id_marker}", value = get_id_marker(), example = "/cuff {id_marker}.", result = "/cuff {id_marker}.", question = "ID игрока, выделенного маркером." },
   [28] = { tag = "{name_marker}", value = get_tag_name_marker(), example = "Привет, {name_marker}.", result = "Привет, {name_marker}.", question = "Имя игрока, выделенного маркером." },
   [29] = { tag = "{surname_marker}", value = get_tag_surname_marker(), example = "Здравствуйте, мистер {surname_marker}.", result = "Здравствуйте, мистер {surname_marker}.", question = "Фамилия игрока, выделенного маркером." },
   [30] = { tag = "{partner_ids}", value = get_partner_ids(), example = "В составе юниты жетон N-{partner_ids}.", result = "В составе юниты жетон N-{partner_ids}.", question = "ID напарника(-ов)." },
   [31] = { tag = "{partner_nicks}", value = get_partner_nicks(), example = "В составе юнита {partner_nicks}.", result = "В составе юнита {partner_nicks}", question = "Ник(-и) напарника(-ов)." },
   [32] = { tag = "{patrol_unit}", value = get_mark(), example = "{patrol_unit} на CONTROL.", result = "{patrol_unit} на CONTROL.", question = "Тэг юнита." },
   [33] = { tag = "{patrol_status}", value = code_list[selected_code[0]+1], example = "Состояние патруля {patrol_status}.", result = "Состояние патруля {patrol_status}.", question = "Состояние патруля." },
   [34] = { tag = "{meg_c_model}", value = get_closet_model_car(), example = "Автомобиль марки {meg_c_model}.", result = "Автомобиль марки {meg_c_model}.", question = "Название т/с для мегафона." },
   [35] = { tag = "{meg_c_id}", value = get_closet_id(), example = "Водитель с номером т/с {meg_c_id}.", result = "Водитель с номером т/с {meg_c_id}.", question = "ID водителя для мегафона." },
   [36] = { tag = "{color_car}", value = get_vehicle_colours(), example = "Водитель автомобиля {color_car} цвета.", result = "Водитель автомобиля {color_car} цвета.", question = "Цвет автомобиля для мегафона." },
   [37] = { tag = "{wait_600}", value = "", example = "{wait_800}", result = "{wait_800}", question = "Любое кол-во секунд для задержки между строками (в мсек)." },
   [38] = { tag = "{message}", value = " ", example = "{message} Любой текст.", result = "Сообщение выведено в уведомление.", question = "Если вставить вначале строки - строка будет выведена в чат\nпользователю." },
   [39] = { tag = "{}", value = " ", example = "Причина: {}.", result = "Создан пробел.", question = "Тэг-пробел." }
}

for i, v in ipairs(tags) do
         if v.value then
            v.result = v.result:gsub(v.tag, v.value)
            imgui.Text(u8(v.result))
         end
 

kyrtion

Известный
1,343
511
создал переменную - и теперь будет статистические данные, не динамические.
нужно создать функцию чтобы снова создал переменную и вернул

вроде так:
функция()
новая переменная = что-то данные
ретурн какое-то переменное
енд

перед цикла получить новые данные
а потом уже пройти цикл и у тебя будет актуальные данные