DonJefferi
Умник
/offwarn /offban
Помогите нужны команды /offwarn [Ник] [Причина] и /offban [Ник] [Дни] [Причина]. Для DC_CMD SSCANF MSQL
Помогите нужны команды /offwarn [Ник] [Причина] и /offban [Ник] [Дни] [Причина]. Для DC_CMD SSCANF MSQL
Код:
CMD:ban(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return true;
if(PlayerInfo[playerid][pAdmin] < 11 || AdminLogged[playerid] == false) return true;
new ip[32], data[32], unbandate;
new string[128];
if(sscanf(params, "ids[32]", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /ban [id игрока] [кол-во дней] [причина]");
if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, ""TPLAYEROFFLINE"");
if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, COLOR_GREY, ""TPLAYERNLOGGED"");
if(params[1] > 31 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREY, "Кол-во дней от 1 до 31!");
GetPlayerIp(params[0], ip, 32);
format(string, 100, "Администратор %s забанил %s на %d дней. Причина: %s", PlayerInfo[playerid][pSendername], sendername(params[0]),params[1], params[2]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
getdate(years, months, days);
unbandate = gettime() + params[1]*86400;
format(data, 32, "%02d.%02d.%04d", days, months, years);
format(query, sizeof(query), "INSERT INTO bans (name, whobanned, ip, bandate, time, unbandate, reason) VALUES ('%s', '%s','%s', '%s', %d, %d, '%s')", sendername(params[0]), PlayerInfo[playerid][pSendername], ip, data, params[1], unbandate, params[2]);
mysql_query(query);
SendClientMessage(params[0], COLOR_WHITE, "Ваш акаунт заблокирован");
SendClientMessage(params[0], COLOR_RED, "Для выхода /q");
Kick(params[0]);
ResetWeapon(params[0]);
return true;
}
Код:
CMD:warn(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return true;
if(PlayerInfo[playerid][pAdmin] < 4 || AdminLogged[playerid] == false) return true;
new ip[32], data[32], unbandate, string[128];
if(sscanf(params, "is[128]", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /warn [id игрока] [причина]");
if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, ""TPLAYEROFFLINE"");
if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, COLOR_GREY, ""TPLAYERNLOGGED"");
PlayerInfo[params[0]][pWarn]++;
if(PlayerInfo[params[0]][pWarn] < 3) format(string, sizeof(string), "Администратор %s выдал Warn %s. Причина: %s", PlayerInfo[playerid][pSendername], sendername(params[0]), params[1]);
else
{
PlayerInfo[params[0]][pWarn] = 0;
GetPlayerIp(params[0], ip, 32);
format(string, sizeof(string), "Администратор %s забанил %s [Предуприждений: 3/3]. Причина: %s", PlayerInfo[playerid][pSendername], sendername(params[0]), params[1]);
getdate(years, months, days);
unbandate = gettime() + 7*86400;
format(data, 32, "%02d.%02d.%04d", days, months, years);
format(query, sizeof(query), "INSERT INTO bans (name, whobanned, ip, bandate, time, unbandate, reason) VALUES ('%s', '%s','%s', '%s', 7, %d, '%s')", sendername(params[0]), PlayerInfo[playerid][pSendername], ip, data, unbandate, params[1]);
mysql_query(query);
}
SendClientMessageToAll(COLOR_LIGHTRED, string);
if(PlayerInfo[params[0]][pLeader] > 0)
{
SetFractionStr(PlayerInfo[params[0]][pLeader], "leader", "None");
strmid(FracInfo[PlayerInfo[params[0]][pLeader]][fLeader],"None",0,strlen("None"),MAX_PLAYER_NAME);
if(PlayerInfo[params[0]][pLeader] == 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок не находиться в организации!");
LeaveFractionPlayer(params[0]);
ResetWeapon(params[0]);
}
PlayerInfo[params[0]][pMember] = 0;
PlayerInfo[params[0]][pLeader] = 0;
PlayerInfo[params[0]][pRank] = 0;
Kick(params[0]);
format(string, sizeof(string), "%s получил предупреждение от администратора %s. Причина: %s", sendername(params[0]), PlayerInfo[playerid][pSendername],params[1]);
Log("WarnLog",string);
return true;
}
Последнее редактирование:
