18

» WarCraft 3 / Помощь в избавлении от BJ

Там где ты уничтожаешь таймер в Flyin - можно заного запустить таймер и уже юзать Flyout
И ещё ты во Flyin используешь "location endfly" которая там просто висит, наверное ты забыл поменять на endfly_x/y
Вместо многократного использования GetHandleId(t) - занеси всё в одну integer и используй её
Обнулять нужно только указатели на игровой объект, обнулять real/integer/boolean/string не нужно.
Есть исключения, если игровой объект в игре будет всю игру (к примеру игрок) - то указатель на него не обязательно обнулять
18

» WarCraft 3 / Помощь с настройкой таймера и хэш-таблицы

Lillikon, это не требует знаний математики, просто нужно запомнить формулы
Насчет таймера - Borodach дал ответ
18

» WarCraft 3 / Помощь с настройкой таймера и хэш-таблицы

Borodach:
Нужно еще почитать как делается движение по координатам...
там нету ничего сложного, наоборот - с координатами удобнее и проще + код более читаемый и оптимизированный, всё что нужно я написал выше)
18

» WarCraft 3 / Помощь с настройкой таймера и хэш-таблицы

Это достаточно неправильный код, везде BJ функции, location и т.д.
Сначала потренируйся просто переместить любого юнита в нужные тебе координаты.
Вместо location используй координаты "x" и "y"
К примеру:
Вычисление угла между координатами (в радианах)
a = Atan2(m.y - GetUnitY(u), m.x - GetUnitX(u))
//m.x и m.y это "конечная" точка, в которую юнит должен переместиться
Чтобы вычислить "x" смещение от места где стоит юнит с нужными тебе углом (угол "a" в радианах):
x = GetUnitX(u) + 2000. * Cos(a)
//Там где 2000. - это нужное тебе расстояние, можно записать как 2000.00 (без разницы)
Чтобы вычислить "y" смещение от места где стоит юнит с нужными тебе углом (угол "a" в радианах):
y = GetUnitY(u) + 2000. * Sin(a)
//Там где 2000. - это нужное тебе расстояние, можно записать как 2000.00 (без разницы)
Ну а потом
SetUnitX(u, x)
SetUnitY(u, y)
Далее уже можешь передвигать юнита каждые 0.03 секунды по 5 точек.
К примеру тот же код что выше - заранее вычисляешь им координаты где должен в итоге оказаться твой юнит
Или если у тебя уже есть готовые координаты, к примеру если юнит летит в точку кастования способности
И этим же кодом выше передвигаешь юнита по 5 точек каждые 0.03 секунды
А чтобы поймать окончание "передвижения" просто каждый раз сравнивай дистанцию, если она будет меньше 10, то уничтожай таймер и т.д
Там где 10 я имел ввиду кол-во точек на которое передвигается юнит + 5
Вычисление дистанции между координатами
local real dx = m.x - x
local real dy = m.y - y
local real d = SquareRoot(dx * dx + dy * dy)
//Там где m.x и m.y - это конечные координаты
//А "x" и "y" - это текущие координаты юнита
18

» WarCraft 3 / Хеш-таблица или куча массивных переменных

DracoL1ch, если говорить о удобстве, то даже нубу будет ясно что удобнее
хештаблица
LoadReal(h, id, StringHash("damage"))
//или
LoadReal(h, id, 0)
структура
m.damage
Я не говорю что хештаблица фигня.
Хештаблица незаменима для некоторых задач, к примеру если нужно прикрепить к равкоду какие то значения
LainMikoroso:
Насколько я помню структуры на vJass, 1.30 поддерживает его?
поддерживает
18

» WarCraft 3 / LoadUnitHandle не возвращает значение функции

Hate:
п.с. комментаторов выше можешь игнорировать, они ударились об что то твердое и очень сильно
ну уж извини, в материале про хештаблицу это и многое другое не упоминается.
Был бы полноценный материал - не было бы таких ошибок.
Постоянно называете "отсталым/и", вместо того чтобы поправить
PT153, благодарю
18

» WarCraft 3 / Хеш-таблица или куча массивных переменных

LainMikoroso:
удобнее таблица
если привыкнуть к структурам, то писать код с ними будет намного быстрее и удобнее.
18

» WarCraft 3 / LoadUnitHandle не возвращает значение функции

Независимо от того SaveReal там или SaveUnitHandle, ты записываешь значения в одну и ту же таблицу.
Ты просто SaveReal(h, id, 0, x_c) перезаписываешь этим - SaveUnitHandle(h, id, 0, u_c) и этим - SaveEffectHandle(h, id, 0, e)
18

» WarCraft 3 / Помощь с локальными переменными

Локальные переменные нельзя использовать в GUI'шных "if then else", карта просто не запустится
Т.к если GUI'шные "if then else" перевести в jass, то будет функция с действиями триггера, а чуть выше функция с условиями этого же "if then else".
А в этом и прикол локальных переменных, их можно использовать только в пределах функции в которой они были вызваны (созданы).
И лучше начни писать на jass, он легкий, хоть и кажется сложным после GUI
К примеру такие задачи на GUI которые буквально голову ломают - на jass делаются достаточно легко и быстро
дабы избежать конфликтов с многократными использованием
это будет проблематично на GUI
Поэтому лучше не парить голову этим, а почитать эти материалы:
18

» WarCraft 3 / Удаление спецэффекта с null'евым путем к моделе

Jack-of-shadow
объект сам по себе не удалится
DestroyEffect снесет любой спецэффект без исключений, будь он с путем null или "" в данном случае как я говорил выше - это почти одно и тоже
18

» WarCraft 3 / Где можно найти хорошие предметы?

Extremator:
Скорее всего это была версия 5.62 +/- , ибо дальше они стали протектить карту
без разницы какая версия)
Везде можно по равкоду предмета или абилки которую он юзает найти весь нужный код
Но до этого нужно будет сделать деобфускацию кода с помощью RMPQex
Ну а после того как вытащил код, сделать по быстрому ручную деобфускацию
Думаю не нужно рассказывать как вытащить предмет из редактора объектов)
18

» WarCraft 3 / Где можно найти хорошие предметы?

Absolute:
так как они в основном триггерные
это был намек на то, что автор вопроса не шарит в jass?)
18

» WarCraft 3 / Удаление спецэффекта с null'евым путем к моделе

null по сути == ""
Просто будет спецэффект как объект, но он не найдет путь к модели и будет без модели
Вспомни локальные спецэффекты
18

» WarCraft 3 / Оптимизация карты при большом количестве декораций

Может быть вместо декораций - спецэффекты с блокираторами пути?
К примеру блокираторы пути поставить только в нужных местах, но не по всей площади спецэффекта
18

» WarCraft 3 / Как воспроизводить звук на скилле?

Попробуй другие события, например:
"Начинает направлять способность"
18

» WarCraft 3 / Снижается скорость атаки

посмотри как у урсы сделано
Там и скорость атаки (со счетчиком ударов) есть и алгоритм добавления зеленого урона
18

» WarCraft 3 / Кто знает, что это за защита?

PT153 единственная альтернатива - w3map Restorer, но он умеет конвертить SLK (криво конвертить)
18

» WarCraft 3 / Кто знает, что это за защита?

  1. x-deprotect не обеспечивает адекватного восстановления карты, она годится лишь для изучения.
  2. x-deprotect не умеет работать с нормально оптимизированными картами (это я про SLK)
  3. не используй x-deprotect
x-deprotect - потому что он единственный не умеет конвертить SLK
SLK - потому что "нестандартных объектов 0" и некоторые абилки при SLK оптимизации сохраняются в виде w3a
18

» Мир безумного / WarCraft 3 - 1.30 (все патчи PTR)

Praytic:
как забьешь, так и вернешься, ностальгия сильная штука
вечно так не будет продолжаться)
18

» Мир безумного / WarCraft 3 - 1.30 (все патчи PTR)

Praytic:
UrsaBoss, Ну рано или поздно придется перейти, а сейчас ты просто не на той стороне лагеря
я ни на чьей стороне, на лагери вы начали делить.
Я говорил о бессмысленности новых патчей, т.к они ломают почти всё на чем держался и выживал варкрафт
"Рано или поздно" я уже забью на варкрафт, это не та игра у которой есть будущее
18

» Мир безумного / WarCraft 3 - 1.30 (все патчи PTR)

Действительно
Что в новых патчах такого что заставило бы меня перейти на них?
Тем более покупать варкрафт за 1к - бред)
18

» Мир безумного / WarCraft 3 - 1.30 (все патчи PTR)

Глупые споры
Кому то хочется нового, а кому то и на старом удобно.
Мне вообще на 1.26 удобно, пришел домой после тяжелого дня, зашел поиграл в 2-3 карты и т.д
Мало что ли на 1.26 хостов и карт? Разве с новыми патчами что то изменится для тех кто считал что 1.26 сдох?
Ведь близзарды начали делать патчи из за просьб игроков, т.к вряд ли бы они стали делать что то просто так
Я думаю почти у всех нету желания переходить на новые патчи.
Лучше бы близзарды оставили всё как есть, нет ***** надо выжать весь сок из древней игры.
В данном случае можно назвать игру 2010 года древней, НО ЭТО ЖЕ 2003 ГОДА ИГРА!!!