Главный редактор форума: Doc-John | Текущая дата: 30.11.2024, 06:45
  • Страница 1 из 1
  • 1
[Мануал] Система патруля, как на Samp Rp
Оффлайн
Понедельник, 26.08.2013, 12:22 | Сообщение # 1
Сообщений:
20
0
Здравствуйте ув.пользователи http://isamp.3dn.ru
Сегодня я покажу как сделать систему потруля как на ( Samp Rp ) и как поставить себе на Server.

Добавляем ко всем new

Цитата (Код)
new PlayerInCar[MAX_VEHICLES];
new Pursiut[MAX_PLAYERS];
new TimerWant[MAX_PLAYERS];
new CheckWant[MAX_PLAYERS][2];


Команда:

Цитата (Код)
eelse if(strcmp(cmd, "/patrul", true) == 0)
{
if(Pursiut [playerid]!= -1)
{
DisablePlayerCheckpoint(playerid);
Pursiut [playerid]= -1;
CheckWant[playerid][1] = 0;
SendClientMessage(playerid,-1,"Вы закончили преследование");
KillTimer(TimerWant[playerid]);
return 1;
}
if(IsaPDCar(GetPlayerVehicleID(playerid))&& PlayerInCar[GetPlayerVehicleID(playerid)] == 2)
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 100.0, pos[0],pos[1],pos[2]))
{
if(PlayerInfo [pZvezdi]!= 0 && i != playerid)
{
GetPlayerPos(i,pos[0],pos[1],pos[2]);
CheckWant[playerid][0] = SetPlayerCheckpoint(playerid, pos[0],pos[1],pos[2], 4.0);
CheckWant[playerid][1] = 1;
Pursiut [playerid]= i;
TimerWant [playerid]= SetTimerEx("WantedPlayer",800,true,"i",playerid);
SendClientMessage(playerid,-1,"преследование началось");
}
else
{
SendClientMessage(playerid,-1,"В вашем районе нету преступников");
}
}
}
}
else
{
SendClientMessage(playerid,-1,"Вы не в полицейской машине/Без напарника");
}
return 1;
}

public для таймера:

forward WantedPlayer(playerid);
public WantedPlayer(playerid)
{
if(Pursiut [playerid]!= -1)
{
new Float:pos[3];
GetPlayerPos(Pursiut[playerid],pos[0],pos[1],pos[2]);
if(GetDistanceBetweenPlayers(playerid,Pursiut[playerid]) > 250)
{
Pursiut [playerid]= -1;
CheckWant[playerid][1] = 0;
SendClientMessage(playerid,-1,"преступник скрылся");
KillTimer(TimerWant[playerid]);
DisablePlayerCheckpoint(playerid);
return 1;
}
SetPlayerCheckpoint(playerid, pos[0],pos[1],pos[2], 4.0);
}
return 1;
}

В public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)


Цитата
if(!ispassenger || (ispassenger && PlayerInCar [vehicleid]== 0)) PlayerInCar [vehicleid]= 1;
if(ispassenger && PlayerInCar [vehicleid]== 1 || (!ispassenger && PlayerInCar [vehicleid]== 1)) PlayerInCar [vehicleid]= 2;


в public OnPlayerDisconnect

Цитата
Pursiut [playerid]= -1;


public OnVehicleSpawn(vehicleid)

Цитата (Код)
PlayerInCar [vehicleid]= 0;


в public OnPlayerExitVehicle(playerid, vehicleid)

Цитата (Код)
if(Pursiut [playerid]!= -1)
{
DisablePlayerCheckpoint(playerid);
Pursiut [playerid]= -1;
CheckWant[playerid][1] = 0;
SendClientMessage(playerid,-1,"Вы закончили преследование");
KillTimer(TimerWant[playerid]);
return 1;
}


Функция для проверки машины в которой сидит игрок

Цитата (Код)
stock IsaPDCar(vehicleid)
{
if(GetVehicleModel(vehicleid) >= 596 && GetVehicleModel(vehicleid) <= 597 || GetVehicleModel(vehicleid) == 523) return 1;
return 0;
}
  • Страница 1 из 1
  • 1
Поиск: