ГлавнаяБлогКарты Warcraft 3Гайды для первой ДотыГайды для Доты 2 [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: XOPYC  
Форум » Картостроение в Warcraft 3 » Обучение » Работоспособность триггера
Работоспособность триггера
Дата: Понедельник, 11.07.2011, 22:24 | Сообщение # 1
Генерал-лейтенант
Проверенные
Сообщений: 522
Награды: 5
Репутация: 26
вот тригер.
будет ли он работать если одновременно несколько людей зайдут в лаву??
и будет ли лагать?? вообще есть какиенибудь нюансы в триггере?

если опять не так тему назвал и не туда засунул изв.
просто непойму что куда сувать <_< :( :)
Прикрепления: 4538317.jpg (163.4 Kb)
 
Дата: Понедельник, 11.07.2011, 23:11 | Сообщение # 2
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Да триггер написан корректно и будет работать для всех(одновременно).
Утечка только в сообщении и то не уверен.
Лагов быть не должно даже если сотня паладинов наступит в лаву.
Но таймер я поменял бы с 0.01 на 0.1N, где N любое число, не использованное ранее в подобном триггере.
Особой функциональности это не несёт, но позволяет избежать синхронности с другими триггерами. Вдруг ещё что-то будет проверяться каждые 0.01 сек и тогда нагрузка на один промежуток времени значительно увеличится, кроме того триггер с 0.01 будет работать почти бесприрывно и служить довеском ко всем остальным триггерам.

А если учесть, что Piked unit (выбранный юнит) записывается в память bj (глобальная переменная, такая же как и loopA, LastCreatedUnit, LastCreatedItem и тд.), то второй подобный триг может привести к сбою.
Я это не утверждаю, но предполагаю.

Ещё, если оставить 0.01 событие, то даже при небольшом количестве паладинов триггеры начнут наслаиваться друг на друга.


Сообщение отредактировал DonLaonda - Понедельник, 11.07.2011, 23:22
 
Дата: Вторник, 12.07.2011, 08:16 | Сообщение # 3
Генерал-лейтенант
Проверенные
Сообщений: 522
Награды: 5
Репутация: 26
Quote (DonLaonda)
А если учесть, что Piked unit (выбранный юнит) записывается в память bj (глобальная переменная, такая же как и loopA, LastCreatedUnit, LastCreatedItem и тд.), то второй подобный триг может привести к сбою. Я это не утверждаю, но предполагаю


к сожелению у меня есть ещё один тригер
событие игрок выбирает отряд
действие выбрать такойто отряд
убить этот отряд

у меня будет норм? или лучше переписать в другую локальную переменную
=====================================================================================
вот часть триггера с переменной bj.

function Trig_____________________________________005_Actions takes nothing returns nothing
call ForGroupBJ( GetUnitsOfTypeIdAll('Hpal'), function Trig_____________________________________005_Func001A )
endfunction

я пытаюсь сделать так
local integer n
set n = ForGroupBJ( GetUnitsOfTypeIdAll('Hpal')) выдает ошибку


Сообщение отредактировал TOTKTO3HAETBCE - Вторник, 12.07.2011, 08:38
 
Дата: Вторник, 12.07.2011, 10:30 | Сообщение # 4
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Quote (TOTKTO3HAETBCE)
в другую локальную

А где первая О_о
Quote (TOTKTO3HAETBCE)
) выдает ошибку

Какую именно, там ведь пишут что не так.
Предполагаю, что неверное использование функции
Судя по всму
ForGroupBJ( GetUnitsOfTypeIdAll('Hpal'), тут должен быть экшен)
И это можно сократить в одну строку.
local integer n = ForGroupBJ( GetUnitsOfTypeIdAll('Hpal'),ошибка)
Может проще использовать переменные героев? Т.е. при выборе паладина или как там у тебя, он будет записываться в переменную.
Тогда, функция ForGroupBJ вообще не нужна и работа упростится.
 
Форум » Картостроение в Warcraft 3 » Обучение » Работоспособность триггера
  • Страница 1 из 1
  • 1
Поиск: