Доброго времени суток. Хотелось бы более подробное объяснения сути некоторых моментов.
Навалился я, в очередной раз, на статейки Jass. В этот раз по-православному - от 0 до 15. Что-то понял, что-то частично понял, а что-то не понял совсем. Задавать столько вопросов, конечно, не красиво, каюсь, но некропостеров и археологов здесь не любят больше. Поэтому, кому не жалко времени, помогите новичку. Постараюсь по порядку.
  1. Много где читал и слышал, что основной плюс Jass - стабильность работы и более широкие возможности. Но что, если мне не нужны на данном этапе какие-то феерические возможности? Попытаться что-то сделать на GUI; не вышло - думать, гуглить, задавать вопрос в конце концов. Если уж и это всё не помогает и без более-менее сложного Jass кода не обойтись - идею заменить.
Стабильность работы, как я понял из статей, заключается в том, что Jass умеет правильно работать с переменными и "подчищать" утечки. Собственно, можно ведь использовать GUI с кастом скриптами на эту самую оптимизацию? (ПС: что-то важное, например, хороший спавн крипов по карте, скачать jass наработкой).
  1. По поводу переменных. Как я понял из статьи, локальные переменные грузят память, образуя эти самые утечки. Глобальные, получается, не грузят её? На основе примеров правильно ли я сделал триггер и оптимизировал его?
  1. Что именно нужно чистить, чтобы через некоторое время игры не было тех самых лагов?
Удаление юнита после смерти, удаление эффекта после его срабатывания, группы юнитов, плавающий текст. Ничего не пропустил?
ПС: совсем не понял про удаление регионов, модификаторов видимости и декораций. Если регионы не изменяются в течение игры, а только, скажем, являются варпом в данж, то что нужно очищать? По поводу декораций - то же самое, но с декорациями взаимодействия пока не запланировано (кроме каких-нибудь ворот, например). Про модификатор видимости не понял совсем ничего.
Очищать перменные через кастом скрипт set x = null, юнитов - ремувать, текст и эффекты - уничтожать.
  1. Что делают RB и SCV? Из обеих статей не понял, для чего они нужны и что делают вообще. Сильно ли они важны для новичка?
  1. Не знаю, как правильно задать вопрос, но попробую. Какие системы НУЖНО делать обязательно на Jass, а какие - НИ В КОЕМ случае не делать на GUI?
Заранее, извиняюсь за стену текста.
Надеюсь на ответы, спасибо.
1. Много читал о дамми-касте. Везде пишут, что даммиков лучше заносить в переменную и отдавать приказ переменной, во избежании лагов\фатала через несколько часов игры. Что именно в этом процессе приводит к таким последствия?
Дополнительно:
а) можно ли избежать этих проблем путём занесения в переменную через Last created Unit?
б) если занести юнитов в переменную в начале игры, а затем удалить этих юнитов, то приказы этим переменным будут работать?
2. Будут ли лаги\фаталы, если используется несколько (около 10-15) триггеров, которые что-либо делают каждые 0,5 - 1 секунд? Например, проверяет наличие бафа на юните, если бафа нет - удалить способность у юнита.

Принятый ответ

Спасибо всем за ответы и пояснения! Закрываю флудильню :с
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
4
10 лет назад
0
Если карта расчитана на несколько часов игры - лучше на гуи её не делать.
Почему? Какие могут быть проблемы и из-за чего?
вы будете отдавать приказ несуществующим юнитам, если отлавливать этого юнита, будет null
Понятно. Тогда каким образом заносить даммиков в переменную, если их, скажем, штук 50?
3
15
10 лет назад
3
Почему? Какие могут быть проблемы и из-за чего?
Неоптимизированный гуи создает много лагов
Понятно. Тогда каким образом заносить даммиков в переменную, если их, скажем, штук 50?
Можно использовать массивы
0
4
10 лет назад
Отредактирован Nyanta
0
Неоптимизированный гуи создает много лагов
Какие-то определённые триггеры или их количество?
Можно использовать массивы
Я понимаю, но я имел ввиду само создание переменной. Можно дать даммикам по 6 спеллов (или даже спеллбуком, наверное, можно 11) и заставлять их кастовать для разных приказов, но что делать, если даммиков много? Никак нельзя занести их в переменную так, чтобы "оригиналы" не оставались на карте после этого?
0
28
10 лет назад
Отредактирован nvc123
0
Nyanta, да просто занеси всех дамиков в массив и всё
  1. если 10-15 то лаги будут
юзай 1 таймер и им делай всё что надо
0
4
10 лет назад
0
да просто занеси всех дамиков в массив и всё
Я понимаю, что ты хочешь до меня донести, но не понимаю, как это сделать. У меня получается заносить в переменную юнитов лишь двумя путями:
  1. Last Created Unit
  2. Выбором уже созданного юнита на карте.
Не будет ли нагружать карту эта толпа даммиков, если они на ней обязаны находиться изначально?
1
28
10 лет назад
1
нет не будут
udg_Damy[0]=CreateUnit(Player(a),b,x,y,0)
Damy - массив дамиков
a - номер игрока(0 это красный, 1 - синий)
b - равкод дамика(можно посмотреть в редакторе объектов)
x - координата x дамика
y - координата y
0
4
10 лет назад
0
nvc123, большое спасибо за разъяснение!
Последний вопрос: чем отличается "написание jass кода" от "конвертации триггера в текст"?
2 комментария удалено
6
28
10 лет назад
Отредактирован nvc123
6
Nyanta, гуи конвертируется в бж функции
что ничем не отличается от самого гуи
а писать можно нативными функциями
объясню разницу на примере заказа пиццы
нативные:
звоним и заказываем пиццу и платим за пиццу
бж:
звоним другу чтобы тот позвонил и заказал пиццу
потом платим за звонок другу,за звонок в пиццерию и за пиццу
Этот комментарий удален
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.