XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
adic3x

offline
Опыт: 108,439
Активность:
Код:
function Trig_Prokl_Actions takes nothing returns nothing
  UnitDamageTarget(GetSpellAbilityUnit(), GetSpellTargetUnit(), 100*GetUnitAbilityLevel(GetSpellAbilityUnit(), 'A000'), false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_AXE_MEDIUM_CHOP) 
endfunction


Думаю что то такого плана.

ADOLF добавил:
только я непомню что там за булы надо указать...
Старый 19.07.2007, 14:46
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
ADOLF "call" забыл :), первый буль это проверка на атаку/спелл а второй на ближнюю/дальнюю
Старый 19.07.2007, 14:48
adic3x

offline
Опыт: 108,439
Активность:
действительно забыл ;)
ну а жоник локалку забыл обнулить ;)
и вообще кста интегеры риалы и стринги обнулять не нуно.
Старый 19.07.2007, 14:54
J
expert
offline
Опыт: 48,447
Активность:
ненадо ее обнулять...

Jon добавил:
обнулять надо ту где создается обьект, а сдесь же идет обычная сылка на него...
Старый 19.07.2007, 14:56
adic3x

offline
Опыт: 108,439
Активность:
так ссылка ж то вроде и остается. для этого и обнуляют...
Старый 19.07.2007, 15:00
J
expert
offline
Опыт: 48,447
Активность:
ADOLF обнулять ненужно... это факт...
обнулять надо те переменые в которых _создается_ обьект, а не записывается уже существующий...
Старый 19.07.2007, 15:06
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Jon
А локалка, полученная Get'ом - считается, что создана?
Код:
local location loc = GetUnitLoc()
Старый 19.07.2007, 19:46
J
expert
offline
Опыт: 48,447
Активность:
DFlyer, Get - это не хорактеристика функции...
GetSpellAbilityUnit() - указывает на обьект, и берет уже готовый
CreateUnit(), GetUnitLoc() уже создают обьекты, т.к. до их применения этого обьекта несуществовало...
Старый 19.07.2007, 20:29
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Я всё никак не могу разобраться с мувом юнита по координатам.
Поиском нарыл такую фунцию:
Код:
call SetUnitX(u,(GetUnitX(u)+Cos(GetUnitFacing(u)*0.0174)))
call SetUnitY(u,(GetUnitY(u)+Sin(GetUnitFacing(u)*0.0174)))

Куда вставлять какое-то определённое число, чтоб юнит двигался быстрее?
Старый 19.07.2007, 20:46
J
expert
offline
Опыт: 48,447
Активность:
Код:
call SetUnitX(u, GetUnitX(u)+Speed*Cos(Angle*0.0174))
call SetUnitY(u, GetUnitY(u)+Speed*Sin(Angle*0.0174))

Из названия переменых понятно...
Старый 19.07.2007, 20:58
Prosha89
Невозможно-слово глупцов
offline
Опыт: 1,409
Активность:
Цитата:
судя повсему, если подумать что c это caster, то это неправельно


На самом деле все правильно, т.к. с - Цель

Код:
local unit c = GetSpellTargetUnit()


Цитата:
зачем так сложно?


просто с таким строением триггера хотел разобрать, а над функцией примером не долго думал.

Кстати а почему тада в коде пишут именно

Код:
call TimerStart(t, 0.05, true, function Stomp_Move)
Старый 20.07.2007, 10:49
J
expert
offline
Опыт: 48,447
Активность:
Prosha89 это запуск таймера... функция Stomp_Move будет выполнятся каждые 0,05 секунд пока таймер тригерно не остановят или не удалят.
это нужно преемуществено для движения прожектилов
Старый 20.07.2007, 11:31
Prosha89
Невозможно-слово глупцов
offline
Опыт: 1,409
Активность:
Не я спрашивал не что она делает, я спрашивал почему так пишут. Почему именно
Код:
call TimerStart(t, 0.05, true, function Stomp_Move)


в моем же примере просто название

Код:
call UnitDamageTargetBJ( f, c,  Damage(), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )

Отредактировано Prosha89, 20.07.2007 в 12:08.
Старый 20.07.2007, 11:46
J
expert
offline
Опыт: 48,447
Активность:
Код:
native TimerStart           takes timer whichTimer, real timeout, boolean periodic, code handlerFunc returns nothing
function UnitDamageTargetBJ takes unit whichUnit, unit target, real amount, attacktype whichAttack, damagetype whichDamage returns boolean

оператор function преобразует название функции в обьект типа code которым уже можно пользоватся
4 пораметр функции TimerStart принимает тип code

3 пораметр функции UnitDamageTargetBJ принимает real
и function писать не нужно

Отредактировано Jon, 20.07.2007 в 11:58.
Старый 20.07.2007, 11:51
Megalol4er

offline
Опыт: 733
Активность:
Товарищи знатоки скажите можно либо каким нибудь тригером сделать следующее действие - если в кампании 2 мапы - по ходу игры в одной мапе можно будет загрузить другую? Если допустим условие юнит вошол в регион один то load и название мапы. Такое возможно?
Старый 30.07.2007, 22:42
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Возможно даже на триггерах:
» NextMap

Код:
Игра - Set Next Level To <YourLevel>
Игра - Win Player 1 no scores no screens

Старый 30.07.2007, 22:53
Megalol4er

offline
Опыт: 733
Активность:
спасибо большое
Старый 30.07.2007, 23:30
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
Fucking "GetTriggerUnit()" может использоватся в пределах одного триггера(в Условиях, Событиях + в функциях которые вызваны с данного триггера при помощи "ExecuteFunc"), а при использовании таймера юнита лучше всего передавать с помощью РБ+Кеш. Хотя... а зачем тебе таймер если он запустит функцию через 0.03 сек ? Если хочешь сделать возрождение через несколько секунд, то здесь вроде достаточно просто Веит(TriggerSleepAction) поставить.

ЗЫ Ты не удаляешь таймер + он у тебя периодический(в твоём случае этого не надо).
Старый 31.07.2007, 11:45
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
Terros
1) НЕ ЮЗАЙ ЛОКАЦИИ
2) "0.01" это слишком, минимум "0.025"
3) не юзай периодический триггер, юзай таймер
Старый 31.07.2007, 14:17
J
expert
offline
Опыт: 48,447
Активность:
Terros
+ к сказаному:
необнуляются нужные переменые, обнуляются переменые которые обнулять не нужно...
Код:
set u = GroupPickRandomUnit(GetUnitsInRangeOfLocAll(100, GetUnitLoc(proj)))

здесь утекает группа и точка и значем находить рандомного юнита из такой маленькой группы, можно вполне нормально ипользовать FirstOfGroup() и все...
Старый 31.07.2007, 15:35
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 13:28.