Вопрос. Можно ли использовать приведённый ниже триггер? В игре работает нормально, но большинство юзеров говорит, что вейты ломают триггеры, и вообще переходи на jass нуб. Ты с gui никому не нужен.
Конвертированный код, если кому он лучше понятен, чем русифицированный GUI:
function Trig_____________________________________002_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A00H' ) ) then
        return false
    endif
    return true
endfunction

function Trig_____________________________________002_Actions takes nothing returns nothing
    local unit u
    set udg_LocalUnit = GetSpellTargetUnit()
    set u=udg_LocalUnit
    call PauseUnitBJ( true, udg_LocalUnit )
    call SetUnitTimeScalePercent( udg_LocalUnit, 0.00 )
    call SetUnitInvulnerable( udg_LocalUnit, true )
    call TriggerSleepAction( 5.00 )
    set udg_LocalUnit=u
    call PauseUnitBJ( false, udg_LocalUnit )
    call SetUnitTimeScalePercent( udg_LocalUnit, 100.00 )
    call SetUnitInvulnerable( udg_LocalUnit, false )
endfunction

//===========================================================================
function InitTrig_____________________________________002 takes nothing returns nothing
    set gg_trg_____________________________________002 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_____________________________________002, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_____________________________________002, Condition( function Trig_____________________________________002_Conditions ) )
    call TriggerAddAction( gg_trg_____________________________________002, function Trig_____________________________________002_Actions )
endfunction

Принятый ответ

KaneThaumaturge, крепи юнита к таймеру
хэш или прочее
вот статьи
там есть и про гуи и про джасс
читай разбирайся
KaneThaumaturge:
ставил на паузу, но работа спелла никак не изменилась
время вейта менялось зато
получается баг
игроки могут спецом врубать паузу чтобы изменить длительность спела
конечно если игра планируется на 1 человека то можно забить
в общем если хочешь сделать чтото сложнее "применил способность - победил" быстрее чем за пол дня то учи джасс
4
26
6 лет назад
4
говно тоже есть можно, только зачем?
1
28
6 лет назад
Отредактирован nvc123
1
вейты имеют много минусов
они не точны, и продолжают работу во время паузы
тем не менее они хороши чтобы прервать поток выполнения не порождая доп объекты
в данном случае стоит использовать таймеры т.к. задача выполнить действие спустя промежуток времени, а также чтобы избежать возможных багов
по поводу джасса
на джасс делать спелы и системы намного быстрее чем на гуи
особенно если использовать vjass и cjass
так же он предоставляет возможность создавать свои функции и все связанные с этим плюшки (таймеры с функциями и прочее)
если ты нуб который открыл редактор чтобы сделать свою кручедоты и через пару дней бросишь по причине ниасилил то джасс нафиг не нужен
ну а так советую выучить т.к. он намного проще и быстрее(в плане скорости разработки) чем гуи
0
19
6 лет назад
0
nvc123, Нет, это мили карта, с нестандартной расой (а-ля, еще один клон 23 расы, тоже дисбалансный). Я нуб, но который учился редактору 2-3 года, ну, как учился, занимался фигней. В общем, я не очень-то дружу с языком программирования, т.к начал его учить недавно. Максимум что я могу, это школьную олимпиаду написать на паскале, по-этому хочу обойтись без джасса, т.к на мили карте мне и не нужно большое кол-во сложных спеллов.
nvc123, можно ли заменить вейт на таймер, используя GUI?
1
28
6 лет назад
1
KaneThaumaturge, можно
но это дольше чем на джасс
по сути главное отличие гуи от джасс в затраченном времени
то что в джасс требует 1 минуту в гуи требует 10
тебе нужно создать таймер и триггер который будет срабатывать когда таймер истекает
и каким нибудь способом атачить данные к таймеру
через хэш например
естественно при каждом срабатывание спела нужно создавать новый таймер и добавлять событие на его истечение к триггеру
+ вешать на этот триггер данные через хэш
0
19
6 лет назад
0
nvc123, я не нашёл статьи, где бы объяснялся таймер со стороны GUI, можешь скинуть, если знаешь о похожей. Или можешь мне помочь переделать эту способность, используя таймеры, я могу скинуть карту, хотя вряд ли согласишься, оставлю наверно этот вариант. Я просто не понимаю, почему нужно переделывать под таймер, если он и с вейтом работает нормально. Я его не использую в циклах, ошибки в 0.1-0.3 сек, на игру не повлияют. Что означает "продолжают работу после паузы"?
3
28
6 лет назад
3
твои страхи по поводу изучения джасса бессмысленны
его структура не особо отличается от гуи
только в гуи картинки к словам приделаны а в джасс только слова
KaneThaumaturge, кастани спел и тутже поставь игру на паузу
через 10 секунд сними с паузы
использование таймера со стороны гуи:
создали таймер
добавили событие на его истечение к нужному триггеру
всё
всего 2 действия
статей по поводу гуи ты тут не найдёшь ибо делать подобное на гуи это мазохизм
нафига есть говно (юзать гуи) если можно быстро сделать на джасс и не парится
изучение джасса потребует меньше времени чем создание этого спела на гуи
0
19
6 лет назад
0
nvc123, ставил на паузу, но работа спелла никак не изменилась, но не отрицаю что вейт глючный. Если так делать, разве не будет засоряться память, т.к добавляются много условий и таймер
nvc123, и как потом ссылаться на юнита?
nvc123, Если не трудно, прошу помочь и переделать его через таймер. Я понимаю, что тут не приветствуется "Сделайте за меня, я рак, спасибо", но все же.
Триггер скилла в папке spell, без имени.
Карта:
Hate, я конечно понимаю, хочется сказать нубу, что он нуб, но этот раздел создан для вопросов. Твой комментарий не несет для меня никакой полезной информации, смысл его? Зачем ты переходишь на эту вкладку и смотришь вопросы, если не собираешься помагать. Я нуб, но хочу научится делать что-то нормальное, а твой коммент только дизморалит новичков.
Загруженные файлы
1
28
6 лет назад
Отредактирован nvc123
1
KaneThaumaturge, крепи юнита к таймеру
хэш или прочее
вот статьи
там есть и про гуи и про джасс
читай разбирайся
KaneThaumaturge:
ставил на паузу, но работа спелла никак не изменилась
время вейта менялось зато
получается баг
игроки могут спецом врубать паузу чтобы изменить длительность спела
конечно если игра планируется на 1 человека то можно забить
в общем если хочешь сделать чтото сложнее "применил способность - победил" быстрее чем за пол дня то учи джасс
Принятый ответ
1
18
6 лет назад
1
Где-то на сайте видел такую команду:
call TimerStart( timer, 0.0, false, function code )
То есть запуск функции с отсрочкой по таймеру. Сам не применял, подробностей не знаю.
1
12
6 лет назад
1
Если нужна статья про написание заклинаний на джассе, то легче всего будет начать вот с этой: xgm.guru/p/wc3/spellmaker-stomp-spell-creation - там достаточно подробно рассказано про то, как запускать действия с таймерами в JASS-е.
1
26
6 лет назад
Отредактирован Hate
1
Hate, я конечно понимаю, хочется сказать нубу, что он нуб, но этот раздел создан для вопросов. Твой комментарий не несет для меня никакой полезной информации, смысл его? Зачем ты переходишь на эту вкладку и смотришь вопросы, если не собираешься помагать. Я нуб, но хочу научится делать что-то нормальное, а твой коммент только дизморалит новичков.
я про то, что продолжать игнорировать джасс и продолжать сидеть на гуи пытаясь придумать обходные пути равносильны фразе "ежики плакали, кололись, но продолжали жрать кактус"
то время которое вы затратите на поиск костылей в гуи можно потратить на изучение джасс
каждый был нубом, я тоже, и до сих пор нуб в некоторых вопросах, однако я пытаюсь акцентировать ваше внимание на то что эффективнее. можно продолжать пытаться миксовать гуи и локалки например, изобретать костыли и думать как обойти ограничения рисованного интерфейса. я уже молчу про скорость написания алгоритмов. но зачем?
0
28
6 лет назад
0
Hate, у людей разные предпочтения
ктото любит чтобы их били плёткой
ктото чтобы капали расплавленным воском
ну а ктото делает спелы в гуи
к слову
связка таймер + триггер в гуи не намного хуже связки таймер + функция
вот только большинство атачей недоступно на гуи что является ещё 1 минусом
0
19
6 лет назад
0
Hate, вот так и стоило ответить. Думаю, если я не заброшу карту, над которой работаю сейчас, то в дальнейшем перейду на джасс.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.