Здравствуйте ув.пользователи форума Pawn Play. Выкладываю Вам команду /settp and /tp для проведения мероприятия. 100 % копия Advance RP. Единственный нюанс, на Advance RP есть такие проверки в команде, когда ты лечишься в больнице или работаешь на шахте, заводе и т.д.,то Вам пишет при вводе /tp: "Сначала закончите все свои активные действия и работы". У каждого в моде свои проверки, по этому меняйте переменные на свои и добавляйте нужные. Я вам оставлю готовый рабочий пример из своего мода Funny RP
Итак приступим:
К переменным:
new Float:TeleportFloat[3]; new TeleportInfo[2];
К командам (Pawn.CMD):
/settp:
CMD:settp(playerid) { if(Player[playerid][pAdmin] < 4) return 1; new admstr[95]; if(settp == 0) { GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]); // Записываем координаты TeleportInfo[0] = GetPlayerInterior(playerid); // Записываем интерьер TeleportInfo[1] = GetPlayerVirtualWorld(playerid); // Записываем виртуальный мир settp = 1; format(admstr, sizeof(admstr), "[A] %s[%d] установил точку телепорта для игроков. {00CC00}ТП включен.", Player[playerid][pName],playerid); SendAdminMessage(0x00BFFFff, admstr); } else { format(admstr, sizeof(admstr), "[A] %s[%d] удалил точку телепорта для игроков. {FF6600}ТП отключен.", Player[playerid][pName],playerid); SendAdminMessage(0x00BFFFff, admstr); settp = 0; return 1; } return 1; }
/tp:
CMD:tp(playerid) { if(settp == 0) return SendClientMessage(playerid, COLOR_GRAD, "Функция отключена администратором"); new plo; if(Player[plo][pJailed] >= 1) return SendClientMessage(playerid, COLOR_GRAD, "Арестованным не разрешено покидать камеру"); if(Player[playerid][pRabota] != 0) return SendClientMessage(playerid, COLOR_GRAD, "Необходимо завершить все начатые работы и активные действия"); if(Hospital[playerid] == true) return SendClientMessage(playerid, COLOR_GRAD, "Необходимо завершить все начатые работы и активные действия"); else SPD(playerid, 22, DIALOG_STYLE_MSGBOX, "{0099FF}Телепортация", "{FFFFFF}Вы уверены, что хотите попасть на место проведения мероприятия?\n{FFFF00}Предупреждение: всё Ваше оружие будет конфисковано.", "Да", "Нет"); return 1; }
В OnDialogResponse:
case 22: { if(!response) return 1; SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]); SetPlayerInterior(playerid, TeleportInfo[0]); SetPlayerVirtualWorld(playerid, TeleportInfo[1]); Clearweapon_anti_cheat(playerid); ResetPlayerWeapons(playerid); SendClientMessage(playerid, COLOR_BLUE, "Вы были доставлены на место проведения мероприятия"); return 1; }
Вот скриншоты:
Если игрок сидит в КПЗ и вводит /tp:
При включенном /tp:
При выключенном /tp:
Сообщение администраторам:
Если работаешь или лечишься в больнице:
Автор: Danny_Marcelo
Теги: ARP,