[CLEO] Урок №2: Самодельный таймер

Тема в разделе "Гайды для GTA: SAMP", создана пользователем Lexar, 18 окт 2014.

  1. Оффлайн

    Lexar ст. рядовой

    На форуме с:
    19 сен 2014
    Сообщения:
    12
    Симпатии:
    3
    Баллы:
    2
    Пол:
    Мужской
    Всем привет это 2 урок по клео. сегодня я вас научу как делать таймер.
    Урок лёгкий.

    Итак, сначала приведу сам код, затем объясню все по порядку.
    :Cicl
    wait 0
    if and
    not actor.Dead($PLAYER_ACTOR)
    not actor.Driving($PLAYER_ACTOR)
    0AB0: key_pressed 0xD //проверки на то, что игрок жив, не в авто, и на нажатие клавиши "Enter"
    jf @Cicl
    actor.StorePos($PLAYER_ACTOR,2@,3@,4@) //сохраняем текущие координаты игрока в переменные
    02CE: 4@ = ground_z_at 2@ 3@ 4@ //получаем координату поверхности, чтобы действие не происходило в воздухе
    //начало самого таймера, то есть простого цикла, известного многим по школьному курсу программирования (в Turbo Pascal)
    for 1@ = 15 downto 0 //берем downto, чтобы счет шел от большего к меньшему
    01E5: show_text_1number_highpriority GXT 'VAR' number 1@ time 1000 flag 1 //выводим значение переменной (секунды), которая в цикле изменяется с 15 до 0
    if //начало условия. эта часть необязательна, она нужна для звука, который будет проигрываться, когда время будет меньше 5 секунд
    1@ <= 5 //если значение времени таймера меньше или равно 5, то...
    then
    018C: play_sound 1084 at 0.0 0.0 0.0 //...проигрываем звук №1084
    end //конец условия. else не нужно в данном случае
    wait 1000 //ждем 1 секунду, иначе таймер закончится сразу же, да и таймер в секундах
    end //конец цикла, это и конец таймера
    020C: create_explosion_with_radius 10 at 2@ 3@ 4@ //создаем два больших взрыва
    020C: create_explosion_with_radius 6 at 2@ 3@ 4@
    wait 750 //ждем 750 мс, чтобы игрок не сразу мог перезапустить скрипт
    jump @Cicl //идем на начало


    Суть скрипта в том, что спустя 15 секунд после нажатия Enter произойдет взрыв (в той точке, в которой игрок нажал клавишу). Как видите, сам код прост и мал по размеру. К тому же есть еще плюсы:

    -Не нужно проверять, что время таймера равно нулю, цикл сам завершается

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

    Помимо того, что можно выводить разные варианты текста (как по стилям написания, так и по цвету, например, сделать текст красным, когда значение таймера меньше 5 секунд), Вы сможете вывести текст как текст-бокс (серый прямоугольник в верхнем левом углу экрана, примером будет сообщение о том, как сменить оружие на другое). Для этого понадобится команда 0513, только не забудьте применить команду 03E6 после цикла, чтобы текст-бокс не держался на экране все время и исчез (сам он не исчезает).

    Единственная проблема состоит в том, что выводятся именно секунды,а не минуты, но это, конечно, можно исправить, немного поломав голову.

    В целом можно сказать, что такой таймер гораздо проще создается, его можно изменить по своему желанию, так что, если Вам понравился этот способ, дерзайте.

    Ну всё вообщем то ждите новых уроков smile-z
     
  2.  

Поделиться этой страницей

Уважаемый пользователь!

Мы обнаружили, что вы блокируете показ рекламы на нашем сайте.

Просим внести его в список исключения или отключить AdBlock.

Наши материалы предоставляются БЕСПЛАТНО и единственным доходом является реклама.

Спасибо за понимание!