VolkPK
offline
Опыт:
4,877Активность: |
Магия
Где ошибка? Ничего не происходит...
Attack событие A unit атакован условие NaturePower[(Player number of (Owner of (Attacking unit)))] == true ((Attacking unit) is герой) == true действие Custom script: local integer u Set NaturePowerUnits = (Unit-type of (Attacked unit)) Custom script: set u = udg_NaturePowerUnits Replace (Attacked unit) with a мой юнит using старая боевая единица life and mana Wait 15.00 seconds Custom script: set udg_NaturePowerUnits = u Replace (Attacked unit) with a NaturePowerUnits using старая боевая единица life and mana Копируется плохо, то что редактор сделал нечитабельным писал сам. VolkPK добавил: ^ | С этим разобрался, возникла другая проблема, как тригерами отследить выключение магии? Мне надо при рассеивание магии забивать в NaturePower[(Player number of (Owner of (Attacking unit)))] нет. |
10.09.2005, 17:01 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey
Старейший
offline
Опыт:
44,363Активность: |
В первом примере - надо было сохранить юнит после реплейса в отдельную переменную.
Что касается отследить диспелы - задача не такая простая. Можно сделать лишь искуственно обработав каждое возможное заклинание типа диспел - на юнит и ена область.. При его применении проверять, был ли такой-то юнит в области диспела. Или... Помню когда-то делал подобную задачу, но получилось довольно глючно и геморрно. |
10.09.2005, 17:35 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Еше вопрос, но уже делаю другой спелл, как создать нейтрально враждеюную иилюзию, и заставить ее атаковать юнита из которога она(иллюзия) зделана? |
12.09.2005, 18:23 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey
Старейший
offline
Опыт:
44,363Активность: |
Единственный способ создать иллюзию - применить спец способность. Эта способность предмета, создающего иллюзии. К сожалению, если ты создашь какого-нибудь невидимого юнита и дашь ему способность создать иллюзию, то обнаружишь, что его невозможно заставить стандартными способами применить эту способность на выбранный юнит. Такой текстовой команды (order) не существует. Правда заставить применит все таки можно - по id приказа - делается это только через jass. Или создавать невидимый юнит с инвентарем и давать прика применить жезл иллюзии на выбранный юнит (правда при этом при первом применении подобного заклинания будут тормоза).
Далее, вызов иллюзии по-моему можно отследить. И как только иллюзия создана, дать команду атаковать нужный юнит. Делать это опять же лучше через jass.
Честно говоря мало желания этим заниматься, но если нужно - могу попробовать сделать пример. |
12.09.2005, 18:53 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Если будет желание, и займешся, биг сенкс от меня :)
А пока еше один глючный скрипт, ысчо одна магия, три часа е... хм, мучался.
LightningMove Events Unit - A unit Begins casting an ability Conditions (Ability being cast) Equal to Молниносное движение Actions Custom script: local location PointStartCast Custom script: local lightning Lightning Custom script: local real Face Unit - Make (Casting unit) Invulnerable Unit - Turn collision for (Casting unit) On Set MagicLightningMoveStartPoint = (Position of (Casting unit)) Lightning - Create a lightning effect Finger of Death MagicLightningMoveStartPoint (Position of (Casting unit)) Set MagicLightningMoveLightning = (Last created lightning effect) Custom script: set PointStartCast = udg_MagicLightningMoveStartPoint Custom script: set Lightning = udg_MagicLightningMoveLightning Unit - Make (Casting unit) face (Target point of ability being cast) over 0.00 seconds Set MagicLightningMoveFace = (Facing of (Casting unit)) Custom script: set Face = udg_MagicLightningMoveFace For each (Integer A) from 1 to (Integer((Distance between (Position of (Casting unit)) and (Target point of ability being cast)))), do (Actions) Loop - Actions Custom script: set udg_MagicLightningMoveStartPoint = PointStartCast Custom script: set udg_MagicLightningMoveLightning = Lightning Custom script: set udg_MagicLightningMoveFace = Face Unit - Move (Casting unit) instantly to ((Position of (Casting unit)) offset by 1.00 towards MagicLightningMoveFace degrees), facing (Target point of ability being cast) Lightning - Move MagicLightningMoveLightning MagicLightningMoveStartPoint (Position of (Casting unit)) Unit - Order (Casting unit) to damage area in 0.01 seconds of size 10.00 at (Position of (Casting unit)) for (1.00 x (Real((Level of Молниносное движение for (Casting unit))))) using attack type Spells and damage type Lightning. Wait 0.01 seconds Custom script: set udg_MagicLightningMoveLightning = Lightning Lightning - Destroy MagicLightningMoveLightning Unit - Make (Casting unit) Vulnerable Unit - Turn collision for (Casting unit) On |
12.09.2005, 22:45 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Че, никто не подскажет где ошибка... Первая более менее нормалная магия, и... Ех.. |
13.09.2005, 10:30 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Вышли карту, гляну, может найду чего. Правда я жасс не юзаю. И напиши как у тя глючит |
13.09.2005, 12:51 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Куда слать то? Из жасса там тока локальные переменные, глючит так, что юнит движется медленно, и не туда куда нужно...
VolkPK добавил: NETRAT, включи аську, я тебе все глюки подробно распишу :) |
13.09.2005, 13:13 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Шизик
это бесы!
offline
Опыт:
1,431Активность: |
Wait 0.01 seconds намного больше чем 0.01... нудно делать через периодик ивент |
13.09.2005, 14:47 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
VolkPK в аттач слать.
|
13.09.2005, 15:55 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MPI3
Хм...
offline
Опыт:
24,597Активность: |
VolkPK
не понял чё за каракули в конце??? |
13.09.2005, 16:02 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
MPI3 это имя юнита
|
13.09.2005, 16:58 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Какие каракули? Unit - Order (Casting unit) to damage area in 0.01 seconds of size 10.00 at (Position of (Casting unit)) for (1.00 x (Real((Level of Молниносное движение for (Casting unit))))) using attack type Spells and damage type Lightning. Это штоли? Уровень магии у кастера. Отредактировано VolkPK, 16.09.2005 в 00:28. |
13.09.2005, 22:35 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
4 просмотра и 0 ответов.... Мдя... |
15.09.2005, 00:20 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
VolkPK ну так вот тестил я ее вчера ночью
Unit - Order (Casting unit) to damage area in 0.01 seconds of size 10.00 at (Position of (Casting unit)) for (1.00 x (Real((Level of МолниноÑное движение for (Casting unit))))) using attack type Spells and damage type Lightning. Wait 0.01 seconds Это почему он тормозит - он не успевает сделать удар за 0.01 секунду - поэтому он дергается как припадочный. И вообще моя 1.17 выдала ошибку скрипта на строке Lightning - Create a lightning effect Finger of Death MagicLightningMoveStartPoint (Position of (Casting unit)), но это строка спецэффекта, поэтому ее можно отключить. В-общем задумку я понял, но как это сделать имхо будет убого выглядеть так как действия типа Move Unit имеют побочный эффект диспела некоторых спеллов, навешаных на юнит. Я бы не стал париться и сделал обычное ускорение атаки/движения. Но, впрочем, я не жассер, поэтому можешь игнорировать совет. Или проси Сергея - он в этом лучше разбирается |
15.09.2005, 00:40 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Долго я с ним мучался, почему когда я приказываю кастеру бежать к точке каста, он телепортируется в центр карты?
Через пол часика распишу. ЗЫ А остальные две магии как? Не слишком убого для первого раза? VolkPK добавил: А если попробовать заместо Unit - Order (Casting unit) to damage area... повреждать врагов в радиесе 50 от касера через Pick Every... он будет дергатся? |
15.09.2005, 01:37 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
VolkPK я полагаю потому что спелл сделан на базе blink'a. Остальные просто не проверял =(
NETRAT добавил: VolkPK я вообще не использовал акшн Order to damage |
15.09.2005, 01:41 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Воть:
LightningMove
Events Unit - A unit Begins casting an ability Conditions (Ability being cast) Equal to Молниносное движение Actions Custom script: local location PointStartCast Custom script: local lightning Lightning Unit - Turn collision for (Casting unit) Off Set MagicLightningMoveStartPoint = (Position of (Casting unit)) Lightning - Create a lightning effect Finger of Death MagicLightningMoveStartPoint (Position of (Casting unit)) Set MagicLightningMoveLightning = (Last created lightning effect) Custom script: set PointStartCast = udg_MagicLightningMoveStartPoint Custom script: set Lightning = udg_MagicLightningMoveLightning Unit - Order (Casting unit) to Move To (Target point of ability being cast) For each (Integer A) from 1 to ((Integer((Distance between MagicLightningMoveStartPoint and (Target point of ability being cast)))) / (Integer((Current movement speed of (Casting unit))))), do (Actions) Loop - Actions Custom script: set udg_MagicLightningMoveStartPoint = PointStartCast Custom script: set udg_MagicLightningMoveLightning = Lightning Lightning - Move MagicLightningMoveLightning MagicLightningMoveStartPoint (Position of (Casting unit)) Custom script: set bj_wantDestroyGroup = true Unit Group - Pick every unit in (Units within 50.00 of (Position of (Casting unit)) matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True)) and do (Actions) Loop - Actions Unit - Order (Casting unit) to damage (Picked unit) for ((Real((Level of Молниносное движение for (Casting unit)))) x 30.00) using attack type Spells and damage type Lightning. Wait 0.01 seconds Custom script: set udg_MagicLightningMoveLightning = Lightning Lightning - Destroy MagicLightningMoveLightning Unit - Turn collision for (Casting unit) On Когда кастую происходит такая картина Репина:
Кастер летит в центр карты, в задницу ему, в догонку, фигачит молния, молния исчезает и кастер бежит туда куда я шелкнул. ЗЫ Попробую ченить заместо blink'а другое поставить... |
15.09.2005, 01:58 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
VolkPK Я, так понимаю, тебе нужно чтобы он бежал в указанную точку на карте, потом включал неуязвимость и фигачил всех подряд (по одному удару или как?)
|
15.09.2005, 02:03 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
VolkPK
offline
Опыт:
4,877Активность: |
Мне надо чтобы он неуезвимый бежал, повреждая тех рядом с кем он бежит, и пока он бежит, ему в задницу должна фигачить молния от того места где он начал свой забег, чего я впрочем почти добился заменив blink на пронзаюшую смерть.
И вот тут возникли еше проблемы: Как сделать чтоб героем нельзя было управлять пока он бежит? Почему он перед тем как побежит выстрелит в то место куда собирается вежать. Как правильно расчитать время исчезновения молнии? Бегу не далеко, долго держится, далеко исчезает на пол дороги. |
15.09.2005, 02:18 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|