Hellfim
Новичок
offline
Опыт:
79,700Активность: |
Revo1teR, а никто и не говорит, что ты украл идею. Тебе советуют вариант решения. Посмотри как там реализовано, разберись. |
02.09.2010, 19:31 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
Я вообще не об этом. Я говорю, что если тебе нужно, то ты можешь взять его спелл и переделать под себя. Омг -.-
|
02.09.2010, 20:59 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Аааа!
Ну значит просто не правильно понял. Приношу свои извинения =), а копировать я ничего не буду сам напишу.. уже точнее пишу но у меня появился вопрос по формулам. вокруг оси X:
set x' = x2 set y' = y1 + (y2 - y1) * Cos( a ) + (z1 - z2) * Sin( a ) set z' = z1 + (y2 - y1) * Sin(a ) + (z2 - z1) * Cos( a ) вокург оси Y: set x' = x1 + (x2 - x1) * Cos( a ) + (z1 - z2) * Sin( a ) set y' = y2 set z' = z1 + (x2 - x1) * Sin( a ) + (z2 - z1) * Cos( a ) вокруг оси X: set x' = x1 + (x2 - x1) * Cos( a ) + (y2 - y1) * Sin( a ) set y' = y1 + (x2 - x1) * Sin( a ) + (y1 - y2) * Cos( a ) set z' = z2 Здесь x', y' и z' - новые координаты точки t2.
а что такое x1,x2,y1,y2,z1,z2 пояснения нет.. и там кстати опечатка в последнем комментарии там не вокруг оси X, а вокруг оси Z. Как я могу только догадываться это координаты юнита 1 и юнита 2, но я подставил под значения с цифрой один значения кастера а под значения с цифрой 2 значения GetEnumUnit(), и получился сущий бред.. юнитов телепортирует в случайные точки на карте. |
04.09.2010, 11:40 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
а что ты подставил в "a" ? |
04.09.2010, 11:43 | #24
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Вот код вобщем..
function Centrifuga takes nothing returns nothing local timer t=GetExpiredTimer() local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1) local unit q=GetEnumUnit() local real a=Atan2(GetUnitY(u)-GetUnitY(q),GetUnitX(u)-GetUnitX(q)) local real y1=GetUnitY(u) local real x1=GetUnitX(u) local real y2=GetUnitY(q) local real x2=GetUnitX(q) local real z1=GetUnitFlyHeight(u) local real z2=GetUnitFlyHeight(q) local real z3 local real y3 local real x3 set x3 = x2 set y3 = y1 + (y2 - y1) * Cos( a ) + (z1 - z2) * Sin( a ) set z3 = z1 + (y2 - y1) * Sin(a ) + (z2 - z1) * Cos( a ) call SetUnitX(q,x3*Cos(a)) call SetUnitY(q,y3*Sin(a)) endfunction |
04.09.2010, 15:13 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
ты использовал ForGroup? ScorpioT1000 добавил: в целом лучше выглядит, чем я думал, но что-то недоработано, даёшь весь код триггера целиком |
04.09.2010, 17:48 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
хм.. а что же мне еще использовать что бы работало на всех юнитов в области + мои условия ? О_о
Весь код:
Отредактировано Revo1teR, 05.09.2010 в 13:22. |
04.09.2010, 17:59 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
ты уже сделал пик на 400 в рендже, это и есть на всех в радиусе 0.02 - плохо, бессмысленно, ресурсоемко для перемещения. Лучший - 0.035
Дело в том что событие ченел срабатывает постоянно пока юнит кастует. Делается через юнит спел каст, и спелл энд Коды jass в ковычки заключи тогда будет нормальный читабельный вид. |
04.09.2010, 18:22 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
ScorpioT1000,
ты использовал ForGroup? Revo1teR хм.. а что же мне еще использовать, что бы работало на всех юнитов в области + мои условия ? О_о ясно ?
Насчет 0.02 - знаю ) обычно использую 0.04 не знаю почему сейчас через 0.02 написал.
А насчет ченлинга спасибо не знал.Оно повторяется каждую секунду ? Или какой промежуток времени ?
И еще вопрос, перед и после каждой строчки писать "" ? О_О
p.s Юниты все еще телепортируются +) ы. Отредактировано Revo1teR, 04.09.2010 в 18:59. |
04.09.2010, 18:40 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
0.025 лучший период, спросите хотябы енеина. |
04.09.2010, 22:30 | #30
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Revo1teR, юзай тег кода плиз
ScorpioT1000 добавил:
перед и после всего кода |
04.09.2010, 23:11 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
это поворот отрезка на угол а, где x1,y1 — координаты одного конца, а x2,y2 — другого
Однако при повороте вращающихся окружностей (каждой её точки) у меня эти формулы коряво сработали |
04.09.2010, 23:58 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
А z1 и z2 это высота одного и второго конца так ?.. Но как-то они действительно очень криво работают. У меня юниты просто телепортируються очень далеко от кастера.
Можно это как-то по другому сделать ? например к углу а прибавлять число зависящее от расстояния от кастера до юнита.Кстати может кинете ссылку на формулу по которой можно это число обчислить ? |
05.09.2010, 13:30 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
|
05.09.2010, 18:24 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Нифига не ясно ж.. я же объяснил что я не работал ни с библиотеками ни с структурами ни с какими либо формами джаза типо vjass и cjass. А там повсюду какие-то точки не понятные команды и длинные переменные в которых хрен разберешься (одним словом код для меня не читабелен).Можете мне на нормальному джазе показать ? |
05.09.2010, 21:47 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
spellwerk
offline
Опыт:
4,869Активность: |
не забивайте вы голову начинающему. пусть разберется так, потом и до cjass'а дело дойдет. могу написать тебе на обычном джассе, но только ближе к концу недели |
06.09.2010, 14:11 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Помню, за сутки разобрался в жассе, не спрашивая ничего в темах. по сабжу, ты всё упростил:
там дб дистанция, я думаю, на которую отдаляемся от точки, а тут какаято каша, лучше всё это в переменные заносить.. хотя вроде всё верно)
ScorpioT1000 добавил: и почему с y,z есть, а с x нету ? |
06.09.2010, 15:38 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
А я откуда знаю ?) я чтоль статью писал? =)) И как можно двигать юнита основываясь на высоту ? Я явно чего-то не понимаю.. y3 - это точка на которую мы юнита передвинем по оси y-ков, так причем тут его высота к его позиции ? О_о |
06.09.2010, 17:44 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
вот формула для перевода сферических координат в декартовы
у нас есть два угла - угол поворота a (например юнита) и угол высоты b (вертикальный), а также дистанция этого вектора
требуется получить вектор в x,y,z, вот выше формула
Отредактировано ScorpioT1000, 09.09.2010 в 22:56. |
06.09.2010, 17:46 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|