Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Проблемка с оффлайн варном

Статус
В этой теме нельзя размещать новые ответы.

djneketos

Ученик
Вообщем: при вводе просто ника игроку должен прилетать варн, при вводе ника и причины - должен тоже быть варн, но в сообщении для всех должна быть указанная причина, а если ник и "0" - с игрока должны сняться все варны. Работает только когда вводишь просто ник, во всех других случаях вообще ничего не происходит. Как это исправить?

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");
P.S. /unwarn для слабаков :)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу