|
Оффлайн
Понедельник, 26.08.2013, 12:22 | Сообщение # 1
|
|
Здравствуйте ув.пользователи 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; } |
|