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

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

Ответ
 
Myth
The Temple
offline
Опыт: 19,141
Активность:
скил пылающий шар
как лучше всего реалищовать умение?
герой бросает в указанную область огненный шар, который летит по дуге а при попадании в цель взрывается нанося урон (триггерный). PS чтобы область цели была ещё (как вьюга у архимага)
я сделал конечно его, но мне кажется что мой способ слишком нуторный. может кто получше подскажет)

Отредактировано Myth, 06.03.2010 в 00:04.
Старый 05.03.2010, 23:58
Doc

offline
Опыт: 63,163
Активность:
Ну самый простой способ: делаем двух дамми, у одного атака артиллерия. Заставляем одного бить второго :)
DoctorGester добавил:
Способ нубский, но я его использую, когда сильно лень.
Старый 06.03.2010, 00:24
Myth
The Temple
offline
Опыт: 19,141
Активность:
DoctorGester, я так и сделал... но блин! мне кажется это не оптимально и реально как то по "нубски")
Старый 06.03.2010, 00:26
Doc

offline
Опыт: 63,163
Активность:
Все нормально, используем стандарт по максимуму. Ведь просчитывается рельеф и время полета, нагрузка на компьютер нулевая, утечек быть тоже не может.
Старый 06.03.2010, 00:33
Myth
The Temple
offline
Опыт: 19,141
Активность:
DoctorGester, ну просто у меня после взрыва срабатывает действие "выбрать юнитов в области и нансети столько-то урона".. утечка как никак.. которую я пока не научился устранять.
подумал что можно тогда хоть обойти)
Старый 06.03.2010, 00:40
Doc

offline
Опыт: 63,163
Активность:
А разница? Все равно придется так делать. И читай статьи по жассу, научишься.
Старый 06.03.2010, 00:48
agentex

offline
Опыт: 34,834
Активность:
лучше воспользоваться параболой и не "нубить". лишние дамми на карте - не тру
Старый 06.03.2010, 00:52
Myth
The Temple
offline
Опыт: 19,141
Активность:
agentex, что такое парабола?
а если сразу после создания прописывать время? всё же будет норм.
Старый 06.03.2010, 00:54
Doc

offline
Опыт: 63,163
Активность:
agentex, да ладно тебе, они же удалятся. Вон человек даже не знает что такое парабола. В любом случае нужен минимум 1 дамми.
Старый 06.03.2010, 00:59
agentex

offline
Опыт: 34,834
Активность:
что такое парабола?
О_О ты с марса или еще откуда?
вопщем как пример моя структа, используется в аоне. имеются лишние переменные, т.к. она не завершена (планировал другие способы задания но потом забил)
» открыть
struct Parabola
real a
real b
real v
real ang
real s
real x
real y
real z
real z0
real period
static method CreateUsingDistance takes real x, real y, real z, real h, real dst, real ang, real v returns Parabola
local Parabola this = Parabola.create()
set .x = x
set .y = y
set .z0 = z
set .ang = ang*bj_DEGTORAD
set .v = v
set .period = .025
set .a = (-h*4.)/(dst*dst)
set .b = (4.*h)/dst
return this
endmethod

method Update takes nothing returns nothing
local real v = .v*.period
set .s = .s+v
set .z = .s*(.a*.s+.b)+.z0
set .x = .x+v*Cos(.ang)
set .y = .y+v*Sin(.ang)
endmethod

method Destroy takes nothing returns nothing
set .a = 0.
set .b = 0.
set .v = 0.
set .ang = 0.
set .s = 0.
set .x = 0.
set .y = 0.
set .z = 0.
set .z0 = 0.
set .period = 0.
call .destroy()
endmethod

endstruct
Update - вызывается на срабатывании таймера, после чего в z помещается высота.
пример использования:
function SpellStart takes nothing returns nothing
local Parabola p
set p = Parabola.CreateUsingDistance(x, y, z, GetRandomReal(200., 400.), GetRandomReal(100., rad), ang+GetRandomReal(-15., 15.), 150.)
endfunction
//...
function Timer takes nothing returns nothing
local Parabola p
local unit d
call p.Update()
call SetUnitX(d, p.x)
call SetUnitY(d, p.y)
call SetUnitFlyHeight(d, p.z-GetTerrainZ(p.x, p.y), 0.)
endfunction

Отредактировано agentex, 06.03.2010 в 12:43.
Старый 06.03.2010, 01:00
Doc

offline
Опыт: 63,163
Активность:
i f d s t < = 0 . t h e n
e n d i f
Ээ? Или я нешарю?
Старый 06.03.2010, 01:03
agentex

offline
Опыт: 34,834
Активность:
DoctorGester, ну по идеи туда нужно вставить
call p.Destroy()
return 0
Видимо руки не дошли. Говорю же структура сырая, надо оптимизировать
Старый 06.03.2010, 01:09
Myth
The Temple
offline
Опыт: 19,141
Активность:
agentex, ты разрушил мои представления о пораболе :)
в любом случае ответ на вопрос я более менее получил.. спасибо)
Старый 06.03.2010, 01:10
agentex

offline
Опыт: 34,834
Активность:
agentex, по настоящему разрушить представление может только это
Старый 06.03.2010, 01:12
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
...а если учесть что для построения параболической траектории полета не нужны формулы... то будет совсем ололо...
Старый 06.03.2010, 05:02
Ответ

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

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

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

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



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