|
|
|
|
Создание эффекта на множестве юнитов
|
|
CHLSN | Дата: Вторник, 04 Января 2011, 21:02:18 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Забабахал в общем триггер, всё работает шикарно: Code x = 0 loop ForGroup( for, function Cry ) TriggerSleepAction( 1.00 ) x++ exitwhen x == 10 endloop Одна проблема: на эту одну секунду надо добавить эффект ко всем юнитам в группе, но TriggerSleepAction внутри Cry'я приводит к тому, что код после него вообще не выполняется.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
lawson | Дата: Вторник, 04 Января 2011, 21:19:26 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| TriggerSleepAction вообще для GUI пользуйся PolledWait() и еще скин полный код хочу научиться делать loop
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Dreii | Дата: Вторник, 04 Января 2011, 21:26:03 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| CHLSN, либо юзай хеш,либо покажи весь код
|
|
|
|
CHLSN | Дата: Вторник, 04 Января 2011, 21:35:33 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Повторяю еще раз, для плохочитающих: TriggerSleepAction внутри функции используемой в ForGroup приводит к тому, что код после него вообще не выполняется. P.S. к TriggerSleepAction, что внутри PolledWait это тоже относится кстати, потому что <читай строку выше>.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Вторник, 04 Января 2011, 21:50:27 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| CHLSN, что тетбе нужно объясни.
|
|
|
|
CHLSN | Дата: Вторник, 04 Января 2011, 21:53:22 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Quote (CHLSN) Одна проблема: на эту одну секунду надо добавить эффект ко всем юнитам в группе. Уже вроде как объяснил.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Вторник, 04 Января 2011, 21:56:46 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| CHLSN, какой эффект?
|
|
|
|
CHLSN | Дата: Вторник, 04 Января 2011, 22:29:13 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Какая разница, какой. Факт, что его нужно удалять. Ну, например, эффект эмпатии.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Вторник, 04 Января 2011, 22:30:49 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| CHLSN, call DestroyEffect(AddSpecialEffectTarget(modelname,target,attchpoint))
|
|
|
|
CHLSN | Дата: Вторник, 04 Января 2011, 22:40:27 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Dreii, клёво. То же самое, что arcsin( sin ( x ) ). Эффект-то не появится даже!
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
Dreii | Дата: Вторник, 04 Января 2011, 22:56:52 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| CHLSN, все появляеться
|
|
|
|
CHLSN | Дата: Вторник, 04 Января 2011, 23:35:55 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Dreii, че ты споришь-то? Пойди и напиши, то что ты написал: DestroyEffect(AddSpecialEffectTarget(modelname,target,attchpoint)). Я посмотрю как у тебя получится. Ты создаешь эффект для удаления. Дай Бог ему 0.(0)1 секунду прожить.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
FkoFF | Дата: Вторник, 04 Января 2011, 23:42:09 | Сообщение # 13 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Автор - учи матчасть. грубо говоря на классическом джассе это будет выглядеть как: Code func func_02 takes nothing returns nothing local timer t = ExpiredTimer()
call DestroyEffect(LoadEffectHandle(udg_Data,GetHandleId(t), xx)
call FlushChildHashtable(udg_Data, GetHandleId(t)) call DestroyTimer(t)
set t = null endfunc
func rand takes rand returns rand local timer t = CreateTimer()
call SaveEffectHandle(udg_Data,GetHandleId(t), xx, CreateEffectOnUnit(параметры)) call TimerStart(t, 1.0, false, function func_02)
set t = null endfunc как нубу, тебе будет полезно. Добавлено (04-01-2011, 23:42) ---------------------------------------------
Quote (CHLSN) Дай Бог ему 0.(0)1 секунду прожить. эффект проиграет лишь анимацию смерти.
|
|
|
|
Dreii | Дата: Среда, 05 Января 2011, 00:04:18 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (CHLSN) DestroyEffect(AddSpecialEffectTarget(modelname,target,attchpoint)) Эффект создаеться играться доконца и удаляеться
|
|
|
|
FkoFF | Дата: Среда, 05 Января 2011, 00:19:26 | Сообщение # 15 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Dreii, если, к примеру, нужно создать огонь или другой партикловый эффект - ничего не выйдет ибо они живут ровно столько, сколько эффект проигрывает анимацию stand, а она не проигрывается после смерти.
|
|
|
|
XimikS | Дата: Среда, 05 Января 2011, 00:40:28 | Сообщение # 16 |
1 уровень
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 28
Блокировки:
| нельзя юзать слип внутри лупа, и тем более утечный полледвойт. вообще не надо юзать слипы, они кривые
|
|
|
|
CHLSN | Дата: Среда, 05 Января 2011, 00:47:48 | Сообщение # 17 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| FkoFF, что-то нихрена не работает твой госу-код.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
FkoFF | Дата: Среда, 05 Января 2011, 00:51:38 | Сообщение # 18 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| CHLSN, омфг, неужели пазитиффный школьник не осилил перенос кода со страниц внутрь карты? или мне надо написать для тебя функцию отсроченного эффекта? Омфг лол - здесь все проще некуда, да только ты нуп ) по полкам func func_02 takes nothing returns nothing тут должно быть открытие блока функции, нормальное. тобишь через function, но мне лень. local timer t = ExpiredTimer() call DestroyEffect(LoadEffectHandle(udg_Data,GetHandleId(t), xx) тут вбивай нужную цифру под хх call FlushChildHashtable(udg_Data, GetHandleId(t)) call DestroyTimer(t) set t = null endfunc закрываем нормальным способом func rand takes rand returns rand не знаешь как открыть функцию? local timer t = CreateTimer() call SaveEffectHandle(udg_Data,GetHandleId(t), xx, CreateEffectOnUnit(параметры)) смотри нативку от крейтэффекта и вбивай нужные параметры call TimerStart(t, 1.0, false, function func_02) название функции уничтожающей таймер с эффектом set t = null endfunc
Сообщение отредактировал FkoFF - Среда, 05 Января 2011, 00:52:30 |
|
|
|
CHLSN | Дата: Среда, 05 Января 2011, 01:13:22 | Сообщение # 19 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| *усердно переписывает код* Сейчас я досканально его подправлю. Вот чтобы точь-в-точь как у тебя было, и проверю. Добавлено (05-01-2011, 01:13) --------------------------------------------- Code function s3 takes nothing returns nothing timer t = GetExpiredTimer() //ExpiredTimer() не нашел, зато такой есть DestroyEffect(LoadEffectHandle( udg_hash, GetHandleId( t ), 0) ) DestroyEffect(LoadEffectHandle( udg_hash, GetHandleId( t ), 2) ) FlushChildHashtable( udg_hash, GetHandleId( t ) ) DestroyTimer(t) t = null endfunction function s2 takes nothing returns nothing //как-то не очень получается вместо nothing s2 написать, веришь да? unit n = GetEnumUnit() unit c = GetSpellAbilityUnit() timer t = CreateTimer() SaveEffectHandle( udg_hash, GetHandleId( t ), 0, AddSpecialEffectTarget( string, n, "origin" ) ) SaveEffectHandle( udg_hash, GetHandleId( t ), 2, AddSpecialEffectTarget( string, c, "origin" ) ) TimerStart( t, 1.0, false, function s3 ) t = null n = null c = null endfunction Code x = 0 loop ForGroup( for, function s ) ForGroup( for, function s2 ) TriggerSleepAction( 1.00 ) x++ exitwhen x == 10 endloop P.S. эффекты-то создаются - норм, да вот только ни один из них не разрушается. P.S.S. Почти всё работает. Но последние несколько эффектов (2-3+) не удаляются. Как исправить?
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
Сообщение отредактировал CHLSN - Среда, 05 Января 2011, 02:41:40 |
|
|
|
Dreii | Дата: Среда, 05 Января 2011, 01:20:07 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (FkoFF) огонь или другой партикловый эффект Не пробывал...
|
|
|
|
Ajaccio | Дата: Среда, 05 Января 2011, 06:26:49 | Сообщение # 21 |
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
| Code function EffectFD takes nothing returns nothing //Уничтожение эффекта. local timer destroyer = GetExpiredTimer() call DestroyEffect(LoadEffectHandle(HASH, GetHandleId(destroyer), 0)) call DestroyTimer(destroyer) set destroyer = null endfunction
function EffectFU takes string place, unit target, string path, real time returns nothing //Создание эффекта для юнита. local timer destroyer = CreateTimer() call SaveEffectHandle(HASH, GetHandleId(destroyer), 0, AddSpecialEffectTarget(path, target, place)) call TimerStart(destroyer, time, false, function EffectFD) set destroyer = null endfunction
function EffectFP takes string path, real X, real Y, real time returns nothing //Создание эффекта для координат. local timer destroyer = CreateTimer() call SaveEffectHandle(HASH, GetHandleId(destroyer), 0, AddSpecialEffect(path, X, Y)) call TimerStart(destroyer, time, false, function EffectFD) set destroyer = null endfunction Можно добавить это в "Нестандартный код" или в библиотеку (vJass), а затем жить припеваючи. Конкретно в рамках темы - используйте call ForGroup(for, function <Имя функции>). Затем применяйте call EffectFU("origin", GetEnumUnit(), "<Путь>", <Нужное время>).
XOR EAX, EAX MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
|
|
|
|
Dreii | Дата: Среда, 05 Января 2011, 10:37:44 | Сообщение # 22 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Ajaccio, это же только на создание и удаление спецэффекта?
|
|
|
|
FkoFF | Дата: Среда, 05 Января 2011, 10:59:35 | Сообщение # 23 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Dreii, ага, API Для работы с эффектами. Любой мало-мальский джассер делает себе набор для работы с молниями, эффектами, уроном, и плавными переходами, к примеру тумана или чего еще.
|
|
|
|
Dreii | Дата: Среда, 05 Января 2011, 11:02:00 | Сообщение # 24 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (FkoFF) мало-мальский джассер Значит я мини-мини-очень мини-нубоджассер^^
|
|
|
|
CHLSN | Дата: Среда, 05 Января 2011, 11:40:28 | Сообщение # 25 |
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
| Quote (Ajaccio) Затем применяйте call EffectFU("origin", GetEnumUnit(), "<Путь>", <Нужное время>). Проще тогда уж не две функции делать, а одну, и вызывать её с параметрами:Quote (FkoFF) Любой мало-мальский джассер делает себе набор для работы с молниями, эффектами, уроном, и плавными переходами...
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
|
|
|
|
|
|
|
|
|
|
|