Почему выдает 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
а хэндл у каждого юнита собственный
19
nvc123, у меня кастомвалуе уникальный для каждого юнита. По факту - БД.
28
и проверь не забыл ли ты создать таблицу
DemonoiD:
у меня кастомвалуе уникальный для каждого юнита
а нафига?
юзай хэндл
он уже уникальный
и готов поспорить что твой способ обеспечения уникальности полное г
19
nvc123, да, чертовы инициализации. Ты прав. Правда я выставлял начальный параметр для hashtable как новая таблица. Но он почему-то не работал.
БД нужна, чтобы юзать глобалки и не трогать хештаблицы зазря. Можно закрывать. Время мучится с табличкой и %.
nvc123, если можете предложить не г - вперед.
28
DemonoiD, уже предложил
хэндл
он уникален для каждого объекта
19
nvc123, проблема с хендлом в том, что моя БДшка самоотчищается от умерших юнитов. В том, что я могу использовать её в глобалках, которые работают в 1,5 раза быстрее хештаблицы. И в том, что я пока без понятия, как чистить строку отдельного юнита.
28
DemonoiD, хэндлы тоже очищаются после уничтожения объекта
если нету утечек то как только труп юнита разложится хэндл будет очищен
а если у тебя утекают юниты то совершено пофиг на глобалки и бд
из за лагов никто играть не сможет
и причём тут глобалки к хэндлам?
28
DemonoiD, ну так если утечек нету то чем плох хэндл?
найди хоть один логичный довод против хэндла
19
nvc123, я могу использовать его как индификатор для глобалок?
28
DemonoiD, если нету утечек на карте то да
только про арифметику не забудь
19
nvc123, да, я знаю, что арифметика где матрица считается с 1 и до n/m пишется как A+(B-1)*m
Чтобы оставить комментарий, пожалуйста, войдите на сайт.