Делаю наработку для стрельбы, столкнулся с проблемой или как лучше обьяснить научил перса стрелять на бегу и пули летят нормально но не знаю как сделать задержку, на каждое нажатие идет выстрел не могу сделать чтобы выстрел был с задержкой.

Bergi_Bear:
map_maiker:
Если где-то ошибся - напишите, ок?
Да ошибся в выборе языка, я уже всё показал как это делает на нормальном языке, тем более в рефе, без хештаблиц и прочей ерунды. И тут динамиеский триггер и таймер, вы сами себе проблемы придумали на ровном месте
А, это рефордж.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Похожие вопросы:

ответ
Пассивные способности позволяют аттачить спецэффекты. Вместо триггерного создания этого эффекта, быть может, достаточно дать абилку предмету, которая даст такой спецэффект? Если не ошибаюсь эффект таким образом может дать любая пассивная способность(во всяком случае точно дают Сфера(способность мага без коня у людей) и способности повышения характеристик предмета(в т.ч. защиты и атаки)) где что прописывать посмотрите в способности Сфера.
ответ
тогда скил тупит чего-то(у меня также всё кроме иконки и бафа но скил работает)
ответ
~8gabriel8:
PT153:
Потому что число 0.01, сложенное 10 раз, меньше 0.1.
Выводи число следующим кодом, где r - твоё real число.
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0., 0., 5., R2SW(r, 0, -1))
PT153:
у парня проблемы с алгоритмом, в какой вселенной 0.01 * 10 не 0.1?
В компьютерной. И да, 0.01 * 10 тоже может быть не равно 0.01 + ... + 0.01. Потому что складываются и умножаются real по-разному.
Hate, надо просто использовать целочисленные, или пользоваться ==, в JASS == округляет числа для сравнения (!= не округляет).

Пороверил разные варианты, сразу упомяну, что с целочисленными всё огонь, просто какие-то другие воспоминания с ними всплывали.
PT153, сначала не понял, зачем мне твоя строчка, она всего лишь выдавала 0.1 вместо 0.100, но тестировал разные варианты и всё прояснилось. Если задавать шаг 1.0, то всё исправно считается до 10.0, если задавать шаг 0.2, то всё считается до 2.2 и отображается ровно, но если сделать шаг 1.01, то вот тут и появляется то, ради чего ты эту строчку дал.
Именно с дробной частью косяк, и теперь не знаю как выбрать лучший ответ, по идее у тебя в каждом комментарии полезная информация. Просто объединил их в итоге.

Hate:
сначала прибавляет, а затем проверяет, потом удивляется почему 0.11
Обычно просто отшучиваюсь на подобные комментарии, но сейчас так всё грустно в нём, что не смогу.

33
Событие клика
Проверяем состояние переменной cd, нужно чтобы было true
Устанавливаем переменную cd = false
ждать 0.3 сек таймером
Установить переменную cd=true
вот пример на абстрактном луа
local TrigPressMiddleMouse = CreateTrigger()
TriggerRegisterPlayerEvent(TrigPressMiddleMouse, Player(0), EVENT_PLAYER_MOUSE_DOWN) --красный игрок, внимание
local cdShotMiddle = true
TriggerAddAction(TrigPressMiddleMouse, function()
    if BlzGetTriggerPlayerMouseButton() == MOUSE_BUTTON_TYPE_MIDDLE then
        if cdShotMiddle then
            cdShotMiddle = false
            MakeShot() --абстрактная функция выстрела
            TimerStart(CreateTimer(), 0.3, false, function()
                cdShotMiddle = true
            end)
        end
    end
end)
9
Bergi_Bear, я не владею таким языком ток как в примере могу
33
так ту не в языке дело, ты просто суть пойти, тебе нужно научиться делать задержки через таймеры

а просто через таймер переключать булевую переменную
9
Bergi_Bear, суть я вроде понял ток не знаю как с переменными быть и куда это вставлять.
Загруженные файлы
33
jasonrus96:
Bergi_Bear, суть я вроде понял ток не знаю как с переменными быть и куда это вставлять.
о нет, а таким языком не владею я, это что-то сложное, похоже на гуй-жас
Я не помню можно ли создавать таймер прям на гуи, тем более в рефе, скорее всего надо сделать таймер в новом триггере, и внутри твоего триггера включать триггер с таймером
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.