В hashtable один массив на все handle?
Добрый вечер.
hashtable HH = InitHashtable()
function MyCode takes nothing returns nothing
  unit u = CreateUnit(Player(0),'hpea',0,0,0)
  effect e = AddSpecialEffectTarget("...", u, "chest")
  integer id = GetHandleId(u)
  integer ide = GetHandleId(e)
  
  SaveUnitHandle(HH,id,0,u) // сохраняем юнита
  printi(GetHandleId(LoadUnitHandle(HH,id,0))) // -> id
  SaveEffectHandle(HH,id,0,e) // сохраняем эффект
  printi(GetHandleId(LoadUnitHandle(HH,id,0))) // -> 0
  
  printi(GetHandleId(LoadEffectHandle(HH,id,0))) // -> ide 
  SaveUnitHandle(HH,id,0,u) // сохраняем юнита
  printi(GetHandleId(LoadEffectHandle(HH,id,0))) // -> 0
  
  printi(GetHandleId(LoadUnitHandle(HH,id,0))) // -> id
endfunction
Так и должно быть?

Лучший ответ:
Если кратко, то да. Если подробно, то функции Save*Handle являются ссылкой на SaveWidgetHandle и поэтому их нужно сохранять под разными индексами.


Views: 329

» Лучшие комментарии


NazarPunk #1 - 2 years ago 3
Голосов: +3 / -0

Если кратко, то да. Если подробно, то функции Save*Handle являются ссылкой на SaveWidgetHandle и поэтому их нужно сохранять под разными индексами.
PT153 #3 - 2 years ago 3
Голосов: +3 / -0
Хетаблица по конкретным ключам x, y может одновременно хранить значения следующих типов: real, integer, boolean, string, handle. code и nothing хранить нельзя.