23.07.2010, 01:26
(
Последний раз редактировалось Jefff; 23.07.2010 в 01:45.
)
Not tested (im using strtok xD)
pawn Код:
stock GetClosestPlayer(playerid)
{
new Float:P[3];
GetPlayerPos(playerid,P[0],P[1],P[2]);
for(new i,MaxP=GetMaxPlayers(); i < MaxP; i++)
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
if(i != playerid)
if(IsPlayerInRangeOfPoint(i, 30.0, P[0],P[1],P[2]))
return i;
return INVALID_PLAYER_ID;
}
CMD:arrest(playerid, cmdtext[])
{
new string[128],giveplayerid,tmp[256],idx;
if(!IsSpawned[playerid]) return SendClientMessage(playerid, red, "You are dead. You cannot use this command");
if(gTeam[playerid] != TEAM_COPS) return SendClientMessage(playerid,red,"You are not a Law Enforcement officer ");
tmp = strtok(cmdtext, idx);
//if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /ar (id)");
if(!strlen(tmp)) giveplayerid = GetClosestPlayer(playerid);
else{
if(!IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /ar (id) ID Must be a number");
giveplayerid = strval(tmp);
}
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "No players in range of point");
if(!IsPlayerConnected(giveplayerid))
{
format(string, sizeof(string), "ID (%d) Is Not On The Server", giveplayerid);
return SendClientMessage(playerid, red, string);
}
new copname[24],arrested[24];
GetPlayerName(playerid,copname, 24);
GetPlayerName(giveplayerid, arrested, 24);
if(GetPlayerWantedLevel(giveplayerid) <= 3)
{
format(string, sizeof(string), "%s(%d) Does Not Have A Warrant Please Use /TK [playerid]",arrested,giveplayerid);
return SendClientMessage(playerid,red,string);
}
if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 10)
{
format(string, sizeof(string), "%s(%d) Is too far away. You Cannot Arrest Him/Her",arrested,giveplayerid);
return SendClientMessage(playerid,red,string);
}
if(!IsSpawned[giveplayerid])
{
format(string, sizeof(string), "%s(%d) Is Not Alive. He/She Is Dead.",arrested,giveplayerid);
return SendClientMessage(playerid,red,string);
}
SetPlayerVirtualWorld(giveplayerid,0);
if(giveplayerid == playerid) return SendClientMessage(playerid,red,"You Can't Arrest Yourself Fucking Idiot");
new spawn = random(sizeof(PrisonSpawn)), Float:health;
GetPlayerHealth(giveplayerid, health);
SendClientMessage(giveplayerid), BLUE, "|____ Los Santos Police Dept. ____|");
format(string, sizeof(string), "Offier %s Has Arrested You.", copname);
SendClientMessage(giveplayerid, TEAL, string);
ResetPlayerWeapons(giveplayerid);
SetPlayerPos(giveplayerid, PrisonSpawn[spawn][0], PrisonSpawn[spawn][1], PrisonSpawn[spawn][2]);
SetPlayerFacingAngle(giveplayerid, PrisonSpawn[spawn][3]);
SetCameraBehindPlayer(giveplayerid);
switch(GetPlayerWantedLevel(giveplayerid)) {
case 4,5: {
PrisonTime[giveplayerid] = 80;
GivePlayerMoney2(giveplayerid,-200);
GivePlayerMoney2(playerid,3000);
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
}
case 6..8: {
PrisonTime[giveplayerid] = 120;
GivePlayerMoney2(giveplayerid,-200);
GivePlayerMoney2(playerid,3500);
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
}
case 9..11: {
PrisonTime[giveplayerid] = 180;
GivePlayerMoney2(giveplayerid,-200);
GivePlayerMoney2(playerid,4000);
SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
}
case 12..14: {
PrisonTime[giveplayerid] = 240;
GivePlayerMoney2(giveplayerid,-200);
GivePlayerMoney2(playerid,4500);
SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
}
case 15..50: {
PrisonTime[giveplayerid] = 300;
GivePlayerMoney2(giveplayerid,-200);
GivePlayerMoney2(playerid,5000);
SetPlayerScore(playerid,GetPlayerScore(playerid)+3);
}
}
SetPlayerWantedLevel(giveplayerid, 0);
SetPlayerInterior(giveplayerid,3);
SetPlayerHealth(giveplayerid,99999);
TogglePlayerControllable(giveplayerid, true);
SetPlayerJailed(giveplayerid, true);
format(string, sizeof(string), "Officer %s[%d] Has Arrested %s[%d].", copname, playerid, arrested, giveplayerid);
SendClientMessageToAll(TEAL,string);
if(health <= 90) {
SendClientMessage(giveplayerid, GREY, "|____ Los Santos Police Dept. ____|");
SendClientMessage(giveplayerid, WHITE, "LSPD has given you some food.");
SetPlayerHealth(giveplayerid, health+10);
OnePlayAnim(giveplayerid, "FOOD", "EAT_Burger", 4.0, 0, 0, 0, 0, 0);
}
return 1;
}