Просмотр полной версии : [Мануал] Часы в диалоге с обновлением (v3)
Engineer
28.11.2013, 21:44
Hola.
Новая версия моих стареньких часов.
http://rghost.ru/44872646/image.png
Убраны ошибки, и не нужные функции.
Для работы потребуются foreach и ZCMD/DC_CMD.
Ко всем #define:
#define DLG_TIME 1010
В OnGameModeInit:
SetTimer("ClockTimer", 1000, true);
В конец мода:
CMD:time(playerid, params[])
{
SetPVarInt(playerid, "show_time", 1);
static const fmt_str[] = "Время: %02d:%02d:%02d";
new string[sizeof(fmt_str)+(-4+2)*3];
new hour, minute, second;
gettime(hour, minute, second);
format(string, sizeof(string), fmt_str, hour, minute, second);
return ShowPlayerDialog(playerid, DLG_TIME, DIALOG_STYLE_MSGBOX, "Time", string, "ok", "");
}
forward ClockTimer();
public ClockTimer()
{
foreach(new i:Player)
if(GetPVarInt(i, "show_time"))
cmd_time(i, "");
}
В OnDialogResponse:
if(dialogid == DLG_TIME) return DeletePVar(playerid, "show_time");
Salvacore
28.11.2013, 22:51
Молодец.
Норм, только
CMD:time( playerid, params[] ) //if standard processor
Это не стандартный процессор)
Engineer
15.12.2013, 17:25
бамп
Ребят как из показанного выше кода, добавить к нему еще и дату.
Пример: 22 августа 2014 г.
Я бы сделал как-то так
//Начало мода
#define DLG_TIME 1010
static const month_name[12][9] =
{
"января",
"февраля",
"марта",
"апреля",
"мая",
"июня",
"июля",
"августа",
"сентября",
"октября",
"ноября",
"декабря"
};
//Команда
CMD:time(playerid, params[])
{
SetPVarInt(playerid, "show_time_dialog", 1);
SetTimerEx("UpdateClockDialog", 999, false, "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(string, sizeof(string), fmt_str, string[1], string[2], string[3], string[6], month_name[string[5]-1], string[4]);
ShowPlayerDialog(playerid, DLG_TIME, DIALOG_STYLE_MSGBOX, "Информация", string, "Закрыть", "");
return SetTimerEx("UpdateClockDialog", 999, false, "i", playerid);
}
//К диалогам
if(dialogid == DLG_TIME) return DeletePVar(playerid, "show_time_dialog");
Я бы сделал как-то так
//Начало мода
#define DLG_TIME 1010
static const month_name[12][] =
{
"января",
"февраля",
"марта",
"апреля",
"мая",
"июня",
"июля",
"августа",
"сентября",
"октября",
"ноября",
"декабря"
};
//Команда
CMD:time(playerid, params[])
{
SetPVarInt(playerid, "show_time_dialog", 1);
SetTimerEx("UpdateClockDialog", 999, false, "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(string, sizeof(string), fmt_str, string[1], string[2], string[3], string[6], month_name[string[5]-1], string[4]);
ShowPlayerDialog(playerid, DLG_TIME, DIALOG_STYLE_MSGBOX, "Информация", string, "Закрыть", "");
return SetTimerEx("UpdateClockDialog", 999, false, "i", playerid);
}
//К диалогам
if(dialogid == DLG_TIME) return DeletePVar(playerid, "show_time");
if(dialogid == DLG_TIME) return DeletePVar(playerid, "show_time_dialog");//Маленькая поправочка
Archange
10.09.2014, 01:23
Перезалей скриншот
Пельмень
10.09.2014, 02:27
ShowTimeDlg(playerid); Функцию забыл..
warning 224: indeterminate array size in "sizeof" expression (symbol "")
строка:
new string[sizeof(fmt_str)+(-4+2)*4+4+sizeof(month_name[])];
warning 224: indeterminate array size in "sizeof" expression (symbol "")
строка:
new string[sizeof(fmt_str)+(-4+2)*4+4+sizeof(month_name[])];
static const month_name[12][] =
на
static const month_name[12][9] =
static const month_name[12][] =
на
static const month_name[12][9] =
Спасибо!
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot