помощь по Jass - Wc3-Maps Форум













[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
помощь по Jass
-
wetalqДата: Вторник, 02-08-2011, 15:44:08 | Сообщение # 1
Король Мёртвых

загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
Code
function Trig_a_Conditions takes nothing returns boolean
     return  GetSpellAbilityId() == 'A000'
endfunction

function Trig_Asuma_Spell_1_Cast_Actions takes nothing returns nothing
     local unit u = GetSpellAbilityUnit()
     local real array a
     set a[1] = GetUnitX(u)
     set a[2] = GetUnitY(u)
     set a[3] = GetLocationX(GetSpellTargetLoc())
     set a[4] = GetLocationX(GetSpellTargetLoc())
     local real angle = Atan2(loc[3] - loc[1], loc[4] - loc[2])
     set a[5] = (a[1] + 50. * Cos(angle))
     set a[6] = (a[2] + 50. * Sin(angle))
     local player p = GetOwningPlayer(u)
     local unit dummy = CreateUnit (p, 'h001', a[5], a[6], angle)
      
endfunction

//===========================================================================
function InitTrig_Asuma_Spell_1_Cast takes nothing returns nothing
     set gg_trg_Asuma_Spell_1_Cast = CreateTrigger(  )
     call TriggerRegisterAnyUnitEventBJ( gg_trg_Asuma_Spell_1_Cast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
     call TriggerAddCondition( gg_trg_Asuma_Spell_1_Cast, Condition( function Trig_Asuma_Spell_1_Cast_Conditions ) )
     call TriggerAddAction( gg_trg_Asuma_Spell_1_Cast, function Trig_Asuma_Spell_1_Cast_Actions )
endfunction


Вот сегодня начал учить Jass, начал переводить 1 спел используя локалки.
знающие Jass посмотрите на исполнения кода и скажите норм или уг)

а еще в спелы присутствует движения юнита dummy, каждые 0.02 секунды как это сделать способность типо волны силы (летит думи по линии и дамажет врагов)
Буду очень признателен за помощь)


Покупка предметов через способность
 
-
AncientPenguinДата: Вторник, 02-08-2011, 18:15:29 | Сообщение # 2

загрузка наград ...
Группа: Избранные
Сообщений: 449
Репутация: 526
Статус: Не на сайте
Quote (wetalq)
GetSpellTargetLoc()


Возвращает точку (location), ее нужно записывать в переменную и удалять/обнулять в конце.

Quote (wetalq)
set a[4] = GetLocationX(GetSpellTargetLoc())


Там поидее GetLocationY должно быть.

Далее точно не уверен и проверять сейчас лень, но

Quote (wetalq)
Atan2(loc[3] - loc[1], loc[4] - loc[2])


должно вернуть угол в радианах, а

Quote (wetalq)
CreateUnit (p, 'h001', a[5], a[6], angle)


вроде принимает угол в градусах.
И еще, Atan2 возвращает угол в диапалоне от -180 до 180. А CreateUnit поидее принимает от 0 до 360 (GetUnitFacing возвращает такое). Так что наверно надо:

Code
angle=angle*bj_RADTODEG
CreateUnit (p, 'h001', a[5], a[6], angle+180)


И вообще лучше не масивом, а отдельными переменными, но это впринципе не критично.

Quote (wetalq)
а еще в спелы присутствует движения юнита dummy, каждые 0.02 секунды как это сделать способность типо волны силы (летит думи по линии и дамажет врагов) Буду очень признателен за помощь)


Я для этого делал систему с сжассом, но если на простом жассе то читай про хеш таблицы и таймеры. Создаешь таймер с нужным периодом целпяешь к нему функцию и все нужные параметры через хеш.
 
-
wetalqДата: Четверг, 04-08-2011, 01:07:39 | Сообщение # 3
Король Мёртвых

загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
а теперь вот думаю че я геометрию не учил то, щас бы помогла)

да и английский тут знать не помешало бы

AncientPenguin, спс, буду мучать Jass Craft дальше может когда то сделаю свой первый спел на Jass


Покупка предметов через способность
 
-
SentДата: Воскресенье, 07-08-2011, 19:56:03 | Сообщение # 4
#DARKSIDE

загрузка наград ...
Группа: Зам.Админа
Сообщений: 9158
Репутация: 8449
Статус: Не на сайте
Тема закрыта
 
  • Страница 1 из 1
  • 1
Поиск:
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта
chat