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

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

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

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

Делаем удобный /re ( /atv )

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

CRAZy_Str

Специалист
Здравствуйте уважаемые пользователи, решил написать мануал по слежке за игроками для администрации и так приступим

Ко всем командам

PHP:
if(strcmp(cmd, "/re", true) == 0)
   {
   if(IsPlayerConnected(playerid))
          {
           new specid;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /re(con) [id]");
    specid = ReturnUser(tmp);
    if(specid == playerid) return SendClientMessage(playerid, COLOR_RED, " Вы указали свой ID!");
    if(PlayerInfo[specid][pAdmin] >= 6) return SendClientMessage(playerid,COLOR_GRAD1,"Наблюдение за администрацией запрещено!");
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
         if(IsPlayerConnected(specid))
         {
          if(GetPlayerState(specid) == PLAYER_STATE_SPECTATING && gSpectateID[specid] != INVALID_PLAYER_ID)
          {
           GetPlayerName(gSpectateID[specid], sendername, sizeof(sendername));
                  format(string, sizeof(string), " Этот игрок наблюдает за [%d]%s!",gSpectateID[specid], sendername);
                  SendClientMessage(playerid, COLOR_RED, string);
                  return 1;
          }
          if(GetPlayerState(specid) != 1 && GetPlayerState(specid) != 2 && GetPlayerState(specid) != 3) return SendClientMessage(playerid, COLOR_RED, "Игрок не вступил в игру !");
          StartSpectate(playerid, specid);
          Spectate[playerid] = specid;
          ShowMenuForPlayer(reconmenu,playerid);
         }
    }
    else
    {
         SendClientMessage(playerid, COLOR_WHITE, "Недостаточно прав для использования данной функции !");
    }
   }
   return 1;
  }
   if(strcmp(cmd, "/reoff", true) == 0)
  {
          new specid;
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp))
   {
                  if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
            StopSpectate(playerid);
            return 1;
   }
   if(PlayerInfo[playerid][pAdmin] >= 6)
   {
    specid = ReturnUser(tmp);
    StopSpectate(specid);
    format(string, sizeof(string), " Вы отключили [%d]%s из режима слежения!",gSpectateID[specid], sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
   }
   return 1;
  }
Ко всем new

PHP:
//======== /re ========
new Spectate[MAX_PLAYERS];
new Menu:reconmenu;
new Toogle[MAX_PLAYERS];
new mute[MAX_PLAYERS];
new timemute[MAX_PLAYERS];
new kick[MAX_PLAYERS];
new warn[MAX_PLAYERS];
new ban[MAX_PLAYERS];
в
PHP:
public OnPlayerSelectedMenuRow(playerid, row)
PHP:
if(Current == reconmenu)
  {
    new giveplayer[24],sendername[24],string[150];
    GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
   GetPlayerName(playerid, sendername, sizeof(sendername));
    switch(row)
    {
    case 0:
          {
                  if(Toogle[Spectate[playerid]] == 0)
                  {
          TogglePlayerControllable(Spectate[playerid], 0);
          format(string, sizeof(string), "%s Был заморожен администратором %s",giveplayer ,sendername);
          ABroadCast(COLOR_LIGHTRED,string,1);
           ShowMenuForPlayer(reconmenu,playerid);
           Toogle[Spectate[playerid]] = 1;
          }
          else
          {
                 TogglePlayerControllable(Spectate[playerid], 1);
          format(string, sizeof(string), "%s был разморожен администратором %s",giveplayer ,sendername);
          ABroadCast(COLOR_LIGHTRED,string,1);
           ShowMenuForPlayer(reconmenu,playerid);
           Toogle[Spectate[playerid]] = 0;
          }
    }
    case 1:
          {
          format(string, sizeof(string), "Игрок %s | На GM test Администратором %s",giveplayer, sendername);
         ABroadCast(COLOR_WHITE,string,1);
         new Float:boomx, Float:boomy, Float:boomz;
         GetPlayerPos(Spectate[playerid],boomx, boomy, boomz);
         CreateExplosion(boomx, boomy , boomz, 5, 2);
         ShowMenuForPlayer(reconmenu,playerid);
    }
    case 2:
    {
                   new Float:slx, Float:sly, Float:slz;
                   GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
         GetPlayerName(playerid, sendername, sizeof(sendername));
         SetPlayerHealth(Spectate[playerid], 130);
         GetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slx, sly, slz);
         SetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slx, sly, slz+550);
         PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
         format(string, sizeof(string), "AdmCmd: %s был подкинут администратором %s",giveplayer ,sendername);
         ABroadCast(COLOR_LIGHTRED,string,1);
         ShowMenuForPlayer(reconmenu,playerid);
    }
    case 3:
         {
         new playersip[150];
         GetPlayerIp(Spectate[playerid],playersip,sizeof(playersip));
         format(string, sizeof(string), "[%s] IP: %s",giveplayer,playersip);
         SendClientMessage(playerid,COLOR_BLUE,string);
         ShowMenuForPlayer(reconmenu,playerid);
    }
    case 4:
          {
           new Float:shealth;
         new Float:slx, Float:sly, Float:slz;
         GetPlayerHealth(Spectate[playerid], shealth);
         SetPlayerHealth(Spectate[playerid], shealth-5);
         GetPlayerPos(Spectate[playerid], slx, sly, slz);
         SetPlayerPos(Spectate[playerid], slx, sly, slz+5);
         PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
         ShowMenuForPlayer(reconmenu,playerid);
    }
    case 5:
          {
         ShowStats(playerid,Spectate[playerid]);
         ShowMenuForPlayer(reconmenu,playerid);
    }
    case 6:
          {
         StartSpectate(playerid, Spectate[playerid]);
         ShowMenuForPlayer(reconmenu,playerid);
    }
    case 7:
    {
         StopSpectate(playerid);
         Spectate[playerid] = 255;
         PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    }
   }
  }
Новая под ****-Rp
PHP:
if(Current == reconmenu)
		{
		 	new giveplayer[24],sendername[24],string[150];
		 	GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
		 	switch(row)
		 	{
				case 0://freeze
		  		{
		  		    if(Toogle[Spectate[playerid]] == 0)
		  		    {
						TogglePlayerControllable(Spectate[playerid], 0);
						format(string, sizeof(string), "%s был заморожен администратором %s",giveplayer ,sendername);
						ABroadCast(COLOR_LIGHTRED,string,1);
					 	ShowMenuForPlayer(reconmenu,playerid);
					 	Toogle[Spectate[playerid]] = 1;
			 		}
			 		else
			 		{
					    TogglePlayerControllable(Spectate[playerid], 1);
						format(string, sizeof(string), "%s был разморожен администратором %s",giveplayer ,sendername);
						ABroadCast(COLOR_LIGHTRED,string,1);
					 	ShowMenuForPlayer(reconmenu,playerid);
					 	Toogle[Spectate[playerid]] = 0;
			 		}
				}
				case 1://gmtest
		  		{
				 	format(string, sizeof(string), "Игрок %s | проверен на GM админом %s",giveplayer, sendername);
					ABroadCast(COLOR_WHITE,string,1);
					new Float:boomx, Float:boomy, Float:boomz;
					GetPlayerPos(Spectate[playerid],boomx, boomy, boomz);
					CreateExplosion(boomx, boomy , boomz, 5, 2);
					ShowMenuForPlayer(reconmenu,playerid);
				}
				case 2://mute
				{
					ShowPlayerDialog(playerid,10011,DIALOG_STYLE_INPUT,"Mute","Введите ид игрока которому хотите выдать бан чата","Ок","Отмена");
                    ShowMenuForPlayer(reconmenu,playerid);
				}
				case 3: // kick
				{
					ShowPlayerDialog(playerid,10014,DIALOG_STYLE_INPUT,"Kick","Введите ид игрока которого хотите кикнуть","Ок","Отмена");
                    ShowMenuForPlayer(reconmenu,playerid);
				}
				case 4: //warn
				{
					ShowPlayerDialog(playerid,10016,DIALOG_STYLE_INPUT,"Warn","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
                    ShowMenuForPlayer(reconmenu,playerid);
				}
				case 5: //ban
				{
					ShowPlayerDialog(playerid,10018,DIALOG_STYLE_INPUT,"Ban","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
                    ShowMenuForPlayer(reconmenu,playerid);
				}
				case 6: //getip
		 		{
					new playersip[150];
					GetPlayerIp(Spectate[playerid],playersip,sizeof(playersip));
					format(string, sizeof(string), "[%s] IP: %s",giveplayer,playersip);
					SendClientMessage(playerid,COLOR_BLUE,string);
					ShowMenuForPlayer(reconmenu,playerid);
				}
				case 7: //slap
  				{
			  		new Float:shealth;
					new Float:slx, Float:sly, Float:slz;
					GetPlayerHealth(Spectate[playerid], shealth);
					SetPlayerHealth(Spectate[playerid], shealth-5);
					GetPlayerPos(Spectate[playerid], slx, sly, slz);
					SetPlayerPos(Spectate[playerid], slx, sly, slz+5);
					PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
					ShowMenuForPlayer(reconmenu,playerid);
				}
				case 8: // stats
  				{
					ShowStats(playerid,Spectate[playerid]);
					ShowMenuForPlayer(reconmenu,playerid);
				}
				case 9: // update
		  		{
					StartSpectate(playerid, Spectate[playerid]);
					ShowMenuForPlayer(reconmenu,playerid);
				}
				case 10: // reoff
				{
					StopSpectate(playerid);
					Spectate[playerid] = 255;
					PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
				}
			}
		}
в
PHP:
public Menu()
PHP:
  reconmenu = CreateMenu("Recon", 1, 25.0, 160.0, 100.0 );
  AddMenuItem(reconmenu,0,"Freeze");
  AddMenuItem(reconmenu,0,"GMtest");
  AddMenuItem(reconmenu,0,"VehSlap");
  AddMenuItem(reconmenu,0,"Getip");
  AddMenuItem(reconmenu,0,"Slap");
  AddMenuItem(reconmenu,0,"Stats");
  AddMenuItem(reconmenu,0,"Update");
  AddMenuItem(reconmenu,0,"Re Off");
Под ****-Rp
PHP:
		reconmenu = CreateMenu("RMenu", 1, 25.0, 160.0, 100.0 );
		AddMenuItem(reconmenu,0,"Freeze");
		AddMenuItem(reconmenu,0,"GMtest");
		AddMenuItem(reconmenu,0,"Mute");
		AddMenuItem(reconmenu,0,"Kick");
		AddMenuItem(reconmenu,0,"Warn");
		AddMenuItem(reconmenu,0,"Ban");
		AddMenuItem(reconmenu,0,"Getip");
		AddMenuItem(reconmenu,0,"Slap");
		AddMenuItem(reconmenu,0,"Stats");
		AddMenuItem(reconmenu,0,"Update");
		AddMenuItem(reconmenu,0,"Re Off");
Ну и диалоги
PHP:
case 10011:
			{
				if(response)
				{
                    if(!strval(inputtext)) return ShowPlayerDialog(playerid,10011,DIALOG_STYLE_INPUT,"Mute","Введите ид игрока которому хотите дать mute","Ок","Отмена");
		   			if(mute[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10011,DIALOG_STYLE_INPUT,"Mute","Введите ид игрока которому хотите дать mute","Ок","Отмена");
		   			mute[playerid] = strval(inputtext);
		   			ShowPlayerDialog(playerid,10012,DIALOG_STYLE_INPUT,"Минут","Введите колл-во минут","Далее","Отмена");
				}
				else
				{
				    return true;
				}
			}
			case 10012:
			{
			    if(response)
			    {
			        if(!strval(inputtext)) return ShowPlayerDialog(playerid,10012,DIALOG_STYLE_INPUT,"Минут","Введите колл-во времени","Далее","Отмена");
			        if(timemute[playerid] < 1 || timemute[playerid] > 180) return ShowPlayerDialog(playerid,10012,DIALOG_STYLE_INPUT,"Минут","Введите колл-во времени","Далее","Отмена");
			        timemute[playerid] = strval(inputtext);
			        ShowPlayerDialog(playerid,10013,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
				}
				else
				{
				    return true;
				}
			}
			case 10013:
			{
			    if(response)
			    {
			        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10013,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");

			    	format(string,sizeof(string),"/mute %d %d %s",mute[playerid],timemute[playerid],(inputtext));
		     		OnPlayerCommandText(playerid,string);
				}
				else
				{
				    return true;
				}
			}
			case 10014:
			{
				if(response)
				{
				    if(!strval(inputtext)) return ShowPlayerDialog(playerid,10014,DIALOG_STYLE_INPUT,"Kick","Введите ид игрока которого хотите кикнуть","Ок","Отмена");
		   			if(kick[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10014,DIALOG_STYLE_INPUT,"Kick","Введите ид игрока которого хотите кикнуть","Ок","Отмена");
		   			kick[playerid] = strval(inputtext);
		   			ShowPlayerDialog(playerid,10015,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
				}
				else
				{
				    return true;
				}
			}
			case 10015:
			{
			    if(response)
			    {
			        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10015,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
			    	format(string,sizeof(string),"/kick %d %s",kick[playerid],(inputtext));
		     		OnPlayerCommandText(playerid,string);
				}
				else
				{
				    return true;
				}
			}
			case 10016:
			{
				if(response)
				{
				    if(!strval(inputtext)) return ShowPlayerDialog(playerid,10016,DIALOG_STYLE_INPUT,"Warn","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
		   			if(warn[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10016,DIALOG_STYLE_INPUT,"Warn","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
		   			warn[playerid] = strval(inputtext);
		   			ShowPlayerDialog(playerid,10017,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
				}
				else
				{
				    return true;
				}
			}
			case 10017:
			{
			    if(response)
			    {
			        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10017,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
			    	format(string,sizeof(string),"/warn %d %s",warn[playerid],(inputtext));
		     		OnPlayerCommandText(playerid,string);
				}
				else
				{
				    return true;
				}
			}
			case 10018:
			{
				if(response)
				{
				    if(!strval(inputtext)) return ShowPlayerDialog(playerid,10018,DIALOG_STYLE_INPUT,"Ban","Введите ид игрока которого хотите забанить","Ок","Отмена");
		   			if(ban[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10018,DIALOG_STYLE_INPUT,"Ban","Введите ид игрока которого хотите забанить","Ок","Отмена");
		   			ban[playerid] = strval(inputtext);
		   			ShowPlayerDialog(playerid,10019,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
				}
				else
				{
				    return true;
				}
			}
			case 10019:
			{
			    if(response)
			    {
			        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10019,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
			    	format(string,sizeof(string),"/ban %d %s",ban[playerid],(inputtext));
		     		OnPlayerCommandText(playerid,string);
				}
				else
				{
				    return true;
				}
			}
Вроде всё =) будут проблемы пишите

Автор мануала: Я :)

Скрин

Под ****-Rp

Нету кнопки переключения и правого текстдрава. Лень делать.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу