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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: Bru  
Форум о Warcraft 3 » Прочее » Отвал » [СПЕЛЛМЕЙКИНГ]Урок 2. Что такое ракеты и как они применяются
[СПЕЛЛМЕЙКИНГ]Урок 2. Что такое ракеты и как они применяются
Cool_BoyДата: Пятница, 23 Июля 2010, 18:20:34 | Сообщение # 51
8 уровень
Группа: Проверенные
Сообщений: 643
Награды: 0
Репутация: 48
Блокировки:
попробую

Добавлено (23-07-2010, 17:41)
---------------------------------------------

Code
function Trig_moveper_Func004Func012001 takes nothing returns boolean
     return ( R2I(DistanceBetweenPoints(udg_Point[1], udg_Point[2])) > 150 )
endfunction

function Trig_moveper_Func004Func012002 takes nothing returns boolean
     return ( IsUnitAliveBJ(udg_rocket) == true )
endfunction

function Trig_moveper_Func004C takes nothing returns boolean
     if ( not GetBooleanAnd( Trig_moveper_Func004Func012001(), Trig_moveper_Func004Func012002() ) ) then
         return false
     endif
     return true
endfunction

function Trig_moveper_Actions takes nothing returns nothing
     local real x = GetWidgetX(rocket) + 20. * Cos(udg_ABP)
     local real y = GetWidgetY(rocket) + 20. * Sin(udg_ABP)
     set udg_Point[2] = GetUnitLoc(udg_rocket)
     if ( Trig_moveper_Func004C() ) then
         if Is TerrainPathable(x,y,PATHING_TYPE_WALKABILITY) == false then
         call SetUnitX(udg_Rocket,x)
         call SetUnitY(udg_Rocket,y)
         else
         call KillUnit( udg_rocket )
         call RemoveLocation(udg_Point[1])
         call DisableTrigger( GetTriggeringTrigger() )
         endif
     else
         call KillUnit( udg_rocket )
         call DisableTrigger( GetTriggeringTrigger() )
         call RemoveLocation(udg_Point[1])
     endif
     call RemoveLocation(udg_Point[2])
endfunction

//===========================================================================
function InitTrig_moveper takes nothing returns nothing
     set gg_trg_moveper = CreateTrigger(  )
     call DisableTrigger( gg_trg_moveper )
     call TriggerRegisterTimerEventPeriodic( gg_trg_moveper, 0.04 )
     call TriggerAddAction( gg_trg_moveper, function Trig_moveper_Actions )
endfunction

дуос если ты сейчас не найдешь здесь ошибку то твой код не работает

название переменной ракеты у меня rocket

Добавлено (23-07-2010, 17:54)
---------------------------------------------
Duos у тя код неправильный снаряд не туда летит

Добавлено (23-07-2010, 18:20)
---------------------------------------------
скачать

короче сделал, только не по способу дуоса, у него чет в скрипте неправильно, не туда летит ракета. А так такой же спелл, как и дуос описал, только без jass.


 

[DUОS]Дата: Суббота, 24 Июля 2010, 00:14:40 | Сообщение # 52
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Code
function Trig_moveper_Actions takes nothing returns nothing
      local real x = GetWidgetX(rocket) + 20. * Cos(udg_ABP)
      local real y = GetWidgetY(rocket) + 20. * Sin(udg_ABP)
      set udg_Point[2] = GetUnitLoc(udg_rocket)
      if IsUnitType(udg_rocket,UNIT_TYPE_DEAD) == false and SquareRoot((GetLocationX(udg_Point[2]) - GetLocationX(udg_Point[1])) * (GetLocationX(udg_Point[2]) - GetLocationX(udg_Point[1])) + (GetLocationY(udg_Point[2]) - GetLocationY(udg_Point[1]))*(GetLocationY(udg_Point[2]) - GetLocationY(udg_Point[1]))) >= 150. then
          if Is TerrainPathable(x,y,PATHING_TYPE_WALKABILITY) == false then
          call SetUnitX(udg_Rocket,x)
          call SetUnitY(udg_Rocket,y)
          else
          call KillUnit(udg_rocket)
          call RemoveLocation(udg_Point[1])
          call DisableTrigger(GetTriggeringTrigger())
          endif
      else
          call KillUnit(udg_rocket)
          call DisableTrigger(GetTriggeringTrigger())
          call RemoveLocation(udg_Point[1])
      endif
      call RemoveLocation(udg_Point[2])
endfunction

//===========================================================================
function InitTrig_moveper takes nothing returns nothing
      set gg_trg_moveper = CreateTrigger()
      call DisableTrigger(gg_trg_moveper)
      call TriggerRegisterTimerEvent(gg_trg_moveper,.04,true)
      call TriggerAddAction(gg_trg_moveper,function Trig_moveper_Actions)
endfunction

Оптимайзед)


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


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

Pa3apTДата: Суббота, 24 Июля 2010, 13:11:39 | Сообщение # 53
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
Спелы не делаются на триггерах из-за большого числа полярок, ваш кэп

Добавлено (24-07-2010, 13:11)
---------------------------------------------
[DUОS], нихрена не оптимайзеет ;)

Сообщение отредактировал Pa3apT - Суббота, 24 Июля 2010, 13:10:49
 

[DUОS]Дата: Суббота, 24 Июля 2010, 22:22:05 | Сообщение # 54
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Pa3apT,
Мб мне ещё и в коорды перевести, проведя задр-оптимиз? )


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


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

Pa3apTДата: Воскресенье, 25 Июля 2010, 14:11:52 | Сообщение # 55
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
угу, ибо GetUnitLoc(udg_rocket) смешно :)
 

Форум о Warcraft 3 » Прочее » Отвал » [СПЕЛЛМЕЙКИНГ]Урок 2. Что такое ракеты и как они применяются
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

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