1max_iron
Death Metal
offline
Опыт:
4,038Активность: |
Стремительный удар
Я хотел сделать спелл(называется стремительный удар) Суть:блейд мастер,замирает в положении атака2,и с огромной скоростью (в замершем положении) проходит сквозь юнита и наносит ему урон. Я столкнулся с двумя проблемами: 1-Как заствавить блейда двигаться быстро(именно двигаться,приблежаться а не телепортироваться)к цели! 2-Как заставить его замереть именно в позиции атака2? Помогите! |
15.06.2007, 19:45 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
1max_iron,2, set unit animation speed = 0.00
1, скорее всего, периодический триггер с перемещением (полярные координаты, как в карте Polar escape) |
15.06.2007, 19:48 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
1max_iron
Death Metal
offline
Опыт:
4,038Активность: |
А поп подробнее можно?или пример? |
15.06.2007, 19:51 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
я итак весь день примеры клепал, обойдешся :): действие со скоростью анимы в разделе Анимация в триггерах а перемещение как в поляр эскейпе - забей в поиск |
15.06.2007, 19:56 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
1max_iron
Death Metal
offline
Опыт:
4,038Активность: |
Кто может мне помочь???
ПС-Как сделать что бы вокруг юнита создались 4 юнита которые находились бы вокруг него в указанных позициях(слева,справа,спереди,сзади)? |
15.06.2007, 21:20 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TNT
О_о
offline
Опыт:
11,019Активность: |
ПС: Создавай юнитов с помощью полярок. Указывайрасстояние, отнимай от Facing of(Нужный юнит) 270, 180 90 и 0, ставь это в градусы. Тогда должны юниты появиться перед лицом, сзади и по бокам нужного юнита, как бы он не повернулся. |
15.06.2007, 21:31 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
1max_iron
Death Metal
offline
Опыт:
4,038Активность: |
а можно пример!Я вобще про полярки не слухом,не духом! |
15.06.2007, 21:49 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TNT
О_о
offline
Опыт:
11,019Активность: |
вот |
15.06.2007, 21:58 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sailar
offline
Опыт:
8,555Активность: |
3 варианта либо зделать дамми и каждые 0.01сек муветь героя на него в то время как дамми будет бежать к цели заклинания - мак скор 520. Либо полярные коардинаты(можно зделать любую скорость) муве юнит( дистанция юнита от х и у) + твоё число Либо самый красивый вариант дать юнитуа эфект астрал и муветь заспину цели будет слет как будто он пролетел с большой скоростью выгледит красиво |
16.06.2007, 02:19 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ComotozNick
Активность: 666
offline
Опыт:
26,206Активность: |
Все это не логично и много утечек.
Каждые 0.01 сек
Custom script: local real Xcor комментарий: должно быть в начале триггера
Custom script: local real Ycor комментарий: должно быть в начале триггера Custom script: set Xcor = (GetUnitX(udg_u)+(20*CosBJ(GetUnitFacing(udg_u)))) Custom script: set Ycor = (GetUnitY(udg_u)+(20*SinBJ(GetUnitFacing(udg_u)))) Custom script: call SetUnitX (udg_u,Xcor) Custom script: call SetUnitY (udg_u,Ycor) Custom script: set Xcor = 0 Custom script: set Ycor = 0 Примечание: вместо 20 - можно ставить любое число, регулирует скорость. для начала попробуй 20, если быстро, поставь меньше, если медленно, то больше.
udg_u - глобальная переменная юнит с именем u, в нее должен быть записан блейдмастер после каста заклинания, создается переменная в редакторе)
После окончания спелла не забудь восстановиться юниту анимацию и поставь ее скорость обратно на 100%.
Если не поймешь как использовать сделаю пример. Отредактировано FellGuard, 16.06.2007 в 13:51. |
16.06.2007, 03:02 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sailar
offline
Опыт:
8,555Активность: |
Ты в конце обнуляеш это утечка надо в конце ставить call removelocation(x) тэг с анимацией создавать необязательно достаточьно индекс в случие с блейд мастером = 9. И я предлагал так x=позиция кастера y=позиция жертвы лок переменая = polarprojectionbj(x,distancebetweenpoint(x,y)+число, anglebetweenpoints(x,y). Call setunitpositionloc(каст.юнит,переменная) И где тут утечка??? |
16.06.2007, 03:35 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ComotozNick
Активность: 666
offline
Опыт:
26,206Активность: |
KLAUD ты юзаешь полярки а это уже утечка. Лан кароч я тут уже пример почти сделал, скоро выложу.
|
16.06.2007, 03:49 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sailar
offline
Опыт:
8,555Активность: |
Может это и утечка но маленькая маленькая у меня накарте которуя я делою их полярных много вроде всеё работает не тормазя игру..... |
16.06.2007, 04:36 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ComotozNick
Активность: 666
offline
Опыт:
26,206Активность: |
KLAUD это токо на глаз их не много, надо проверять специальной функцией, если интересно я выложу чуть позже. По поводу обнуления оно так и надо.
1max_iron Вот готово. Движение здесь сделано. С анимациями заниматься не стал, мне некогда, да я думаю ты и сам справишься, там все просто. Также тебе еще надо настроить урон остальное готово. Иногда, блейд промахивается мимо ццели и начинает ездить кругами, это так и задумано, по моему выглядит классно. Если не понравится переделаешь. Отредактировано ComotozNick, 16.06.2007 в 04:59. |
16.06.2007, 04:39 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dk
offline
Опыт:
60,293Активность: |
Цитата:
Здесь всеравно получается утечка в две точки, ты сначала вычисляешь точку положения юнита, а потом ее координаты, а в конце точки не удаляются... Лучше тогда юзать GetUnitX() и GetUnitY()... |
|
16.06.2007, 06:46 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ComotozNick
Активность: 666
offline
Опыт:
26,206Активность: |
Dead_knight черт... *бьется головой об стену*, как я сразу не догадался. Пардон, я просто на работе, так что не особо время есть так что пардон еще раз, приду домой пофиксю.
З.Ы. Да уж ночь на работе сильно снижает внимательность и сообразительность. |
16.06.2007, 09:06 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
KLAUD, а ты попробуй с таймером в 0.0125 потестить на утечки юнитов 20, через минуту максимум игра начнет тормозить. Самое идеальное - юзать координаты без локаций; SetUnitPosition, предупреждая вопросы, страшно тормозит, так как походу мало того что создает, по-видимому, утечки, еще и криво в лучших традициях близов проверяет локацию на проходимость путей для юнита.
SetUnitPositionLoc чуть быстрее, но без локаций вообще всегда приятней жить. FellGuard добавил: зы, ComotozNick, ничего, что я поправил :)? |
16.06.2007, 13:51 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
1max_iron
Death Metal
offline
Опыт:
4,038Активность: |
ComotozNick
Огромное спасибо!То что надо! Ты не мог бы помочь ещё в кое чём! Атака иллюзиий: Блейд мастер становиться невидем для всех(но на панели героев отражаеться!,вокруг цели заклинания создаётся 4 блейд мастера(слева,справа,спереди и сзади по одному!),И все он наносят критический удар(анимация)! Можешь такое сделать?Если да,то будет очень здорово(зоодно впишу тебя как автора этих двух спеллов!) |
16.06.2007, 14:09 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sailar
offline
Опыт:
8,555Активность: |
У меня в магии учавствуют 3триггера два одновременно по 0.6сек а один 8сек тормоз есть но маленький чуть заметный а точек создаёться около 10 в первом и 1до n - где н юниты в ранге однако даже если уменя их 40 то всё тагже тормоз чуть заметен Он намного сильнее если создать просто 2дамми одновремено в одной точке. А так как точки удаляються сразу как возникают то утечка тока на время каста потом её нету. |
16.06.2007, 16:18 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
вот поставь все то же, но не 0.6 а 0.06, вот тогда и поговорим с тобой об оптимизации. А если у тебя тормоза чуть заметны уже на 0.6, то впору сломя голову нестись переделывать все на координаты.
В самом деле, зачем делать if not (boolean != true) then когда можено написать if boolean then ? вот то же самое и с локациями. Везде где только можно, следует избегать создания и удаления локаций, излишних локальных переменных (при инициализации чуть-чуть оттяпывают времени) итд. Тем более в периодических триггерах. |
16.06.2007, 16:26 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|