Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для Engineer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2013
    Сообщений
    5
    Репутация:
    2 ±

    Часы в диалоге с обновлением (v3)

    Hola.

    Новая версия моих стареньких часов.



    Убраны ошибки, и не нужные функции.

    Для работы потребуются foreach и ZCMD/DC_CMD.

    Ко всем #define:
    PHP код:
    #define DLG_TIME 1010 
    В OnGameModeInit:
    PHP код:
    SetTimer("ClockTimer"1000true); 
    В конец мода:
    PHP код:
    CMD:time(playeridparams[])
    {
        
    SetPVarInt(playerid"show_time"1);
        static const 
    fmt_str[] = "Время: %02d:%02d:%02d";
        new 
    string[sizeof(fmt_str)+(-4+2)*3];
        new 
    hourminutesecond;
        
    gettime(hourminutesecond);
        
    format(stringsizeof(string), fmt_strhourminutesecond);
        return 
    ShowPlayerDialog(playeridDLG_TIMEDIALOG_STYLE_MSGBOX"Time"string"ok""");
    }

    forward ClockTimer();
    public 
    ClockTimer()
    {
        foreach(new 
    i:Player)
            if(
    GetPVarInt(i"show_time"))
                
    cmd_time(i"");

    В OnDialogResponse:
    PHP код:
        if(dialogid == DLG_TIME) return DeletePVar(playerid"show_time"); 
    Последний раз редактировалось Daniel_Cortez; 15.03.2014 в 23:15. Причина: Обновил //DC

  2. 2 пользователя(ей) сказали cпасибо:
    Daniel_Cortez (15.12.2013) ߣΘnÐγ* (22.12.2013)
  3. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Молодец.

  4. #3
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Норм, только
    PHP код:
    CMD:timeplayeridparams[] ) //if standard processor 
    Это не стандартный процессор)
    Skype: vitya.saveliev


  5. Пользователь сказал cпасибо:
    TimoXa32 (24.12.2013)
  6. #4
    Аватар для Engineer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2013
    Сообщений
    5
    Репутация:
    2 ±
    бамп

  7. #5
    Аватар для denis01
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    Ребят как из показанного выше кода, добавить к нему еще и дату.
    Пример: 22 августа 2014 г.

  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,415
    Репутация:
    1909 ±
    Я бы сделал как-то так
    PHP код:
    //Начало мода
    #define DLG_TIME 1010

    static const month_name[12][9] =
    {
        
    "января",
        
    "февраля",
        
    "марта",
        
    "апреля",
        
    "мая",
        
    "июня",
        
    "июля",
        
    "августа",
        
    "сентября",
        
    "октября",
        
    "ноября",
        
    "декабря"
    };
    //Команда
    CMD:time(playeridparams[])
    {
        
    SetPVarInt(playerid"show_time_dialog"1);
        
    SetTimerEx("UpdateClockDialog"999false"i"playerid);
    }
    //В конец мода
    forward UpdateClockDialog(playerid);
    public 
    UpdateClockDialog(playerid)
    {
        if(!
    GetPVarInt(playerid"show_time_dialog")) return 1;
        static const 
    fmt_str[] = "Время: %02d:%02d:%02d\nДата: %02d:%02d:%04dг";
        new 
    string[sizeof(fmt_str)+(-4+2)*4+4+sizeof(month_name[])];
        
    gettime(string[1], string[2], string[3]);
        
    getdate(string[4], string[5], string[6]);
        
    format(stringsizeof(string), fmt_strstring[1], string[2], string[3], string[6], month_name[string[5]-1], string[4]);
        
    ShowPlayerDialog(playeridDLG_TIMEDIALOG_STYLE_MSGBOX"Информация"string"Закрыть""");
        return 
    SetTimerEx("UpdateClockDialog"999false"i"playerid);
    }

    //К диалогам
    if(dialogid == DLG_TIME) return DeletePVar(playerid"show_time_dialog"); 
    Последний раз редактировалось DeimoS; 22.09.2014 в 14:42.
    Связаться со мной в VK можно через личные сообщения этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #7
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я бы сделал как-то так
    PHP код:
    //Начало мода
    #define DLG_TIME 1010

    static const month_name[12][] =
    {
        
    "января",
        
    "февраля",
        
    "марта",
        
    "апреля",
        
    "мая",
        
    "июня",
        
    "июля",
        
    "августа",
        
    "сентября",
        
    "октября",
        
    "ноября",
        
    "декабря"
    };
    //Команда
    CMD:time(playeridparams[])
    {
        
    SetPVarInt(playerid"show_time_dialog"1);
        
    SetTimerEx("UpdateClockDialog"999false"i"playerid);
    }
    //В конец мода
    forward UpdateClockDialog(playerid);
    public 
    UpdateClockDialog(playerid)
    {
        if(!
    GetPVarInt(playerid"show_time_dialog")) return 1;
        static const 
    fmt_str[] = "Время: %02d:%02d:%02d\nДата: %02d:%02d:%04dг";
        new 
    string[sizeof(fmt_str)+(-4+2)*4+4+sizeof(month_name[])];
        
    gettime(string[1], string[2], string[3]);
        
    getdate(string[4], string[5], string[6]);
        
    format(stringsizeof(string), fmt_strstring[1], string[2], string[3], string[6], month_name[string[5]-1], string[4]);
        
    ShowPlayerDialog(playeridDLG_TIMEDIALOG_STYLE_MSGBOX"Информация"string"Закрыть""");
        return 
    SetTimerEx("UpdateClockDialog"999false"i"playerid);
    }

    //К диалогам
    if(dialogid == DLG_TIME) return DeletePVar(playerid"show_time"); 
    PHP код:
    if(dialogid == DLG_TIME) return DeletePVar(playerid"show_time_dialog");//Маленькая поправочка 

  10. Пользователь сказал cпасибо:
    DeimoS (23.08.2014)
  11. #8
    Аватар для Archange
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2014
    Сообщений
    10
    Репутация:
    1 ±
    Перезалей скриншот

  12. #9
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    187
    Репутация:
    115 ±
    PHP код:
    ShowTimeDlg(playerid); 
    Функцию забыл..

  13. #10
    Аватар для denis01
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    Код HTML:
    warning 224: indeterminate array size in "sizeof" expression (symbol "")
    строка:
    PHP код:
        new string[sizeof(fmt_str)+(-4+2)*4+4+sizeof(month_name[])]; 

 

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

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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