Расстояние между юнитами можно мерить в различных метриках. Например вы можете использовать метрику Манхеттена r = max(|x1 - x2|, |y1-y2|) , евклидову (L2) r = sqrt((x1-x2)^2+(y1-y2)^2), L1 метрику r = abs(x1-x2) + abs(y1-y2). Если под точкой имеется в виду handle Location, динамически можно менять ее значения x и y. Что конкретно понимается под термином динамическая точка? Точка которая двигается?
Берги, по поводу стандартных механик. Касаясь этой карты конкретно. Я не видел карт, где лес постепенно зарастает, это фишка и базовая механика карты. Считаю, что именно эта механика составит новый опыт для игрока.
Я оставил только requires. Ибо судя по статье только он каноничен.
initializer и весь vjass поддерживается стандартным рефордж варкрафтом без теша и всего остального, эта статья написана до него для jngp, как я понимаю.
Там же примитивный формат TRIGSTR_число. Значит можно всё распарить и получить строки
Формат примитивный, проблема в том, что эти строки меняются как черти, например если создать апгрейд с 10-ю уровнями, порядок строк и описаний будут тасоваться в зависимости от того в каком порядке их править. Я и спросил потому, что мне саму интересно, можно ли узнать какой блок wts к чему относиться, учитывая, что такая хаотичная способность или улучшение будут подписаны одним и тем же техническим описанием.
Например у меня в карте wts выглядит так, я сначала написал все на русском, начал переписывать на английском и оказалось, что первые уровни сместились вниз. Заметить это довольно сложно, большинство строк идет по порядку уровня, но вот такую особенность я заметил.
Жаль что ты не написал как сделать это под линукс. :( Вообще под убунту плагин едва ли не единственный адекватный способ писать на джазе.
nazarpunk, Хотелось бы, чтобы переменные integer, unit тоже подсвечивались, синим например. И я не оч понял, зачем для vjass отдельное разрешение .vj потребовалось? Вроде для всех файлов стандартно .j используют.
tysch_tysch, Я просто недавно видел вот такой пак и комментарий RvzerBro про клан дуратана меня натолкнул на мысль, что было бы прикольно модели для классической графики сделать с внедренными текстурами орочьих кланов. Например рисунок тимколора сделать в виде знамени клана, хотя сейчас там какие-то три полоски(у пеона например). (P.S. не на тот коментарий ответ вставился почему-то)
У тебя была ситуация, что ты инициализировал таймер после того как пытался ему присвоить триггер, который срабатывал бы после него. А надо сначала инициализировать таймер, а затем присвоить ему триггер. А когда ты пишешь, что паразительно, то ты сначала инициализировал все, а только потом начал присвоение. Hate верно пишет тебе. Поэтому нет ничего поразительного.
Koladik, как разделить нечётное количество точек на кривые? Например 5 на 2?
Точки от 1 до 3 описываешь одним полиномом, от 3 до 5 вторым, оба 3-тей степени. На третей точке связка по производной и координате. Я не математик, просто предположение.
А почему ты решил увеличивать степень полинома? Почему бы не связать на границе две кривые по координатам и производной/ным? Я сам плохо разбираюсь в такой аппроксимации , могу специфики не понимать.
Тестил недавно, 200к операций через evaluate несколько раз, все ок работает. Через обычный вызов функции не работает. Выше владимир тоже написал о том, что создается триггер. Vladimir TVK:
в собранном проекте под неё делается отдельная функция-обёртка и триггер.
Koladik, речь про моддерский код и взаимодействие написанных нами систем. Триггеры тоже событийно-ориентированные, да. Только вот они работают на движке игры (с сетевой моделью), поэтому значительно медленнее, даже если бы мы могли создавать собственные события.
А эту штуку в целом можно и вне контекста warcraft 3 юзать.
ну то есть, это, по сути, реализация подписки на события, аналогичная триггерам по функционалу но быстрее и более универсальная?
Жасс и так писался ногами и люто медленный. Зачем лишний раз усложнять себе жизнь на ровном месте?
Ну насколько я понимаю, тут только обращение к разным функциям, даже действий нет, неуверен, что это сильно замедляет выполнение. Да и кому какая разница как оно разворачивается, если этого не видно и с этим не надо работать.
не не, тут прикол именно в том, что бы сделать код читаемым, например, вы создали такую структуру, как я описал в последнем сообщении, затем вы наследнуете ее, например так
Если по простому - это альтернатива вызова функции.
Способ Вызов:
Библиотека А реагирует на кнопку и вызывает функцию move() библиотеки Б, а Б двигает юнита
Способ События:
Библиотека Б подписывается на событие "move" и при его срабатывании двигает юнита
Библиотека А ждет нажатие кнопки и создает событие "move"
Отличие:
Попробуй удалить одну из библиотек не меняя их внутреннего кода. Прямой вызов придется переписывать
Преимущество в том, что на move могут подписаться многие библиотеки, при этом А не должна ничего о них знать
По этому объяснению я не понял в чем разница между триггерами, мы же по сути создавая триггер и подписываемся на разные события.
Ну да, оказалось все намного сложнее, первый мой пример - ошибка. Если не вызывать thistype.allocate() то переменным не будет выделяться память, однако все можно решить через хэш-таблицу и переопределение свойств класса через оператор.
Если есть желание обозвать свойства класса также как и нативки - это можно, но через костыль в виде дополнительного приватного имени, ибо jusshelper багует и пытается обозвать вызванную функцию внутри класса именем метода, даже без обращение через this.~ . прошерстил весь хайв, решения без костыля не нашел.
Также как и не нашел способа возвращать handle unit'а при стандартном обращении , аля "немой" оператор. Решение через оператор unit , самое оптимальное
» WarCraft 3 / Расстояние между точками, когда цель подвижна
» WarCraft 3 / Руби лес!
» WarCraft 3 / Руби лес!
» WarCraft 3 / Курсоры WOW для Windows
» WarCraft 3 / 6. Перехват вызова
» WarRaft / IntelliJASS
Ред. Koladik
» WarRaft / IntelliJASS
Ред. Koladik
» WarRaft / IntelliJASS
» WarRaft / IntelliJASS
Ред. Koladik
» WarCraft 3 / Бежевые орки
» WarCraft 3 / Бежевые орки
» WarCraft 3 / Бежевые орки
» WarCraft 3 / Глобальный таймер
» WarCraft 3 / Кривая Безье
» WarCraft 3 / Кривая Безье
» WarCraft 3 / Как убавлять способность при атаке
» WarCraft 3 / Кривая Безье
» WarCraft 3 / Кривая Безье
» WarCraft 3 / Кривая Безье
rsfghd:
» WarCraft 3 / 16. Функция как объект
Vladimir TVK:
» WarCraft 3 / eventDispatcher - Диспетчер Событий
» WarCraft 3 / 16. Функция как объект
» WarCraft 3 / Как дополнить методами структуру unit?
» WarCraft 3 / eventDispatcher - Диспетчер Событий
» WarCraft 3 / Как дополнить методами структуру unit?