Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 35
  1. #1
    Аватар для RastaOrecha
    ? FreeLancer ?
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    22
    Сообщений
    1,857
    Репутация
    229

    Использование Y_Timers

    Здравствуйте форумчане.

    Долго не хотел писать урок, но всё же решился, думаю многим пригодится.

    Это будет мой очередной урок касающийся библиотеки YSI

    А именно я вам объясню про таймеры.

    Для начала нужно установить библиотеку YSI и подключить нужный нам инклуд:
    PHP код:
    #include <YSI\y_timers> 
    (Скачать библиотеку YSI 3.1 (кликабельно))

    Для начала я приведу пару простых примеров использования стандартного таймера и таймера на y_timers

    PHP код:
    forward NameTimer1();
    forward NameTimer2(playerid)

    SetTimer("NameTimer1"10001);
    SetTimerEx("NameTimer2"5000"i"42);

    public 
    NameTimer1() {}

    public 
    NameTimer2(playerid) {} 
    Теперь тоже самое на y_timers

    PHP код:
    task NameTimer1[1000]()
    {
    //Таймер вызывается каждую секунду
    }

    ptask NameTimer2[500](playerid)
    {
    //Таймер вызывается каждую секунду для игрока (индивидуально)

    Так, я показал небольшой примерчик, теперь нужно расписать функции (Для конкретики)

    Функции

    task
    Пример использования: task TimerName[1000]()
    Если вызвать два таймера на одинаковое количество секунд, то они выполнятся поочерёдно

    ptask
    Пример использования: ptask TimerName[1000](playerid)
    Тоже самое, что и task, но имеет параметр playerid и вызывается у каждого игрока

    defer
    Пример использования: defer TimerName(playerid);
    defer TimerName[200](playerid); //Вызовет таймер на 200 секунде
    Вызывается 1 раз и работает указанное время 1 раз (можно вызывать X раз)

    repeat
    Пример использования: repeat TimerName();
    repeat TimerName[100]();
    Вызывает таймер который будет повторяться каждые n секунд

    stop
    Пример использования: stop TName;
    Остановит таймер при условии, что для него есть переменная.

    Теперь подробный пример использования функций.

    ◘ использование task и ptask указанны в начале топика

    defer

    PHP код:
    defer TimerName(playerid);
    timer TimerName[15000](playerid){} 
    Примечание:
    PHP код:
    defer TimerName[2000]() //Вызовет таймер на 2 секунде его работы! 
    repeat

    PHP код:
    new Timer:TName//Переменная для таймера

    TName repeat TimerName(); // Вызовет таймер (вставляем в нужное место)

    timer TimerName[15000]() {} //Сам таймер 
    Примечание:
    Также можно сделать так:

    PHP код:
    new Timer:TName[MAX_PLAYERS]; //Переменная для таймера
    TName[playerid] = repeat TimerName(); // Вызовет таймер для игрока
    timer TimerName[15000]() {} //Сам таймер 
    stop

    PHP код:
    new Timer:TName//Переменная для таймераTName = repeat TimerName(); // Вызовет таймер

    timer TimerName[15000]() 
    {
        
    stop TName//Остановит таймер

    Чтобы наглядно посмотреть как работает одна из функций, можно использовать samp-server.exe

    Пример defer:

    PHP код:
    new bool:yes;
    main()
    {    
        
    yes true;
    }

    task Timer[5000]()
    {    
        print(
    "> Таймер 1 запустился!");   
        if(
    yes == true) return defer ASDa(), yes false;    
        return 
    true;
    }

    timer ASDa[3000]()
    {    
    print(
    ">> Таймер 2 вызвался 1 раз и больше работать не будет!"); //Пока не вызовут его ещё раз!

    Так же можно проверить поочерёдность срабатывания таймера task

    PHP код:
    task Timer1[1000]()
    {
        print(
    "> Таймер 1 сработал");
    }
    task Timer2[1000]()
    {
        print(
    ">> Таймер 2 сработал");
    }
    task Timer3[1000]()
    {
        print(
    ">>> Таймер 3 сработал");

    Я сам ещё не до конца разобрался, поэтому не орите, а просто поправьте

    Лично я использую Y_Timers потому, что он очень удобен и легок в использовании!

    Всё, что не понятно пишите в комментариях, я объясню понятнее!



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

  2. #2
    Аватар для RastaOrecha
    ? FreeLancer ?
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    22
    Сообщений
    1,857
    Репутация
    229

    Re: Использование Y_Timers

    в php сбилось всё, сейчас поправлю + разукрашу немного!

  3. #3
    Аватар для vladeepslav
    Проверенный
    Регистрация
    29.02.2012
    Адрес
    Казань
    Сообщений
    2,700
    Репутация
    224

    Re: Использование Y_Timers

    как всегда,всё понятным языком спасибо за урок
    Гость форума ~ с января 2012
    Пользователь с 29.02.2012
    VIP пользователь ~ с 1.04.2012
    Проверенный ~ с 28.05.2012
    Супер-Модератор с 09.07.2013
    Проверенный ~ с 24.10.2013

    Связь со мной - VK в профиле.

  4. #4
    Аватар для RastaOrecha
    ? FreeLancer ?
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    22
    Сообщений
    1,857
    Репутация
    229

    Re: Использование Y_Timers

    как всегда,всё понятным языком спасибо за урок
    Понятным? Ты прикалываешься?
    Хотя... если вникнуть, то всё легко!

    И тебе спасибо

  5. #5
    Аватар для Lion
    Активный пользователь
    Регистрация
    27.10.2011
    Сообщений
    1,410
    Репутация
    124

    Re: Использование Y_Timers

    Молодец, всё понятно)

  6. #6
    Аватар для vladeepslav
    Проверенный
    Регистрация
    29.02.2012
    Адрес
    Казань
    Сообщений
    2,700
    Репутация
    224

    Re: Использование Y_Timers

    Цитата Сообщение от joker_lorenzo Посмотреть сообщение
    понятным? ты прикалываешься?
    хотя... если вникнуть, то всё легко!

    и тебе спасибо
    ну тоесть привел все примеры,объяснил что для чего :d все равно понятнее)
    Гость форума ~ с января 2012
    Пользователь с 29.02.2012
    VIP пользователь ~ с 1.04.2012
    Проверенный ~ с 28.05.2012
    Супер-Модератор с 09.07.2013
    Проверенный ~ с 24.10.2013

    Связь со мной - VK в профиле.

  7. #7
    Аватар для Jekazzz
    Ясно, понятно.
    Регистрация
    08.01.2011
    Сообщений
    1,830
    Репутация
    188

    Re: Использование Y_Timers

    PHP код:
    ОшибкаSetTimerEx("NameTimer2"5000"playerid"42);
    ВерноSetTimerEx("NameTimer2"5000"i"42); 
    PHP код:
    Ошибка: public NameTimer2() {}  
    Верно: public NameTimer2(playerid) {} 
    PHP код:
    Ошибка:
    ptask NameTimer2[500](playerid)
    {
    //Таймер вызывается каждую секунду для игрока (индивидуально)
    }  

    Верно:

    ptask NameTimer2[1000](playerid//Тут было [500]
    {
    //Таймер вызывается каждую секунду для игрока (индивидуально)

    На счет остального не знаю.

  8. #8
    Аватар для happines
    Активный пользователь
    Регистрация
    23.01.2011
    Адрес
    Белгород
    Сообщений
    1,591
    Репутация
    119

    Re: Использование Y_Timers

    repeat
    Пример использования: repeat TimerName();
    repeat TimerName[100](); //Вызовет таймер на 100 секунде
    Просто вызывает таймер Вызывает таймер который будет повторяться каждые n секунд
    Всё в поряде, будте аккуратны, соблюдайте правила и не надо переживать... © Гуф

  9. #9
    Аватар для Snoowker
    Почетный пользователь LC
    Регистрация
    06.04.2010
    Адрес
    Kyiv
    Возраст
    25
    Сообщений
    1,952
    Репутация
    279

    Re: Использование Y_Timers

    Смысл урока, если ты не расписал плюсы и минусы инклюда?

  10. #10
    Аватар для PaRaVoZ
    Активный пользователь
    Регистрация
    18.08.2011
    Адрес
    Пенза
    Возраст
    26
    Сообщений
    127
    Репутация
    0

    Re: Использование Y_Timers

    Цитата Сообщение от Snoowker Посмотреть сообщение
    Смысл урока, если ты не расписал плюсы и минусы инклюда?
    Скажи пожалуйста какие, а то знать то надо...


 
Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Foreach and Y_Timers
    от PaRaVoZ в разделе Вопросы по скриптингу
    Ответов: 8
    Последнее сообщение: 01.06.2012, 15:51
  2. Вопрос по YSI\y_timers
    от Mexanizm в разделе Вопросы по скриптингу
    Ответов: 0
    Последнее сообщение: 13.04.2012, 03:21
  3. [Ищу] include <YSI\y_timers>
    от k[L]aS в разделе Ищу скрипт/мод/функцию/программу/плагин...
    Ответов: 2
    Последнее сообщение: 08.04.2012, 17:27
  4. #include <YSI\y_timers>
    от Rich в разделе Вопросы по скриптингу
    Ответов: 2
    Последнее сообщение: 18.08.2011, 23:47
  5. SetTimer vs y_timers
    от Happy Hardcore в разделе Другие темы по Pawn
    Ответов: 0
    Последнее сообщение: 31.07.2011, 15:32

Ваши права

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