Всем привет, у хэш таблица разные названия сохранения значений к примеру я могу сохранить юнита, условие, группу, триггер, таймер и т.д как call SaveAgentHandle. Короче Агент быстрее работает или с указанием конкретного значения group timer trigger boolexpr unit effect

сохраняют в таблицу для использования потом. а как использовать агент? он в двух с половиной функций разрешен в аргументах. поэтому и сохранять его смысла нет
по скорости всё одинаково, игре похер че вы сохраняете, это всегда 32-битное число
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Если выгрузить агент, то его нельзя будет преобразовать в реальный объект.
15
Независимо от того, что ты сохраняешь, trigger, group, timer, что-то еще, ты сохраняешь в таблицу просто handle. Поэтому существует функция HaveSavedHandle, но нет функции HaveSavedPlayer или HaveSavedUnit. По той же причине код
Jass
function MyFunc takes nothing returns nothing
    local unit u = CreateUnit(GetLocalPlayer(), 'hfoo', 0, 0, 0)
    local hashtable hash = InitHashtable()
    
    call SaveUnitHandle(hash, 0, 0, u)
    call SavePlayerHandle(hash, 0, 0, GetLocalPlayer())
    
    if LoadUnitHandle(hash, 0, 0) == null then
        call BJDebugMsg("No unit.")
    else
        call BJDebugMsg("There's a unit in the hashtable.")
    endif
    
    if LoadPlayerHandle(hash, 0, 0) == null then
        call BJDebugMsg("No palyer.")
    else
        call BJDebugMsg("There's a player in the hashtable.")
    endif
endfunction
Выдаст сообщение "No unit", потому что мы замещаем в таблице сохраненный handle юнита на handle игрока. Едва ли оно затрагивает скорость работы, но как оно там с приведением типов следует спрашивть Дралича. Что-то там должно быть раз внутренний баг хэш-таблицы позволяет преобразовать почти любой handle в integer и наоборот.
28
PT153, что подразумевается под преобразованием в реальный объект?
16
сохраняют в таблицу для использования потом. а как использовать агент? он в двух с половиной функций разрешен в аргументах. поэтому и сохранять его смысла нет
по скорости всё одинаково, игре похер че вы сохраняете, это всегда 32-битное число
Принятый ответ
28
rsfghd, как агент ты можешь сохранить игрока, но вытащить его сможешь только как агент. И как Лич уже сказал, агент особо никуда нельзя передать.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.