Событие - иницилизация карты Действие - взять все декорации типа (каменная глыба) в зоне (играбельная карта) Триггер - Add to Kamuski <gen> the event (Декорация - (Picked destructible) dies)
И 2й
Code
Событие - Условие - Действие - ждать (сколько тебе надо) Ressurect (Duing destructible) with (99999 life) and Показать birth animation
События: Декорация в регионе умирает (Playble Map Area) Условия: Destrucible Type Comparision - указываеш нужный тип например каменные глыбы Действия: Wait (20) second Декорация - Ressuret (Dying Destructible)
Сообщение отредактировал Kartoha - Пятница, 05 Ноября 2010, 16:55:50
лучше так: События Декорация - Destructible Within Region Dies (Playable Map Area) Условия Destructible-Type Comparision - указываеш нужный тип например каменные глыбы Действия Custom Script: local destructable d=GetTriggerWidget() Custom Script: call DestroyTimer(bj_crippledTimer[-234]) Custom Script: call TimerStart(bj_crippledTimer[-234],20,false,function DestructableRestoreLife(d,GetDestructableMaxLife(d),true)) Custom Script: set d=null
Местами здесь.
Сообщение отредактировал EdiTTORR - Суббота, 06 Ноября 2010, 19:29:02
А вы уверены что возрождаться будет именно та декорация которая была разрушена? Просто если разрушить другую декорацию, то тригг пойдет и на другую разрушенную декорацию. .
function ResDest takes widget d returns nothing call DestructableRestoreLife(d,GetDestructableMaxLife(d),true) call DestroyTimer(GetExpiredTimer()) endfunction
2.Сделай триггер: События Декорация - Destructible Within Region Dies (Playable Map Area) Условия Destructible-Type Comparision - указываеш нужный тип например каменные глыбы Действия Custom Script: local timer t=CreateTimer() Custom Script: local widget d=GetTriggerWidget() Custom Script: call TimerStart(d,20,false,function ResDest(d)) Custom Script: set d=null Custom Script: set t=null
Это стопудняк норм.
Местами здесь.
Сообщение отредактировал EdiTTORR - Воскресенье, 07 Ноября 2010, 00:03:04
Kartoha, BUUNI был прав насчёт первого кода. Просто там в близзовскую глобалку в отриц. ячейку массива записывалась умершая декорация, а если разрушалась другая то перезаписывалась и первая не восстанавливалась. Во втором примере исправил этот баг поскольку там вызывалась функа таймером и изменения переменной быть не могло(локалка всё-таки).
Quote (EdiTTORR)
Исправил.
1.Закинь в код карты функцию:
Code
function ResDest takes widget d returns nothing call DestructableRestoreLife(d,GetDestructableMaxLife(d),true) call DestroyTimer(GetExpiredTimer()) endfunction
2.Сделай триггер: События Декорация - Destructible Within Region Dies (Playable Map Area) Условия Destructible-Type Comparision - указываеш нужный тип например каменные глыбы Действия Custom Script: local timer t=CreateTimer() Custom Script: local widget d=GetTriggerWidget() Custom Script: call TimerStart(d,20,false,function ResDest(d)) Custom Script: set d=null Custom Script: set t=null
Это стопудняк норм.
Местами здесь.
Сообщение отредактировал EdiTTORR - Воскресенье, 07 Ноября 2010, 13:09:33
События: Декорация в регионе умирает (Playble Map Area) Условия: Destrucible Type Comparision - указываеш нужный тип например каменные глыбы Действия: Wait (20) second Декорация - Ressuret (Dying Destructible)
Я сделал такой триггер, уничтожил несколько декораций, и все они восстановились.
Custom Script: local timer t=CreateTimer() Custom Script: local widget d=GetTriggerWidget() Custom Script: call TimerStart(d,20,false,function ResDest(d)) Custom Script: set d=null Custom Script: set t=null
Вместо 2 простых действий вставляеш 4 строки кода и функцию. Это создает впечатление, что ты больше стараешся показать свои знания кода, чем помочь в вопросе. EdiTTORR, пойми, если DarkCote бездумно будет вставлять чужой код в свою карту он не научится делать ничего сам.
Kartoha, , ты прав , но нет, я не показываю знания кода скорее просто хочу дать хороший ответ.
Сделай триггер: События Декорация - Destructible Within Region Dies (Playable Map Area) Условия Destructible-Type Comparision - указываеш нужный тип например каменные глыбы Действия Custom Script: local widget d=GetTriggerWidget() Wait(20.00)seconds Custom Script: call DestructableRestoreLife(d,GetDestructableMaxLife(d),true) Custom Script: set d=null
Сначала тупанул. И нахрен было эти таймеры придумывать? Всё-равно локалки не перезапишутся.
Местами здесь.
Сообщение отредактировал EdiTTORR - Воскресенье, 07 Ноября 2010, 19:07:50