Пользователь
- Регистрация
- 21 Мар 2022
- Сообщения
- 12
- Автор темы
- #1
Всем здарова! Давненько хотел выпустить маленький туториал по данной команде, сама команда была взята с другого мода, так как, нигде ее не видел на других форумах. Может кому-то она все таки пригодится
Переменные
C++:
new Text:td_Pursuit[2];
C++:
pPursuitTimer,
pPursuitOfficer,
Сама команда
C++:
CMD:z(playerid, params[])
{
if(!IsACop(playerid)) return SCM(playerid, COLOR_RED, !"Вы не полицейский!"); //Здесь ваша проверка, на полицейского
if(GetPlayerState(playerid)!=2) return SCM(playerid, COLOR_RED, !"Вы должны находится за рулем!"); //Здесь проверка на патрульный автомобиль полиции
new giveplayerid;
if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "Используйте: /z [id]");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: Указанный игрок не найден в сети.");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(!IsPlayerInRangeOfPoint(giveplayerid, 100.0, x, y, z)) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: Указанный игрок не найден в сети.");
if(PlayerInfo[giveplayerid][pWanted] <= 0) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: Указанный игрок не в розыске.");
if(PlayerInfo[giveplayerid][pPursuitOfficer] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: За указанным игроком уже идёт преследование.");
ShowPursuitTD(giveplayerid);
PlayerInfo[giveplayerid][pPursuitTimer] = SetTimerEx("@___CrimePursuit", 1000, true, "i", giveplayerid);
PlayerInfo[giveplayerid][pPursuitOfficer] = playerid;
format(stringer, sizeof(stringer), "Вы начали преследовать %s если он отдалится более чем на 100 метров, то преследование будет закончено",
PlayerInfo[giveplayerid][pNames], giveplayerid);
SendClientMessage(playerid, COLOR_GREEN, stringer);
ShowPlayerDialog(giveplayerid, 0000, DIALOG_STYLE_MSGBOX,
"THE PURSUIT",
"{FFFFFF}\n\
Представители власти начали за вами преследование,\n\
Если вы выйдите игры, тогда вы автоматический будете посажены в тюрьму!\n\
\n\
Если вы отдалитесь от полиции более чем на 100 метров, то режим погони будет аннулирован.\n\
Избегайте полицию и уезжайте как можно дальше.\n\
\n\
Когда табличка {ff0000}THE PURSUIT {ffffff}исчезнит, тогда можете быть спокойны,\n\
это значит, что преследование закончено и вы смогли уехать далеко.\
", "Закрыть", "");
return 1;
}
OnPlayerDisconnect
C++:
PlayerInfo[playerid][pPursuitTimer] > 1)
{
PlayerInfo[playerid][pJailTime] += (PI[playerid][pWanted] + 1) * 600;
PlayerInfo[playerid][pWanted] = 0;
}
OnPlayerConnect
C++:
PlayerInfo[playerid][pPursuitTimer] = -1;
PlayerInfo[playerid][pPursuitOfficer] = INVALID_PLAYER_ID;
Ко всем стокам
C++:
@___CrimePursuit(playerid);
@___CrimePursuit(playerid)
{
if(!IsPlayerConnected(playerid))
{
StopCrimePursuit(playerid);
return;
}
new officer = PlayerInfo[playerid][pPursuitOfficer];
if(!IsPlayerConnected(officer))
{
StopCrimePursuit(playerid);
return;
}
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(!IsPlayerInRangeOfPoint(officer, 100.0, x, y, z))
{
StopCrimePursuit(playerid);
return;
}
}
C++:
stock StopCrimePursuit(playerid)
{
if(PlayerInfo[playerid][pPursuitTimer] != -1)
{
HidePursuitTD(playerid);
KillTimer(PlayerInfo[playerid][pPursuitTimer]);
PlayerInfo[playerid][pPursuitTimer] = -1;
PlayerInfo[playerid][pPursuitOfficer] = INVALID_PLAYER_ID;
}
}
C++:
stock ShowPursuitTD(playerid)
{
for(new i; i < sizeof(td_Pursuit); i++)
TextDrawShowForPlayer(playerid, td_Pursuit[i]);
}
stock HidePursuitTD(playerid)
{
for(new i; i < sizeof(td_Pursuit); i++)
TextDrawHideForPlayer(playerid, td_Pursuit[i]);
}
Текстдрав
C++:
td_Pursuit[0] = TextDrawCreate(140.033447, 326.433319, "");
TextDrawTextSize(td_Pursuit[0], 94.000000, 97.000000);
TextDrawAlignment(td_Pursuit[0], 1);
TextDrawColor(td_Pursuit[0], -1);
TextDrawBackgroundColor(td_Pursuit[0], 0);
TextDrawFont(td_Pursuit[0], 5);
TextDrawSetProportional(td_Pursuit[0], 0);
TextDrawSetPreviewModel(td_Pursuit[0], 596);
TextDrawSetPreviewRot(td_Pursuit[0], 0.000000, 0.000000, 0.000000, 1.000000);
TextDrawSetPreviewVehCol(td_Pursuit[0], 0, 1);
td_Pursuit[1] = TextDrawCreate(148.399963, 380.900024, "THE_Pursuit!_]");
TextDrawLetterSize(td_Pursuit[1], 0.272000, 1.371852);
TextDrawAlignment(td_Pursuit[1], 1);
TextDrawColor(td_Pursuit[1], -46057985);
TextDrawSetShadow(td_Pursuit[1], 0);
TextDrawSetOutline(td_Pursuit[1], 1);
TextDrawBackgroundColor(td_Pursuit[1], 370546431);
TextDrawFont(td_Pursuit[1], 2);
TextDrawSetProportional(td_Pursuit[1], 1);
Код:
PlayerInfo - информация у игроков, меняйте так, как у вас в моде. (Arizona - PI)
stinger - глобальная переменная - тоже меняйте на свое
Последнее редактирование: