Сейчас 13:55:48 Пятница, 26 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Типо прыжок (А точнее просто подлет)
Типо прыжок
TohaAKAДата: Вторник, 04 Января 2011, 13:24:07 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Я замучился искать и пробовать.
Выложите скрин плиз, как на ГУИ сделать, так чтобы юнит просто, наместе, подлетел (на высоту 300 к примеру) и опустился.


 

[stebashka]Дата: Вторник, 04 Января 2011, 13:26:01 | Сообщение # 2
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
Даешь способность Превратится в ворона
изменяешь высоту полета на нужную тебе (Анимация)
Удаляешь способность ворона


 

DreiiДата: Вторник, 04 Января 2011, 14:11:47 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
TohaAKA,
Code
local unit u=GetSpellTargetUnit()
if GetSpellAbilityId() == 'A000' then
     UnitAddAbility(u, 'Amrf')
      call SetUnitFlyHeight(u, 700, 0)
     call UnitRemoveAbility(u, 'Amrf')
     endif
     set u=null
endfunction

При применении способности на юнита он подлетает на 700


 

SirNikolasДата: Вторник, 04 Января 2011, 14:15:11 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Dreii,
1. Забыл поставить "call" перед UnitAddAbility.
2. Обнуляй юнита вне if'а.
3.
Quote (TohaAKA)
подлетел (на высоту 300, к примеру) и опустился.
А у тебя только подлетает.




Сообщение отредактировал SirNikolas - Вторник, 04 Января 2011, 14:18:53
 

DreiiДата: Вторник, 04 Января 2011, 14:17:22 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, я в не ифа обнулил

Добавлено (04-01-2011, 14:17)
---------------------------------------------

Code
local unit u=GetSpellTargetUnit()
if GetSpellAbilityId() == 'A000' then
call UnitAddAbility(u, 'Amrf')
call SetUnitFlyHeight(u, 700, 0)
call SetUnitFlyHeight(u, 0,2)
call UnitRemoveAbility(u, 'Amrf')
endif
set u=null
endfunction




Сообщение отредактировал Dreii - Вторник, 04 Января 2011, 14:24:28
 

SirNikolasДата: Вторник, 04 Января 2011, 14:20:29 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Насчет if - извини, не заметил. Но сейчас будет работать по-другому: юнит мгновенно окажется на высоте 700, а затем в течении 700 сек. будет опускаться.

 

DreiiДата: Вторник, 04 Января 2011, 14:24:52 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, таймер хэш, или PolledWait

Добавлено (04-01-2011, 14:24)
---------------------------------------------
SirNikolas, хотя можно делать так call SetUnitFlyHeight(u, 0,5)


 

TohaAKAДата: Вторник, 04 Января 2011, 14:32:28 | Сообщение # 8
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
как на ГУИ сделать

Quote
Даешь способность Превратится в ворона
изменяешь высоту полета на нужную тебе (Анимация)
Удаляешь способность ворона

Чтот нублю не получается
Мона скрин?




Сообщение отредактировал TohaAKA - Вторник, 04 Января 2011, 14:35:39
 

SirNikolasДата: Вторник, 04 Января 2011, 14:33:05 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Таймер - хэш, да.
Code
function Trig_Jump_Timer takes nothing returns nothing
      local timer t = GetExpiredTimer()
      local integer ID = GetHandleId(t)
      call SetUnitFlyHeight(LoadUnitHandle(udg_Hash, ID, 0), LoadReal(udg_Hash, ID, 1), 5.)
      call DestroyTimer(t)
      call FlushChildHashtable(udg_Hash, ID)
      set t = null
endfunction

function Trig_Jump_Actions takes nothing returns nothing
      local unit u = GetSpellTargetUnit()
      local real r = GetUnitFlyHeight(u)
      local timer t
      local integer ID
      if GetSpellAbilityId() == 'A000' then
          set t = CreateTimer()
          set ID = GetHandleId(t)
          call UnitAddAbility(u, 'Amrf')
          call UnitRemoveAbility(u, 'Amrf')
          call SetUnitFlyHeight(u, r + 700., 5.)
          call SaveUnitHandle(udg_Hash, GetHandleId(t), 0, u)
          call SaveReal(udg_Hash, ID, 1, r)
          call TimerStart(t, 5., false, function Trig_Jump_Timer)
          set t = null
      endif
      set u = null
endfunction

function InitTrig_Jump takes nothing returns nothing
      local trigger trig = CreateTrigger()
      local integer i = 0
      set udg_Hash = InitHashtable()
      loop
          call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
          exitwhen i == 15
          set i = i + 1
      endloop
      call TriggerAddAction(trig, function Trig_Jump_Actions)
      set trig = null
endfunction
Нужно создать триггер Jump, нажать "Правка -> Конвертировать в текст" и заменить то, что получится, на этот код. Также нужно создать переменную Hash класса хэш-таблица.




Сообщение отредактировал SirNikolas - Вторник, 04 Января 2011, 14:34:36
 

IlgardIoДата: Вторник, 04 Января 2011, 14:35:02 | Сообщение # 10
3 уровень
Группа: Пользователи
Сообщений: 57
Награды: 0
Репутация: 11
Блокировки:
SirNikolas,
Зачем луп в иниц тригера? Что оптимизирует?
 

DreiiДата: Вторник, 04 Января 2011, 14:35:58 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
IlgardIo, раскрытие bj

 

SirNikolasДата: Вторник, 04 Января 2011, 14:36:13 | Сообщение # 12
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Добавление события.

 

TohaAKAДата: Вторник, 04 Января 2011, 14:40:01 | Сообщение # 13
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Не мне всетаки на ГУИ надо т.к. я ДЖАС нее понимаю, а подпрыгивание это не все, что надо, это только 20%

 

KartohaДата: Вторник, 04 Января 2011, 14:42:50 | Сообщение # 14
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Недавно делал заклинание на заказ, там как рас герой взлетает на месте, держи.
 

TohaAKAДата: Вторник, 04 Января 2011, 14:58:18 | Сообщение # 15
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Круть подлетел, теперь помогите чтоб группа подлетела.
Вот что я сделал.

Там не все видно, в конце переменной кратко "принадлежащие коричневому".




Сообщение отредактировал TohaAKA - Вторник, 04 Января 2011, 15:11:03
 

rep-30011Дата: Вторник, 04 Января 2011, 15:01:35 | Сообщение # 16
7 уровень
Группа: Проверенные
Сообщений: 300
Награды: 0
Репутация: 18
Блокировки:
если хочеш чтобы подлетела группа заноси в отряд и делай тоже самое только для выбранного юнита


ИНФА
Ланшафтинг - 10%
Декорирование - 5%
Джасс - 3%
Спелмейкер (создатель спелов) - 100%
Основные триггеры - 100%
Фантазия - 83%
 

KartohaДата: Вторник, 04 Января 2011, 15:38:58 | Сообщение # 17
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
TohaAKA, не Matching Unit а Picked Unit
 

SirNikolasДата: Вторник, 04 Января 2011, 15:53:08 | Сообщение # 18
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
И не "Начинает применять способность" а "Приводит способность в действие".

 

TohaAKAДата: Среда, 05 Января 2011, 12:51:33 | Сообщение # 19
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Практически получилось =)
Только они у меня не спускаются. =(

И еще подскажите как настроить взлет и падение т.е. какая цифра за что отвечает.


 

SirNikolasДата: Среда, 05 Января 2011, 13:00:41 | Сообщение # 20
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (TohaAKA)
Анимация - Change (Picked unit) flying height to 0.00 at 800.00
Перевожу: Сменить выбранному юниту высоту на 0.00 за 800.00 секунд.




Сообщение отредактировал SirNikolas - Среда, 05 Января 2011, 13:01:09
 

TohaAKAДата: Среда, 05 Января 2011, 13:05:42 | Сообщение # 21
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Ок. А как решитьто, что они у меня не падают?

 

SirNikolasДата: Среда, 05 Января 2011, 13:09:48 | Сообщение # 22
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (SirNikolas)
за 800.00 секунд.
Они падают, только очень медленно.


 

TohaAKAДата: Среда, 05 Января 2011, 13:14:37 | Сообщение # 23
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Последний вопрос:
Как заставить юнита нанести дамаг в радиусе не причиняя урона себе.
а то у меня дохнет


 

SirNikolasДата: Среда, 05 Января 2011, 13:21:39 | Сообщение # 24
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Set Point = (Position of Юнит 0000 <gen>)
Custom Script: set bj_wantDestroyGroup = true
Отряд - Pick every unit in (Units within <радиус> of Point) matching (((Matching unit) belongs to an ally of (Owner of (Юнит 0000 <gen>))) = Нет) and do (Actions)
_Боевая единица - Order Юнит 0000 <gen> to damage (Picked unit), dealing <урон> damage, attack type Сила Тьмы, damage type Обычный.
Custom script: call RemoveLocation(udg_Point)


 

TohaAKAДата: Среда, 05 Января 2011, 13:31:25 | Сообщение # 25
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 45
Блокировки:
Не получается сделать этот вопрос последним.
Никак не хотя падать.
Вот так стоит у мя, оони подлетают и все, хотя в скинутой Kartoha наработке гер падает.

Ой там где они должны падать стоит время 1.




Сообщение отредактировал TohaAKA - Среда, 05 Января 2011, 13:52:00
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Типо прыжок (А точнее просто подлет)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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