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

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

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

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

[CMD] Можете помочь с командой /warn

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

snm20012

Новичок
Здравствуйте посетители pawno.info.ru​
Можете помоч доделать команду /warn чтобы банило на 10 дней
Код:
Cама команда /warn
else if(strcmp(cmd,"/warn",true) == 0)
		{
		    if(PlayerInfo[playerid][pAdmin] ==  MAX_ADMIN_LEVEL)
		    {
		        new targetid;
		        targetid = v_strtok(cmdtext, idx);
		        if(targetid == INVALID_STRTOK) return SendErrorMessage(playerid, ""SI_GY" Подсказка: /warn [Ник Игрока/id] [Причина].");

		        t_strtok(cmdtext, idx);
		        if(!strlen(strtk_text))
		        {
		        	SendErrorMessage(playerid, ""SI_GY" Подсказка: /warn [Ник Игрока/id] [Причина].");
		        	return 1;
		        }
		        if(IsPlayerConnected(targetid))
		        {
			        if(PlayerInfo[playerid][pAdmin] > PlayerInfo[targetid][pAdmin] || PlayerInfo[playerid][pAdmin] == MAX_ADMIN_LEVEL)
			        {
			         	if(playerid != targetid || PlayerInfo[playerid][pAdmin] >= MAX_SADMIN_LEVEL)
			         	{
					   		if(Player[targetid][Registration] == false)
			           		{
				              	PlayerInfo[targetid][pWarnsg]++;
				              	format(M_String,sizeof(M_String),""SI_OR" Вы предупредили "OR_C"%s"WH_C". Всего предупреждений: "OR_C"%i"WH_C".",PlayerName[targetid],PlayerInfo[targetid][pWarnsg]);
				              	SendClientMessage(playerid,COLOR_WHITE,M_String);
				              	if(PlayerInfo[targetid][pWarnsg]<3){
									format(M_String,sizeof(M_String),""SI_OR" Вас "OR_C"предупредил"WH_C" Администратор "OR_C"%s"WH_C". Предупреждений: "OR_C"%i"WH_C".",PlayerName[playerid],PlayerInfo[targetid][pWarnsg]);
				              		SendClientMessage(targetid,COLOR_WHITE,M_String);
				              		Kick(targetid);
								}else{
						   			PlayerInfo[targetid][pWarnsg] = 0;
									}
								format(M_String,sizeof(M_String),"Администратор %s выдал выговор %s. Причина: %s",PlayerName[playerid],PlayerName[targetid], strtk_text);
				              	ServerSendMessageToRus(COLOR_ADMINCMD,M_String);
				              	format(M_String,sizeof(M_String),"предупредил администратора %s. Причина: %s.",PlayerLogin[targetid], strtk_text);
				              	WriteToLog("AdminLog",PlayerLogin[playerid],M_String);
               				}
   							else SendErrorMessage(playerid, ""SI_GY" Эту игрок "GY_C"не"WH_C" Администратор");
						}
						else SendErrorMessage(playerid, ""SI_GY" Вы "GY_C"не можете"WH_C" применять данную операцию к "GY_C"самому себе"WH_C".");
     				}
        			else
			        {
			           	format(M_String,sizeof(M_String),""SI_AC" %s [ID: "AC_C"%i"WH_C"]. Причина: "AC_C"/warn"WH_C" -> %s.",PlayerLogin[playerid],playerid,PlayerLogin[targetid]);
			           	SendMessageToAdmins(1,ADM_BADCMD,COLOR_WHITE,M_String);
			           	format(M_String,sizeof(M_String),""SI_AC" %s [ID: "AC_C"%i"WH_C"]. Reason: "AC_C"/warn"WH_C" -> %s.",PlayerLogin[playerid],playerid,PlayerLogin[targetid]);
			           	SendMessageToAdmins(2,ADM_BADCMD,COLOR_WHITE,M_String);
			        }
				}
				else
				{
                    L_RUS(playerid)format(M_String, sizeof(M_String), ""SI_GY" %i ID "GY_C"не активный"WH_C" игрок.", targetid);
           			L_ENG(playerid)format(M_String, sizeof(M_String), ""SI_GY" %i ID "GY_C"invalid"WH_C" player.", targetid);
		            SendErrorMessage(playerid, M_String);
			 	}
		    }
		    else
			{
				L_RUS(playerid) SendErrorMessage(playerid,""SI_GY" У Вас "GY_C"не достаточно"WH_C" полномочий что бы "GY_C"использовать"WH_C" эту команду!");
				L_ENG(playerid) SendErrorMessage(playerid,""SI_GY" You don't have "GY_C"enough"WH_C" admin authority, to "GY_C"use"WH_C" this command!");
	  		}
		    return 1;
		}
Код:
Команда /ban
else if(strcmp(cmd,"/ban",true) == 0)
		{
			if(PlayerInfo[playerid][pAdmin] >= 6)
			{
				new targetid, days, hours, minutes;

				targetid = v_strtok(cmdtext, idx);
				days = v_strtok(cmdtext, idx);
				
				if(days >= 0) {
					hours = v_strtok(cmdtext, idx);
					minutes = v_strtok(cmdtext, idx); }
				else {
					hours = -1;
					minutes = -1; }

				if(days == INVALID_STRTOK || minutes == INVALID_STRTOK) return SendErrorMessage(playerid, ""SI_GY" Подсказка: /ban ["RD_C"Ник Игрока/id"GY_C"] [Дни] [Часы] [Минуты] [Причина].");
				//Если Дни и часы впорядке, ИИ минуты впорядке (либо == 0, либо > 0 если дни и часы 0)
				//ИЛИ дни часы минуты == -1 (перм бан)
				//ИЛИ дни часы минуты == -2 (перм бан креш)
				
				if( (0 <= days <= 6 && 0 <= hours <= 23
							&& ( ((days > 0 || hours > 0) && 0 <= minutes <= 59) || 0 < minutes <= 59))
						|| (days == -1 && PlayerInfo[playerid][pAdmin] >= MAX_SADMIN_LEVEL)
						|| (days == -2 && PlayerInfo[playerid][pAdmin] == MAX_ADMIN_LEVEL) )
				{
					if(IsPlayerConnected(targetid))
					{
						if(PlayerInfo[playerid][pAdmin] > PlayerInfo[targetid][pAdmin] || PlayerInfo[playerid][pAdmin] == MAX_ADMIN_LEVEL)
						{
							t_strtok(cmdtext, idx);
							if(!strlen(strtk_text))
							{
								SendErrorMessage(playerid, ""SI_GY" Подсказка: /ban [Ник Игрока/id] [Дни] [Часы] [Минуты] ["RD_C"Причина"GY_C"].");
								return 1;
							}
							new UNIX_Unban = gettime();
							if(days == -1) format(M_String,sizeof(M_String),""SI_OR" Вы "OR_C"забанили"WH_C" игрока "OR_C"%s"WH_C" навсегда.",PlayerName[targetid]);
							else if(days == -2) format(M_String,sizeof(M_String),""SI_OR" Вы "OR_C"забанили"WH_C" игрока "OR_C"%s"WH_C" навсегда Креш-Баном.",PlayerName[targetid]);
							else format(M_String,sizeof(M_String),""SI_OR" Вы "OR_C"забанили"WH_C" игрока "OR_C"%s"WH_C" на %d %s %d %s %d %s.",PlayerName[targetid],days,GetTrueEnd(days,"день","дня","дней"),hours,GetTrueEnd(hours,"час","часа","часов"),minutes,GetTrueEnd(minutes,"минуту","минуты","минут"));
							SendClientMessage(playerid,COLOR_WHITE,M_String);

							format(T_String,sizeof(T_String),"%d",BannedCount);
							ini_setStr(BannedBD2, T_String, PlayerLogin[targetid]);
							BannedCount++;
							ini_setInt(BannedBD2, "BannedCount",BannedCount);

							if(days > 0)//days, hours, minutes
							{
								format(M_String,sizeof(M_String),"Администратор %s забанил %s на %d %s %d %s %d %s. Причина: %s",PlayerName[playerid],PlayerName[targetid], days,GetTrueEnd(days,"день","дня","дней"),hours,GetTrueEnd(hours,"час","часа","часов"),minutes,GetTrueEnd(minutes,"минуту","минуты","минут"), strtk_text);
								ServerSendMessageToRus(COLOR_ADMINCMD,M_String);
								format(M_String,sizeof(M_String),"Administrator %s banned %s for %d %s %d %s %d %s. Reason: %s",PlayerNameEng[playerid],PlayerNameEng[targetid], days,GetTrueEnd(days,"day","days","days"),hours,GetTrueEnd(hours,"hour","hours","hours"),minutes,GetTrueEnd(minutes,"minute","minutes","minutes"), strtk_text);
								ServerSendMessageToEng(COLOR_ADMINCMD,M_String);
								UNIX_Unban += days*TIME_DAY;
								UNIX_Unban += hours*TIME_HOUR;
								UNIX_Unban += minutes*TIME_MINUTE;
							}
							else if(hours > 0)//hours, minutes
							{
								format(M_String,sizeof(M_String),"Администратор %s забанил %s на %d %s %d %s. Причина: %s",PlayerName[playerid],PlayerName[targetid], hours,GetTrueEnd(hours,"час","часа","часов"),minutes,GetTrueEnd(minutes,"минуту","минуты","минут"), strtk_text);
								ServerSendMessageToRus(COLOR_ADMINCMD,M_String);
								format(M_String,sizeof(M_String),"Administrator %s banned %s for %d %s %d %s. Reason: %s",PlayerNameEng[playerid],PlayerNameEng[targetid], hours,GetTrueEnd(hours,"hour","hours","hours"),minutes,GetTrueEnd(minutes,"minute","minutes","minutes"), strtk_text);
								ServerSendMessageToEng(COLOR_ADMINCMD,M_String);
								UNIX_Unban += hours*TIME_HOUR;
								UNIX_Unban += minutes*TIME_MINUTE;
							}
							else if(minutes > 0)//minutes
							{
								format(M_String,sizeof(M_String),"Администратор %s забанил %s на %d %s. Причина: %s",PlayerName[playerid],PlayerName[targetid], minutes,GetTrueEnd(minutes,"минуту","минуты","минут"), strtk_text);
								ServerSendMessageToRus(COLOR_ADMINCMD,M_String);
								format(M_String,sizeof(M_String),"Administrator %s banned %s for %d %s. Reason: %s",PlayerNameEng[playerid],PlayerNameEng[targetid], minutes,GetTrueEnd(minutes,"minute","minutes","minutes"), strtk_text);
								ServerSendMessageToEng(COLOR_ADMINCMD,M_String);
								UNIX_Unban += minutes*TIME_MINUTE;
							}
							else if(days == -1)
							{
								format(M_String,sizeof(M_String),"Администратор %s забанил перманентно %s. Причина: %s",PlayerName[playerid],PlayerName[targetid], strtk_text);
								ServerSendMessageToRus(COLOR_ADMINCMD,M_String);
								format(M_String,sizeof(M_String),"Administrator %s banned permanently %s. Reason: %s",PlayerNameEng[playerid],PlayerNameEng[targetid], strtk_text);
								ServerSendMessageToEng(COLOR_ADMINCMD,M_String);
								UNIX_Unban = -1;
							}
							else if(days == -2)
							{
								L_RUS(playerid) format(M_String,sizeof(M_String),""SI_OR" Вы перманентно забанили %s Креш-Баном по причине %s.",PlayerName[targetid], strtk_text);
								L_ENG(playerid) format(M_String,sizeof(M_String),""SI_OR" You banned permanently %s by Crash-Ban with reason %s.",PlayerName[targetid], strtk_text);
								SendClientMessage(playerid,COLOR_WHITE,M_String);
								UNIX_Unban = -2;
								//-----------
								new playersip[16],FileID, year,month,day;
								GetPlayerIp(targetid,playersip,sizeof(playersip));
								for(new i = strlen(playersip); i >= 0; i--) {
									if(playersip[i] == '.') {
										strdel(playersip,i,strlen(playersip));
										break; } }
								getdate(year, month, day);
								//-----------
								//Информация о Бане (в аккаунт)
								format(S_String, sizeof(S_String), AccountBD, PlayerLogin[targetid]);
								FileID = ini_openFile(S_String);

								ini_setString(FileID, "Ban_Reason", strtk_text);
								format(M_String,sizeof(M_String),"Дни: %d | Часы: %d | Минуты: %d",days, hours, minutes);
								ini_setString(FileID, "Ban_Time", M_String);
								ini_setInteger(FileID, "Ban_UnixTime", UNIX_Unban);
								ini_setString(FileID, "Ban_Admin", PlayerName[playerid]);
								format(M_String,sizeof(M_String),"%02d/%02d/%d",day, month, year);
								ini_setString(FileID, "Ban_Date", M_String);
								ini_closeFile(FileID);
								//Информация в Бан Лист
								FileID = ini_openFile(BannedBD);
								format(M_String,sizeof(M_String),"%s = %s",PlayerLogin[targetid], playersip);
								ini_setString(FileID, M_String, PlayerLogin[targetid]);
								ini_closeFile(FileID);
								//-----------
								format(M_String,sizeof(M_String),"забанил игрока %s на %d дней %d часов %d минут. Причина: %s.",PlayerLogin[targetid],days, hours, minutes,strtk_text);
								WriteToLog("AdminLog",PlayerLogin[playerid],M_String);
								SetTimerEx("CrashPlayer",3000, false, "d", targetid);
								ServerPlaySound(playerid,SOUND_POSITIVE);
								return 1;
							}
							SendClientMessage(targetid, COLOR_WHITE, ""SI_RD" Если Вы "RD_C"не согласны"WH_C" с баном, либо не хотите "RD_C"ждать"WH_C" весь срок бана");
							SendClientMessage(targetid, COLOR_WHITE, ""SI_RD" Напишите "RD_C"заявление"WH_C" на разбан в группе ВКонтакте: "RD_C""SERVER_SITE"");
							GameTextForPlayer(targetid, BANNED_TEXTDRAW, 10000, 2);
							//-----------
							new playersip[16],FileID, year,month,day;

							GetPlayerIp(targetid,playersip,sizeof(playersip));
							for(new i = strlen(playersip); i >= 0; i--) {
								if(playersip[i] == '.') {
									strdel(playersip,i,strlen(playersip));
									break; } }
							getdate(year, month, day);
							//-----------
							//Информация о Бане (в аккаунт)
							format(S_String, sizeof(S_String), AccountBD, PlayerLogin[targetid]);
							FileID = ini_openFile(S_String);

							ini_setString(FileID, "Ban_Reason", strtk_text);
							format(M_String,sizeof(M_String),"Дни: %d | Часы: %d | Минуты: %d",days, hours, minutes);
							ini_setString(FileID, "Ban_Time", M_String);
							ini_setInteger(FileID, "Ban_UnixTime", UNIX_Unban);
							ini_setString(FileID, "Ban_Admin", PlayerName[playerid]);
							format(M_String,sizeof(M_String),"%02d/%02d/%d",day, month, year);
							ini_setString(FileID, "Ban_Date", M_String);
							ini_closeFile(FileID);
							//Информация в Бан Лист
							FileID = ini_openFile(BannedBD);
							format(M_String,sizeof(M_String),"%s = %s",PlayerLogin[targetid], playersip);
							ini_setString(FileID, M_String, PlayerLogin[targetid]);
							ini_closeFile(FileID);
							//-----------
							format(M_String,sizeof(M_String),"забанил игрока %s на %d дней %d часов %d минут. Причина: %s.",PlayerLogin[targetid],days, hours, minutes,strtk_text);
							WriteToLog("AdminLog",PlayerLogin[playerid],M_String);
							ServerPlaySound(playerid,SOUND_POSITIVE);
							KickEx(targetid);
						}
						else
						{
							format(M_String,sizeof(M_String),""SI_AC" %s [ID: "AC_C"%i"WH_C"]. Причина: "AC_C"/ban"WH_C" -> %s.",PlayerLogin[playerid],playerid,PlayerLogin[targetid]);
							SendMessageToAdmins(1,ADM_BADCMD,COLOR_WHITE,M_String);
							format(M_String,sizeof(M_String),""SI_AC" %s [ID: "AC_C"%i"WH_C"]. Reason: "AC_C"/ban"WH_C" -> %s.",PlayerLogin[playerid],playerid,PlayerLogin[targetid]);
							SendMessageToAdmins(2,ADM_BADCMD,COLOR_WHITE,M_String);
						}
					}
					else
					{
						L_RUS(playerid)format(M_String, sizeof(M_String),""SI_GY" %i ID "GY_C"не активный"WH_C" игрок.", targetid);
						L_ENG(playerid)format(M_String, sizeof(M_String), ""SI_GY" %i ID "GY_C"invalid"WH_C" player.", targetid);
						SendErrorMessage(playerid, M_String);
					}
				}
				else
				{
					SendErrorMessage(playerid, ""SI_GY" Подсказка: /ban [Ник Игрока/id] ["RD_C"Дни"GY_C"] ["RD_C"Часы"GY_C"] ["RD_C"Минуты"GY_C"] [Причина].");
					SendClientMessage(playerid,COLOR_WHITE, ""SI_GY" Дни: 0-6 | Часы: 0-23 | Минуты: 1-59.");
					if(PlayerInfo[playerid][pAdmin] == MAX_SADMIN_LEVEL)
					{
						SendClientMessage(playerid,COLOR_WHITE, ""SI_GY" Перманентный Бан: /ban id -1 Причина.");
					}
					if(PlayerInfo[playerid][pAdmin] == MAX_ADMIN_LEVEL)
					{
						SendClientMessage(playerid,COLOR_WHITE, ""SI_GY" Перманентный Бан: /ban id -1 Причина.");
						SendClientMessage(playerid,COLOR_WHITE, ""SI_GY" Тихий Бан с Крешем: /ban id -2 Причина.");
					}
					return 1;
				}
			}
			else
			{
				L_RUS(playerid) SendErrorMessage(playerid,""SI_GY" У Вас "GY_C"не достаточно"WH_C" полномочий что бы "GY_C"использовать"WH_C" эту команду!");
				L_ENG(playerid) SendErrorMessage(playerid,""SI_GY" You don't have "GY_C"enough"WH_C" admin authority, to "GY_C"use"WH_C" this command!");
			}
			return 1;
		}
		else if(strcmp(cmd,"/offban",true) == 0)
		{
			if(PlayerInfo[playerid][pAdmin] >= MAX_SADMIN_LEVEL)
			{
				t_strtok(cmdtext, idx);
				if(!strlen(strtk_text))
				{
					SendClientMessage(playerid,COLOR_WHITE, ""SI_GY" Подсказка: /offban [Имя Игрока].");
					SendErrorMessage(playerid,""SI_GY" Тип Бана: "GY_C"Перманентный"WH_C".");
					return 1;
				}
				format(S_String, sizeof(S_String), AccountBD, strtk_text);
				if(fexist(S_String))
				{
					new playersip[16], FileID, UNIX_Unban, year,month,day;
					
					format(M_String,sizeof(M_String),""SI_OR" Вы "OR_C"забанили"WH_C" игрока "OR_C"%s"WH_C".",strtk_text);
					SendClientMessage(playerid,COLOR_WHITE,M_String);

					format(M_String,sizeof(M_String),"Администратор %s забанил перманентно %s.",PlayerName[playerid],strtk_text);
					ServerSendMessageToRus(COLOR_ADMINCMD,M_String);
					format(M_String,sizeof(M_String),"Administrator %s banned permanently %s.",PlayerNameEng[playerid],strtk_text);
					ServerSendMessageToEng(COLOR_ADMINCMD,M_String);
					UNIX_Unban = -1;
					
					format(T_String,sizeof(T_String),"%d",BannedCount);
					ini_setStr(BannedBD2, T_String, strtk_text);
					BannedCount++;
					ini_setInt(BannedBD2, "BannedCount",BannedCount);
					
					format(S_String, sizeof(S_String), AccountBD, strtk_text);
					FileID = ini_openFile(S_String);
					
					ini_getString(FileID, "IP", playersip);
					
					getdate(year, month, day);
					for(new i = strlen(playersip); i >= 0; i--) {
						if(playersip[i] == '.') {
							strdel(playersip,i,strlen(playersip));
							break; } }
					
					ini_setString(FileID, "Ban_Reason", "Off-Line Ban");
					ini_setString(FileID, "Ban_Time", "Дни: - | Часы: - | Минуты: -");
					ini_setInteger(FileID, "Ban_UnixTime", UNIX_Unban);
					ini_setString(FileID, "Ban_Admin", PlayerName[playerid]);
					format(M_String,sizeof(M_String),"%02d/%02d/%d",day, month, year);
					ini_setString(FileID, "Ban_Date", M_String);
					ini_closeFile(FileID);
					
					//Информация в Бан Лист
					format(S_String,sizeof(S_String),"%s = %s", playersip, strtk_text);
					ini_setStr(BannedBD, strtk_text, S_String);
					/*
					FileID = ini_openFile(BannedBD);
					format(M_String,sizeof(M_String),"%s = %s",strtk_text, playersip);
					ini_setString(FileID, M_String, strtk_text);
					ini_closeFile(FileID);
					*/
					format(M_String,sizeof(M_String),"перманентно забанил игрока %s (Офф-Лайн Бан).",strtk_text);
					WriteToLog("AdminLog",PlayerLogin[playerid],M_String);
					ServerPlaySound(playerid,SOUND_POSITIVE);
				}
				else
				{
					format(M_String, sizeof(M_String), ""SI_GY" Аккаунт "GY_C"%s"WH_C" не существует.", strtk_text);
					SendErrorMessage(playerid, M_String);
				}
			}
			else
			{
				L_RUS(playerid) SendErrorMessage(playerid,""SI_GY" У Вас "GY_C"не достаточно"WH_C" полномочий что бы "GY_C"использовать"WH_C" эту команду!");
				L_ENG(playerid) SendErrorMessage(playerid,""SI_GY" You don't have "GY_C"enough"WH_C" admin authority, to "GY_C"use"WH_C" this command!");
			}
			return 1;
		}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу