Многое читал о функции начисления этого ресурса после постройки здания, написанной с помощью JASS. Можно ли обойтись встроенным в ворлд эдитор редактором триггеров, чтобы создать триггер на автоматическое начисление игроку древесины?

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

Копируй себе все три триггера и настраивай на свой лад:
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
5 лет назад
0
PyCCKuu_4eJl, а месье знает толк в извращениях XD, но до такого ни 1 карта не дойдёт наверное, гуишная мапа вылетит на 100к, а не на двух миллионах
0
26
5 лет назад
0
Если всё так, то это хорошо. Но чем тогда объяснить увеличение времени загрузки карты Survival Chaos после каждой игры в неё (без выхода из программы)?
0
28
5 лет назад
Отредактирован PT153
0
Survival Chaos
Если там используется мемхак, то дело вполне может быть в нём (забыли что-то где-то почистить). Если нет, то дело может быть в импортируемых звуках и шрифтах, которые подгружаются в память, но не очищаются после выхода из игры (и это не JASS объекты).

Сам вопрос-то решён?
0
26
5 лет назад
0
Если бы был мемхак, то не соответствует тому, что после мемхака игру всегда требуется перезапускать. Шрифтов новых вроде бы нет, но есть несколько импортированных wav-звуков английской озвучки. Только размер их слишком мал по сравнению с заметным увеличением времени загрузки. Явно есть что-то ещё. И это не только с Survival Chaos проблема, в ней лишь наиболее ярко это наблюдал, потому что много играл в неё, с многими другими картами аналогичная ситуация, поиграешь в карту, следующая медленнее загружается, потом ещё медленнее.

Какой вопрос имеешь ввиду? Если основной вопрос автора, то конечно)


Лорд13, вот карта с оптимизацией/совершенствованием триггера.
Там несколько триггеров stage x, на которых поэтапно показаны изменения. В итоге становится понятно, почему один триггер лучше не использовать, так как просто не хватает необходимого функционала для полноценной работы одного триггера.
  • stage 0 - это первый этап оптимизации, где убраны действия Ничего не делать и добавлено удаление группы, чтобы устранить утечку. Важно отметить, чтобы удаление группы стояло в нужном месте. Если бы поставил его в перебор группы с действиями Если/То/Иначе, то оно удалило бы группу после перебора первого юнита, и дальше перебор не пошёл бы;
  • stage 1 - это создание уточняющих условий, что здание не в процессе строительства и живое. К сожалению, нет условия на проверку здания, построено ли оно уже, потому использовать надо событие Юнит Завершает строительство. Но чтобы всё-таки сделать один триггер, можно использовать проверку на уровень способности. У большинства зданий, не принадлежащих Нежити, есть способность Развеивание порчи. Она имеет уровень 1, то есть активна, лишь у строящегося здания, а у построенного её уровень 0, то есть способности этой словно нет. Такая проверка на уровень способности не будет универсальным решением, так как в процессе работы над картой может появиться идея добавить здания Нежити, а у них уже способность Распространение порчи, которая и у строящегося, и у построенного здания имеет уровень 1, то есть ею этап строительства не определишь. Конечно, можно потестировать, как работают эти две способности вместе, но это всё-таки костыльный метод, а не простое триггерное решение. И ещё, это методы под версию игры 1.26а, на более поздних патчах есть дополнительные триггерные возможности, например, определение защиты юнита, а у строящихся зданий вроде защита 0;
  • stage 2 - это второй этап оптимизации, где объединены повторяющиеся проверки. Условия проверки способности и жив ли юнит указываем в фильтре группы, а вместо 3 разных Если\То\Иначе делаем 2 с условием ИЛИ, типа такое-то или такое-то здание получает золото, а такое-то или такое-то дерево;
  • stage 3 - это просто логическое улучшение, которое можно и не добавлять. Если этот триггер будет использоваться, например, в многопользовательской карте с несколькими командами игроков, один из которых ливнёт, то все его юниты замрут, перестанут атаковать и добывать ресурсы, но инком со зданий продолжит поступать. Если контроль над юнитами этого игрока получат его союзники, то можно и не менять ничего, но если нет, то и инком не нужен. Поэтому в действии на перебор группы игроков следует поставить проверку, что игрок Играет.
stage 0
stage 1
stage 2
stage 3
Загруженные файлы
0
32
5 лет назад
0
8gabriel8, Дело в кешировании строк, строки никуда не деваются...
0
26
5 лет назад
0
Вот строк там много, конечно. Но всё равно на них же не столько памяти уходит, чтобы значительно затормозить следующую загрузку. Пусть строк в карте аж на 4 Мб, следующая загрузка карты будет иметь всего лишь на 4 мб меньше памяти, что явно недостаточно, чтобы сделать загрузку ощутимо медленнее. Тогда уж либо места под кэш строк мало, либо ещё что-то должно быть.
0
28
5 лет назад
0
Но всё равно на них же не столько памяти уходит
Любая конкатенация создаёт новую строку. То есть операция "a + "b" + "c" создаст строки "a", "b", "c", "ab", "abc".
0
26
5 лет назад
0
Сейчас прикинул, что там ведь много информации обновляется в таблице результатов, а это, наверное, тоже строки. Если вся эта информация из ОЗУ не устраняется, то как раз вполне возможная причина.
Раз уж коснулись этой темы, то можно как-то удалить строки?
0
28
5 лет назад
0
Раз уж коснулись этой темы, то можно как-то удалить строки?
No.
0
29
5 лет назад
0
Раз уж коснулись этой темы, то можно как-то удалить строки?
Сколько патчей висит баг, а воз и ныне там. Надеюсь в рефоржед всё починят)
0
30
5 лет назад
0
Это не баг, а особенность работы виртуальной машины. В той же Java ситуация со строками такая же, например.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.