Молния
SunCreep Дата: Понедельник, 08 Августа 2011, 21:45:28 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
Мне нужно что бы враг не мог пройти через молнию.Как осуществить?Делать диапазоны точек по длине молнии и ловить юнитов в них?Если да,то как рассчитать циклом создание этих точек,то бишь формула.
Volk9503 Дата: Понедельник, 08 Августа 2011, 21:51:10 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 311
Награды:
0
Репутация:
13
Блокировки:
создай по длите молнии декорации блок пути
Сообщение отредактировал Volk9503 - Понедельник, 08 Августа 2011, 21:51:28
SunCreep Дата: Понедельник, 08 Августа 2011, 21:54:06 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
Quote (SunCreep )
рассчитать циклом создание этих точек,то бишь формула
Добавлено (08-08-2011, 21:54) --------------------------------------------- Мне нужна формула расчёта точек.Что с ними делать не важно,хоть диапазоны,как говорил я,хоть декорации ставить.
Mep3aB4uK Дата: Понедельник, 08 Августа 2011, 22:45:26 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды:
0
Репутация:
135
Блокировки:
Изначально точка(лок) на растояние с переменной(дег) установленой на угол лица кастуещего. Переменная(инт) в зависимости от длины стены к примеру -300. Дальше цикл создать юнита в лок с офсетом инт с углом дег-90 установить инт=инт+50
SunCreep Дата: Понедельник, 08 Августа 2011, 22:48:22 | Сообщение # 5
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
Mep3aB4uK , во-первых я тебя не понял вообще,а во-вторых,молния создаётся не от позиции кастующего,так что брать его угол поворота бессмысленно.
plisis Дата: Понедельник, 08 Августа 2011, 23:13:14 | Сообщение # 6
2 уровень
Группа: Пользователи
Сообщений: 20
Награды:
0
Репутация:
0
Блокировки:
SunCreep , зато как я знаю возможно узнать точку в которую произошел каст. А значить мы может зная 2 точки узнать угл между ними(для этого есть готовая стандартная функция). А дальше зная угл, начальную точку, и расстояние не трудно вычислить все точки на этом отрезке(можно даже использовать полярные координаты к примеру для этого)
Mep3aB4uK Дата: Понедельник, 08 Августа 2011, 23:25:57 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды:
0
Репутация:
135
Блокировки:
Эт не абилка? Обьясни от чего молния появляется...
plisis Дата: Понедельник, 08 Августа 2011, 23:29:37 | Сообщение # 8
2 уровень
Группа: Пользователи
Сообщений: 20
Награды:
0
Репутация:
0
Блокировки:
SunCreep , вообще если возможно покажи код создания молнии.
SunCreep Дата: Вторник, 09 Августа 2011, 00:23:56 | Сообщение # 9
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
plisis , во-первых это не код,а во-вторых вот:
Code
function Trig_____________________________________001_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A009' ) ) then return false endif return true endfunction function Trig_____________________________________001_Actions takes nothing returns nothing set udg_Caster3 = GetSpellAbilityUnit() set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 5 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd set udg_Location20[GetForLoopIndexA()] = PolarProjectionBJ(GetUnitLoc(udg_Caster3), 350.00, ( GetUnitFacing(udg_Caster3) + ( 72.00 * I2R(GetForLoopIndexA()) ) )) set udg_Location21[GetForLoopIndexA()] = PolarProjectionBJ(GetUnitLoc(udg_Caster3), 350.00, ( ( GetUnitFacing(udg_Caster3) - 72.00 ) + ( 72.00 * I2R(GetForLoopIndexA()) ) )) call AddLightningLoc( "CLPB", udg_Location20[GetForLoopIndexA()], udg_Location21[GetForLoopIndexA()] ) set udg_LightForMage[GetForLoopIndexA()] = GetLastCreatedLightningBJ() set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 10 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd set udg_Location19A[GetForLoopIndexA()] = PolarProjectionBJ(udg_Location20[GetForLoopIndexA()], ( 35.00 * I2R(GetForLoopIndexA()) ), AngleBetweenPoints(udg_Location20[1], udg_Location21[1])) set udg_Location19B[GetForLoopIndexA()] = PolarProjectionBJ(udg_Location20[GetForLoopIndexA()], ( 35.00 * I2R(GetForLoopIndexA()) ), AngleBetweenPoints(udg_Location20[2], udg_Location21[2])) set udg_Location19C[GetForLoopIndexA()] = PolarProjectionBJ(udg_Location20[GetForLoopIndexA()], ( 35.00 * I2R(GetForLoopIndexA()) ), AngleBetweenPoints(udg_Location20[3], udg_Location21[3])) set udg_Location19D[GetForLoopIndexA()] = PolarProjectionBJ(udg_Location20[GetForLoopIndexA()], ( 35.00 * I2R(GetForLoopIndexA()) ), AngleBetweenPoints(udg_Location20[4], udg_Location21[4])) set udg_Location19E[GetForLoopIndexA()] = PolarProjectionBJ(udg_Location20[GetForLoopIndexA()], ( 35.00 * I2R(GetForLoopIndexA()) ), AngleBetweenPoints(udg_Location20[5], udg_Location21[5])) call AddSpecialEffectLocBJ( udg_Location19A[GetForLoopIndexA()], "units\\other\\Proudmoore\\Proudmoore.mdl" ) call AddSpecialEffectLocBJ( udg_Location19B[GetForLoopIndexA()], "units\\other\\Proudmoore\\Proudmoore.mdl" ) call AddSpecialEffectLocBJ( udg_Location19C[GetForLoopIndexA()], "units\\other\\Proudmoore\\Proudmoore.mdl" ) call AddSpecialEffectLocBJ( udg_Location19D[GetForLoopIndexA()], "units\\other\\Proudmoore\\Proudmoore.mdl" ) call AddSpecialEffectLocBJ( udg_Location19E[GetForLoopIndexA()], "units\\other\\Proudmoore\\Proudmoore.mdl" ) set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop call EnableTrigger( gg_trg_____________________________________001_____________________u ) call TriggerSleepAction( 100500.00 ) call DisableTrigger( gg_trg_____________________________________001_____________________u ) set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 5 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd call DestroyLightningBJ( udg_LightForMage[GetForLoopIndexA()] ) call RemoveLocation(udg_Location20[bj_forLoopAIndex]) call RemoveLocation(udg_Location21[bj_forLoopAIndex]) set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 10 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd call RemoveLocation(udg_Location19A[bj_forLoopAIndex]) call RemoveLocation(udg_Location19B[bj_forLoopAIndex]) call RemoveLocation(udg_Location19C[bj_forLoopAIndex]) call RemoveLocation(udg_Location19D[bj_forLoopAIndex]) call RemoveLocation(udg_Location19E[bj_forLoopAIndex]) set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop endfunction //=========================================================================== function InitTrig_____________________________________001 takes nothing returns nothing set gg_trg_____________________________________001 = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_____________________________________001, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_____________________________________001, Condition( function Trig_____________________________________001_Conditions ) ) call TriggerAddAction( gg_trg_____________________________________001, function Trig_____________________________________001_Actions ) endfunction
Это триггер,после вейта идёт удаление точек и молний. А вот так по формуле создаются точки. А должны быть ровно по длине молнии.
[DS] Дата: Вторник, 09 Августа 2011, 00:39:11 | Сообщение # 10
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
"недоJass" уже невозможно
FkoFF Дата: Вторник, 09 Августа 2011, 00:42:52 | Сообщение # 11
Группа: Заблокированные
Сообщений: 4356
Награды:
1
Репутация:
1413
Блокировки:
Quote (SunCreep )
Мне нужно что бы враг не мог пройти через молнию.Как осуществить?Делать диапазоны точек по длине молнии и ловить юнитов в них?Если да,то как рассчитать циклом создание этих точек,то бишь формула.
выбирать всех по длинне молнии и отбрасывать на х расстояния. Не сложно и действенно.
plisis Дата: Вторник, 09 Августа 2011, 00:42:56 | Сообщение # 12
2 уровень
Группа: Пользователи
Сообщений: 20
Награды:
0
Репутация:
0
Блокировки:
SunCreep , да это уже несколько труднее. Щас переварю твои триггеры, помазгую немного и может что придумаю.
[DS] Дата: Вторник, 09 Августа 2011, 00:47:19 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
"Не сложно и действенно." на гуях?
SunCreep Дата: Вторник, 09 Августа 2011, 00:52:02 | Сообщение # 14
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
[DS] , а с чего это сложно?С чего в друг не действенно?пфф. FkoFF , дело не в способе,способов масса.Мне нужно создать эти точки,а на скрине видно что получилось от моей формулы.Точки хаотично и я ,кстати,не понимаю почему.В это и вся проблема,что я не могу расположить точки по длине молнии.
[DS] Дата: Вторник, 09 Августа 2011, 00:55:31 | Сообщение # 15
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
"С чего в друг не действенно?пфф." ну давай давай я посматрю кто сделат без единного скрипта
SunCreep Дата: Вторник, 09 Августа 2011, 00:58:09 | Сообщение # 16
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
[DS] , не тупи.Скрипты для того и созданы,чтоб их в интерфейсе пользовать.Кстати в "коде",уже засветилось пара cs,хотя я ими пользуюсь лишь для удаления точек.И отрядов)
[DS] Дата: Вторник, 09 Августа 2011, 00:59:18 | Сообщение # 17
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
я не про них
SunCreep Дата: Вторник, 09 Августа 2011, 01:04:09 | Сообщение # 18
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
[DS] , а о чём ты?Я тебя не понимаю)
[DS] Дата: Вторник, 09 Августа 2011, 01:09:18 | Сообщение # 19
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
"Мне нужно что бы враг не мог пройти через молнию." я думую ты хочешь сделать как у тралла из доты?
FkoFF Дата: Вторник, 09 Августа 2011, 01:11:49 | Сообщение # 20
Группа: Заблокированные
Сообщений: 4356
Награды:
1
Репутация:
1413
Блокировки:
Quote (|DS| )
"Мне нужно что бы враг не мог пройти через молнию." я думую ты хочешь сделать как у тралла из доты?
у тралла из доты вообще иной способ. Точки - убожество, юзаем три группы. Одну - по размеру круга из молний, вторую - чуть меньше (на 50 ед.), третью - чуть больше. Из третьей удаляем юнитов засветившихся во второй группе, и всех юнитов из первой группы разбрасываем в стороны, в зависимости от того, в какой группе они находятся - делается очень просто.
[DS] Дата: Вторник, 09 Августа 2011, 01:14:54 | Сообщение # 21
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
"у тралла из доты вообще иной способ" я знаю, но я говорю же "как" а вообще если каждую точку создовать и делать чтоб юниты проходили, нужно еще и столько же групп создатьДобавлено (09-08-2011, 01:14) --------------------------------------------- не проходили*
FkoFF Дата: Вторник, 09 Августа 2011, 01:29:58 | Сообщение # 22
Группа: Заблокированные
Сообщений: 4356
Награды:
1
Репутация:
1413
Блокировки:
Quote (|DS| )
а вообще если каждую точку создовать и делать чтоб юниты проходили, нужно еще и столько же групп создатьДобавлено (09-08-2011, 01:14)---------------------------------------------не проходили*
ты вроде ж джассил, нет? одной группы достаточно для таких целей.
[DS] Дата: Вторник, 09 Августа 2011, 01:33:54 | Сообщение # 23
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды:
0
Репутация:
527
Блокировки:
я та знаю, вот ему обьясни как это будет выглядить на гуи
FkoFF Дата: Вторник, 09 Августа 2011, 01:34:59 | Сообщение # 24
Группа: Заблокированные
Сообщений: 4356
Награды:
1
Репутация:
1413
Блокировки:
Quote (|DS| )
я та знаю, вот ему обьясни как это будет выглядить на гуи
а ему ничего не буду объяснять, он все равно наши return'ы и function'ы не поймет.
SunCreep Дата: Вторник, 09 Августа 2011, 01:44:40 | Сообщение # 25
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды:
0
Репутация:
141
Блокировки:
Блин,причём тут тралл?Я не отрицаю,похоже,но отряды будут работать только при круге,а если у меня треугольник? По этому и делаю через точки.Добавлено (09-08-2011, 01:44) --------------------------------------------- Кстати,формулу или хотя бы ясную мысль я так и не нашёл.