BJ-шная хеш-таблица
|
|
abidin | Дата: Четверг, 02 Апреля 2015, 15:55:22 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| Недавно заинтересовался хеш-таблицами,смотрел пару гуишных наработок с использованием хештаблиц и смутило 1 поле.Конвертировал в jass ,думал после конвертации разберусь,но все равно ничего не получилось. Уважаемые знатоки,что же означает это поле?
Сообщение отредактировал abidin - Четверг, 02 Апреля 2015, 15:55:55 |
|
|
|
Borodach | Дата: Четверг, 02 Апреля 2015, 16:48:01 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| 2-ой массив.
Karamba
|
|
|
|
Srezi | Дата: Четверг, 02 Апреля 2015, 17:53:52 | Сообщение # 3 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| То, что на скрине отображает принимаемые переменные данной функции, в данном случае call SaveIntegerBJ()
В Jass лучше сразу использовать раскрытую BJ-функцию. Код call SaveInteger(Hash,Id,Key,value) Hash - переменная хеш-таблица Id - грубо говоря номер шкафа, в котором будет хранится информация, обычно используют Handle чего-либо, например таймера. GetHandleId(Timer) Key - грубо говоря полка, где хранится информация, обычно используют числа от 1 до "много". value - здесь ваша информация в виде целого числа.
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
Волчачка | Дата: Четверг, 02 Апреля 2015, 19:24:27 | Сообщение # 4 |
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
| Код function SaveIntegerBJ takes integer value, integer key, integer missionKey, hashtable table returns nothing call SaveInteger(table, missionKey, key, value) endfunction
Код native SaveInteger takes hashtable table, integer parentKey, integer childKey, integer value returns nothing Добавлено (02 Апреля 2015, 19:24:27) ---------------------------------------------
Цитата Borodach ( ) 2-ой массив. Хеш не массив, лол.
Это индекс хендла объекта.
|
|
|
|
abidin | Дата: Четверг, 02 Апреля 2015, 22:05:33 | Сообщение # 5 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| Спасибо всем за объяснения. Еще 2 вопроса: 1).Ну можно первый вопрос задать на том язые, на котором ответил мне Срези. Где-то я видел фунцию удаляющую данные с хештаблицы. Так вот я видел только функции удаляющие шкафы. Есть ли функция удаляющая полки? 2).Многие используют в качестве ключа хендл айди таймера или воина. Может ли быть такое, что этот айди совпадет?
|
|
|
|
Srezi | Дата: Четверг, 02 Апреля 2015, 22:19:54 | Сообщение # 6 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Код call FlushChildHashtable(Hash,id) Добавлено (02 Апреля 2015, 22:19:54) ---------------------------------------------
Цитата Srezi ( ) Может ли быть такое, что этот айди совпадет?
Нет, не может. Потому что каждому созданному во время игры таймеру,юниту,области и тд. и тп. даётся свой уникальный handle(ID).
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
SirNikolas | Дата: Пятница, 03 Апреля 2015, 12:48:17 | Сообщение # 7 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата abidin ( ) Может ли быть такое, что этот айди совпадет? Если удалить (Remove/Destroy) таймер, юнита и т. п., движок может выделить его ID другому объекту, если на удаленный объект не ссылалось никаких переменных. При этом запись в хэше не предотвращает реюзанье ID!
|
|
|
|