djneketos
Ученик
Вообщем: при вводе просто ника игроку должен прилетать варн, при вводе ника и причины - должен тоже быть варн, но в сообщении для всех должна быть указанная причина, а если ник и "0" - с игрока должны сняться все варны. Работает только когда вводишь просто ник, во всех других случаях вообще ничего не происходит. Как это исправить?
P.S. /unwarn для слабаков 
PHP:
CMD:offwarn(playerid, params[])
{
new nick[24], IDa, warn, warntime, jailtime, faction, rank, ttime, reason[64];
sscanf(params, "s[24]ds[64]", nick, ttime, reason);
if(PI[playerid][Admin] < AdmLvl500) return SendClientMessage(playerid, COLOR_SYSTEM, "Тебе нельзя использовать эту команду");
else if(emptyMessage(params)) return SendClientMessage(playerid, COLOR_SYSTEM, "/акварн [ник] [причина]");
format(glstr, sizeof(glstr), "SELECT `ID`, `Faction`, `Rank` FROM `accounts` WHERE `Nick` = '%s'", nick);
mysql_query(glstr);
mysql_store_result();
mysql_fetch_row_format(result1, "|");
sscanf(result1, "p<|>ddd", IDa, faction, rank);
if(!mysql_num_rows()) return SendClientMessage(playerid, COLOR_SYSTEM,"Такого игрока не существует");
if(AccountInGame(params[0])) return SendClientMessage(playerid, COLOR_SYSTEM, "Игрок в сети");
mysql_free_result();
format(glstr, sizeof(glstr), "SELECT `Warn`, `WarnTime`, `JailTime` FROM `penalty` WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
mysql_store_result();
mysql_fetch_row_format(result1, "|");
sscanf(result1, "p<|>ddd", warn, warntime, jailtime);
for(new i=0; i<mysql_num_rows(); i++)
{
mysql_free_result();
if(sscanf(params, "s[24]s[64]", nick, reason) && sscanf(params, "s[24]", nick) && !sscanf(params, "s[24]d", nick, ttime)) {
if(warn != 0)
{
sscanf(params, "s[24]d", nick, ttime);
format(glstr, sizeof(glstr), "Админ %s [%d] снял предупреждение нарушения RP с %s не в сети", GetName2(playerid), playerid, GetNick(IDa));
SendClientMessageToAll(COLOR_GR, glstr);
format(glstr, sizeof(glstr), "Админ %s [%d] снял предупреждение нарушения RP с %s не в сети", GetName2(playerid), playerid, GetNick(IDa));
alog(glstr, 0);
mysql_free_result();
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '0', `WarnTime` = '0', `JailTime` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
}
} if(sscanf(params, "s[24]d", nick, ttime) && sscanf(params, "s[24]s[64]", nick, reason) && !sscanf(params, "s[24]", nick)) {
sscanf(params, "s[24]", nick);
if(warn >= 3) return SendClientMessage(playerid, COLOR_SYSTEM, "У игрока максимальное количество варнов");
if(warn == 0)
{
format(glstr, sizeof(glstr), "UPDATE `accounts` SET `Faction` = '0', `Rank` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
SetPVarInt(IDa, "MPESUJE", 0);
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '1',`JailTime` = '300', `WarnTime` = '432000' WHERE `PlayerID` = '%d'", IDa);
mysql_query(glstr);
warn = 1;
}
else if(warn == 1)
{
format(glstr, sizeof(glstr), "UPDATE `accounts` SET `Faction` = '0', `Rank` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
SetPVarInt(IDa, "MPESUJE", 0);
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '2',`JailTime` = '3600', `WarnTime` = '864000' WHERE `PlayerID` = '%d'", IDa);
mysql_query(glstr);
warn = 2;
}
else if(warn == 2)
{
format(glstr, sizeof(glstr), "UPDATE `accounts` SET `Faction` = '0', `Rank` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
SetPVarInt(IDa, "MPESUJE", 0);
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '3',`JailTime` = '864000', `WarnTime` = '1296000' WHERE `PlayerID` = '%d'", IDa);
mysql_query(glstr);
warn = 3;
}
format(glstr, sizeof(glstr), "Админ %s [%d] выдал предупреждение нарушения RP %s [%d/3] не в сети", GetName2(playerid), playerid, GetNick(IDa), warn);
SendClientMessageToAll(COLOR_ADMIN, glstr);
format(glstr, sizeof(glstr), "Админ %s [%d] выдал предупреждение нарушения RP %s [%d/3] не в сети", GetName2(playerid), playerid, GetNick(IDa), warn);
alog(glstr, 0);
} if(sscanf(params, "s[24]d", nick, ttime) && sscanf(params, "s[24]", nick) && !sscanf(params, "s[24]s[60]", nick, reason)) {
sscanf(params, "s[24]s[64]", nick, reason);
if(warn >= 3) return SendClientMessage(playerid, COLOR_SYSTEM, "У игрока максимальное количество варнов");
if(warn == 0)
{
format(glstr, sizeof(glstr), "UPDATE `accounts` SET `Faction` = '0', `Rank` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '1', `JailTime` = '300', `WarnTime` = '432000' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
}
else if(warn == 1)
{
format(glstr, sizeof(glstr), "UPDATE `accounts` SET `Faction` = '0', `Rank` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '2', `JailTime` = '3600', `WarnTime` = '864000' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
}
else if(warn == 2)
{
format(glstr, sizeof(glstr), "UPDATE `accounts` SET `Faction` = '0', `Rank` = '0' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
format(glstr, sizeof(glstr), "UPDATE `penalty` SET `Warn` = '3', `JailTime` = '864000', `WarnTime` = '1296000' WHERE `ID` = '%d'", IDa);
mysql_query(glstr);
}
format(glstr, sizeof(glstr), "Админ %s [%d] выдал предупреждение нарушения RP %s [%d/3] не в сети с причиной: %s", GetName2(playerid), playerid, GetNick(IDa), warn, reason);
SendClientMessageToAll(COLOR_ADMIN, glstr);
format(glstr, sizeof(glstr), "Админ %s [%d] выдал предупреждение нарушения RP %s [%d/3] не в сети причиной: %s", GetName2(playerid), playerid, GetNick(IDa), warn, reason);
alog(glstr, 0);
}
}
return true;
}
ALTX:offwarn("/акварн","/акпнр","/frdfhy","/frgyh");
Последнее редактирование:
