Сейчас 05:38:38 Среда, 4 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Отсутствует даммикаст
SirNikolasДата: Пятница, 04 Марта 2011, 19:12:38 | Сообщение # 1
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
function Trig_Wave_of_Darkness_Conditions takes nothing returns boolean
     return GetSpellAbilityId() == 'A03I'
endfunction

function Trig_Wave_of_Darkness_Actions takes nothing returns nothing
     local unit u = GetTriggerUnit()
     local player p = GetOwningPlayer(u)
     local integer level = GetUnitAbilityLevel(u, 'A03I')
     local real x = GetWidgetX(u)
     local real y = GetWidgetY(u)
     local real f = (GetUnitFacing(u) + 30.) * .0174532925166
     loop
         exitwhen f >= .0
         set f = f + 6.283185307
     endloop
     loop
         exitwhen f < 6.283185307
         set f = f - 6.283185307
     endloop
     call BJDebugMsg("Wave of Darkness: u == " + GetUnitName(u) + " " + I2S(GetHandleId(u)) + ", level == " + I2S(level) + ", x == " + R2S(x) + ", y == " + R2S(y))
     set u = CreateUnit(p, 'h00L', x, y, f * 57.2957848)
     if level > 2 then
         call SetUnitAbilityLevel(u, 'A03H', 2)
     endif
     call BJDebugMsg("f == " + R2S(f) + ", dummy == " + GetUnitName(u) + " " + I2S(GetHandleId(u)) + ", level == " + I2S(GetUnitAbilityLevel(u, 'A03H')))
     call UnitApplyTimedLife(u, 'BTLF', 2.)
     call SetUnitExploded(u, true)
     call IssuePointOrder(u, "carrionswarm", x + Cos(f) * 100., y + Sin(f) * 100.)
     if level > 1 then
         set f = f - 1.0471975506//60 * .0174532925166
         loop
             exitwhen f >= .0
             set f = f + 6.283185307
         endloop
         loop
             exitwhen f < 6.283185307
             set f = f - 6.283185307
         endloop
         set u = CreateUnit(p, 'h00L', x, y, f * 57.2957848)
         call SetUnitAbilityLevel(u, 'A03H', level / 2)
         call BJDebugMsg("f == " + R2S(f) + ", dummy == " + GetUnitName(u) + " " + I2S(GetHandleId(u)) + ", level == " + I2S(GetUnitAbilityLevel(u, 'A03H')))
         call UnitApplyTimedLife(u, 'BTLF', 2.)
         call SetUnitExploded(u, true)
         call IssuePointOrder(u, "carrionswarm", x + Cos(f) * 100., y + Sin(f) * 100.)
     endif
     set u = null
     set p = null
endfunction

//===========================================================================
function InitTrig_Wave_of_Darkness takes nothing returns nothing
     local trigger trig = CreateTrigger()
     local integer i = 0
     loop
         call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
         exitwhen i == 11
         set i = i + 1
     endloop
     call TriggerAddCondition(trig, Condition(function Trig_Wave_of_Darkness_Conditions))
     call TriggerAddAction(trig, function Trig_Wave_of_Darkness_Actions)
     set trig = null
endfunction
При использовании заклинания должно произойти следующее:
На 1 уровне создается дамми и пускает "Темную стаю" 1 уровня на 30 градусов влево от героя;
На 2 уровне создаются дамми и пускают "Темную стаю" 1 уровня на 30 градусов влево и на 30 градусов вправо от героя;
На 3 уровне создаются дамми и пускают "Темную стаю" на 30 градусов влево и на 30 градусов вправо от героя, при этом тот, который слева, пускает "стаю" 2 уровня;
На 4 уровне создаются дамми и пускают "Темную стаю" 2 уровня на 30 градусов влево и на 30 градусов вправо от героя;

Все дамми на всех уровнях способности прекрасно создаются, и уровень заклинания у них устанавливается тоже правильно, однако "Темную стаю" они не кастуют! В чем может быть проблема?
P. S. Пробовал заставлять колдовать спелл по ID - не помогает.


 

DreiiДата: Пятница, 04 Марта 2011, 19:14:10 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, мб у них бманы не хватает?))

 

SirNikolasДата: Пятница, 04 Марта 2011, 19:16:44 | Сообщение # 3
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Нет, затрачиваемая мана == 0.

 

DreiiДата: Пятница, 04 Марта 2011, 19:28:36 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, У ТЕБЯ u TriggerUnit

 

SirNikolasДата: Пятница, 04 Марта 2011, 19:30:46 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (SirNikolas)
Code
local unit u = GetTriggerUnit()
Quote (SirNikolas)
Code
set u = CreateUnit(p, 'h00L', x, y, f * 57.2957848)
Ты про это?


 

DreiiДата: Пятница, 04 Марта 2011, 19:36:42 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, Да

 

SirNikolasДата: Пятница, 04 Марта 2011, 19:38:39 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ну да, изначально она равна GetTriggerUnit(). Но потом она перезаписывается на дамми.

 

[DUОS]Дата: Пятница, 04 Марта 2011, 19:40:34 | Сообщение # 8
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
SirNikolas,
Зажал переменные для даммиков?


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

SirNikolasДата: Пятница, 04 Марта 2011, 19:57:30 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ага :)
Решил подловить буль вот таким образом:
Code
if IssuePointOrder(u, "carrionswarm", x + Cos(f) * 100., y + Sin(f) * 100.) then
     call BJDebugMsg("true")
else
     call BJDebugMsg("false")
endif
В 100% случаев выдает false.




Сообщение отредактировал SirNikolas - Суббота, 05 Марта 2011, 12:12:56
 

lawsonДата: Пятница, 04 Марта 2011, 20:32:33 | Сообщение # 10
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
А ты пробовал использовать способность на юнита а не точку?

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Суббота, 05 Марта 2011, 12:30:46 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Опечатался, конечно же, IssuePointOrder.

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz