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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[НАРАБОТКА]Оживление героев
xomachДата: Четверг, 25 Октября 2012, 14:52:08 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
СКАЧАТЬ
То, что так сложно на гуи и так просто в джасс(ну в частном случае по крайней мере). Не нашел этого в интернете, и вот, сделал. Почти не тестил, надеюсь, все работает правильно. Настраивается из триггера "Settings". Без пояснений в коде. Делал, что называется, на все случаи жизни, очень много настроек.




Сообщение отредактировал xomach - Четверг, 25 Октября 2012, 16:02:44
 

[SeKtOR]Дата: Четверг, 25 Октября 2012, 15:30:41 | Сообщение # 2
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Недостатки:
- Триггер "Settings" не уничтожается после работы(он не нужен после присвоения переменных, а в памяти висит)
Code
local trigger t = GetTriggeringTrigger()
call TriggerClearConditions(t)
call TriggerClearActions(t)
call DestroyTrigger(t)
set t = null




Сообщение отредактировал [SeKtOR] - Четверг, 25 Октября 2012, 15:31:35
 

xomachДата: Четверг, 25 Октября 2012, 15:33:32 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
[SeKtOR], кхм, никогда не уничтожал триггеров. Теперь знать буду, что надо-)

 

SirNikolasДата: Четверг, 25 Октября 2012, 16:26:13 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (|SeKtOR|)
call TriggerClearConditions(t)
call TriggerClearActions(t)
Это не уничтожает условия/действия, а только отменяет их "привязку" к триггеру.

Как я понял, Settings запускается один раз при инициализации карты. Если это так, триггер вообще не нужен:
Code
function InitTrig_Settings takes nothing returns nothing
    //Код
endfunction


 

xomachДата: Четверг, 25 Октября 2012, 16:32:23 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
Quote (SirNikolas)
function InitTrig_Settings takes nothing returns nothing
    //Код
endfunction

Ну да, в голову как-то не приходило
Quote (SirNikolas)
Это не уничтожает условия/действия, а только отменяет их "привязку" к триггеру.

Тогда есть смысл делать, как сказал сектор?


 

SirNikolasДата: Четверг, 25 Октября 2012, 17:08:42 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Здесь лучше просто не создавать триггер, чем потом мучиться с его уничтожением.
В некоторых других случаях, когда действительно требуется удалить триггер со всем содержимым, условия и действия нужно записать в переменные и удалить через TriggerRemoveCondition(trigger, triggercondition) & TriggerRemoveAction(trigger, triggeraction).


 

xomachДата: Четверг, 25 Октября 2012, 17:17:23 | Сообщение # 7
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
SirNikolas, ну а для очистки памяти триггер удалять стоит? Не обязательно инишный.

 

SirNikolasДата: Четверг, 25 Октября 2012, 18:03:45 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Вопрос весьма спорный. С одной стороны, удаленный триггер перестанет занимать память. С другой, понадобится пара глобальных переменных под условие и действие, которые (переменные, а не condition/action) останутся висеть и после удаления.
Мне кажется, триггер стоит удалить, если он был зарегистрирован на событие, которое часто срабатывает.


 

xomachДата: Четверг, 25 Октября 2012, 18:06:14 | Сообщение # 9
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
SirNikolas, понятно, спс

 

  • Страница 1 из 1
  • 1
Поиск:

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