Добро пожаловать на Pawno-Info.Ru - Портал о программировании №1

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям и ответы на все интересующие Вас вопросы. После регистрации Вы сможете создавать темы, публиковать ответы, влиять на репутацию пользователей форума, обмениваться личными сообщениями и многое другое. Это быстро и совершенно бесплатно, так чего же Вы ждете?
Доступ к архиву

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

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

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

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andreas? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

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

Joey_Air

Начинающий
Пользователь
Регистрация
12 Ноя 2011
Сообщения
54
Лучшие ответы
0
Репутация
7
Здравствуйте!!!Хотел бы вам показать как сделать команду /ban по нику!
Итак создадим переменную,чтобы закрывала доступ на сервер если игрок забанен!
В enum pinfo:
PHP:
	pLocked,
Теперь найдем public OnPlayerConnect(playerid) и вставим:
PHP:
	PlayerInfo[playerid][pLocked] = 0;
Ищем public OnPlayerRegister(playerid, password[]) и ниже этого
PHP:
		iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
вставляем
PHP:
  		iniSetInt(File,"Locked",PlayerInfo[playerid][pLocked]);
Ищем еще public OnPlayerUpdate_GF(playerid) и также ниже
PHP:
		iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
вставляем:
PHP:
   			iniSetInt(File,"Locked",PlayerInfo[playerid][pLocked]);
Следующий и последний ищем public OnPlayerLogin(playerid,password[]) и также вставляем как и в предыдущие паблики:

PHP:
		iniGetInt(File,"Locked",PlayerInfo[playerid][pLocked]);
Все!Теперь заходим в public OnPlayerConnect И вставляем:

PHP:
	if(PlayerInfo[playerid][pLocked] == 1) //autoban
		{
			SendClientMessage(playerid, COLOR_LIGHTRED, " * Этот аккаунт заблокирован администрацией!");
			SendClientMessage(playerid, Cvet_19, " * Если вы хотите обжаловать бан,вам на сайт:ваш сайт!");
			SendClientMessage(playerid, Cvet_19, " * Или в скайп : ваш скайп");
			Kick(playerid);
		}
Создадим команду чтобы банить! идем в public OnPlayerCommandText И вставляем:
PHP:
	if(strcmp(cmd, "/ban", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	    	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ban [playerid/PartOfName] [reason]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			
			if (PlayerInfo[playerid][pAdmin] >= 7)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
			        if(giveplayerid != INVALID_PLAYER_ID)
			        {
					    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						new length = strlen(cmdtext);
						while ((idx < length) && (cmdtext[idx] <= ' '))
						{
							idx++;
						}
						new offset = idx;
						new result[64];
						while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
						{
							result[idx - offset] = cmdtext[idx];
							idx++;
						}
						result[idx - offset] = EOS;
						if(!strlen(result))
						{
							SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ban [playerid/PartOfName] [причина]");
							return 1;
						}
						new year, month,day;
						getdate(year, month, day);
						format(string, sizeof(string), " AdmCmd: Игрок %s забанен админом %s, причина: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
						format(string, sizeof(string), " AdmCmd: Игрок %s забанен админом %s, причина: %s", giveplayer, sendername, (result));
						SendClientMessageToAll(COLOR_LIGHTRED, string);
						PlayerInfo[giveplayerid][pLocked] = 1;
						BanLog(string);
						Ban(giveplayerid);
						return 1;
					}
				}
			}
			else
			{
				format(string, sizeof(string), "   %d не активный игрок.", giveplayerid);
				SendClientMessage(playerid, COLOR_GRAD1, string);
			}
		}
		return 1;
	}
Да еще хочу сказать разбанить ВОЗМОЖНО ТОЛЬКО КОМАНДОЙ!!!

Вот она же вставить ее в public OnPlayerCommandText:
PHP:
 	if(strcmp(cmd, "/unban", true) == 0)
	{
  if(PlayerInfo[playerid][pAdmin] < 6)
		{
			SendClientMessage(playerid,COLOR_RED,"Нет доступа!");
			return 1;
		}
		new akk[256],ssss[256];
		akk = strtok(cmdtext, idx);
		if(!strlen(akk))
		{
			SendClientMessage(playerid,COLOR_GREY," Èñïîëüçóéòå: /unban [Имя_Фамилия]");
			return 1;
		}
		format(string,sizeof(string),"Players/%s.ini",akk);
		if(!fexist(string))
		{
			SendClientMessage(playerid,COLOR_RED,"Такого аккаунта не существует");
			return 1;
		}
		else
		{
			new File = iniOpen(string);
			iniSetInt(File,"Locked",0);
			iniClose(File);
			format(ssss,sizeof(ssss)," %s был разбанен",akk);
			SendClientMessage(playerid,COLOR_LIGHTBLUE,ssss);
		}
		return 1;
	}
Где
PHP:
format(string,sizeof(string),"Players/%s.ini",akk);
Указываем свой путь к аккаунтам!Вот и впринципе и все!Кому понадобилось + сика не откажусь :df: !

Автор : Я
Спросите откуда?Писал сам не с 0 конечно,но переменную и все остальное Я :df:
Будут ошибки пишите помогу чем смогу!

---------- Post added at 14:55 ---------- Previous post was at 14:17 ----------

Up Up Up ^_^
 

Joey_Air

Начинающий
Пользователь
Регистрация
12 Ноя 2011
Сообщения
54
Лучшие ответы
0
Репутация
7
Да ну оцените :D многие я уверен себе поставили а + НЕТ :ak:
 

El Dobermann

Заблокирован
Регистрация
23 Фев 2012
Сообщения
557
Лучшие ответы
0
Репутация
214
Возраст
31
Адрес
Russian Federation,Bryansk
думаю поставлю : D научиш только + давать ок?
 

ZoRGee

Заблокирован
Регистрация
4 Фев 2012
Сообщения
102
Лучшие ответы
0
Репутация
13
Адрес
Алтайский край
думаю поставлю : D научиш только + давать ок?
Жми на ± под аватаркой, дальше разберешься.
И собственно мой вопрос:
Как переделать систему банана по IP на твой банан по нику?
Поможешь, + твой
 

Joey_Air

Начинающий
Пользователь
Регистрация
12 Ноя 2011
Сообщения
54
Лучшие ответы
0
Репутация
7
По ip??Хм...но зачем?Инет перегрузил новый ip,но ладно дело хозяйское вот код в public OnPlayerCommandText:
PHP:
    if(strcmp(cmd,"/ban", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] >=2)
		{
		    new tmp2[256];
			tmp=strtok(cmdtext,idx);
			tmp2=strtok(cmdtext,idx);
			if((!strlen(tmp)) || (!strlen(tmp2)) || (!IsNumeric(tmp)) || (!IsNumeric(tmp2)))
			{
				SendClientMessage(playerid,COLOR_GREY,"Èñïîëüçóéòå: /ban [id] [дни] [причина]");
			    return 1;
			}
			if(IsPlayerConnected(playerid))
			{
			    new playeri,day,y,m,d,yy,mm,dd,nameme[MAX_PLAYER_NAME];
				playeri = strval(tmp);
				day = strval(tmp2);
				if(IsPlayerConnected(playeri))
				{
				    if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playeri][pAdmin])
				    {
				        SendClientMessage(playerid,COLOR_GREY,"Нельзя забанить админа который старше вас!");
						return 1;
				    }
					if(day <= 0)
					{
					    SendClientMessage(playerid,COLOR_GREY,"Дни бана должны быть больше 0!");
						return 1;
					}
					new length = strlen(cmdtext);
					while ((idx < length) && (cmdtext[idx] <= ' '))
					{
						idx++;
					}
					new offset = idx;
					new result[64];
					while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
					{
						result[idx - offset] = cmdtext[idx];
						idx++;
					}
					result[idx - offset] = EOS;
					GetPlayerName(playeri,nameme,sizeof(nameme));
					GetPlayerName(playerid,playername,sizeof(playername));
				    GetPlayerName(playeri,sendername,sizeof(sendername));
                    if(!strlen(result))
					{
						format(string,sizeof(string),"Администратор %s забанил %s на %d дней. причина: не соблюдение правил сервера",playername,sendername,day);
						SendClientMessageToAll(COLOR_LIGHTRED,string);
					}
					else
					{
	     				format(string,sizeof(string),"Администратор %s забанил %s на %d дней. причина: %s",playername,sendername,day,(result));
						SendClientMessageToAll(COLOR_LIGHTRED,string);
					}
					getdate(y,m,d);
					dd = d;
					mm = m;
					yy = y;
					dd = dd + day;
					while(dd > GetDayMount(m,y))
					{
					    mm++;
				        if(mm > 12)
						{
					        mm=1;
					        yy++;
				        }
				        dd = dd-GetDayMount(mm,yy);
					}
					format(string,sizeof(string),"%d,%d,%d",dd,mm,yy);
					new File = iniOpen("tempbans.ini");
					iniSet(File,nameme,string);
					iniClose(File);
					Ban(playerid);
				}
				else
				{
				    SendClientMessage(playerid,COLOR_GREY,"Игрок оффлайн!");
				}
			}
		}
		else
		{
		    SendClientMessage(playerid,COLOR_GREY,"Нет полномочия на эту команду!");
		}
	    return 1;
	}
Помог??? + сег бы ^_^
 
Последнее редактирование:

Joey_Air

Начинающий
Пользователь
Регистрация
12 Ноя 2011
Сообщения
54
Лучшие ответы
0
Репутация
7
14 исполнилось месяц назад,а что?
 

kyller

Эксперт
Пользователь
Регистрация
5 Ноя 2011
Сообщения
1,665
Лучшие ответы
0
Репутация
398
Адрес
Pawno-Info.ru
Отлично) + позже поставлю.
 

Parya

Изучающий
Пользователь
Регистрация
1 Дек 2011
Сообщения
671
Лучшие ответы
0
Репутация
492
Спасибку поставлю=)Полезно
 

rafael

Эксперт
Пользователь
Регистрация
3 Сен 2011
Сообщения
1,366
Лучшие ответы
0
Репутация
399
спасибо за команду
 

Joey_Air

Начинающий
Пользователь
Регистрация
12 Ноя 2011
Сообщения
54
Лучшие ответы
0
Репутация
7

LExTOR

Начинающий
Пользователь
Регистрация
13 Фев 2012
Сообщения
24
Лучшие ответы
0
Репутация
0
Как сделать тоже самое, но только чтоб банило на дни ?
 

Ford_2_2_8_

Начинающий
Пользователь
Регистрация
26 Фев 2012
Сообщения
26
Лучшие ответы
0
Репутация
0
Адрес
Россия
Сори,но бан бональный,где авторазбан игрока?+он не по времени,такой бан есть на любом форуме с уроками pawno,говорить что ты с нуля писал не нужно...кого интересует действительно хороший бан по времени,по нику,очень действующий,бан идёт по дням и разбан точно в день разбана,для серверов таких как creame life и подобных ему,мой скайп Ford_2 ,писал бан я лично,цена примерно 300 рублей..
 
Последнее редактирование:

Пыжик

Начинающий
Пользователь
Регистрация
10 Мар 2012
Сообщения
70
Лучшие ответы
0
Репутация
32
Подскажи пожалуйста, почему когда я, допустим, почистил файл samp.ban, то я оказываюсь разбаненым. Просто захожу на сервер...
В ini файле переменная Locker = 1

Подскажи пожалуйста, в чём моя ошибка
 
Статус
В этой теме нельзя размещать новые ответы.
shape1
shape2
shape3
shape4
shape7
shape8
Сверху Снизу