Помогите пожалуйста с триггером
|
|
Akcm | Дата: Четверг, 07 Июня 2012, 19:52:15 | Сообщение # 1 |
5 уровень
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 11
Блокировки:
| Добрый вечер, у меня вот такая проблема: Я хочу чтобы после смерти герой воскрешался через "уровень героя * 2" секунды. я создал триггер, сделал переменную целочисленная, которая равна уровню умершего героя. но в триггере wait, я выбрал арифметика и не могу вместо числа поставить эту переменную, не подскажите почему? и ещё я не очень пока что прошареный, но по идее эта переменная должна будет использоваться много раз,а она случайно не занесёт уровень самого первого мертвяка и будет юзать его всё время ? если да, то подскажите пожалуйста, как это исправить тоже....
|
|
|
|
pomogi | Дата: Четверг, 07 Июня 2012, 19:55:59 | Сообщение # 2 |
6 уровень
Группа: Проверенные
Сообщений: 247
Награды: 0
Репутация: 7
Блокировки:
| скинн триггеры в наработке
|
|
|
|
Akcm | Дата: Четверг, 07 Июня 2012, 20:07:33 | Сообщение # 3 |
5 уровень
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 11
Блокировки:
| Этого я не умею, но могу написать: С: Юнит умирает У: Юнит, которому не повезло - Герой Д: Set "переменная" = HeroLevel of мертвый юнит
[(ЗДЕСЬ ДОЛЖНО БЫТЬ) wait "переменная" * 2]
Воскресить мёртвого героя, чтобы он продолжил влачить своё жалкое существование
|
|
|
|
pomogi | Дата: Четверг, 07 Июня 2012, 20:14:56 | Сообщение # 4 |
6 уровень
Группа: Проверенные
Сообщений: 247
Награды: 0
Репутация: 7
Блокировки:
| у нас шас света нет гроза надвигается когда свет будет скину наработку!
|
|
|
|
kapa6acvlk | Дата: Четверг, 07 Июня 2012, 21:12:20 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 612
Награды: 0
Репутация: 361
Блокировки:
| Если на Гуи, можно так: http://s019.radikal.ru/i620/1206/70/df4c36f485e0.png но тут утечка точки, да и вайты лучше не использовать. Гораздо лучше так: Code function ResHero takes nothing returns nothing local timer t = GetExpiredTimer() local unit u = LoadUnitHandle(udg_Hash,GetHandleId(t),0) call ReviveHero( u, GetUnitX(u), GetUnitY(u), true ) call DestroyTimerDialog(LoadTimerDialogHandle(udg_Hash,GetHandleId(t),1)) call DestroyTimer(t) set t = null set u = null endfunction
function Trig_ResurrectionTime_Conditions takes nothing returns boolean return IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) endfunction
function Trig_ResurrectionTime_Actions takes nothing returns nothing local timer t = CreateTimer() local timerdialog td = CreateTimerDialog(t) local unit u = GetDyingUnit() call SaveUnitHandle(udg_Hash,GetHandleId(t),0,u) call SaveTimerDialogHandle(udg_Hash,GetHandleId(t),1,td) call TimerDialogSetTitle(td, "Âîçðîæäåíèå") call TimerDialogDisplay(td, true) call TimerStart(t,GetHeroLevel(u)*2.0,false,function ResHero) set t = null set u = null set td = null endfunction
//=========================================================================== function InitTrig_ResurrectionTime takes nothing returns nothing set gg_trg_ResurrectionTime = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_ResurrectionTime, EVENT_PLAYER_UNIT_DEATH ) call TriggerAddCondition( gg_trg_ResurrectionTime, Condition( function Trig_ResurrectionTime_Conditions ) ) call TriggerAddAction( gg_trg_ResurrectionTime, function Trig_ResurrectionTime_Actions ) endfunction
1. Создаешь триггер ResurrectionTime, преобразуешь его в текст, заменяешь текст приведенным выше кодом. 2. Заходишь в редактор переменных создаешь переменную типа Хэш-таблица, с именем Hash 3. создаешь триггер или добавляешь в уже имеющийся триггер инициализации (тот что при загрузке карты срабатывает) строку, через Custom script : Code set udg_Hash=InitHashtable() 4. Запускаешь карту проверяешь, задаешь вопросы.
Как говориться, не обязательно есть всю кучу говна, чтобы понять, что она однородна. © Александр Зорич
|
|
|
|
Akcm | Дата: Четверг, 07 Июня 2012, 21:59:22 | Сообщение # 6 |
5 уровень
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 11
Блокировки:
| Всё, спасибо большое kapa6acvlk, сделал
|
|
|
|
Extremator | Дата: Четверг, 07 Июня 2012, 22:20:17 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
| Для справкиQuote (Akcm) С: Юнит умирает У: Юнит, которому не повезло - Герой Д: Set "переменная" = HeroLevel of мертвый юнит
[(ЗДЕСЬ ДОЛЖНО БЫТЬ) wait "переменная" * 2] Уровень героя может быть 1 2 3 4 5 и т.д. ... это целые числа Время может быть 1.00 сек 1.5 сек 2.33 сек и т.д. ... это реальные числа
wait (реальное от (уровень героя * 2)) seconds game-time
|
|
|
|
kapa6acvlk | Дата: Четверг, 07 Июня 2012, 22:36:34 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 612
Награды: 0
Репутация: 361
Блокировки:
| 2ALL Зачем вообще заносить данные в переменную, если они используются один раз? Да и это ведь целое число, утечек не вызывает. Проще сделать сразу.
Как говориться, не обязательно есть всю кучу говна, чтобы понять, что она однородна. © Александр Зорич
|
|
|
|