В карте > 200 способностей на МУИ(нууу, jass только на массивах) для того чтобы их могли сразу несколько человек использовать, так вот, выбор перед таблицей и массивами
Конечно массивы быстрее работают, т.к. не приходится вызывать функцию загрузки значений из таблицы, а сразу работать с ними

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

LainMikoroso:
удобнее таблица
если привыкнуть к структурам, то писать код с ними будет намного быстрее и удобнее.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
28
6 лет назад
0
Так в чём вопрос?
Используй то, что тебе удобнее, я вот структуры использую.
0
14
6 лет назад
0
PT153:
Так в чём вопрос?
Используй то, что тебе удобнее, я вот структуры использую.
\Быстрота работы ведь тоже решает, удобнее таблица, а быстрее с переменными все работает
0
18
6 лет назад
0
LainMikoroso:
удобнее таблица
если привыкнуть к структурам, то писать код с ними будет намного быстрее и удобнее.
Принятый ответ
0
14
6 лет назад
0
если привыкнуть к структурам, то писать код с ними будет намного быстрее и удобнее.
Насколько я помню структуры на vJass, 1.30 поддерживает его?
1
17
6 лет назад
Отредактирован GetLocalPlayer
1
Быстрота работы ведь тоже решает
Не решает. Ты должен думать о реализации своего алгоритма, а не о внутреннем устройстве движка игры. Насколько сильно ты можешь сократить количество команд и операций для решения поставленной задачи.
Хэш-таблица и массивы, это не альтернатива друг другу. На практике они используются совместно.
5
16
6 лет назад
5
писать надо код, который удобно пишется. А уже отдельно написать на любом удобном тебе языке компилятор, который развернет "лишние" функции в более быстрые. Перед релизом пропустил через него карту и готово. Только вот на пункте 2 уже придется хорошо попотеть. Обычно оно того не стоит, т.к. заклинания не кидают с частотой 50 раз в секунду
0
18
6 лет назад
Отредактирован Hodor
0
DracoL1ch, если говорить о удобстве, то даже нубу будет ясно что удобнее
хештаблица
LoadReal(h, id, StringHash("damage"))
//или
LoadReal(h, id, 0)
структура
m.damage
Я не говорю что хештаблица фигня.
Хештаблица незаменима для некоторых задач, к примеру если нужно прикрепить к равкоду какие то значения
LainMikoroso:
Насколько я помню структуры на vJass, 1.30 поддерживает его?
поддерживает
0
14
6 лет назад
0
UrsaBoss:
DracoL1ch, если говорить о удобстве, то даже нубу будет ясно что удобнее
хештаблица
LoadReal(h, id, StringHash("damage"))
//или
LoadReal(h, id, 0)
структура
m.damage
Я не говорю что хештаблица фигня.
Хештаблица незаменима для некоторых задач, к примеру если нужно прикрепить к равкоду какие то значения
LainMikoroso:
Насколько я помню структуры на vJass, 1.30 поддерживает его?
поддерживает
Как обнулить значение в хеш-таблице
(FlushChilld очищает весь ParentKey мне нужно именно одну ячейку)
Пробую записать null через LoadUnitHandle и не получается, хех
5
16
6 лет назад
5
RemoveSavedHandle/Integer/Boolean/String
0
14
6 лет назад
0
RemoveSavedHandle
Мне необходимо после того как я использовал ячейку для handle чистить ее этой командой?Или Flush нормально с этим справляется?
1
28
6 лет назад
1
Flush чистит все ячейки с указанным parent ключом. RemoveSaved чистит только 1 ячейку, так как указываются child и parent ключи.

Пример использования Flush: (handleid юнита) используется как parent ключ для сохранения таймеров, статов и прочего. Когда юнит удаляется, нужно и хеш почистить. Чтобы не запускать для каждого child ключа RemoveSaved, выполняется Flush, куда передаётся только parent ключ - (handleid юнита).

Пример использования RemoveSaved: структура использует таймер. Как только структура создаётся, в хеш сохраняется структура с parent ключом X и child ключом (handleid таймера). Когда структура удаляется, удаляется и таймер, а перед этим чистится ячейка с parent ключом X и child ключом (handleid таймера) с помощью RemoveSaved. Flush тут не подойдёт, потому что очистить нужно всего 1 ячейки и parent ключ общий для каждого объекта структуры.
0
14
6 лет назад
0
thx guys
Чтобы оставить комментарий, пожалуйста, войдите на сайт.