Loran124:
Ты правда считаешь что действия, связанные с золотом и опытом, должны быть во вкладке боевой единицы?
Я вот лично не помню чтобы пехотинцы качали уровень и распоряжались золотом игрока.
Юнит умирает, юнит принадлежит нейтралу(т.е. крип), выбрать всех союзников владельца убивающего и добавить им золото.
Это предельно понятный ответ, тебе лишь функции найти осталось. У тебя радиус поиска это вкладки: юнит, герой, игрок, группа игроков - заблудиться не так сложно, верно?
2 пункта от Maniac_91: 2.1 (оскорбление) Не нужно быть настолько агрессивным. Выбирай выражения помягче, пожалуйста.
Сначала тебе нужно сделать Gamage Event:
В иницилизации создаешь группу и добавляешь туда всех юнитов на карте.
Выбираешь группу и добавляешь specific unit event в другой триггер: выбранный получает урон.
Потом делаешь ттриггер с событием "юнит входит в область" и проверяешь: если юнит не в группе, то добавишь его в группу и добавить specific unit event в другой триггер: triggering unit получает урон.
Поздравляю, в этом триггере теперь срабатывает получение урона любым юнитом.
Дальше делаешь так: если у Damage source уровень твоей пассивки != 0, тогда дамажить triggering unit на золото(владелец DS)*(0.01*уровень пассивки).
Только создавай даммика и дамаж отлица даммика, иначе триггер будет запускать сам себя, что чревато крашем. Лично я в карте создаю для всех героев "Damager" и все способности дамажат от его лица. У Дамагера есть пассивка, уровень которой = искусственный тип урона(1 = чистый, 2 = физ, 3 = маг, 4 = огонь, 5=вода и.т.д.).
Если все способности дамажат от лица даммика, то сам герой сможет дамажить только при ударе с руки - это позволит различать урон от способностей и простые удары и делать эффект на удары в damage event'e: искусственный крит, искусственный орб-эффект и т.п.
Steal nerves:
Не, ну я не настолько дцп что мне нужны наработки для контра этой фигни, но я так понимаю это какая то хардкодная хрень и настроечками абилки её не поправить. Ну ладно, эх.
никто не знает, дружок =) это загадка, которую весь сайт должен отгадать
Шутки шутками, но вопрос серьезный. Если ты о том, что я не дал какой то доп инфы, то какую инфу я должен дать еще? Обычная метаморфоза, обратный каст, приземление - это каждый может протестить за 5 минут. :\
Steal nerves:
*человек, рисовавший голых баб на всех уроках, начиная с первого класса*
Я не понимаю этих сложных слов, но щас покажу это умному братишке, чтобы он попытался обьяснить :D
Спасибо тебе за труды. Возвращение там никакое не нужно, полет снаряда в один конец
pro100master:
А теперь встрой это в ту муишную структуру, пожалуйста, так чтобы всё работало... х)
На всякий случай, повторю вопрос еще более конкретно:
Нужно чтобы парабола не фиксировала высоту вообще никак. Вообще никак. Вообще никак.
Только плюс высота / минус высота.
Т.е. получается должно быть что то типа такого:
d=расстояние АБ
h=макс. высота дуги
r=(h/(d/spd)/blabla_formula)
r2=(d/blabla_formula)
А потом каждый тик таймера:
Высота юнита +r
r-r2 Ну и в итоге должно получиться, что высота юнита прибавляется на R каждый тик, а сам R уменьшается, и при достижении середины пути, R будет равен нулю, а дальше - отрицательный, так чтобы юнит снижался.
Короче, я в принципе шарю как это сделать, но я не шарю в муишной структуре - это беда...
Потому что в варе это называется "угол поворота"(facing angle) - поворот юнита(лицом) в направлени 0-360 градусов.
Я не силен в терминологии. Вектор = направление, верно?
Я подожду разбор кода топоров от Steal Nerves, но пока что забил и кидаю снаряд по прямой+парабола.
Если у меня получится потом раздуплиться в топорах - сделаю дугу, но это мой загон, не принципиально, а вот момент в вопросе выше - вполне себе важная штука(например, герой должен разбрасывать кольцом вокруг себя 8 снарядов, каждый снаряд должен лететь от героя по параболе(типа он их подкинул ,а потом они падают). их исх. высота = 125, и эту высоту я сниму дополнительным таймером, пока они будут лететь, но эта парабола фиксирует высоту и снаряды сразу перемещаются в Z=0.00, а потом от 0 делают свою параболу - ну, а нужно чтобы они стартовали у него над головой, на высоте 125. надеюсь вы поняли.)
Там в вопросе я написал, что мне нужно просто перенастроить эту параболу таким образом, чтобы она не фиксировала высоту юнита, а прибавляла/убавляла, не перебивая собой другие изменения высоты(например, если подкинуть этого же юнита повторно этой функцией). Полагаю, что это всё таки возможно, но там vJass структура+муи, а с моими гуишными знаниями жасса, я боюсь даже пробовать там что то менять)
Steal nerves:
Теперь и мне придется 5-10 часов читать про параболу, чтобы применить твой код, ибо твой код самобытен, а мне нужно встроить всё в систему)
Погоди, так, момент, как может быть парабола не по Z, если при параболе юнит летит по прямой, только высота меняется, а тут он должен лететь дугой?
Получается нужно даммика по прямой запускать, а юнита двигать относительно даммика?
Clamp:
Поясню:
1- Берется угол АБ( от кастера к таргету)
2- Под углом АБ+45, смещенно на 50 ед. расстояния создается снаряд(С). Снаряд создается с поворотом ЛИЦА = СБ+45 сразу - для удобства, потому что я понимаю, что иначе угол будет не +45.
Так что про угол АБ забываем, чтобы не запутываться. Дальше используем только СБ.
3- Снаряд стоит в точке С, лицом повернут по углу СБ+45.
4- Снаряд начинает двигаться в направлении собственного лица. Каждый тик таймера 0.03, снаряд сдвигается на 70 ед. и должен постоянно поворачивать на N угла(поворота) для того, чтобы его траектория образовала дугу.
Нужно вычислить 2 значения:
1 - реал, который будет отниматься от угла поворота снаряда каждый тик таймера, для того чтобы снаряд летел по дуге.
2 - реал времени, который понадобится снаряду для того, чтобы долететь до точки Б по дуге.
ДА ЧТО ЗА?
Не могу новую картинку прикрепить к тому комменту -_-
Короче да, мне нужна кушка Дианы. Только я не помню, оно летит в точку каста, или там фикс. расстояние? Вроде в точку каста. Если да, то да, кушка Дианы.
Разве что, у меня снаряд создается не в самом герое, а чуть рядом, но мы всё равно начинаем считать всю фигню относительно позиции снаряда(и угла СБ соответственно), а не относительно АБ.
Блин, вот я гомункул. "Дуга, которая должна образоваться" - она, конечно же, не между АБ, а между СБ должна образоваться такой формы, ибо АБ уже не учитывается после спавна снаряда. Просто в паинте я не смог бы "наклонить" сплюснутое кольцо
Если честно, то я уже запарился это обьяснять, ибо не знаю как еще проще обьяснить:
(Предыдущие слова не учитывайте, по новой)
Снаряд вылетает под углом АБ+45, за каждый тик таймера должен поворачивать(угол его поворота должен отниматься), чтобы в конце пути он ударился в точку Б(т.е. его угол ПОВОРОТА в конце должен получиться АБ-45).
Получается, нам нужно вычислить время, за которое снаряд пролетает от А до Б >>ПО ДУГЕ<<(дуга длиннее прямого полета, т.е. и времени чуть больше), потом на основе этого времени выдать снаряду лайфтаймер и получить как раз таки значение угла, которое будет отниматься для образования самой дуги в полете.
Короче говоря, это дело привычки. Мне не особо вперлось БЖшки раскрывать, а так, все возможные утечки я устраняю.
Вроде БЖ максимум работу замедляет своими вечными пересылками, но утечек там никаких нет?
Вот ты говоришь "функшен лист", но чтобы найти там функцию, ты должен хотя бы примерно знать её название)
Я потихоньку пишу себе в шапку карты различные функции и должен сказать, что мне очень неудобно ориентироваться в чистом коде, но возможно я таким путем привыкну и начну писать по пацански перса в 1 триггер)
Есть же функция параболы в библиотеке функций + тосс тиника из доты в опен доте.
Снаряд летит под углом, дуга угловая, а не по оси Z. Снаряд летит не по параболе, да и мне парабола не нужна. "Высота" дуги должна также быть динамичной. Чем больше расстояние - тем шире дуга.
Парабола, вроде как, всегда определенную высоту имеет, так что мне это не подойдет.
Ты не задумывался, что писать на Jass проще, чем постоянно вставлять Custom Script?
Я бы так не сказал. Мне не впадлу быстро нажать ctrl+c,ctrl+v, enter чтобы копирнуть и открыть кс, чтобы туда сразу вписывать действие, но большинство функций мне приходится искать на гуи и конвертировать - если я хочу писать чисто на джассе. Мне это дико непривычно. Может когда нибудь перейду чисто на джасс.
Так можно написать не просто число, а "высота юнита + / - число".
Ну смотри, функция должна отсчитывать реал, а затем выключаться, а не выключаться тогда, когда высота юнита станет равно указанной. Например, если юнита другим скиллом подкинет пока тот падает - его продолжит опускать вниз до тех пор, пока высота не станет = указанной, несмотря на уже имеющееся подкидывание. И с падением еще ладно, ниже 0 не опустится, но с подьемом могут возникать баги из-за лишних чисел)
Steal nerves:
Я вот эту использовал.
Мои скиллы не действуют на всю карту, но я должен на будущее знать, будет ли это работать, если прописать радиус меньше дальности скилла.
Получается можно удалить строку, отвечающую за радиус?(молнии я удалил)
Короче тут формула берет минимальный промежуток между углами, а не большой. Пример на скрине
Так для "не смотрит" нужно чтобы юнит попал в большой промежуток? Если способность, скажем, через всю карту используется, а тут указывается радиус - если кастер будет за радиусом, что тогда?
Берем любую пассивную способность и меняем в поле "Графика-цель" нам на нужную модель. Я заменил на "Адский дракон". А за основу взял способность "Аура выносливости". Теперь берем или создаем героя, добавляем ему нашу способность. Модель моего героя "Волшебница". Ставим на карту и проверяем.
Вот что у меня вышло:
Что-то по аналогии с этим?
Я так и делал. Вопрос не в том, как добавить эффект, а в том, как контролировать способность погрузки, ибо я нашел только событие "погружен на транспорт" - нет события типа "выгружен".
Удобно писать гуи с кастомный скрипт? Я бы дал jass наброски если не против
Мне привычно искать функции в библиотеке Гуи, чем писать от руки или конвертировать когда нужно. поэтому я юзаю ксы на гуи.
Вы скажете "BJ", а я скажу, что мне раскрывать их впадлу и утечки реалов нестрашны.
» WarCraft 3 / Требуется помощь!
Ред. Maniac_91
» WarCraft 3 / Общая система золота
Ты правда считаешь что действия, связанные с золотом и опытом, должны быть во вкладке боевой единицы?
Я вот лично не помню чтобы пехотинцы качали уровень и распоряжались золотом игрока.
Юнит умирает, юнит принадлежит нейтралу(т.е. крип), выбрать всех союзников владельца убивающего и добавить им золото.
Это предельно понятный ответ, тебе лишь функции найти осталось. У тебя радиус поиска это вкладки: юнит, герой, игрок, группа игроков - заблудиться не так сложно, верно?
» WarCraft 3 / Как через Триггеры поставить урон юниту в зависимости от золота?
В иницилизации создаешь группу и добавляешь туда всех юнитов на карте.
Выбираешь группу и добавляешь specific unit event в другой триггер: выбранный получает урон.
Потом делаешь ттриггер с событием "юнит входит в область" и проверяешь: если юнит не в группе, то добавишь его в группу и добавить specific unit event в другой триггер: triggering unit получает урон.
Поздравляю, в этом триггере теперь срабатывает получение урона любым юнитом.
Дальше делаешь так: если у Damage source уровень твоей пассивки != 0, тогда дамажить triggering unit на золото(владелец DS)*(0.01*уровень пассивки).
Только создавай даммика и дамаж отлица даммика, иначе триггер будет запускать сам себя, что чревато крашем. Лично я в карте создаю для всех героев "Damager" и все способности дамажат от его лица. У Дамагера есть пассивка, уровень которой = искусственный тип урона(1 = чистый, 2 = физ, 3 = маг, 4 = огонь, 5=вода и.т.д.).
Если все способности дамажат от лица даммика, то сам герой сможет дамажить только при ударе с руки - это позволит различать урон от способностей и простые удары и делать эффект на удары в damage event'e: искусственный крит, искусственный орб-эффект и т.п.
» WarCraft 3 / После превращения, в спеллбуке нет способностей :с
» WarCraft 3 / Юнит при приземлении после "превращения" поворачивается в 270
Не, ну я не настолько дцп что мне нужны наработки для контра этой фигни, но я так понимаю это какая то хардкодная хрень и настроечками абилки её не поправить. Ну ладно, эх.
» WarCraft 3 / Юнит при приземлении после "превращения" поворачивается в 270
» WarCraft 3 / Полет снаряда по дуге
*человек, рисовавший голых баб на всех уроках, начиная с первого класса*
Я не понимаю этих сложных слов, но щас покажу это умному братишке, чтобы он попытался обьяснить :D
Спасибо тебе за труды. Возвращение там никакое не нужно, полет снаряда в один конец
Ред. Darknessay
» WarCraft 3 / Полет снаряда по дуге
А теперь встрой это в ту муишную структуру, пожалуйста, так чтобы всё работало... х)
На всякий случай, повторю вопрос еще более конкретно:
Нужно чтобы парабола не фиксировала высоту вообще никак. Вообще никак. Вообще никак.
Только плюс высота / минус высота.
Т.е. получается должно быть что то типа такого:
d=расстояние АБ
h=макс. высота дуги
r=(h/(d/spd)/blabla_formula)
r2=(d/blabla_formula)
А потом каждый тик таймера:
Высота юнита +r
r-r2
Ну и в итоге должно получиться, что высота юнита прибавляется на R каждый тик, а сам R уменьшается, и при достижении середины пути, R будет равен нулю, а дальше - отрицательный, так чтобы юнит снижался.
Короче, я в принципе шарю как это сделать, но я не шарю в муишной структуре - это беда...
Ред. Darknessay
» WarCraft 3 / Полет снаряда по дуге
Я не силен в терминологии. Вектор = направление, верно?
Если у меня получится потом раздуплиться в топорах - сделаю дугу, но это мой загон, не принципиально, а вот момент в вопросе выше - вполне себе важная штука(например, герой должен разбрасывать кольцом вокруг себя 8 снарядов, каждый снаряд должен лететь от героя по параболе(типа он их подкинул ,а потом они падают). их исх. высота = 125, и эту высоту я сниму дополнительным таймером, пока они будут лететь, но эта парабола фиксирует высоту и снаряды сразу перемещаются в Z=0.00, а потом от 0 делают свою параболу - ну, а нужно чтобы они стартовали у него над головой, на высоте 125. надеюсь вы поняли.)
Там в вопросе я написал, что мне нужно просто перенастроить эту параболу таким образом, чтобы она не фиксировала высоту юнита, а прибавляла/убавляла, не перебивая собой другие изменения высоты(например, если подкинуть этого же юнита повторно этой функцией). Полагаю, что это всё таки возможно, но там vJass структура+муи, а с моими гуишными знаниями жасса, я боюсь даже пробовать там что то менять)
» WarCraft 3 / Полет снаряда по дуге
Теперь и мне придется 5-10 часов читать про параболу, чтобы применить твой код, ибо твой код самобытен, а мне нужно встроить всё в систему)
Погоди, так, момент, как может быть парабола не по Z, если при параболе юнит летит по прямой, только высота меняется, а тут он должен лететь дугой?
Получается нужно даммика по прямой запускать, а юнита двигать относительно даммика?
Ред. Darknessay
» WarCraft 3 / Полет снаряда по дуге
Поясню:
1- Берется угол АБ( от кастера к таргету)
2- Под углом АБ+45, смещенно на 50 ед. расстояния создается снаряд(С). Снаряд создается с поворотом ЛИЦА = СБ+45 сразу - для удобства, потому что я понимаю, что иначе угол будет не +45.
Так что про угол АБ забываем, чтобы не запутываться. Дальше используем только СБ.
3- Снаряд стоит в точке С, лицом повернут по углу СБ+45.
4- Снаряд начинает двигаться в направлении собственного лица. Каждый тик таймера 0.03, снаряд сдвигается на 70 ед. и должен постоянно поворачивать на N угла(поворота) для того, чтобы его траектория образовала дугу.
1 - реал, который будет отниматься от угла поворота снаряда каждый тик таймера, для того чтобы снаряд летел по дуге.
2 - реал времени, который понадобится снаряду для того, чтобы долететь до точки Б по дуге.
Не могу новую картинку прикрепить к тому комменту -_-
Разве что, у меня снаряд создается не в самом герое, а чуть рядом, но мы всё равно начинаем считать всю фигню относительно позиции снаряда(и угла СБ соответственно), а не относительно АБ.
(Предыдущие слова не учитывайте, по новой)
Снаряд вылетает под углом АБ+45, за каждый тик таймера должен поворачивать(угол его поворота должен отниматься), чтобы в конце пути он ударился в точку Б(т.е. его угол ПОВОРОТА в конце должен получиться АБ-45).
Получается, нам нужно вычислить время, за которое снаряд пролетает от А до Б >>ПО ДУГЕ<<(дуга длиннее прямого полета, т.е. и времени чуть больше), потом на основе этого времени выдать снаряду лайфтаймер и получить как раз таки значение угла, которое будет отниматься для образования самой дуги в полете.
» WarCraft 3 / Полет снаряда по дуге
Но я же не об этом задал вопрос :\
» WarCraft 3 / Полет снаряда по дуге
Вроде БЖ максимум работу замедляет своими вечными пересылками, но утечек там никаких нет?
Вот ты говоришь "функшен лист", но чтобы найти там функцию, ты должен хотя бы примерно знать её название)
Я потихоньку пишу себе в шапку карты различные функции и должен сказать, что мне очень неудобно ориентироваться в чистом коде, но возможно я таким путем привыкну и начну писать по пацански перса в 1 триггер)
» WarCraft 3 / Полет снаряда по дуге
Maniac_91: Все равно откос.
» WarCraft 3 / Полет снаряда по дуге
Парабола, вроде как, всегда определенную высоту имеет, так что мне это не подойдет.
» WarCraft 3 / Полет снаряда по дуге
» WarCraft 3 / Ищу vJass'ера для попрошайничества разных структурок :3
» WarCraft 3 / Как создать конусные заклинания?
Я вот эту использовал.
Мои скиллы не действуют на всю карту, но я должен на будущее знать, будет ли это работать, если прописать радиус меньше дальности скилла.
Получается можно удалить строку, отвечающую за радиус?(молнии я удалил)
» WarCraft 3 / Как создать конусные заклинания?
» WarCraft 3 / Угол поворота
» WarCraft 3 / "оседлать" хз
» WarCraft 3 / "оседлать" хз
» WarCraft 3 / Какая то хрень с ифами :(
Вы скажете "BJ", а я скажу, что мне раскрывать их впадлу и утечки реалов нестрашны.
bump
» WarCraft 3 / Вопрос по точкам крепления у модели
» WarCraft 3 / Вопрос по точкам крепления у модели