Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 11
    Гостей: 9
    Пользователи: - отсутствуют
    Роботы: crawl Bot, Mail Ru

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Nesquik Дата: 12-05-2013, 21:25 Просмотров: 4658

    Таймер


    #include <amxmodx>
    #include <hamsandwich>

    new szTime[33] // регистрация переменной времени

    public plugin_init()
    {
    register_clcmd("say /time","show_timer") // Регистрируем нашу команду вызова Таймера
    }

    public show_timer(id)
    {
    szTime[id] = 5 // szTime[id] ранее наша зарегистрированая переменная , 5 время в
    //секундах
    show_second_timer(id) // здесь вызываем наш таймер
    }

    public show_second_timer(id)
    {
    if(szTime[id] > 0) // Если время больше 0 то показываем сообшение
    {
    set_hudmessage(255, 0, 0, 0.28, 0.69, 0, 6.0, 12.0)
    show_hudmessage(id, "До вашего воскрешения осталось %d сек",szTime[id]) //сообщение
    szTime[id] -- // Отнимаем время от нашего таймера
    set_task(1.0,"show_second_timer",id,_,_,"b) // Время через которое будет -1 сек от нашего таймера
    }else{ // Если время истекло воскрешаем игрока
    ExecuteHamB(Ham_CS_RoundRespawn, id)
    }


    Вот собственно все спасибо за внимание !!!

    Дополнение от igas
    #include <amxmodx>
    #include <hamsandwich>

    new szTime[33] = 0    // регистрация массива времени

    public plugin_init()
    {
        register_clcmd("say /time","show_timer")   // Регистрируем нашу команду вызова Таймера
    }
      
    public show_timer(id)
    {
        if(task_exists(id))   // Проверка на выполнения Task, если выполняется Task
        {
            remove_task(id)   // Останавливаем его (Task)
        }
        
        szTime[id] = 15   // szTime[id] ранее наш зарегистрированный массив, 15 время в секундах
        // Запускаем таймер
        set_task(1.0, "show_second_timer", id, _, _, "b")   // Время через которое будет -1 сек от нашего таймера
    }
      
    public show_second_timer(id)
    {
        // Если время больше или равна 1 то показываем сообщение (таймер исчезнет после 1 последней секунды, если 0, будет показана 0 секунда)
        if(szTime[id] >= 1)
        {
            szTime[id] --   // Отнимаем время от нашего таймера
            set_hudmessage(255, 0, 0, 0.28, 0.69, 0, 6.0, 12.0)   // Устанавливаем цвет, координаты, эффекты сообщения
            show_hudmessage(id, "До вашего воскрешения осталось %d сек",szTime[id])   //сообщение
            
        }
        else   // Если время истекло
        {
            remove_task(id)   // Останавливаем (Task)
            ExecuteHamB(Ham_CS_RoundRespawn, id)   // Воскрешаем игрока
        }
    }

    Новость отредактировал Admin - 22-09-2013, 18:12
    Причина: Добавление от igas
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Таймер
    Mistrick

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Скобки не хватает. Табуляция тоже не помешает.
    Nesquik

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Mistrick,
    Ага уже заметил ))
    Просто перед написанием урока на кладбище был очень устал
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  58  +

    В уроке обычно объясняется принцип работы, алгоритм и т.п.
    А код служит примером для объясненных теоретических данных и информации,а тут все наоборот.
    --------------------
    Opo4uMapy

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    "b) - тут нету скобки
    и else не закрывается
    Nesquik

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Opo4uMapy,
    Как раз таки else закрыт сама функция show_second_timer(id) не закрыта
    Opo4uMapy

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    С чего ты взял? Прежде чем о этом говорить лучше-бы отформатировал код!

    Кста по идее нужно делать не так

    set_hudmessage(255, 0, 0, 0.28, 0.69, 0, 6.0, 12.0)
    show_hudmessage(id, "До вашего воскрешения осталось %d сек",szTime[id]) //сообщение
    szTime[id] -- // Отнимаем время от нашего таймера


    А вот так
    szTime[id] -- // Отнимаем время от нашего таймера
    set_hudmessage(255, 0, 0, 0.28, 0.69, 0, 6.0, 12.0)
    show_hudmessage(id, "До вашего воскрешения осталось %d сек",szTime[id]) //сообщение


    Причина:
    Сначала нужно отнимать , а потом выводить сообщение
    Nesquik

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Opo4uMapy,
    Это не имеет значения так что
    Функция то вызывается и отнимается в любом случае
    Opo4uMapy

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    С начало нужно отнимать , а потом выводить.
    Nesquik

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Opo4uMapy,
    LOL
    Да забыл когда игрок воскреситься незабудьте удалить таймер
    remove_task(id)
    Opo4uMapy

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Я кста видео урок сделал 2 мин назад по нормальному с ремове таском и не забыл про него :D

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама