Внимание автор этого кода не я ,а narkk3. Я играл на Energy-Rp и мне понравилось одна система когда админ делает mp. Кто хочет пишет /mptp. Надеюсь оно вам поможет Начнем: К new
new Teleport = 0; new Float:TeleportFloat[3]; new TeleportInfo[2]; new stringmp[144];
if(strcmp(cmd, "/mp", true) == 0) { if(PINFO[playerid][pAdminLVL] < 4) return SendClientMessage(playerid, COLOR_GREY, "У вас нет прав!"); ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{FF6F00}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть"); return true; }
Команда /tpmp:
if(strcmp(cmd, "/tpmp", true) == 0) { if(Teleport == 0) return 1; else ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_MSGBOX, "{FF6F00}Телепортация", "{FFFFFF}Вы уверены, что хотите попасть в место проведения мероприятия?", "Да", "Нет"); return 1; }
Далее делаем case всего их 3
case 5343: case 5343: { if(!response) return 1; switch(listitem) { case 0: { if(Teleport == 0) { GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]); TeleportInfo[0] = GetPlayerInterior(playerid); TeleportInfo[1] = GetPlayerVirtualWorld(playerid); Teleport = 1; format(stringmp, sizeof(stringmp), "Администратор %s[%d] открыл телепорт для игроков. Чтобы телепортироваться введите: {0abf12}/tpmp", GN(playerid), playerid); SCMTA(COLOR_GOLD, stringmp, 1); } else { Teleport = 0; format(stringmp, sizeof(stringmp), "Администратор %s[%d] закрыл телепорт для игроков. Телепортирование {CC0000}запрещено", GN(playerid), playerid); SCMTA(COLOR_GOLD, stringmp, 1); } } case 1: return ShowPlayerDialog(playerid, 5346, DIALOG_STYLE_INPUT, "{0CB4D6}Выдача оружия", "{FFFFFF}Введите ID оружия и патроны\nНапример: 31,500\nГде 31 - m4, а 500 патроны", "Выдать", "Назад"); case 2: { foreach (new i : Player) { if(GetDistanceBetweenPlayers(playerid, i) > 50) continue; SetPlayerHealthAC(i, 100.0); SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор выдал Вам жизни для участия мероприятии!"); } } case 3: { foreach (new i : Player) { if(GetDistanceBetweenPlayers(playerid,i) > 50) continue; ResetPlayerWeapons(i); SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор забрал у Вас оружие на время мероприятия!"); } } } ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{0CB4D6}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть"); return 1; }
case 5346: case 5346: { if(!response) return ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{0CB4D6}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть"); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 5346, DIALOG_STYLE_INPUT, "{0CB4D6}Выдача оружия", "{FFFFFF}Введите id оружия и патроны\nПример: 31,500\nГде 31 m4 а 500 патроны", "Выдать", "Назад"); else if(strfind(inputtext,",", true) != -1) { new razdel[2][24]; split(inputtext, razdel, ','); foreach (new i : Player) { if(GetDistanceBetweenPlayers(playerid, i) > 50) continue; GivePlayerWeaponAC(i, strval(razdel[0]), strval(razdel[1])); SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор выдал Вам оружие для мероприятия. В случае DM - Варн!"); } } return 1; }
case 3333: case 3333: { if(!response) return 1; SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1]+2, TeleportFloat[2]); SetPlayerInterior(playerid, TeleportInfo[0]); SetPlayerVirtualWorld(playerid, TeleportInfo[1]); SCM(playerid, COLOR_ORANGE, "Вы были {0abf12}успешно {FFA500}телепортированы на мероприятие"); return 1; }