XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Ninbous
Jass progress >>>>>35/100
offline
Опыт: 5,674
Активность:
Перезапишится ли мнформация в ХешТаблицу?
Допустим у меня уже есть спелл в котором я использую хеш таблицу
Код:
globals
   hashtable ht = InitHashtable()
endglobals
...
function pause1 takes nothing returns nothing
    local unit ut = LoadUnitHandle(ht, 1, 0)
    local unit uc = LoadUnitHandle(ht, 2, 0)
.....

Если я в другом спелле сделаю так:
Код:
function pause2 takes nothing returns nothing
    local unit ut = LoadUnitHandle(ht, 1, 0)
    local unit uc = LoadUnitHandle(ht, 2, 0)

то информация перезапишится так ведь?
Значит придется писать для каждого спелла другие номера и сверять со всеми спеллами чтобы они не совпадали, а это недобно..

Будет ли сильно тормозить игру если создавать для каждого спела свою Хэш таблицу?
Старый 11.10.2009, 15:49
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Load - это загрузка, а не запись. В данном случае в функцию pause1 и в pause2 прочитаются одни и те же значения. Если ты сделаешь так:
globals
   hashtable ht = InitHashtable()
endglobals
// . . .
function pause1 takes nothing returns nothing
// . . .
  call SaveUnitHandle(ht, 1, 0, ut)
  call SaveUnitHandle(ht, 2, 0, uc)
// . . .
endfunction
// . . .
function pause2 takes nothing returns nothing
// . . .
  call SaveUnitHandle(ht, 1, 0, ut)
  call SaveUnitHandle(ht, 2, 0, uc)
// . . .
endfunction
то да, информация перезапишется.
Чтобы для каждого спелла были свои данные, можно использовать в качестве первого ключа ID спелла, а второго - любое число, либо переменную типа key (JassHelper), либо перечисления (AdicHelper).
function pause1 takes nothing returns nothing
// . . .
  call SaveUnitHandle(ht, 'A000', 0, ut)
  call SaveUnitHandle(ht, 'A000', 1, uc)
// . . .
endfunction

function pause1 takes nothing returns nothing
// . . .
  call SaveUnitHandle(ht, 'A001', 0, ut)
  call SaveUnitHandle(ht, 'A001', 1, uc)
// . . .
endfunction
Старый 11.10.2009, 16:20
Ninbous
Jass progress >>>>>35/100
offline
Опыт: 5,674
Активность:
Цитата:
Чтобы для каждого спелла были свои данные, можно использовать в качестве первого ключа ID спелла


ShadoW DaemoN, спасибо за хорошую идею, не думал что так можно сортировать

Ninbous добавил:
Тему клоуз
Старый 11.10.2009, 16:29
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:08.