Почему выдает 0, а не 15?
Можно ли наспамить 8120 хештаблиц и что мне за это будет?

DemonoiD, если коротко то тебе нужен двумерный массив приатаченый к юниту
для этого юзай хэштаблицу и арифметику с индексами
первым ключом к таблице будет хэндл юнита
вторым будет i*m+j где i - номер строки, m - количество столбцов, j - номер столбца
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Похожие вопросы:

ответ
Где это одно и то же?
Во внутреннем представлении (читай: "после отработки препроцессора JassHelper") любая структура есть набор массивов с индексом, по которому лежат данные именно этой структуры во всех связанных массивах. По факту, передавая структуру в качестве аргумента функции, ты передаёшь только её id из массива.

По поводу вопроса: полного перевода vJass мануала на русский язык не существует в природе, так что вот ссылка на английский: www.wc3c.net/vexorian/jasshelpermanual.html
Крайне рекомендую пользоваться не базовым синтаксисом, а C-подобным, который обеспечивает "AdicHelper" aka cJass (ссылка на русскую версию мануала), это позволит в будущем гораздо проще перейти к программированию на полноценных языках.
ответ
трудновато проверить, но раз сохраняешь и удаляешь, то какие вопросы? утечка - это только назначение в переменную.
ответ
можно
только вопрос
зачем?
и как в твоём представлении оно может работать не нормально?
ответ
orc01, есть событие EventUnitsInRange, делаешь триггер, а при постройки башни добавляешь в него это событие для каждой башни, в условиях проверяешь что тот кто подошел нужного тебе типа юнит, ну действия думаю проблем не вызовут...
ответ
Extremator:
а что насчёт хештаблиц? Скорость их работы?
всё крайне печально
лол что?
скорость работы глобалок в 1,5 раза быстрее чем у хештейблов
т.е. 10 обращений к хештейблам выполняется столько же времени сколько и 15 к глобалкам
если каждую секунду не выполняется более 1000 обращений к хештейблу то не юзать хэштейблы ради оптимизации та ещё тупость

32
Нет, там вроде бы есть несколько заготовок под хештаблицу в памяти, если лимит превышен выдает уже существующую по кругу.
19
quq_CCCP, так что мне конкретно сделать? я сделал массив хештаблиц (как я понимаю, это что-то типа матрицы?) и приписываю каждую к юниту. Или как?
32
DemonoiD, а зачем? Зачем массив хештаблиц когда достаточно одной? В одну хт можно загрузить все что угодно, сколько угодно юнитов.
19
quq_CCCP, мне нужна матрица на каждого юнита с которой я смогу достать все что хочу по id юнита, и строке с толбцом.
29
мне нужна матрица на каждого юнита
размер матрицы фиксированный?
19
Msey, да, но естественно мне нужна возможность увеличивать её в будущем. Пока 10х10хN(8000) юнитов.
И я не уверен, что если разобью одномерный массив на матрицу, у меня все влезет в будущем
28
DemonoiD, если коротко то тебе нужен двумерный массив приатаченый к юниту
для этого юзай хэштаблицу и арифметику с индексами
первым ключом к таблице будет хэндл юнита
вторым будет i*m+j где i - номер строки, m - количество столбцов, j - номер столбца
Принятый ответ
19
nvc123, я так и пытался делать, но мне не выдает записанное число.
Хештаблица - Save 15 as (Custom value of (Last created unit)) of 1 in table
Game - Display to (All players) the text: (String((Load (Custom value of (Last created unit)) of 1 from table)))
Должно выдавать 15, выдает 0.
Карту приложил.
Конечно Last created unit надо изменить на триггеринг, но это не спасает :)
Загруженные файлы
28
DemonoiD, а причём тут Custom value ?
тебе нужно сохранять по хэндлу юнита
Custom value можно юниту любое поставить
например у всех юнитов может быть Custom value равен 1
а хэндл у каждого юнита собственный
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.