Здравствуйте ув.пользователи форума 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,