PDA

Просмотр полной версии : [Вопрос] /mute на время



Dima_Tushin
09.10.2014, 22:12
привет всем
помогите сделать систему /mute в формате %d:%d:%d Час, мин, сек


if(strcmp(cmd, "/mute", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 2)
{
new time;
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Время]");
giveplayerid = ReturnUser(cmd);
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: Игрок не найден!");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: Игрок не найден!");
cmd = strtok(cmdtext, idx);
time = strval(cmd);
if(PlayerInfo[giveplayerid][pMuted] == 0)//Если у игрока нету бана = 0 то...
{
PlayerInfo[giveplayerid][pMuted] = 1;//Дали бан чата
PlayerInfo[giveplayerid][pMuteTime] = time*60;
format(Stringers, sizeof(Stringers), "%s получил бан чата от администратора: %s", Name(giveplayerid), Name(playerid));
SendClientMessageToAll(COLOR_LIGHTRED, Stringers);
OnPlayerUpdateRL(giveplayerid);
}
else
{
PlayerInfo[giveplayerid][pMuted] = 0;
PlayerInfo[giveplayerid][pMuteTime] = 0;
format(Stringers, sizeof(Stringers), "Администратор: %s, снял бан чата у %s", Name(playerid), Name(giveplayerid));
SendClientMessageToAll(COLOR_LIGHTRED, Stringers);
OnPlayerUpdateRL(giveplayerid);
}
}
return 1;
}
и потом если вы пишите в чат и у вас бан чата то писала: у вас бан чата снятие через и %d - час:%d - минут:%d - сек

помогите пжл все кто сможет

I'm Cobra
09.10.2014, 22:39
CMD:mute(playerid, params[]) { new string[144];
if(!Pl::isAdmin(playerid, MODER1LVL)) return Send(playerid, COLOR_GRAD1, "* Недостаточно прав!");
if(sscanf(params, "uds[64]", params[0], params[1], params[2])) return Send(playerid, COLOR_GREY, "Введите: /mute [id] [time] [reason]");
if(!Pl::isLogged(params[0])) return Send(playerid, COLOR_GREY, "* Этот игрок не авторизован!");
switch(Pl::Info[params[0]][pMuted]) {
case 0 : {
if(params[1] < 1 || params[1] > 60) return Send(playerid, COLOR_LIGHTRED, "* Минуты 1, и максимум 60 минут!");
Pl::Info[params[0]][pMuted] = 1;
Pl::Info[params[0]][pMutedTime] = params[1]*60;
format(string, sizeof string, "SERVERNAME": %s получил молчанку от администратора %s. Причина: %s", GetName(params[0]), GetName(playerid), params[2]);
SendToAll(COLOR_LIGHTRED, string);
}
case 1..2 : {
Pl::Info[params[0]][pMuted] = 0;
Pl::Info[params[0]][pMutedTime] = 0;
format(string, sizeof string, "SERVERNAME": Администратор %s снял молчанку с %s.", GetName(playerid), GetName(params[0]));
SendToAll(COLOR_LIGHTRED, string);
}
}
return 1;
}

Osetin
09.10.2014, 23:51
CMD:mute(playerid, params[]) { new string[144];
if(!Pl::isAdmin(playerid, MODER1LVL)) return Send(playerid, COLOR_GRAD1, "* Недостаточно прав!");
if(sscanf(params, "uds[64]", params[0], params[1], params[2])) return Send(playerid, COLOR_GREY, "Введите: /mute [id] [time] [reason]");
if(!Pl::isLogged(params[0])) return Send(playerid, COLOR_GREY, "* Этот игрок не авторизован!");
switch(Pl::Info[params[0]][pMuted]) {
case 0 : {
if(params[1] < 1 || params[1] > 60) return Send(playerid, COLOR_LIGHTRED, "* Минуты 1, и максимум 60 минут!");
Pl::Info[params[0]][pMuted] = 1;
Pl::Info[params[0]][pMutedTime] = params[1]*60;
format(string, sizeof string, "SERVERNAME": %s получил молчанку от администратора %s. Причина: %s", GetName(params[0]), GetName(playerid), params[2]);
SendToAll(COLOR_LIGHTRED, string);
}
case 1..2 : {
Pl::Info[params[0]][pMuted] = 0;
Pl::Info[params[0]][pMutedTime] = 0;
format(string, sizeof string, "SERVERNAME": Администратор %s снял молчанку с %s.", GetName(playerid), GetName(params[0]));
SendToAll(COLOR_LIGHTRED, string);
}
}
return 1;
}

И что ты скинул ему? Другие переменные, другой ком.процессор, будет куча ошибок.

DeimoS
10.10.2014, 00:11
if(strcmp(cmd, "/mute", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_WHITE, "Нет доступа");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
giveplayerid = ReturnUser(cmd);
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: Игрок не найден!");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
new hour = strval(cmd);
if(hour < 0) return SendClientMessage(playerid, COLOR_WHITE, "Количество часов не может быть меньше 0");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
new minute = strval(cmd);
if(minute < 0 || minute > 60) return SendClientMessage(playerid, COLOR_WHITE, "Количество минут не может быть меньше 0 или больше 60");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
new seconds = strval(cmd);
if(seconds < 1 || seconds > 60) return SendClientMessage(playerid, COLOR_WHITE, "Количество секунд не может быть меньше 1 или больше 60");
if(PlayerInfo[giveplayerid][pMuted] == 0)//Если у игрока нету бана = 0 то...
{
PlayerInfo[giveplayerid][pMuted] = 1;//Дали бан чата
PlayerInfo[giveplayerid][pMuteTime] = (hour*3600)+(minute*60)+seconds;
format(Stringers, sizeof(Stringers), "%s получил бан чата от администратора: %s", Name(giveplayerid), Name(playerid));
SendClientMessageToAll(COLOR_LIGHTRED, Stringers);
OnPlayerUpdateRL(giveplayerid);
}
else
{
PlayerInfo[giveplayerid][pMuted] = 0;
PlayerInfo[giveplayerid][pMuteTime] = 0;
format(Stringers, sizeof(Stringers), "Администратор: %s, снял бан чата у %s", Name(playerid), Name(giveplayerid));
SendClientMessageToAll(COLOR_LIGHTRED, Stringers);
OnPlayerUpdateRL(giveplayerid);
}
return 1;
}

А для конвертации можно использовать эту функцию.

stock ConvertSeconds(time, &hours, &minutes,&seconds)
{
if(time <= 60)
{
hours = 0;
minutes = 0;
seconds = time;
}
else if(time > 60 && time < 3600)
{
hours = 0;
minutes = time / 60;
seconds = floatround(time % 60, floatround_tozero);
}
else if(time == 3600){ hours = 1; minutes = 0; seconds = 0; }
else if(time > 3600)
{
new minutes_int;
hours = time / 3600;
minutes_int = floatround(time % 3600, floatround_tozero);
minutes = minutes_int / 60;
seconds = floatround(minutes_int % 60, floatround_tozero);
}
return 1;
}

Пример использования:

new hour, minute, second, string[40];
ConvertSeconds(PlayerInfo[giveplayerid][pMuteTime], hour, minute, second);
format(string, sizeof(string), "У Вас бан чата. Снятие через : %d:%d:%dс", hour, minute, second);
SendClientMessage(playerid, -1, string);

Dima_Tushin
10.10.2014, 12:08
if(strcmp(cmd, "/mute", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_WHITE, "Нет доступа");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
giveplayerid = ReturnUser(cmd);
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: Игрок не найден!");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
new hour = strval(cmd);
if(hour < 0) return SendClientMessage(playerid, COLOR_WHITE, "Количество часов не может быть меньше 0");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
new minute = strval(cmd);
if(minute < 0 || minute > 60) return SendClientMessage(playerid, COLOR_WHITE, "Количество минут не может быть меньше 0 или больше 60");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /mute [id] [Часы] [Минуты] [Секунды]");
new seconds = strval(cmd);
if(seconds < 1 || seconds > 60) return SendClientMessage(playerid, COLOR_WHITE, "Количество секунд не может быть меньше 1 или больше 60");
if(PlayerInfo[giveplayerid][pMuted] == 0)//Если у игрока нету бана = 0 то...
{
PlayerInfo[giveplayerid][pMuted] = 1;//Дали бан чата
PlayerInfo[giveplayerid][pMuteTime] = (hour*3600)+(minute*60)+seconds;
format(Stringers, sizeof(Stringers), "%s получил бан чата от администратора: %s", Name(giveplayerid), Name(playerid));
SendClientMessageToAll(COLOR_LIGHTRED, Stringers);
OnPlayerUpdateRL(giveplayerid);
}
else
{
PlayerInfo[giveplayerid][pMuted] = 0;
PlayerInfo[giveplayerid][pMuteTime] = 0;
format(Stringers, sizeof(Stringers), "Администратор: %s, снял бан чата у %s", Name(playerid), Name(giveplayerid));
SendClientMessageToAll(COLOR_LIGHTRED, Stringers);
OnPlayerUpdateRL(giveplayerid);
}
return 1;
}

А для конвертации можно использовать эту функцию.

stock ConvertSeconds(time, &hours, &minutes,&seconds)
{
if(time <= 60)
{
hours = 0;
minutes = 0;
seconds = time;
}
else if(time > 60 && time < 3600)
{
hours = 0;
minutes = time / 60;
seconds = floatround(time % 60, floatround_tozero);
}
else if(time == 3600){ hours = 1; minutes = 0; seconds = 0; }
else if(time > 3600)
{
new minutes_int;
hours = time / 3600;
minutes_int = floatround(time % 3600, floatround_tozero);
minutes = minutes_int / 60;
seconds = floatround(minutes_int % 60, floatround_tozero);
}
return 1;
}

Пример использования:

new hour, minute, second, string[40];
ConvertSeconds(PlayerInfo[giveplayerid][pMuteTime], hour, minute, second);
format(string, sizeof(string), "У Вас бан чата. Снятие через : %d:%d:%dс", hour, minute, second);
SendClientMessage(playerid, -1, string);

спс от души DeimoS ++

- - - Добавлено - - -


И что ты скинул ему? Другие переменные, другой ком.процессор, будет куча ошибок.

да да будут бредятину скинул :)

- - - Добавлено - - -

еще последний вопрос в БД делать VarChar ? со значением

DeimoS
10.10.2014, 12:22
Нет. Просто одно поле с Int. Время будет хранится в секундах