таблица и рендер

Статус
В этой теме нельзя размещать новые ответы.

biscuitt

Известный
Автор темы
186
14
Версия MoonLoader
.026-beta
собственно:
1. Беру информацию из /admins и добавляю её в таблицу. Таблица содержит ник, ид и т.д. Затем всё выводится на экран renderFontDrawText
2. У чекера есть частота обновления. При обновлении вновь прописывается /admins и рендер обновляется. Старая таблица очищается.

и я столкнулся со следующей проблемой: рендер при обновлении мерцает из-за того, что очищаю таблицу полностью (online = {}).
как можно исправить данную проблему?
 
Решение
Вариант 1: когда ты обновляешь таблицу, можно создать временную таблицу. Когда ты во временную таблицу добавил всё что нужно, присваиваешь основной таблице временную. Соответственно основная таблица никогда не пустая, а значит и не мерцает.
Вариант 2: при каждом обновлении таблицы не обнулять её, а использовать функцию unique, которая оставляет только уникальные элементы, результат должен быть такой же, как с первым
Вот хороший пример такой функции, https://github.com/rlowrance/re/blob/master/unique.lua
local newTable = unique(oldTable)

3211Marlon1123

Участник
135
13
А зачем таблица тебе? Моя идея:
В рендер записывать ники игроков в формате Nick_Name\n и потом при следующей проверке если кто-то вышел - убрать gsub'ом, если кто-то добавился - добавляем в конец списка. Бац! И мерцания убраны!
 

Liquit

Известный
280
107
Вариант 1: когда ты обновляешь таблицу, можно создать временную таблицу. Когда ты во временную таблицу добавил всё что нужно, присваиваешь основной таблице временную. Соответственно основная таблица никогда не пустая, а значит и не мерцает.
Вариант 2: при каждом обновлении таблицы не обнулять её, а использовать функцию unique, которая оставляет только уникальные элементы, результат должен быть такой же, как с первым
Вот хороший пример такой функции, https://github.com/rlowrance/re/blob/master/unique.lua
local newTable = unique(oldTable)
 
Последнее редактирование:
  • Нравится
Реакции: 3211Marlon1123
Статус
В этой теме нельзя размещать новые ответы.