Круг, кольцо
|
|
Lich_Lord | Дата: Вторник, 30 Ноября 2010, 18:42:25 | Сообщение # 1 |
5 уровень
Группа: Проверенные
Сообщений: 148
Награды: 0
Репутация: 38
Блокировки:
| Народ помогите, я вот много раз видел спелы када вокруг гера создаются разные спецэффекты и дамажат территорию вокруг себя, но как это сделать я знаю что это надо делать через цикл но как
|
|
|
|
wandam | Дата: Вторник, 30 Ноября 2010, 18:54:42 | Сообщение # 2 |
5 уровень
Группа: Проверенные
Сообщений: 122
Награды: 0
Репутация: -37
Блокировки:
| Ото ковать территорию вокруг себя спецэффектами?
Selar.
|
|
|
|
Lich_Lord | Дата: Вторник, 30 Ноября 2010, 18:59:50 | Сообщение # 3 |
5 уровень
Группа: Проверенные
Сообщений: 148
Награды: 0
Репутация: 38
Блокировки:
| даквот как их создать чтоб вокруг)
|
|
|
|
wandam | Дата: Вторник, 30 Ноября 2010, 19:10:24 | Сообщение # 4 |
5 уровень
Группа: Проверенные
Сообщений: 122
Награды: 0
Репутация: -37
Блокировки:
| В редакторе параметры объектов: файл графики ульта. А как вокруг. Может аура.
Selar.
|
|
|
|
Master12 | Дата: Вторник, 30 Ноября 2010, 19:11:59 | Сообщение # 5 |
8 уровень
Группа: Проверенные
Сообщений: 775
Награды: 0
Репутация: 184
Блокировки:
| wandam, не аура, а действие с радиусом
Говори, что бы я тебя увидел.
|
|
|
|
DeviLlundead | Дата: Вторник, 30 Ноября 2010, 19:16:14 | Сообщение # 6 |
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
| Lich_Lord, Для каждого числа A от 1 до 10 делать: Установить точка1 = позиция применяющий юнит. Устаноыить точка2 = точка 1 смещешие на 500 относительно Degrees градусов Создать 1 юнит с моделькой спецэффекта в точка 2. Добавить (время которое спецэффект будет существовать) таймер истечения к посл созданный юнит. Установить Degrees = Degrees+1 call RemoveLocation(udg_Точка1) call RemoveLocation(udg_Точка2)
[img]http://www.webgeneration.ru/pics/lines/raduga.gif[/img]
|
|
|
|
DarkVader | Дата: Вторник, 30 Ноября 2010, 19:57:09 | Сообщение # 7 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Quote (DeviLlundead) Установить Degrees = Degrees+1 круга не получится если 10 действий то Установить Degrees = Degrees+36. а вообще лажа это все
|
|
|
|
Kartoha | Дата: Вторник, 30 Ноября 2010, 22:34:25 | Сообщение # 8 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| Для создания спецэффектов по кругу используются формулы. Например Цикл от 0 до 12 Создать спецэффект в <точка> offset by <расстояние спецэффектов от точки> towards Integer A * 28 degress - создаст 12 спецэффектов вокруг указанной точки (например позиция кастера) на указаном расстоянии (например 500). ИЛИ Цикл от 1 до 16 Создать спецэффект в <точка> offset by <расстояние спецэффектов от точки> towards Integer A * 22.5 degress - создаст 16 спецэффектов вокруг указанной точки (например позиция кастера) на указаном расстоянии (например 500). Такие формулы довольно просто создавать самому проводя не хитрые математические вычисления. Урон наносить так: Отряд:Pick Every Units in Range Matching Condition - Units within <радиус урона от героя> of Position Of (Casting Unit) matching unit is Здание = Нет and Matching Unit is Alive = да and Matching belongs to an enemy of Owner of (Casting Unit) = да - везде пользуйсяboolean comporision and do Боевая Единица - Damage Target - Cause (Casting Unit) to damage (Picked Unit) .
|
|
|
|
Banzay89 | Дата: Среда, 01 Декабря 2010, 03:14:54 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| Code local unit u local real x=GetUnitX(u) local real y=GetUnitY(u) local real x1 local real y1 local integer n=1 loop exitwhen n>12 set x1=x + 600*Cos(n*30) set y1=y + 600*Sin(n*30) call DestroySpecialEffect(AddSpecialEffect("modelName"),x1,y1) set n=n+1 endloop set u=null Так нэ?
Сообщение отредактировал Banzay89 - Среда, 01 Декабря 2010, 03:15:18 |
|
|
|
DarkVader | Дата: Среда, 01 Декабря 2010, 03:29:59 | Сообщение # 10 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| нэ Code local unit u = GetSpellAbilityUnit() local real x=GetUnitX(u) local real y=GetUnitY(u) local integer n=1 loop exitwhen n>12 call DestroyEffect(AddSpecialEffect("modelName",x + 600*Cos(n*30*bj_DEGTORAD) ,y + 600*Sin(n*30*bj_DEGTORAD) ) ) set n=n+1 endloop set u=null
|
|
|
|
Banzay89 | Дата: Среда, 01 Декабря 2010, 03:37:09 | Сообщение # 11 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| Code local unit u = GetSpellAbilityUnit() КЭП? Code set x1=x + 600*Cos(n*30) set y1=y + 600*Sin(n*30) call DestroySpecialEffect(AddSpecialEffect("modelName"),x1,y1) Да. А вообще пробуем делать так Code local unit u=GetSpellAbilityUnit() local real x=GetUnitX(u) local real y=GetUnitY(u) local real x1 local real y1 local integer n=1 loop exitwhen n>12 set x1=x + 600*Cos(n*30) set y1=y + 600*Sin(n*30) call DestroySpecialEffect(AddSpecialEffect("modelName"),x1,y1) set n=n+1 endloop set u=null и понимаем что чушь. Добавлено (01-12-2010, 03:37) --------------------------------------------- А вообще Quote Каждый кодит как ему удобно (с) ScorpioT1000
Сообщение отредактировал Banzay89 - Среда, 01 Декабря 2010, 03:37:40 |
|
|
|
DarkVader | Дата: Среда, 01 Декабря 2010, 04:20:15 | Сообщение # 12 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| нуп ты Quote set x1=x + 600*Cos(n*30) set y1=y + 600*Sin(n*30) у тиргонометрических функций угол берется в радианах, не знал? Quote (Banzay89) DestroySpecialEffect(AddSpecialEffect("modelName"),x1,y1) такой функции вообще нет, и на скобки обрати внимание... и зачем две лишние локалки? Оо Добавлено (01-12-2010, 04:20) ---------------------------------------------
это то что ты написал Quote (Banzay89) Каждый кодит как ему удобно (с) ScorpioT1000 ты слышал о таком понятии как чистый код? то что пишешь ты это не удобство а мусор
|
|
|
|
Banzay89 | Дата: Среда, 01 Декабря 2010, 15:44:53 | Сообщение # 13 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| Quote DestroySpecialEffect(AddSpecialEffect("modelName"),x1,y1) такой функции вообще нет, и на скобки обрати внимание... писал по памяти Quote и зачем две лишние локалки? Оо О читабельности кода чтото слышал? та конечно Quote у тиргонометрических функций угол берется в радианах, не знал? я то думаю, почему у меня все нормально работает? А я просто не знал, что у тиргонометрических функций угол берется в радианах какбэ намикаю что можна и без этого короче учи свою бабушку, а не меня
|
|
|
|
FkoFF | Дата: Среда, 01 Декабря 2010, 16:38:05 | Сообщение # 14 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| к слову Banzay89, у тебя действительно не лучшая формула, хотя бы по той причине что у тебя идет инит двух лишних локалок (x1\y1) тогда как можно вполне обойтись x = x + 600 * Cos(37*A*bj_RADTODEG) y = y + 600 * Sin(37*A*bj_RADTODEG) юнита забивать в переменную для такого действия тоже не вижу смысла. По той причине что для получения X\Y лучше использовать GetUnit чем забивать его в локу, которую еще и обнулить потом надо.
|
|
|
|
DarkVader | Дата: Среда, 01 Декабря 2010, 16:45:49 | Сообщение # 15 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Quote (Banzay89) писал по памяти память у тебя плохая Quote (Banzay89) О читабельности кода чтото слышал? чистый код читается хорошо, и не требует лишних локалок call DestroyEffect(AddSpecialEffect("modelName",x + 600*Cos(n*30*bj_DEGTORAD) ,y + 600*Sin(n*30*bj_DEGTORAD) ) ) - эта строка сложно читается? Оо Quote (Banzay89) я то думаю, почему у меня все нормально работает? А я просто не знал, что у тиргонометрических функций угол берется в радианах какбэ намикаю что можна и без этого еще раз доказывает что ты полный 0 в Jass, хоть раз пробовал код то писать? Quote (Banzay89) короче учи свою бабушку, а не меня тебе как раз нужно бы самому поучиться Quote (Banzay89) та конечно конечно,своими постами ты это еще больше подтвердил
|
|
|
|
[stebashka] | Дата: Среда, 01 Декабря 2010, 16:56:40 | Сообщение # 16 |
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
| Banzay89, не спорь с DarkVader он как бэ знает что говорит еще он может тебя съесть
|
|
|
|
DarkVader | Дата: Среда, 01 Декабря 2010, 17:06:40 | Сообщение # 17 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Quote (|stebashka|) еще он может тебя съесть не пугай ребенка=) Banzay89, я как бы помню что ты выкладывал свою мапу, так вот, тогда мне было лень ее смотреть, но сейчас я ради интереса заглянул в нее, ты такую ересь там пишешь в коде...
|
|
|
|
FkoFF | Дата: Среда, 01 Декабря 2010, 17:29:06 | Сообщение # 18 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| DarkVader, Не, с тобой поспорю. Читабельность кода повышается в разы если формулы вынести или в отдельные функции или, как минимум в локалки. Просто в противном случае код действительно глаза режет
|
|
|
|
DarkVader | Дата: Среда, 01 Декабря 2010, 18:55:14 | Сообщение # 19 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Quote (FkoFF) DarkVader, Не, с тобой поспорю. Читабельность кода повышается в разы если формулы вынести или в отдельные функции или, как минимум в локалки. Просто в противном случае код действительно глаза режет ну способнсть прочитать написанный код, это уже навык, я стараюсь например для читабельности не делать строки больше чем входит в длинну экрана а формулы вынесенные как в этом примере это исключительно можно сделать в обучающих целях
|
|
|
|
Lich_Lord | Дата: Среда, 01 Декабря 2010, 19:10:15 | Сообщение # 20 |
5 уровень
Группа: Проверенные
Сообщений: 148
Награды: 0
Репутация: 38
Блокировки:
| Тему можно Закрывать всем спасибо
|
|
|
|
Banzay89 | Дата: Среда, 01 Декабря 2010, 21:52:13 | Сообщение # 21 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| DarkVader, приношу извинения - bj_DEGTORAD действительно нужно, хотя всегда делал без этого и все работало.. Оо Quote Banzay89, я как бы помню что ты выкладывал свою мапу, так вот, тогда мне было лень ее смотреть, но сейчас я ради интереса заглянул в нее, ты такую ересь там пишешь в коде... Например? Добавлено (01-12-2010, 21:52) --------------------------------------------- Хотя все возможно. Эта карта делалась еще когда я только начинал изучать жасс
|
|
|
|
DarkVader | Дата: Среда, 01 Декабря 2010, 23:38:37 | Сообщение # 22 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Quote (Banzay89) приношу извинения да как бы незачто, ты меня не обижал ничем если еще будут вопросы, то спрашивай у моей бабушки=)
|
|
|
|