обнуление массива

W1ll04eison

Участник
Автор темы
328
19
Версия MoonLoader
.026-beta
у меня есть код:
lua:
local bodyranks = {}
local members = {}

--в массив «members» идет запись данных из диалогового окна
--в массив «bodyranks» идет запись данных из массива «members», код ниже

function events.onPlayerStreamIn(playerId)
    if ini.active.show then
        for i, member in ipairs(members) do
            if member.nick == sampGetPlayerNickname(playerId) then
                sampCreate3dTextEx(i, member.rank.name, 0x60FFFFFF, 0, 0, -0.5, 3, false, playerId, -1)
                bodyranks[#bodyranks + 1] = { player = playerId, text = i }
                break
            end
        end
    end
end

function events.onPlayerStreamOut(playerId)
    if ini.active.show then
        for i, v in ipairs(bodyranks) do
            if v.player == playerId then
                sampDestroy3dText(v.text)
            end
        end
    end
end

Проблема в том что, если «ini.active.show» будет равен «false», то, отображение текста на экране выключается и, по сути должно выключаться еще и «sampCreate3dTextEx».
Когда игрок пропал из зоны стрима(прорисовки), затем снова вернулся в зону стрима(прорисовки) и «ini.active.show» равно false, то, в таком случае к игроку не должен прикрепляться 3д текст, но, почему-то даже при «ini.active.show» == false все равно к игроку прикрепляться 3д текст.

Подскажите, как это можно исправить?
 

Liquit

Активный
277
91
bodyranks[#bodyranks + 1] = { player = playerId, text = i }
осуждаю такое присвоение, есть красивая функция, table.insert(table, val), к примеру для твоего кода:
Lua:
local val = {
    player = playerId,
    text = i
}
table.insert(bodyranks, val)

я могу предложить иную реализацию(как по мне красивее)
в бесконечном цикле пробегаться по всем педам в зоне стрима, и если их нету в таблице, добавлять, и если расстояние меньше чем n, то отрисовывать текст
 

W1ll04eison

Участник
Автор темы
328
19
осуждаю такое присвоение, есть красивая функция, table.insert(table, val), к примеру для твоего кода:
Lua:
local val = {
    player = playerId,
    text = i
}
table.insert(bodyranks, val)

я могу предложить иную реализацию(как по мне красивее)
в бесконечном цикле пробегаться по всем педам в зоне стрима, и если их нету в таблице, добавлять, и если расстояние меньше чем n, то отрисовывать текст
Спасибо за совет, но, вопрос у меня был немного иной
 

W1ll04eison

Участник
Автор темы
328
19
У тебя ошибка скорее всего в том, что у тебя две переменные с одинаковым названием, i. В цикле и при создании 3d текста
Я сменил название одной из двух переменных, ничего не поменялось