Идеальное расстояние между символами Lua

#lua

#lua

Вопрос:

Неудачный интервал

1

Я пытаюсь получить все эти имена с максимальным значением 31, чтобы выстроить их в одну строку, добавив необходимое количество пробелов для каждого имени игрока. Я уже некоторое время пытаюсь добиться этого, и я просто не могу полностью разобраться в этом.

Это мой текущий код, который, как я знаю, является катастрофой..

 local c = client.GetPlayerNameByIndex(i)
if c ~= nil and client.GetPlayerNameByIndex(i) ~= "nil" then
    playerlist[i] = all_trim(client.GetPlayerNameByIndex(i))

    local leve = 67
    local namelength = #client.GetPlayerNameByIndex(i) --max 31 chars
    local output = "" .. client.GetPlayerNameByIndex(i)
    local newspace = ""
    local neededspaces = 31 - #client.GetPlayerNameByIndex(i)
    print(neededspaces)
    for i=1, 31-#string.sub(client.GetPlayerNameByIndex(i), 1, 31) do
        newspace = newspace .. " "
    end
    playerinfolist[i] = output .. newspace .. "a"


end
 

Проще говоря, я хочу, чтобы все буквы «а» совпадали с каждой строкой. Спасибо, что помогли мне!

Комментарии:

1. Это немоноширинный шрифт. Ширина каждого символа различна. Попробуйте вставить "t" символ табуляции вместо пробелов.

2. t работает как обычный текст, но, однако, я не уверен, что добавляю нужное количество? Потому что все по-прежнему не выровнено или код просто неверен?

3. как и сказал Егор, это шрифт. подумайте, wll vs wllw

4. Я бы попытался решить это в графическом интерфейсе. напечатать текст в два столбца

5. Вы также можете поменять местами два столбца.