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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Не срабатывают эффекты
FatalBladeДата: Вторник, 15 Ноября 2011, 22:36:59 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Это спелл - Slash, наносит урон всем юнитам в радиусе удара. Задача кода - воспроизвести эффект рубящего удара и воспроизвести нужный звук. Вообщем код то работает, но эффекты нет.



Не работает вот эта часть
Code
    if ( IsUnitAliveBJ(u) == true ) then
         call DestroyEffect( AddSpecialEffectLoc( "Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", PolarProjectionBJ(p, 125.00, a) ) )
         loop
           exitwhen i > 6
             call DestroyEffect( AddSpecialEffectLoc( "Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", PolarProjectionBJ(p, 125.00, ( a + r )) ) )
             call DestroyEffect( AddSpecialEffectLoc( "Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", PolarProjectionBJ(p, 125.00, ( a - r )) ) )
             set r = r + 11.00
             set i = i + 1
         endloop
     endif


 

Ty3uKДата: Вторник, 15 Ноября 2011, 22:41:08 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Щито это за втф?! Нах бж? IsUnitType(unit, UNIT_TYPE_DEAD)- это раз. Два- какие нах полярки? Ты чего?! Кодишь на жассе- уж будь добр используй координаты, а иначе какой смысл? И еще- не все эффекты работают, если их создавать в функе удаления

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Среда, 16 Ноября 2011, 00:28:38 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Ty3uK)
еще- не все эффекты работают, если их создавать в функе удаления

этот эффект как раз таки работает

Добавлено (16 Ноябрь 2011, 00:28:38)
---------------------------------------------
Попробовал не в функцие удаления. Не работает.
Помогите плз


 

Ty3uKДата: Среда, 16 Ноября 2011, 06:58:09 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Цикл не бесконечный (я не вижу конец кода)? Перепиши код с учетом бж и полярок- юзай нативки и координаты. Будь тру, блеать ^_^

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Среда, 16 Ноября 2011, 07:28:25 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
нет Ватсон, ложный след... Дело в том что автор сделал все на гуи потом конвертировал в текст и чтото мутит, а вскрытие показало что причину нерабочеих бжшек невозможно открыть изза неясных переменных a и r, а также изза нечитабельности кода в целом.

 

Ty3uKДата: Среда, 16 Ноября 2011, 07:56:23 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Холмс, вы как всегда правы, но след не совсем ложный, ибо некоторые эффекты не срабатывают в функе удаления (у меня так через раз работал столб огня Келя). Ну а насчет кода- да, согласен, это ужасно...


мои глаза вытекли, когда прочиталь код полностью... >(
вот полностью рабочий код:


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Среда, 16 Ноября 2011, 13:07:59
 

SirNikolasДата: Среда, 16 Ноября 2011, 13:05:51 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
return true
set t = null
set u = null
Во-первых, fail. А во-вторых, надо return false.


 

Ty3uKДата: Среда, 16 Ноября 2011, 13:08:13 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, окей, исправил

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Пятница, 18 Ноября 2011, 15:51:47 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Всем спс. Свою ошибку я нашёл. Я пользовался точкой которую до этого удалил :D

Ty3uK, твой код работает? А то у меня вопрос по поводу паузы. У меня пауза подразумевается как отсрочка приказа. Например если юнит заюзал абилу, и сработала пауза, то после выхода их паузы юнит снова повторит приказ. И снова пауза. И снова приказ, который не успевает свершиться. Короче юнит застрял. Как работать с паузами, что бы например если юнит прыгает и наносит удар сверху, или производит какую то анимацию, то ему нельзя было дать другой приказ.

Quote (Ty3uK)
Atan2

Это что?


 

Ty3uKДата: Пятница, 18 Ноября 2011, 16:06:41 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
FatalBlade, атан2 - угол между точками
паузу поставил как альернативу установки скорости движения на 0 (ибо это как-то тупо)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Пятница, 18 Ноября 2011, 16:10:34 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
PauseUnit(твой юнит)
блокирует передвежение, атаку, активные абилки
но можно перемещать триггерно+ использовать дамми для эффектов да и SetUnitAnimation() ни кто не запрещает использовать на запаузенного юнита

Quote (FatalBlade)
Atan2


Quote
Это что?


в след раз посмотри в википедии, а потом спрашивай
это функция берущая 2 значения(x,y) и возвращающая угол между точками (0,0) и (x,y) в радианах
1 градус = 0.017 радиан
360 градусов = 2Pi радиан = 3.14*2 радиан = 6.18 радиан
x градусов = x*(180/Pi) радиан
Pi = число пи = ~ 3.14

Добавлено (18 Ноябрь 2011, 16:10:34)
---------------------------------------------
ну блеан!!! Ватсон! вечно пока я пишу длинный пост ты отвечешь до меня ^_^ ты что там на телефоне каждую минуту смотришь нет ли апдейтов?????????


 

Ty3uKДата: Пятница, 18 Ноября 2011, 16:14:51 | Сообщение # 12
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Пятница, 18 Ноября 2011, 16:15:06
 

FatalBladeДата: Пятница, 18 Ноября 2011, 16:38:50 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Ty3uK)
паузу поставил как альернативу установки скорости движения на 0

Ок. В принципе я сделал то же самое только наоборот :D Скорость на 0 как альтернатива паузе.

Quote (Hexing)
но можно перемещать триггерно+ использовать дамми для эффектов да и SetUnitAnimation() ни кто не запрещает использовать на запаузенного юнита

Знаю... Зачем дамми для эффектов?
А как насчёт самих абилок? У меня юнит не успевает заюзать абилку и сразу уходит в паузу. При выходе их паузы он повторяет попытку кастануть абилку. В итоге - у юнита вечная пауза.




Сообщение отредактировал FatalBlade - Пятница, 18 Ноября 2011, 16:39:50
 

Ty3uKДата: Пятница, 18 Ноября 2011, 16:55:55 | Сообщение # 14
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Потому что надо ставить в событии EVENT_PLAYER_UNIT_SPELL_EFFECT вроде так

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Пятница, 18 Ноября 2011, 16:57:17 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
IssueTargetOrder()//твой каст
TriggerSleepAction(0.)//подождем цикл всего кода+обработки ии приказов
PauseUnit(u, true)//а теперь уже паузим
и не надо рычать что какого фига триггер слип мол надо таймер, мне просто не хочется обьяснять про таймер и хэшь ибо это долго


 

Ty3uKДата: Пятница, 18 Ноября 2011, 17:03:17 | Сообщение # 16
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Вообще ждать не надо, ибо событие "юнит тащит эффект заклинания" срабатывает тогда, когда кд спелла уже пошел

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Пятница, 18 Ноября 2011, 17:09:24 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Вообще ждать не надо, ибо событие "юнит тащит эффект заклинания" срабатывает тогда, когда кд спелла уже пошел

напиши по русски, чтото непонимаю африканско-еврейского слэнга "юнит тащит эффект заклинания"


 

FatalBladeДата: Пятница, 18 Ноября 2011, 17:27:04 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Ty3uK)
Вообще ждать не надо, ибо событие "юнит тащит эффект заклинания" срабатывает тогда, когда кд спелла уже пошел

мм.. Но там помоему невозможно вычислить цель спелла

Quote (Hexing)
IssueTargetOrder()//твой каст
TriggerSleepAction(0.)//подождем цикл всего кода+обработки ии приказов
PauseUnit(u, true)//а теперь уже паузим
и не надо рычать что какого фига триггер слип мол надо таймер, мне просто не хочется обьяснять про таймер и хэшь ибо это долго

Я пользуюсь таймерами а не TriggerSleepAction. И про хэш тоже знаю <_<
И приказы в качестве событий не использую, по той причине что их легко отменить.


 

Ty3uKДата: Пятница, 18 Ноября 2011, 17:27:43 | Сообщение # 19
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Событие EVENT_PLAYER_UNIT_SPELL_EFFECT срабатывает, когда спелл уже использован и пошел кд, соответственно не нужны пляски с бубном и вейты

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Пятница, 18 Ноября 2011, 17:58:46 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Ty3uK)
Событие EVENT_PLAYER_UNIT_SPELL_EFFECT срабатывает, когда спелл уже использован и пошел кд, соответственно не нужны пляски с бубном и вейты

Я о ссылках на юнитов. Например:
GetTriggerUnit()
GetSpellAbilityUnit()
GetSpellTargetUnit()
GetSpellTargetPoint()

Работает вроде только первая, нет?


 

Ty3uKДата: Пятница, 18 Ноября 2011, 18:02:05 | Сообщение # 21
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Работает любая (только в таймере ты ее взять не можешь)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Пятница, 18 Ноября 2011, 18:07:20 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Ty3uK)
Работает любая (только в таймере ты ее взять не можешь)

Я сохраняю в хэш


 

Ty3uKДата: Пятница, 18 Ноября 2011, 18:09:51 | Сообщение # 23
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ну, я понял, ибо иначе ты таймеры юзать не мог бы. Сохранять в хэш можно что угодно (любую ссылку на юнита в том числе)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

AUДата: Понедельник, 21 Ноября 2011, 17:47:09 | Сообщение # 24
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
Quote (Hexing)
это функция берущая 2 значения(x,y)

а вот и нет! не "x,y" а "y,x" не путай! ;)


Остаться в живых
стрелялка с мышковым управлением =)
 

HexingДата: Вторник, 22 Ноября 2011, 13:40:25 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (AU)
а вот и нет! не "x,y" а "y,x" не путай!

а разница?) домножить на -1 =)


 

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

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