15

» WarCraft 3 / Подсветка синтаксиса JASS для Sublime Text 2/3 и TextMate

под CustomScript вы имеете в виду секцию "Нестандартный код" в Trigger Editor меню?
Да, или в любой другой участок кода. Традиционно пишут в CustomScript.
STORM_:
каким образом *.j файлы добавляются в карту
Код из файлов просто копируется в код карты по месту импорта.
STORM_:
есть ли тулы для автоматизации данного процесса?
Нету, каждый импорт каждого файла прописывается вручную. Исключение - компилятор языка Wurst, он сам импортирует все файлы из соответствующей директории карты. Но с эти нужно еще разбираться.
15

» WarCraft 3 / Подсветка синтаксиса JASS для Sublime Text 2/3 и TextMate

STORM_, в CustomScript карты прописывается путь к файлам специальными дерективами. Примеры:
  • для языка vJass:
//! import "scripts:\MyScript.j"
  • для языка ZINC:
//! import zinc "scripts:\MyScript.zn"
  • для языка cJass:
#include "scripts:\MyScript.cj"
  • для языка Wurst не требуется
  • для обычного JASS не предусмотрено.
15

» WarCraft 3 / Region comparison?

Ну на самом деле для этого не обязательно использовать Jass, в GUI есть проверка, находится ли юнит в области, именно области, а не в регионе, ее должно хватить.
PT153:
А открывать сделанную в JNPG карту в стандартном редакторе нет смысла.
Есть, как его может не быть? Игра обновляется, в новых версиях JNGP больше недоступен, а отказываться от появившихся возможностей как-то кощунственно. Соответственно поработав в JNGP на 1.30 и ниже, в более новых версиях карту уже не откроешь, а там могут появиться очень даже важные функции.
pAxsIs:
Все верно, это мне и нужно, пока регионы у меня не пересекаются, а значит можно проверять находится ли юнит в обоих регионах, как написал:
Ну по ссылке проверить в любом случае не получится. Дело в том, что событие "Юнит входит в регион" скрытно создает новый регион, в который включает указанную область, и получить доступ к этому региону из GUI мы никак не можем.
15

» WarCraft 3 / Region comparison?

Никак. Регионы и области не сравниваются параметрически, то есть координатами, которые покрывают. Но можно узнать, находится ли точка в том или ином регионе. То есть, в твоем примере, проверить, находится ли юнит одновременно и в tempReg и в tempReg2.
15

» WarCraft 3 / Возможно ли использовать переменные в событиях в JASS?

Их просто нет в выборе в событиях, так что я не могу выбрать переменную в событии
Юнит входит в регион.
Вот о чем. Для работы с переменными, события вешаются на триггер в действиях другого триггера, например
Картинка
Но лучше на скрипты переходить, это да. В пару строк кода делается то, от чего правая рука кликать устанет, а она еще перед сном понадобится.
pAxsIs:
А что раньше происходит действия в триггерах, который срабатывают (во время события инициализация) или регистрация события? Подозреваю, что второе.
Порядок инициализации триггеров ты можешь определить вручную посредством ручного запуска действий триггеров Действие -> Триггер -> Run Trigger
Загруженные файлы
15

» WarCraft 3 / Возможно ли использовать переменные в событиях в JASS?

А что конкретно не позволяет тебе использовать переменные в событиях GUI?
одноцветный с ужасным шрифтом JASS
У тебя нет подсветки синтаксиса, как будет выглядеть код в подходящем редакторе видно на скриншоте PyCCKuu_4eJl
15

» WarCraft 3 / Переиздание WarCrafr III - Чего ждать?

Blizzard'ы переиздали WarCrafr III.
Blizzard еще ничего не переиздали. Они только начали собирать деньги на то, чего еще не сделали. А вообще тут уже есть тема с обсуждением и обновлением последней информации, зачем еще одна. В самом деле, одна из первых в ленте уже на протяжении нескольких дней.
15

» WarCraft 3 / thistype и струкруты

А можно их вообще убрать?
Можно. Но понадобится массив для хранения всех экземпляров структуры. Дело в том, что таймер обходит все экземпляры чтобы убавить оставшееся время воскрешения на 1 каждую секунду, это происходит внутри функции
static nothing update()
Ну и разумеется внутри функциий create и destroy вносить и убирать отработанные экземпляры в/из этого массива.
15

» WarCraft 3 / thistype и струкруты

Как она работает? Где об этом можно почитать?
В гугле. Это общая концепция программирования. Суть проста - каждый экземпляр какого-то типа хранит в себе ссылку на предыдущий экземпляр этого типа и на следующий (в твоем примере это массивы next и prev), таким образом позволяя пройтись по всем экземплярам этого типа. Но в показанном тобой коде реализация стремная, поскольку использование статичных массивов в виде
            set next[prev[this]] = next[this]
            set prev[next[this]] = prev[this]
это просто избыток. Если next и prev изменить из массва в обычные атрибуты, работа алгоритма не изменится, но код станет на много проще.
15

» WarCraft 3 / Как это работает

Как использовать тут readonly
Никак, вместо этого используется перегрузка операторов.
Vitalik8:
что такое опциональная реализация модуля?
Это означает, что модуля может не быть. То есть, при использовании модуля внутри структуры с указанием ключевого слова optional, при отсутствии этого модуля в коде карты, компиляция не прервется, ошибки выдано не будет.
15

» WarCraft 3 / thistype и струкруты

Что за тип thistype?
Используется внутри структур вместо имени этих структур. Следующее эквивалентно
Код
struct Test
    static string s = "Hello, World!"
    method MyMethod takes nothing returns nothing
        call DysplayTextToPlayer(GetLocalPlayer(), 0, 0, Test.s)
    endmethod
endstruct
struct Test
    static string s = "Hello, World!"
    method MyMethod takes nothing returns nothing
        call DysplayTextToPlayer(GetLocalPlayer(), 0, 0, thistype.s) // <- "thistype" вместо имени структуры "Test"
    endmethod
endstruct
Как работает эта часть кода?
И эта
Это реализация двусвязного списка.
В показанном тобой коде ужасная помесь vJass и cJass, а используемый подход с this делает логику запутанной. Не рекомендую пытаться на нём учиться.
Как всё работает через один таймер.
Код воскрешает юнита через некоторое время после его смерти. Для этого нужен таймер. Но вместо того чтобы создавать новый таймер для каждого экземпляра структуры, автор создал 1 общий таймер, а в экземплярах хранит оставшееся время до воскрешения юнита, отнимая 1 через каждую секунду работы общего таймера. Так себе подход.
Да и в целом, что за манипуляции с thistype и this.
Если есть статья и я её пропустил, сори c:
Посмотри в списке статей vJass
15

» WarCraft 3 / Не работает понижение уровня исследования

Какая чушь. Помойкой разве что становится. Типо петров.
Ну никто не отрицает, что это работает в обе стороны. Но я бы задался тогда другим вопросом, почему моя карта привлекает только тех, кто производит помои. Почему моя карта вдохновляет делать помои. Быть может исходный материал другого не предполагает. Не такой шедевр, каким я его считал. В общем, посмотрел бы сначала на себя.
15

» WarCraft 3 / Не работает понижение уровня исследования

  1. Практического смысла в этом никакого. Особенно странно смотреть на борцов за свои "авторские права" с пиратки. На практике карта становится действительно интересной после того как пройдёт через множество рук и впитает в себя множество идей сообщества. Так было с любой успешной картой. А почему это работает иначе в головах, что боятся Пети из 5-го Б, никто не знает.
15

» WarCraft 3 / Два события в триггер

По коду честно говоря ничего не понятно. Но в отлове урона это обычная ошибка, когда урон наносится внутри триггера, отлавливающего урон или если он вызывает действия которые наносят урон и снова вызывают этот триггер. Бесконечная рекурсия в общем роняет игру.
15

» WarCraft 3 / Работает ли функция GetLocalPlayer с SetAbilityTooltip?

Работает, десинка не вызывает.
Иконки и положение кнопок так же можно менять локально.
15

» WarCraft 3 / и снова Wurst

возможностей сверх редактора объектов не дает,
Ну как раз возможности сверх редактора он даёт, удобство и автоматизация, это те самые возможности. Возможностей сверх игры он не даёт, так будет сказать вернее.
15

» WarCraft 3 / и снова Wurst

PyCCKuu_4eJl, а ты проверь уровень этой способности у юнита и вспомни назойливую настройку в РО для канала, которая уже всю плешь проела. Нужно включить отображение способности на панели.
Для канала, к стати, так же предусмотрен индивидуальный пакет ChannelAbilityPreset, он удобнее.
15

» WarCraft 3 / и снова Wurst

Пойду страдать над системой отлова урона, ибо система плавного движения даммиков мне пока не под силу :d
Посмотри, может тебе этого хватит с лихвой, в стандартной библиотеке пакет DamageDetection. К нему так же прилагается пакет DamageType, для определения типа отловленного через DamageDetection урона.
15

» WarCraft 3 / и снова Wurst

Даже если в редакторе создать молоток без бафов, и использовать его в AbilityDefinition('новый молоток', 'молоток из редактора'), то при очистке бафов, стан всё равно есть, но без эффекта.
К сожалению да, бафф это по большей части просто визуал в статусе героя. На механику мало влияет.
Не получается через UnitDefinition() сделать копию Сильваны 'Hvwd'(Хуманы, компания),
Вроде никаких проблем
Код
package Hello
import NoWurst
import UnitObjEditing
import Unit

@compiletime function createSilvanas()
	new UnitDefinition('NSlv', 'Hvwd')
	..setName("Двурукий Стреломёт")

init
	createUnit(Player(0), 'NSlv', vec2(0, 0), angle(0))
Результат
Разница между UnitDefinition и HeroDefinition в отсутствии в первой полей из второго.
Проверь, может в файле wurst_run.args, что в папке проекта, отсутствуют строки
-runcompiletimefunctions
-injectobjects
Или забыл аннотацию compiletime перед объявлением функции, в которой генерируется юнит.
15

» WarCraft 3 / Нагрузка: ХТ vs Массивы

Как и всегда - для тебя это не имеет значения. В Wc ты не будешь писать алгоритмы во много десятков тысяч операций ежесекундно, а следовательно и выбора перед тобой не стоит.
С другой стороны, используя массивы ты будешь производить дополнительные операции связанные с алгоритмами поиска/рассчета ячеек или данных в массиве, что с лихвой перекрывает всякое туманное преимущество.
Бери с чем удобнее работать.