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

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

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

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

[C.M.D] /tpmenu - Упрощеное ТП меню для администратора

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

Биляш

Умник
Приветствую, ув.пользователи форума Pawno-Info. Сегодня я вам представлю команду меню, которое упрощает действия ТП для администрации вашего сервера.
Автор: Биляш
Версия: -
Мод: Делалось под RLS.
Тест: на RLS - Client 0.3c (Но пойдет и на самую последнюю версию - 0.3e)
Время работы: Несколько часов.
Описание: Данная команда заменяет такие команды как - /mark, /gotomark, /spawn, /goto, /gethere, /gotocar, /getcar заменяя их в диалог.
В мою команду была взята оптимизированная версия команд /goto, /gethere, /gotocar - ТЫЦ (Автор: Den_Bellik)
Меню команды:
- Установить точку телепортирования
- Телепортироватся к установленой точке
- Телепортироватся на мой ReSpawn
- Телепортироватся к игроку
- Телепортировать игрока к себе
- Телепортироватся к транспорту
- Телепортировать транспорт

Приступим... В public OnPlayerCommandText добавляете данный код
PHP:
else if(strcmp(cmd, "/tpmenu", true) == 0)
	 {
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    new listitems[] = "[1] - Установить точку телепортирования\n[2] - Телепортироватся к установленой точке\n[3] - Телепортироватся на мой ReSpawn\n[4] - Телепортироватся к игроку\n[5] - Телепортировать игрока к себе\n[6] - Телепортироватся к транспорту\n[7] - Телепортировать транспорт";
       			ShowPlayerDialog(playerid, 10500, DIALOG_STYLE_LIST, "{bbbbbb}Админ [ТП] меню", listitems, "Выбрать", "Закрыть");
       		}
		return 1;
	}
Сразу подробно разберу для новичков, чтобы было потом меньше вопросов.
else if(strcmp(cmd, "/tpmenu", true) == 0) - Вызов меню командой. "/tpmenu" можно поменять на что угодно, например на "/atpbox" (команда которой будете вызывать действия должна всегда обязательно находится в скобках " "). Также можете сделать, чтобы меню вызывалось на несколько команд, в таком случае уберите скобку ) и вставьте
PHP:
|| strcmp(cmd, "/atpbox", true) == 0)
должно получится примерно так
PHP:
else if(strcmp(cmd, "/tpmenu", true) == 0 || strcmp(cmd, "/atpbox", true) == 0)
true - означает, что ваша команда будет работать в моде.
Если поставить false - то команда не будет работать не смотря на то, что сама команда находится в моде.
if(PlayerInfo[playerid][pAdmin] >= 1) - Проверка на администратора, то есть это означает, что команду может вызвать только администратор 1 АДМ LVL и выше. Если поставить значение == 1, то это будет означать, что команду может вызвать администратор только 1 АДМ LVL.
НЕ УВЕРЕН!! Так же если поставить значение, например, =< 5, то это означает, что команду не смогут вызывать администраторы ниже 5 АДМ LVL, при этом значение можно поставить свое. Если вы желаете, чтобы администратору который не может использовать команду писалось сообщение о том, что ему не доступна команда, сделайте так...
PHP:
if(PlayerInfo[playerid][pAdmin] =< 5) return SendClientMessage(playerid, COLOR_WHITE,"Вам не доступна данная команда, только с 5 Adm LVL и выше");
playerid - означает, что сообщение будет показыватся именно тому, кто ввел команду (и ему она не доступна).
COLOR_WHITE - Это цвет сообщения. Его можно изменить на свое. Основные цвета: COLOR_BLUE, COLOR_LIGHTBLUE, COLOR_RED, COLOR_REDD, COLOR_LIGHTRED, COLOR_GREEN, COLOR_LIGHTGREEN, COLOR_WHITE, COLOR_YELLOW, COLOR_ORANGE, COLOR_LIME...
Собственно в скобках " " ваш текст сообщения.
ShowPlayerDialog(playerid, 10500, DIALOG_STYLE_LIST, "{bbbbbb}Админ [ТП] меню", listitems, "Выбрать", "Закрыть");
ShowPlayerDialog - Вызов диалога.
playerid - диалог будет вызываться именно тому, кто его вызывает.
10500 - Это ID диалога.
DIALOG_STYLE_LIST - Это стиль диалога. В нашем случае стиль "Лист". Всего есть 4 стиля диалогов.
"{bbbbbb}Админ [ТП] меню" - Название диалога. {bbbbbb} - HTML код цвета. Узнать HTML кода цветов можно здесь >>
"Выбрать", "Закрыть" - Это две кнопки действий в меню. Выбрать - первая кнопка. Закрыть - вторая кнопка.

Теперь к case'ам добавляете вот этот код.
PHP:
case 10500:
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                GetPlayerPos(playerid, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
				SendClientMessage(playerid, COLOR_GREY, "[Adm] - Точка для телепортирования установлена");
				return 1;
                }
                case 1:
                {
				new tmpcar = GetPlayerVehicleID(playerid);
				SetVehiclePos(tmpcar, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
				TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				{
				SetPlayerPos(playerid, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
				}
				SendClientMessage(playerid, COLOR_GREY, "[Adm] - Вы телепортировались к установленой точке");
				SetPlayerInterior(playerid,0);
				return 1;
                }
                case 2:
                {
                SpawnPlayer(playerid);
                }
                case 3:
                {
                ShowPlayerDialog(playerid,10501,1,"{bbbbbb}Телепортироватся к игроку","{ffffff}Введите в поле PlayerID игрока\nк которому желаете телепортироватся.","ТП","Выход");
                }
                case 4:
                {
                ShowPlayerDialog(playerid,10502,1,"{bbbbbb}Телепортировать игрока к себе","{ffffff}Введите в поле PlayerID игрока\nкоторого желаете телепортировать к себе.","ТП","Выход");
                }
                case 5:
                {
                ShowPlayerDialog(playerid,10503,1,"{bbbbbb}Телепортироватся к транспорту","{ffffff}Введите в поле ID транспорта\nк которому желаете телепортироватся.","ТП","Выход");
                }
                case 6:
                {
                ShowPlayerDialog(playerid,10504,1,"{bbbbbb}Телепортировать транспорт","{ffffff}Введите в поле ID транспорта\nкоторый желаете телепортировать к себе.","ТП","Выход");
                }
                case 7:
                {
                ShowPlayerDialog(playerid,10505,1,"{bbbbbb}Телепортироватся к дому","{ffffff}Введите в поле ID дома\nк которому желаете телепортироватся.","ТП","Выход");
                }
            }
        }
    }
Также вот этот код, туда же к case'ам
PHP:
case 10501:
                {
                    if(response)
                    {
                        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10501,1,"{bbbbbb}Телепортироватся к игроку","{ffffff}Введите в поле PlayerID игрока\nк которому желаете телепортироватся.","ТП","Выход");
                        if(strval(inputtext) != INVALID_PLAYER_ID)
                          {
                          new playa = strval(inputtext);
                          new Float:x, Float:y, Float:z;
       					  GetPlayerPos(playa, x, y, z);
		  				  SetPlayerInterior(playerid, GetPlayerInterior(playa));
        				  SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(playa));
						  if (IsPlayerInAnyVehicle(playerid))
        				  {
        			      SetVehiclePos(GetPlayerVehicleID(playerid), x+1,y+1,z);
          				  return 1;
        				  }
        				  SetPlayerPos(playerid, x+1, y+1, z);
        				  return 1;
                          }
                     }
                }
      		case 10502:
                {
                    if(response)
                    {
                        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10502,1,"{bbbbbb}Телепортировать игрока к себе","{ffffff}Введите в поле PlayerID игрока\nкоторого желаете телепортировать к себе.","ТП","Выход");
                        if(strval(inputtext) != INVALID_PLAYER_ID)
                          {
                          new playa = strval(inputtext);
    					  new Float:x, Float:y, Float:z;
       					  GetPlayerPos(playerid, x, y, z);
       					  if (IsPlayerInAnyVehicle(playa))
        				  {
          				  SetVehiclePos(GetPlayerVehicleID(playa), x+1,y+1,z);
            			  return 1;
       					  }
      					  SetPlayerPos(playa, x+1, y+1, z);
       					  SetPlayerInterior(playa, GetPlayerInterior(playerid));
       					  SetPlayerVirtualWorld(playa, GetPlayerVirtualWorld(playerid));
       					  return 1;
                          }
                     }
                }
		case 10503:
                {
                    if(response)
                    {
                        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10503,1,"{bbbbbb}Телепортироватся к транспорту","{ffffff}Введите в поле ID транспорта\nк которому желаете телепортироватся.","ТП","Выход");
                        if(strval(inputtext) != INVALID_VEHICLE_ID)
                          {
                          new vehid = strval(inputtext);
        				  new Float:x, Float:y, Float:z;
        				  GetVehiclePos(vehid, x, y, z);
        				  SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(vehid));
        				  if (IsPlayerInAnyVehicle(playerid))
						  {
          				  SetVehiclePos(GetPlayerVehicleID(playerid), x+1,y+1,z);
        			      return 1;
      					  }
      					  SetPlayerPos(playerid, x+1, y+1, z);
     				      return 1;
                          }
                     }
                }
  		case 10504:
                {
                    if(response)
                    {
                        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10504,1,"{bbbbbb}Телепортировать транспорт","{ffffff}Введите в поле ID транспорта\nкоторый желаете телепортировать к себе.","ТП","Выход");
                        if(strval(inputtext) != INVALID_VEHICLE_ID)
                          {
                          new vehid = strval(inputtext);
        				  new Float:x, Float:y, Float:z;
        				  GetPlayerPos(playerid, x, y, z);
        				  SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(vehid));
        				  if (IsPlayerInAnyVehicle(playerid))
						  {
          				  SetVehiclePos(GetPlayerVehicleID(playerid), x+1,y+1,z);
        			      return 1;
      					  }
      					  SetVehiclePos(vehid, x+1, y+1, z);
     				      return 1;
                          }
                     }
                }
Всё, команда готова. Пользуйтесь на здоровье. У кого возникают какие-то проблемы, напряги, ошибки с командой, пишите мне в ЛС или в тему, решим быстро.
Примечание для модераторов: ув.Модераторы, в правилах раздела сказано вставлять префикс [C.M.D], но увы, у меня его нету, по этому мне пришлось в названии темы дорисовать его. Просьба, по возможности мне его вставить.
Если вам понравилась моя работа или же не понравилась, то просьба поставить оценку на сколько вам понравилась моя работа.
Чтобы поставить оценку, над темой нажмите на кнопку "Оценка этой темы" и выбирите балл от 1-го (Ужасно) до 5-ти (Отлично).

Дополняйте, спрашивайте, комментируйте, оценивайте тему - для меня это очень важно.
Постепенно буду обновлять тему. Также буду следить за обстановкой в теме.
Спасибо за то, что смотрите мои работы. Удачи!!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу