|
|
|
|
Создание способности в одном триггере.
|
|
CHLSN | Дата: Среда, 12 Января 2011, 06:50:42 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Я не прошу написать мне заклинание. Я прошу объяснить, как это сделать. Герой вызывает боевую единицу. Запускаем таймер, который будет эту единицу перемещать к герою. Запускаем таймер, который разрушит периодический таймер и удалит вызванную единицу.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Manko_O | Дата: Среда, 12 Января 2011, 08:12:36 | Сообщение # 2 |
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
| http://ifolder.ru/21272150
|
|
|
|
SirNikolas | Дата: Среда, 12 Января 2011, 08:24:18 | Сообщение # 3 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Это делается одним таймером. При каждом истечении таймера нужно увеличивать прикрепленную к нему целочисленную на один. Когда она достигнет определенного значения, уничтожаешь таймер, обнуляешь хэш и удаляешь юнита.
Сообщение отредактировал SirNikolas - Среда, 12 Января 2011, 08:24:40 |
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 12:52:25 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Сделал, даже сработало с первого раза (такое редко бывает), но мне интересно, правильно ли все обнулил, и все ли обнулил? Code function Trig_Bladestorm_Timer takes nothing returns nothing timer t = GetExpiredTimer() real r = LoadReal( udg_hash, GetHandleId( t ), 0 ) - 0.10 SaveReal( udg_hash, GetHandleId( t ), 0, r ) SetUnitPositionLoc( LoadUnitHandle( udg_hash, GetHandleId( t ), 0 ), GetUnitLoc( LoadUnitHandle( udg_hash, GetHandleId( t ), 1 ) ) ) if r <= 0 then RemoveUnit( LoadUnitHandle( udg_hash, GetHandleId( t ), 0 ) ) SaveUnitHandle( udg_hash, GetHandleId( t ), 0, null ) SaveUnitHandle( udg_hash, GetHandleId( t ), 1, null ) DestroyTimer( t ) endif t = null r = 0 endfunction function Trig_Bladestorm_Actions takes nothing returns nothing unit u = GetSummonedUnit() timer t = CreateTimer() SaveUnitHandle( udg_hash, GetHandleId( t ), 0, u ) SaveUnitHandle( udg_hash, GetHandleId( t ), 1, GetSummoningUnit() ) SaveReal( udg_hash, GetHandleId( t ), 0, GetUnitAbilityLevel( GetSummoningUnit(), 'A035' ) * 5.00 ) TimerStart( t, 0.10, true, function Trig_Bladestorm_Timer ) u = null t = null endfunction
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 12:58:50 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| CHLSN, хеш не очистил Добавлено (12-01-2011, 12:54) --------------------------------------------- и преде DestroyTimer(t) лучше запаузить его PauseTimer(t) Добавлено (12-01-2011, 12:55) --------------------------------------------- Code unit u = GetSummonedUnit() timer t = CreateTimer() SaveUnitHandle( udg_hash, GetHandleId( t ), 0, u ) unit u никчему Code timer t = CreateTimer() SaveUnitHandle( udg_hash, GetHandleId( t ), 0,GetSummonedUnit() ) Добавлено (12-01-2011, 12:56) --------------------------------------------- Code SetUnitPositionLoc( LoadUnitHandle( udg_hash, GetHandleId( t ), 0 ), GetUnitLoc( LoadUnitHandle( udg_hash, GetHandleId( t ), 1 ) ) ) используй координаты SetUnitPosition(unit,x,y)Добавлено (12-01-2011, 12:58) --------------------------------------------- CHLSN, в u лучше занести GetSummoningUnit() т.к используется более 1 раза
Сообщение отредактировал Dreii - Среда, 12 Января 2011, 12:57:40 |
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 12:59:58 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Quote (Dreii) хеш не очистил Точно )) Quote (Dreii) и преде DestroyTimer(t) лучше запаузить его PauseTimer(t) Почему? Quote (Dreii) unit u никчему Согласен, просто не оптимизировал еще )) Quote (Dreii) используй координаты Почему так?
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 13:04:58 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Code call FlushChildHashtable(udg_Hash, ID) полностью обнулит все в хеше и все привзянное к нимуДобавлено (12-01-2011, 13:00) ---------------------------------------------
Так безутечнее [DUOS] так сказал))Добавлено (12-01-2011, 13:04) --------------------------------------------- CHLSN, ах да еще лучше так Code local integer ID=GetHandleId(t)
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:09:38 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Это понятно, уменьшение кол-ва обращений Quote (Dreii) [DUOS] так сказал)) А почему он так сказал? Quote (Dreii) Так безутечнее Почему так безутечнее?
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 13:11:02 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (CHLSN) Почему так безутечнее? пфф,не знаю но когда я делал с локациями меня ругали ^^ Quote (CHLSN) А почему он так сказал? Спроси у него ))
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:11:59 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Quote (Dreii) пфф,не знаю но когда я делал с локациями меня ругали ^^ Позови их, пусть меня поругают.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 13:13:23 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (CHLSN) Позови их, пусть меня поругают. Они приходят сами когда их никто неждет.
|
|
|
|
Ajaccio | Дата: Среда, 12 Января 2011, 13:18:45 | Сообщение # 12 |
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
| Quote Они приходят сами когда их никто неждет. А вот и мы! Локации в отстойнике, ибо медленнее, забивают память и вообще не используются, вроде, ни в одной нормальной native функции. А зачем тогда делать лишнее дело?
XOR EAX, EAX MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:18:50 | Сообщение # 13 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Тогда я буду злом и буду использовать локальное перемещение, а не координатное, бугога.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 13:20:39 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (Ajaccio) А вот и мы! Вот стоило тока написать...... Хм вследующий раз напишу про мешок денег...
Сообщение отредактировал Dreii - Среда, 12 Января 2011, 13:21:27 |
|
|
|
[DUОS] | Дата: Среда, 12 Января 2011, 13:23:09 | Сообщение # 15 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (CHLSN) Запускаем таймер, который разрушит периодический таймер и удалит вызванную единицу. CHLSN, Этот таймер будет лишним, нужно в хеш записать значение и в первом таймере его сравнивать. Да и вешать в хеш дважды нерационально.
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:26:01 | Сообщение # 16 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Ajaccio, разве SetUnitPositionLoc ненормальная native-функция? Добавлено (12-01-2011, 13:26) --------------------------------------------- [DUОS], упс, а где там что дважды вешается?
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 13:26:44 | Сообщение # 17 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (|DUОS|) Запускаем таймер Quote (|DUОS|) периодический таймер Я думаю это?Не?
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:28:19 | Сообщение # 18 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Quote (Ajaccio) Локации в отстойнике, ибо медленнее Ну в общем-то да, правда что.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
[DUОS] | Дата: Среда, 12 Января 2011, 13:37:19 | Сообщение # 19 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (CHLSN) разве SetUnitPositionLoc ненормальная native-функция? Это утечная нативка. Использовать SetUnitPosition() или SetUnitX(), SetUnitY()
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 13:40:30 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| [DUОS], а что лучше SetUnitPosition() или SetUnitX(), SetUnitY()
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:41:34 | Сообщение # 21 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Quote (Dreii) и преде DestroyTimer(t) лучше запаузить его PauseTimer(t) [DUОS], Dreii сказал, что ты сказал, что так надо делать, зачем?
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
[DUОS] | Дата: Среда, 12 Января 2011, 13:44:27 | Сообщение # 22 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| CHLSN, Code function Trig_Bladestorm_Timer takes nothing returns nothing local timer t = GetExpiredTimer() local real r = LoadReal(udg_hash,GetHandleId(t),2) - .04 local unit u = LoadUnitHandle(udg_hash,GetHandleId(t),0) local unit u2 = LoadUnitHandle(udg_hash,GetHandleId(t),1) call SaveReal(udg_hash,GetHandleId(t),0,r) call SetUnitX(u,GetWidgetX(u2)) call SetUnitY(u,GetWidgetY(u2))
if r <= 0 then call RemoveUnit(u) call FlushChildHashtable(udg_hash,GetHandleId(t)) call PauseTimer(t) call DestroyTimer(t) endif set t = null set u = null set u2 = null endfunction
function Trig_Bladestorm_Actions takes nothing returns nothing local unit u = GetSummonedUnit() local unit s = GetSummoningUnit() local timer t = CreateTimer() call SaveUnitHandle(udg_hash,GetHandleId(t),0,u) call SaveUnitHandle(udg_hash,GetHandleId(t),1,s) call SaveReal(udg_hash,GetHandleId(t),2,GetUnitAbilityLevel(s,'A035') * 5.) call TimerStart(t,.04,true,function Trig_Bladestorm_Timer) set u = null set t = null set s = null endfunction Вроде, теперь без сучка и задоринки Добавлено (12-01-2011, 13:44) ---------------------------------------------
Quote (CHLSN) [DUОS], Dreii сказал, что ты сказал, что так надо делать, зачем? Антибаг периодических таймеров - иногда его уничтожает, но не паузит.
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 13:48:00 | Сообщение # 23 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| [DUОS], уже сделал, как у тебя, только SetUnitPosition, и паузу для таймера сейчас добавлю))
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Среда, 12 Января 2011, 15:09:07 | Сообщение # 24 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| может стоит добавить хендл таймера в переменную?
|
|
|
|
CHLSN | Дата: Среда, 12 Января 2011, 15:17:41 | Сообщение # 25 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Dreii, я сразу добавил, как ты посоветовал)) ничего, робит)
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
|
|
|
|
|
|
|