XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
Extremator, нету, обычное о травленое дыхание химеры...
Старый 20.04.2012, 15:55
JassMan
свободен
offline
Опыт: 4,193
Активность:
Недочёты в алгоритме есть. . .
Я бы конечно написал тебе образец, но с мобилы очень геморно.
При движении кастера даммики будут менять свой угол отлета. Поэтому для каждого надо сохранить свой начальный угол и по нему двигать.
Далее об алгоритме остановки таймера:
Допустим, надо переместить даммиков на расстояние 600 от кастера. Двигая динамически на 20 нам придется повторить это 30 раз. То есть таймер должен сработать 30 раз. Вот и считаем разы используя интеджер и пересохраняя её в хеше, пока она не станет равной 30.
Ато твой вариант с проверкой жив ли юнит не очень оригинальный.
Кароче посмотри тут
Там не совсем нова, но кое-что можешь вычерпать оттуда.
Старый 20.04.2012, 20:33
Extremator

offline
Опыт: 39,512
Активность:
JassMan:
При движении кастера даммики будут менять свой угол отлета. Поэтому для каждого надо сохранить свой начальный угол и по нему двигать.
создавать даммиков с поворотом по угру ((360 / N) * A), где N - число даммиков, а А - значение цикла
и двигать даммиков в том направлении в котором она повёрнуты...
судя по тому что один градус является реальным числом, и может быть разбит на 100 часте (по 0.01), то я сомневаюсь что даммик может значительно изменить своё угол во время полёта на дистанцию до 10000.00 AoE
JassMan:
Допустим, надо переместить даммиков на расстояние 600 от кастера. Двигая динамически на 20 нам придется повторить это 30 раз. То есть таймер должен сработать 30 раз. Вот и считаем разы используя интеджер и пересохраняя её в хеше, пока она не станет равной 30.
При касте:
set Distance = 600
start Timer многократно на 0.03 сек
При срабатывании таймера:
set Distance = Distance - 30
...действия по движению даммиков
If - если Distance меньше 30, то...
...действия по завершению работы
и тут же паузим таймер...
Extremator добавил:
кстааааааати... я же вот тут недавно делал и выкладывал...
хотя нет... делал давно... и тока удалил утечки... и так хламновато осталось... но всё же...
Старый 20.04.2012, 20:56
JassMan
свободен
offline
Опыт: 4,193
Активность:
При касте:
set Distance = 600
start Timer многократно на 0.03 сек
При срабатывании таймера:
set Distance = Distance - 30
...действия по движению даммиков
If - если Distance меньше 30, то...
Ну и разница? какую переменную проверять. . .
Сравнивая расстояние сколько осталось, результат может быть не точным.
К тому же перемещение на 20, а ты вычитаешь 30.
Чем тя мой вариант не устроил? Он более точный.
Старый 20.04.2012, 21:35
Extremator

offline
Опыт: 39,512
Активность:
JassMan:
Ну и разница? какую переменную проверять. . .
Сравнивая расстояние сколько осталось, результат может быть не точным.
разница в том что я проверяю ОДНУ переменную за ОДИН ТАКТ
... а так надо будет или рандомного юнита из группы выберать... или проверять у всех юнитов и группы...
JassMan:
К тому же перемещение на 20, а ты вычитаешь 30.
ну поставим по -20... в чём проблема? ...
JassMan:
Чем тя мой вариант не устроил? Он более точный.
ну вот выскочит какой нить баг типа регена или паузы на даммиков и будут они лететь... лететь... лететь...
Старый 20.04.2012, 21:49
JassMan
свободен
offline
Опыт: 4,193
Активность:
разница в том что я проверяю ОДНУ переменную за ОДИН ТАКТ
... а так надо будет или рандомного юнита из группы выберать... или проверять у всех юнитов и группы...
Бред какой-то!
Я сравниваю только одну интегер, которая считает кол-во срабатываний таймера.
Смотри мою карту и поймешь, что я имел ввиду.
ну вот выскочит какой нить баг типа регена или паузы на даммиков и будут они лететь... лететь... лететь...
Тоже бред. . . Какой реген, я не понял? Откуда пауза возьмутся. . .
Этож даммики! Если их при создании не занести в группу, то их больше никак не пикнуть в отряд.
Старый 20.04.2012, 22:37
Extremator

offline
Опыт: 39,512
Активность:
JassMan:
Я сравниваю только одну интегер, которая считает кол-во срабатываний таймера.
ааа... ясно...
просто дело в том что я бабахаю всё это на GUI, поэтому описываю рациональность действий именно на нём...
а на Jass'е можно сделать во многом проще...
Вот кстати пример от меня...
» Poison Nova
Наносит по 200/400/600 ед. урона за 10 сек. (урон не может быть смертельным)
Прикрепленные файлы
Тип файла: w3x Nova.w3x (13.2 Кбайт, 4 просмотров )
Старый 21.04.2012, 00:03
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Исчерпывающие ответы вкупе с раздумьем над ними принесут желаемый результат в виде спела
Закрываю
Старый 24.04.2012, 19:30
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:01.