Trigger - Add new Event - Форум


Правила форума ·

  • Страница 1 из 1
  • 1
Trigger - Add new Event

FatalBlade

#1
Возможно ли что триггерное добавление события в триггер вызывает утечки и в итоги сильные лаги?
Дело в том что у меня у одного из героев есть скилл, что он активирует ауру, и с этого момента на протяжение 60 секунд, каждая еденица урона по героя подсчитывается. Урон накапливается до определённого максимума (зависит от лвла скилла). С помощью другого скилла, герой наносит столько урона по врагу, сколько накопил с помощью ауры.
Понятно что это сделано с помощью добавления события в триггер. Так вот я попробовал потестить этого героя, и после 30-40 минут с игры ним,игра начала лагать. Самое интересно что не вся карта, а только то что вокруг героя. Т.е. если герой в поле зрения камеры, начинаются лаги. Если я отведу камеру чуть подальше от героя, так что бы не видеть его, игра играет нормально. В чём может быть утечка? Я всё проверял, всё чистил.

H_A_PK

#2
Quote (FatalBlade)
Возможно ли что триггерное добавление события в триггер вызывает утечки и в итоги сильные лаги?

Триггерно - нет, жассом - да.
Quote (FatalBlade)
Понятно что это сделано с помощью добавления события в триггер.

Это делается дополнительными триггерами
Quote (FatalBlade)
В чём может быть утечка? Я всё проверял, всё чистил.

откуда мы знаем, код покажи, все телепаты уехали по лагерям
Ползут 2 пирожка.
Первый: Я тебя щас трахну.
Второй: Почему?
Первый: Потому что я с яйцами :D

FatalBlade

#3
Quote (H_A_PK)
Это делается дополнительными триггерами

Само собой. Я так и делал.

Quote (H_A_PK)
откуда мы знаем, код покажи, все телепаты уехали по лагерям

Это сделано на ГУИ, потому что во всей этой системе присутствуют 9 триггеров и в абилки.

Добавлено (22.07.11, 16:26)
---------------------------------------------
Вот триггер в котором абилка добавляет событие в дополнительный триггер:

Code

Suffer
     Events
         Unit - A unit Starts the effect of an ability
     Conditions
         (Ability being cast) Equal to Suffer Butcher
     Actions
         Set Suffer_Unleash_Counter = (Suffer_Unleash_Counter + 1.00)
         Set Suffer_Unleash = 0.00
         Set SufferCaster = (Casting unit)
         Set SufferLevel = (Level of Suffer Butcher for SufferCaster)
         Set Suffer_Active = True
         Player - Disable Suffer Butcher for (Owner of SufferCaster)
         If (All Conditions are True) then do (Then Actions) else do (Else Actions)
             If - Conditions
                 (SufferCaster is in SufferCheckGroup) Equal to False
             Then - Actions
                 Trigger - Add to Suffer Take <gen> the event (Unit - SufferCaster Takes damage)
                 Unit Group - Add SufferCaster to SufferCheckGroup
             Else - Actions

         Wait 60.00 seconds
         Player - Enable Suffer Butcher for (Owner of SufferCaster)
         Unit Group - Remove all units from SufferCheckGroup
         Custom script:   call DestroyGroup(udg_SufferCheckGroup)
         Set SufferCaster = No unit
         Custom script:   call RemoveUnit(udg_SufferCaster)
         Set Suffer_Unleash = 0.00
         Special Effect - Destroy Suffer_Max
         Trigger - Turn off Unleash Ready <gen>
         Floating Text - Destroy Unleash_Ready_Text
         Set Suffer_Active = False

Добавлено (22.07.11, 16:26)
---------------------------------------------
А вот сам дополнительный триггер куда добавляется событие:

Code

Suffer Take
     Events
     Conditions
     Actions
         If (All Conditions are True) then do (Then Actions) else do (Else Actions)
             If - Conditions
                 And - All (Conditions) are true
                     Conditions
                         Suffer_Unleash Greater than or equal to Suffer_Damage
                         (Damage taken) Greater than 0.00
                         Suffer_Active Equal to True
             Then - Actions
                 Set Suffer_Unleash = Suffer_Damage
                 Sound - Play AbominationYesAttack1 <gen> at 100.00% volume, attached to SufferCaster
                 Trigger - Turn on Unleash Ready <gen>
             Else - Actions
                 If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                     If - Conditions
                         And - All (Conditions) are true
                             Conditions
                    (Damage taken) Greater than 0.00
                    Suffer_Active Equal to True
                     Then - Actions
                         Set Suffer_Unleash = (Suffer_Unleash + ((Damage taken) / Suffer_Unleash_Counter))
                     Else - Actions
                 If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                     If - Conditions
                         And - All (Conditions) are true
                             Conditions
                    (Damage taken) Greater than 0.00
                    Suffer_Active Equal to True
                     Then - Actions
                         Special Effect - Create a special effect attached to the chest of SufferCaster using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                         Wait 0.10 seconds
                         Special Effect - Destroy (Last created special effect)
                     Else - Actions

Alex-elf

#4
FatalBlade, Может стоит сделать не добавляя новых событий,а с помощью переменных
Напиши здесь в чем суть магии и я тебе ее сделаю
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

FatalBlade

#6
Quote (Alex-elf)
FatalBlade, Может стоит сделать не добавляя новых событий,а с помощью переменных
Напиши здесь в чем суть магии и я тебе ее сделаю


Всё уже давно сделано, и оно прекрасно работает. Для одного юнита. Если сразу 2 юнита кастанут эту абилку то будет хз что. Но поскольку юнит - герой, и в моей карте каждого героя может выбрать только 1 игрок (2 игрока например не могут выбрать одинаковых героев), то абилку не так уж нужно переводить на джасс. Это абилку будет кастовать лишь 1 единственный юнит на всей карте.

Проблема лишь в том, что у меня добавляется событие в другой триггер, а вот как потом удалять это событие я не знаю.
  • Страница 1 из 1
  • 1
Поиск: