Сейчас 01:33:42 Вторник, 26 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Вопрос про Хэш таблицы
rixt7956Дата: Понедельник, 15 Ноября 2010, 14:23:30 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
1.К примеру я сохраняю юнита в таймер
Code
local unit u
local timer t = CreatTimer()
call SaveUnitHandle(Hash,GetHandleId(t),0,u)

при
Code
call FlushChildHashtable(Hash,GetHandleId(t))
удалиться ли юнит из хеша?
2.И если при первом вопросе всё работает то если я сохраню эфект в юнита который находиться в таймере
Code
local effect e
call SaveHandleEffect(Hash,GetHandleId(u),0,e)
и удалю таймер
Code
call FlushChildHashtable(Hash,GetHandleId(t))

то удалиться ли эфект из хеша?


Сообщение отредактировал rixt7956 - Понедельник, 15 Ноября 2010, 15:08:27
 

incomeДата: Понедельник, 15 Ноября 2010, 14:51:23 | Сообщение # 2
3 уровень
Группа: Заблокированные
Сообщений: 63
Награды: 0
Репутация: 20
Блокировки:
GetHandleId показывает номер какого-то объекта, он уникален.
call FlushChildHashtable(Hash,GetHandleId(t))
удалятся все записи под номером этого таймера,то есть если юнит записан где-то еще под id другого объекта, удаление первого никак не повлияет на функциональность этого юнита, записанного под 2 id

аналогично и во втором вопросе, под номером таймера записан лишь юнит, и call FlushChildHashtable(Hash,GetHandleId(t)) удалит только юнита из хеша (не из игры), эффект останется целым


Не ошибается только тот, кто ничего не делает


Сообщение отредактировал income - Понедельник, 15 Ноября 2010, 14:52:53
 

H_A_PKДата: Понедельник, 15 Ноября 2010, 14:59:38 | Сообщение # 3
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Quote (rixt7956)
удалиться ли юнит из хеша?

да
Quote (rixt7956)

то удалиться ли эфект?

да не "удлолится" ты просто потеряешь ссылку на него, а ты очищаешь хандл таймера , а не юнита, на юните попрежнему остаётся висеть эффект
Quote (rixt7956)
call SaveHandleEffect(Hash,GetHandleId(u),0,e)

а не
Code

call SaveEffectHandle(Hash,GetHandleId(u),0,e)

ли ?


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец
 

rixt7956Дата: Понедельник, 15 Ноября 2010, 15:14:52 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
income,
H_A_PK, Спасибо, тему можно закрыть
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz