Вопросы по Jass
|
|
EdiTTORR | Дата: Понедельник, 10 Января 2011, 23:31:42 | Сообщение # 176 |
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
| rixt7956, не учи меня. Это оффтоп. Прости но ты не входишь в число тех кого бы я бы стал слушать. А удобство меня не очень волнует.
Местами здесь.
|
|
|
|
P@d®e | Дата: Вторник, 11 Января 2011, 04:02:54 | Сообщение # 177 |
6 уровень
Группа: Пользователи
Сообщений: 221
Награды: 0
Репутация: 73
Блокировки:
| по крайней мере, EdiTTORR, в хеше данные можно легко находить, например: Code function DestroyEffectTimedTimerEnd takes nothing returns nothing local timer tm = GetExpiredTimer() local effect e = LoadEffectHandle(udg_hash, GetHandleId(tm), StringHash("DestroyingEffect") ) call DestroyEffect(e) call FlushChildHashtable(udg_hash, GetHandleId(tm) ) call DestroyTimer( tm ) set e = null set tm = null endfunction
function DestroyEffectTimed takes real time, effect e returns nothing local timer tm = CreateTimer() call TimerStart(tm, time, false, function DestroyEffectTimedTimerEnd) call SaveEffectHandle(udg_hash, GetHandleId(tm), StringHash("DestroyingEffect"), e) set tm = null endfunction
это функция удаления спецеффекта через некоторое время. Сможешь повторить такоеже, но на глобалках?! Единственная глобалка здесь - udg_hash, это и есть хещтаблица. В моей карте оч много таких функций, удаляющих что-то через определенное время, и все они сделанны таким способом, и работают отлично! ДаДа
Кому помог поставьте плюсичек.
|
|
|
|
SirNikolas | Дата: Вторник, 11 Января 2011, 07:18:55 | Сообщение # 178 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| P@d®e, кажется, EdiTTORR имел в виду что-то вроде этого.
|
|
|
|
Ajaccio | Дата: Вторник, 11 Января 2011, 09:29:44 | Сообщение # 179 |
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
| P@d®e, да, это элементарно делается на глобалках. Впрочем, хэш вполне юзабелен, но я в мощный расчетах (движение кучи юнитов) его бы точно не использовал. ИМХО, его главная проблема - при оптимизации кода он становится как-то не нужен. Например, если использовать один таймер для хранения всех временных эффектов, а не плодить их сотнями. Тогда уж лучше обойтись массивом.
XOR EAX, EAX MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
|
|
|
|
rixt7956 | Дата: Вторник, 11 Января 2011, 15:49:38 | Сообщение # 180 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (Ajaccio) P@d®e, да, это элементарно делается на глобалках. Впрочем, хэш вполне юзабелен, но я в мощный расчетах (движение кучи юнитов) его бы точно не использовал. ИМХО, его главная проблема - при оптимизации кода он становится как-то не нужен. Например, если использовать один таймер для хранения всех временных эффектов, а не плодить их сотнями. Тогда уж лучше обойтись массивом. Тогда лучше использовать структуры, но точно не глобалки.
|
|
|
|
SirNikolas | Дата: Вторник, 11 Января 2011, 15:55:15 | Сообщение # 181 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Ты хочешь сказать, что структуры не глобалки?
Сообщение отредактировал SirNikolas - Вторник, 11 Января 2011, 16:12:17 |
|
|
|
rixt7956 | Дата: Вторник, 11 Января 2011, 16:00:49 | Сообщение # 182 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| SirNikolas, Я имею ввиду что удобней писать при помощи структур, а не химичить с глобалками
|
|
|
|
SirNikolas | Дата: Вторник, 11 Января 2011, 16:22:36 | Сообщение # 183 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Ну, у меня тоже появился вопрос по оптимизации. Как лучше писать:Code if bool == false then //... endif илиCode if not bool then //... endif
|
|
|
|
rixt7956 | Дата: Вторник, 11 Января 2011, 16:44:49 | Сообщение # 184 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (SirNikolas) лучше писать Quote (SirNikolas) bool == false я думаю так
|
|
|
|
P@d®e | Дата: Среда, 12 Января 2011, 07:20:19 | Сообщение # 185 |
6 уровень
Группа: Пользователи
Сообщений: 221
Награды: 0
Репутация: 73
Блокировки:
| rixt7956, просто так понятней. Если написать просто if bool then //... else то условие выполнится только при положительном значении bool а так разницы нет. Quote (Ajaccio) ИМХО, его главная проблема - при оптимизации кода он становится как-то не нужен. Например, если использовать один таймер для хранения всех временных эффектов, а не плодить их сотнями. Тогда уж лучше обойтись массивом. Ну допустим создадим мы 43 эффекта где-то на карте, и все их нужно удалить, но в разное время ( разное для каждого ), то как такая проблема будет решена? Или ты знаешь как можно обойтись 32 масивными глобалками?! Если да, то кинь стытью в л.с.
Кому помог поставьте плюсичек.
|
|
|
|