Сейчас 20:34:15 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 8 из 8
  • «
  • 1
  • 2
  • 6
  • 7
  • 8
Модератор форума: PUVer, SirNikolas, Ty3uK  
Вопросы по 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, да, это элементарно делается на глобалках. :D
Впрочем, хэш вполне юзабелен, но я в мощный расчетах (движение кучи юнитов) его бы точно не использовал.

ИМХО, его главная проблема - при оптимизации кода он становится как-то не нужен.
Например, если использовать один таймер для хранения всех временных эффектов, а не плодить их сотнями.
Тогда уж лучше обойтись массивом.


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

rixt7956Дата: Вторник, 11 Января 2011, 15:49:38 | Сообщение # 180
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (Ajaccio)
P@d®e, да, это элементарно делается на глобалках. :D
Впрочем, хэш вполне юзабелен, но я в мощный расчетах (движение кучи юнитов) его бы точно не использовал.

ИМХО, его главная проблема - при оптимизации кода он становится как-то не нужен.
Например, если использовать один таймер для хранения всех временных эффектов, а не плодить их сотнями.
Тогда уж лучше обойтись массивом.

Тогда лучше использовать структуры, но точно не глобалки.
 

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 масивными глобалками?! Если да, то кинь стытью в л.с.


Кому помог поставьте плюсичек.
 

  • Страница 8 из 8
  • «
  • 1
  • 2
  • 6
  • 7
  • 8
Поиск:

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