Как работает локальный код в луа, что вообще десинкается из языковых структур автоматически?
Например, стоит ли мне хранить данные каждой машины игроков в разных переменных и инициализировать их локально или можно рассинхронить данные в одной переменной?
И есть ли быстрый способ синхронизации (глобализации) данных в выпуске рефордж?
Прикладная задача: взять координаты мыши или фрейма, посчитать относительно размера дисплея (локал) и дальше на основе этого двигать юнитов (это уже глобал)

Принятый ответ

И есть ли быстрый способ синхронизации (глобализации) данных в выпуске рефордж?
---@param whichTrigger trigger
---@param whichPlayer player
---@param prefix string
---@param fromServer boolean
---@return event
function BlzTriggerRegisterPlayerSyncEvent(whichTrigger, whichPlayer, prefix, fromServer) end    -- (native)


---@param prefix string
---@param data string
---@return boolean
function BlzSendSyncData(prefix, data) end    -- (native)

---@return string
function BlzGetTriggerSyncPrefix() end    -- (native)

---@return string
function BlzGetTriggerSyncData() end    -- (native)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
37
4 года назад
0
Спасибо
Перебор, кстати, есть через ipairs и тут проблемы быть не должно
4
29
4 года назад
4
И есть ли быстрый способ синхронизации (глобализации) данных в выпуске рефордж?
---@param whichTrigger trigger
---@param whichPlayer player
---@param prefix string
---@param fromServer boolean
---@return event
function BlzTriggerRegisterPlayerSyncEvent(whichTrigger, whichPlayer, prefix, fromServer) end    -- (native)


---@param prefix string
---@param data string
---@return boolean
function BlzSendSyncData(prefix, data) end    -- (native)

---@return string
function BlzGetTriggerSyncPrefix() end    -- (native)

---@return string
function BlzGetTriggerSyncData() end    -- (native)
Принятый ответ
0
37
4 года назад
0
Благодарстввтвтв
0
24
4 года назад
0
ScorpioT1000, ipairs же только для целочисленных ключей и, насколько я помню, от 1 до первой пустой ячейки. В то время как pairs это для перебора по ключам хештаблицы, которые могут быть произвольными.
0
37
4 года назад
0
Ну, для локальных решений можно обойтись числовой индексацией массивов и избегать хешмап
0
24
4 года назад
0
ScorpioT1000, избегать итераций по хешмапам чрез pairs - сами хешмапы работают отлично, проблемы начинаются только если полагаться на не гарантированный порядок ключей и это стандартно для многих реализаций хешмапы, не только в луа.
2
37
4 года назад
Отредактирован ScorpioT1000
2
Я к тому, что это решается хранением второго массива для индексации
Пример:
local myData = { 
  a = "test A", 
  b = "test B" 
}
local myDataIndexed = { 
  "a", 
  "b" 
}

for i, key in ipairs(myDataIndexed) do
   print(myData[key])
end

-- out:
-- test A
-- test B
2 комментария удалено
0
24
4 года назад
0
ScorpioT1000, ну да, в тех редких случаях, когда перебор хештаблицы имеет смысл - свсой набор ключей для перебора решает эту задачу.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.