#define FILTERSCRIPT #include <a_samp> #include <a_http> #include <streamer> #include <zcmd> #include <gtazones> #include <YSI\y_ini> #include <sscanf2> #include <dini> #include <foreach> #include "../include/gl_common.inc" //Dialogs #define DIALOG_SPAWNERMAIN 500 #define DIALOG_EQUIPMENT 501 #define DIALOG_PISTOLS 502 #define DIALOG_HEAVYWEPS 503 #define DIALOG_MELEE 504 #define DIALOG_CLOTHING 505 #define DISTANCE_BETWEEN_PLAYERS 5 #define COLOR_FAIL 0x00FFFFFF #define COLOR_ERROR 0xFF0000FF #define ROB_TIME 300000 #define SECONDS 10 #define TAZE_MS 400 //Colors #define COLOR_GREY 0xAD9797FF #define COLOR_GREEN 0x58AB54FF #define COLOR_PURPLE 0x963A99FF #define COLOR_YELLOW 0xEAFF03FF #define COLOR_LIGHTBLUE 0x7ED5F2FF #define COLOR_RED 0xFF0D1DFF #define COLOR_WHITE 0xFFFFFFFF #define COLOR_BLUE 0x5D00FFFF #define NORMAL_PLAYER 0 #define COP_RANK_1 1 #define COP_RANK_2 2 #define COP_RANK_3 3 #define COP_RANK_4 4 #define COP_RANK_5 5 #define COP_RANK_6 6 #define COP_RANK_7 7 #define COP_RANK_8 8 #define COP_COLOR 0x375FFFFF #define RED #define DIALOG_TICKET 1 #define DIALOG_COP_HELP 2 new gTeam[MAX_PLAYERS]; new CopDuty[MAX_PLAYERS]; new JailTimer[MAX_PLAYERS]; new pTazed[MAX_PLAYERS]; new CountTimer[MAX_PLAYERS]; new Count; enum Statistics { Arrests, Tickets, Suspected_Players, TicketingCop[MAX_PLAYERS], Jailed, JailTime, }; new Info[MAX_PLAYERS][Statistics]; forward TeamChat(string[]); forward robtimer(id); forward Jail1(player1); forward Jail2(player1); forward Jail3(player1); forward JailPlayer(player1); forward UnjailPlayer(player1); forward Unfreeze(playerid); forward Tazed(playerid); forward CountDown(playerid); public OnFilterScriptInit() { //Labels Create3DTextLabel("LSPD Head Quarters", COLOR_WHITE, 1568.6295,-1689.9706,6.2188, 10.0, 0, 0); Create3DTextLabel("Los Santos Police Department", COLOR_WHITE, 1554.0641,-1708.2268,6.2188, 10.0, 0, 0); Create3DTextLabel("Los Santos Police Department", COLOR_WHITE, 1550.8027,-1697.4136,6.2188, 10.0, 0, 0); Create3DTextLabel("Los Santos Police Department", COLOR_WHITE, 1532.0746,-1672.9426,6.2188, 10.0, 0, 0); Create3DTextLabel("Los Santos Police Department", COLOR_WHITE, 1549.7200,-1656.8212,6.2188, 10.0, 0, 0); return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerConnect(playerid) { gTeam[playerid] = 0; CopDuty[playerid] = 0; Info[playerid][Jailed] = 0; Info[playerid][JailTime] = 0; new string[128], Playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, Playername, sizeof(Playername)); format(string, sizeof(string), "Police System/%s.ini", Playername); if(fexist(string)) { gTeam[playerid] = dini_Int(string, "Team"); Info[playerid][Jailed] = dini_Int(string, "Jailed"); Info[playerid][JailTime] = dini_Int(string, "Jail Timer"); SetPlayerWantedLevel(playerid, dini_Int(string, "Wanted Level")); if((gTeam[playerid] <= ![]() { Info[playerid][Arrests] = dini_Int(string, "Arrests"); Info[playerid][Tickets] = dini_Int(string, "Tickets"); Info[playerid][Suspected_Players] = dini_Int(string, "Suspected Players"); } } else { dini_Create(string); dini_IntSet(string, "Team", gTeam[playerid]); dini_IntSet(string, "Jailed", Info[playerid][Jailed]); dini_IntSet(string, "Jail Timer", Info[playerid][JailTime]); dini_IntSet(string, "Wanted Level", GetPlayerWantedLevel(playerid)); dini_IntSet(string, "Arrests", Info[playerid][Arrests]); dini_IntSet(string, "Tickets", Info[playerid][Tickets]); dini_IntSet(string, "Suspected Players", Info[playerid][Suspected_Players]); } if(Info[playerid][Jailed] == 1) { SendClientMessage(playerid, RED, "You can't escape your punishment, you are still in jail!"); SetTimerEx("JailPlayer",3000,0,"d",playerid); JailTimer[playerid] = SetTimerEx("UnjailPlayer",Info[playerid][JailTime],0,"d",playerid); } return 0; } public OnPlayerDisconnect(playerid, reason) { new string[128], Playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, Playername, sizeof(Playername)); format(string, sizeof(string), "Police System/%s.ini", Playername); if(fexist(string)) { dini_IntSet(string, "Team", gTeam[playerid]); dini_IntSet(string, "Jailed", Info[playerid][Jailed]); dini_IntSet(string, "Jail Timer", Info[playerid][JailTime]); dini_IntSet(string, "Wanted Level", GetPlayerWantedLevel(playerid)); if((gTeam[playerid] <= ![]() { dini_IntSet(string, "Arrests", Info[playerid][Arrests]); dini_IntSet(string, "Tickets", Info[playerid][Tickets]); dini_IntSet(string, "Suspected Players", Info[playerid][Suspected_Players]); } } else { dini_Create(string); dini_IntSet(string, "Team", gTeam[playerid]); dini_IntSet(string, "Jailed", Info[playerid][Jailed]); dini_IntSet(string, "Jail Timer", Info[playerid][JailTime]); dini_IntSet(string, "Wanted Level", GetPlayerWantedLevel(playerid)); if((gTeam[playerid] <= ![]() { dini_IntSet(string, "Arrests", Info[playerid][Arrests]); dini_IntSet(string, "Tickets", Info[playerid][Tickets]); dini_IntSet(string, "Suspected Players", Info[playerid][Suspected_Players]); } } if(CopDuty[playerid] == 1) { ResetPlayerWeapons(playerid); CopDuty[playerid] = 0; return 1; } return 1; } |
CMD:invite(playerid, params[]) { if((gTeam[playerid] == 8) || (IsPlayerAdmin(playerid))) { if((CopDuty[playerid] == 1) || (IsPlayerAdmin(playerid))) { if(!strlen(params)) return SendClientMessage(playerid, RED, "Usage: /invite [Player Id]"); new player1, playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME], string[128]; player1 = strval(params); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { if(gTeam[player1] == 0) { GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, copname, sizeof(copname)); gTeam[player1] = 1; format(string,sizeof(string),"Police Commissioner %s has invited %s to the Police Team", copname, playername); return SendClientMessageToAll(COP_COLOR,string); } else return SendClientMessage(playerid, RED, "ERROR: This player is already in the Police Team"); } else return SendClientMessage(playerid, RED, "ERROR: Player not found"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You need to be a Police Commissioner to use this command"); } CMD:acop(playerid, params[]) { if(IsPlayerAdmin(playerid)) { return cmd_invite(playerid, params); } return 1; } CMD:uninvite(playerid,params[]) { if((gTeam[playerid] == 8) || (IsPlayerAdmin(playerid))) { if((CopDuty[playerid] == 1) || (IsPlayerAdmin(playerid))) { if(!strlen(params)) return SendClientMessage(playerid, RED, "Usage: /uninvite [Player Id]"); new player1, playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME], string[128]; player1 = strval(params); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { if((gTeam[player1] <= 8) && (gTeam[player1] > 0)) { GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, copname, sizeof(copname)); gTeam[player1] = 0; format(string,sizeof(string),"Police Commissioner %s has uninvited %s from the Police Team", copname, playername); return SendClientMessageToAll(COP_COLOR,string); } else return SendClientMessage(playerid, RED, "ERROR: You can't uninvite a player who is not in the Police Team"); } else return SendClientMessage(playerid, RED, "ERROR: Player not found"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You need to be a Police Commissioner to use this command"); } CMD:setrank(playerid,params[]) { if((gTeam[playerid] == 8) || (IsPlayerAdmin(playerid))) { if((CopDuty[playerid] == 1) || (IsPlayerAdmin(playerid))) { new tmp [256]; new tmp2[256]; new Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); if(!strlen(params)) { return SendClientMessage(playerid,RED,"Usage: /setrank [Player Id][Rank 1-8]"); } new player1, rank, playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME], string[128]; player1 = strval(tmp); if(!strlen(tmp2)) return SendClientMessage(playerid,RED,"Usage: /setrank [Player Id][Rank 1-8]"); rank = strval(tmp2); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { if((gTeam[player1] <= 8) && (gTeam[player1] > 0)) { if(rank > 8 || rank < 1) return SendClientMessage(playerid,RED,"ERROR: Invalid rank [1-8]"); if(rank == gTeam[player1]) return SendClientMessage(playerid,RED,"ERROR: Player is already this rank"); GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, copname, sizeof(copname)); gTeam[player1] = rank; new Rank[64]; if(gTeam[player1] == 1) { Rank = "Police Officer"; } else if(gTeam[player1] == 2) { Rank = "Investigator"; } else if(gTeam[player1] == 3) { Rank = "Sergeant"; } else if(gTeam[player1] == 4) { Rank = "Lieutenant"; } else if(gTeam[player1] == 5) { Rank = "Major"; } else if(gTeam[player1] == 6) { Rank = "Captain"; } else if(gTeam[player1] == 7) { Rank = "Commander"; } else if(gTeam[player1] == 8) { Rank = "Commissioner"; } if(rank > 0 && rank < 9) format(string,sizeof(string),"Police Radio: Commissioner %s has set %s's rank to %i [%s]",copname, playername, rank, Rank); TeamChat(string); return PlayerPlaySound(player1,1057,0.0,0.0,0.0); } else return SendClientMessage(playerid, RED, "ERROR: This player is not in the Police Team!"); } else return SendClientMessage(playerid, RED, "ERROR: Player not found!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You need to be a Police Commissioner to use this command"); } CMD:arrest(playerid,params[]) { if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if(CopDuty[playerid] == 1) { if(!strlen(params)) return SendClientMessage(playerid, RED, "Usage: /arrest [Player Id]"); new player1, playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME], string[128]; player1 = strval(params); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { if(GetPlayerWantedLevel(player1) >= 2) { if(!IsPlayerInAnyVehicle(player1)) { if(GetDistanceBetweenPlayers(playerid, player1) < 10) { GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, copname, sizeof(copname)); new jtime; new reward; reward = GetPlayerWantedLevel(player1); jtime = GetPlayerWantedLevel(player1); Info[player1][JailTime] = jtime*1000*60; Info[player1][Jailed] = 1; SetTimerEx("Jail1",1000,0,"d",player1); SetTimerEx("JailPlayer",5000,0,"d",player1); GivePlayerMoney(playerid, reward*1000); SetPlayerWantedLevel(player1, 0); SetPlayerScore(playerid, GetPlayerScore(playerid) +reward*5); JailTimer[player1] = SetTimerEx("UnjailPlayer",Info[player1][JailTime],0,"d",player1); format(string,sizeof(string),"Officer %s has arrested %s for %i minutes", copname, playername, jtime); SendClientMessageToAll(COP_COLOR,string); Info[playerid][Arrests]++; new string2[256]; format(string2,sizeof(string2), "Congratulations, Officer %s, you received $%i and %i score for arresting a %i-star wanted criminal!", copname, reward*1000, reward*5, reward); return SendClientMessage(playerid, RED, string2); } else return SendClientMessage(playerid, RED, "ERROR: You need to be close to the player to arrest him."); } else return SendClientMessage(playerid, RED, "ERROR: Player is in a vehicle!"); } else return SendClientMessage(playerid, RED, "ERROR: This player doesn't have 2+ stars, you can't arrest him."); } else return SendClientMessage(playerid, RED, "ERROR: Player not found"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command"); } CMD:release(playerid,params[]) { if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if((gTeam[playerid] > 3) && (gTeam[playerid] <=8)) { if(CopDuty[playerid] == 1) { if(!strlen(params)) return SendClientMessage(playerid, RED, "Usage: /release [Player Id]"); new player1, playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME], string[128]; player1 = strval(params); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { if(Info[player1][Jailed] == 1) { KillTimer(JailTimer[player1]); GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, copname, sizeof(copname)); Info[player1][Jailed] = 1; SetTimerEx("UnjailPlayer",1,0,"d",player1); format(string,sizeof(string),"Officer %s has released %s from jail", copname, playername); SendClientMessageToAll(COP_COLOR,string); new string2[256]; format(string2,sizeof(string2), "Officer %s has released you from jail!", copname); return SendClientMessage(player1, RED, string2); } else return SendClientMessage(playerid, RED, "ERROR: This player is not jailed!"); } else return SendClientMessage(playerid, RED, "ERROR: Player not found!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: Only Ranks 4 and higher can use the /release command!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command!"); } CMD:ticket(playerid,params[]) { if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if(CopDuty[playerid] == 1) { if(!strlen(params)) return SendClientMessage(playerid, RED, "Usage: /ticket [Player Id]"); new player1, playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME], string[128]; player1 = strval(params); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { if(GetPlayerWantedLevel(player1) == 1) { if(GetPlayerMoney(player1) >= 1000) { if(!IsPlayerInAnyVehicle(player1)) { if (GetDistanceBetweenPlayers(playerid, player1) < 10) { KillTimer(CountTimer[player1]); GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, copname, sizeof(copname)); format(string,sizeof(string),"Officer %s has given you a ticket.",copname); ShowPlayerDialog(player1, DIALOG_TICKET, DIALOG_STYLE_MSGBOX, string, "You can choose to pay or NOT to pay the ticket: \n•If you choose to pay (Costs 1000$), your wanted level \nwill decrease to zero. \n•If you choose NOT to pay, your wanted level \nwill increase to 2 stars. \n \n{F00000}Note: {FFFFFF}You have only 10 seconds to choose between these \noptions, otherwise your will sutomatically get an additional star!", "Pay", "Don't pay"); format(string, sizeof(string), "Officer %s has given %s a ticket", copname, playername); Info[playerid][Tickets]++; Info[player1][TicketingCop] = playerid; Count = 10; CountTimer[player1] = SetTimerEx("CountDown",1000,1,"i",player1); GameTextForPlayer(player1, "~r~10", 1000, 4); return SendClientMessageToAll(COP_COLOR, string); } else return SendClientMessage(playerid, RED, "ERROR: You need to be close to the player to give him a ticket."); } else return SendClientMessage(playerid, RED, "ERROR: Player is in a vehicle!"); } else return SendClientMessage(playerid, RED, "ERROR: This player does not have $1000!"); } else return SendClientMessage(playerid, RED, "ERROR: This player does not have 1 star wanted level!"); } else return SendClientMessage(playerid, RED, "ERROR: Player not found"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command"); } CMD:r(playerid,params[]) { if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if(CopDuty[playerid] == 1) { new copname[MAX_PLAYER_NAME],formatted[156]; if(!strlen(params)) return SendClientMessage(playerid,RED,"Usage: /r [text]"); GetPlayerName(playerid,copname,sizeof(copname)); new CopRank[64]; if(gTeam[playerid] == 1) { CopRank = "Police Officer"; } else if(gTeam[playerid] == 2) { CopRank = "Investigator"; } else if(gTeam[playerid] == 3) { CopRank = "Sergeant"; } else if(gTeam[playerid] == 4) { CopRank = "Lieutenant"; } else if(gTeam[playerid] == 5) { CopRank = "Major"; } else if(gTeam[playerid] == 6) { CopRank = "Captain"; } else if(gTeam[playerid] == 7) { CopRank = "Commander"; } else if(gTeam[playerid] == 8) { CopRank = "Commissioner"; } format(formatted,sizeof(formatted),"Police Radio: %s %s: %s, over.",CopRank,copname,params); return TeamChat(formatted); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command!"); } CMD:copduty(playerid,params[]) { #pragma unused params if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { new cop[MAX_PLAYER_NAME]; new string[256]; if(IsPlayerInRangeOfPoint(playerid, 7.0, 1459.2537,-1760.4387,3285.2859)) { if(CopDuty[playerid] == 0) { CopDuty[playerid] = 1; new copskin; if(gTeam[playerid] == 1) { copskin = 280; } else if (gTeam[playerid] == 2) { copskin = 165; } else if (gTeam[playerid] == 3) { copskin = 163; } else if (gTeam[playerid] == 4) { copskin = 164; } else if (gTeam[playerid] == 5) { copskin = 282; } else if (gTeam[playerid] == 6) { copskin = 285; } else if (gTeam[playerid] == 7) { copskin = 286; } else if (gTeam[playerid] == 8) { copskin = 287; } SetPlayerSkin(playerid, copskin); GivePlayerWeapon(playerid, 17, 25); GivePlayerWeapon(playerid, 3, 1); GivePlayerWeapon(playerid, 28, 1000); GivePlayerWeapon(playerid, 31, 1000); GivePlayerWeapon(playerid, 34, 100); GivePlayerWeapon(playerid, 41, 1000); GivePlayerWeapon(playerid, 26, 200); GivePlayerWeapon(playerid, 23, 100); GetPlayerName(playerid, cop, sizeof(cop)); format(string, sizeof(string), "Police Radio: Officer %s is now on duty!", cop); return TeamChat(string); } if(CopDuty[playerid] == 1) { CopDuty[playerid] = 0; ResetPlayerWeapons(playerid); GetPlayerName(playerid, cop, sizeof(cop)); format(string, sizeof(string), "Police Radio: Officer %s is now off duty!", cop); return TeamChat(string); } else return 1; } else return SendClientMessage(playerid, RED, "ERROR: You are not at the lockers in the LSPD HQ."); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command"); } CMD:wlist(playerid,params[]) { #pragma unused params if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if(CopDuty[playerid] == 1) { new count = 0; new string[128]; SendClientMessage(playerid, 0x00FF00FF, " "); SendClientMessage(playerid, 0x00FF00FF, "___________{F00000} |- Online Criminals -| {00FF00}___________"); SendClientMessage(playerid, 0x00FF00FF, " "); for(new i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { if (GetPlayerWantedLevel(i) >= 1) { new name[MAX_PLAYER_NAME]; GetPlayerName(i,name,sizeof(name)); format(string, 128, "%s [%d] | Wanted Level: %i",name,playerid,GetPlayerWantedLevel(i)); SendClientMessage(playerid, COP_COLOR, string); count++; } } } if (count == 0) SendClientMessage(playerid,RED,"There are currently no criminals online"); return SendClientMessage(playerid, 0x00FF00FF, " _______________________________________"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command!"); } CMD:su(playerid, params[]) { if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if((gTeam[playerid] > 2) && ((gTeam[playerid] <= 8) && (gTeam[playerid] > 0))) { if(CopDuty[playerid] == 1) { new player1; new gWantedLevel; new string[128]; new copname[MAX_PLAYER_NAME]; new playername[MAX_PLAYER_NAME]; new tmp [128]; new tmp2 [128]; new Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); if(!strlen(params)) return SendClientMessage(playerid, RED, "USAGE: /su [Player Id][Reason]"); if(!strlen(tmp2)) return SendClientMessage(playerid, RED, "ERROR: Reason unspecified!"); GetPlayerName(playerid, copname, sizeof(copname)); GetPlayerName(player1, playername, sizeof(playername)); player1 = strval(tmp); format(string, sizeof(string), "Officer %s has suspected %s. [Reason: %s]", copname, playername, params[2]); SendClientMessageToAll(COP_COLOR, string); Info[playerid][Suspected_Players]++; gWantedLevel = GetPlayerWantedLevel(player1); return SetPlayerWantedLevel(player1, gWantedLevel + 1); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: Only Ranks 3 and higher can use the /su command!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a Cop to use this command!"); } CMD:cops(playerid,params[]) { #pragma unused params new count = 0; new string[128]; SendClientMessage(playerid, 0x00FF00FF, " "); SendClientMessage(playerid, 0x00FF00FF, "___________{375FFF} |- Online Cops -| {00FF00}___________"); SendClientMessage(playerid, 0x00FF00FF, " "); for(new i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { if((gTeam[i] <= 8) && (gTeam[i] > 0)) { new name[MAX_PLAYER_NAME]; new CopRank[64]; if(gTeam[i] == 1) { CopRank = "Police Officer"; } else if(gTeam[i] == 2) { CopRank = "Investigator"; } else if(gTeam[i] == 3) { CopRank = "Sergeant"; } else if(gTeam[i] == 4) { CopRank = "Lieutenant"; } else if(gTeam[i] == 5) { CopRank = "Major"; } else if(gTeam[i] == 6) { CopRank = "Captain"; } else if(gTeam[i] == 7) { CopRank = "Commander"; } else if(gTeam[i] == 8) { CopRank = "Commissioner"; } GetPlayerName(i,name,sizeof(name)); format(string, 128, "%s %s (%d)",CopRank,name,i); SendClientMessage(playerid, COP_COLOR, string); count++; } } } if (count == 0) SendClientMessage(playerid,RED,"There are currently no cops online"); return SendClientMessage(playerid, 0x00FF00FF, " _______________________________________"); } CMD:backup(playerid,params[]) { #pragma unused params if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if(CopDuty[playerid] == 1) { SetPlayerColor(playerid, 0xF00000FF); new name[MAX_PLAYER_NAME]; new string[256]; GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Police Radio: Officer %s [%d] is requesting for backup! (To help Officer %s type /cgoto %d)",name, playerid, name, playerid); TeamChat(string); return TeamChat("Police Radio: Marker has been set to red"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be on cop duty!"); } else return SendClientMessage(playerid, RED, "ERROR: You have to be a cop to use this command!"); } CMD:cstats(playerid,params[]) { new string[128]; new player1; new name[MAX_PLAYER_NAME]; if(!strlen(params)) player1 = playerid; else player1 = strval(params); if(IsPlayerConnected(player1)) { if((gTeam[player1] <= 8) && (gTeam[player1] > 0)) { GetPlayerName(player1, name, sizeof(name)); format(string, sizeof(string), "|- %s's Police Statistics -|",name); SendClientMessage(playerid, 0x00FF00FF, string); format(string, sizeof(string), "Arrested players: %d | Tickets given: %d | Suspected players: %d", Info[player1][Arrests], Info[player1][Tickets], Info[player1][Suspected_Players]); return SendClientMessage(playerid, 0x00FF00FF, string); } else if(!strlen(params)) return SendClientMessage(playerid, RED, "ERROR: You are not a Cop!"); else return SendClientMessage(playerid, RED, "ERROR: This player is not a Cop!"); } else return SendClientMessage(playerid, RED, "ERROR: Player not found!"); } CMD:cophelp(playerid,params[]) { #pragma unused params new string[1500] = "{FFFFFF}LSPD HQ - The place where you turn Cop Duty on or off \n{FFFFFF} - {F00000}/copduty{FFFFFF} - Turn Cop Duty on or off \n{F00000}/wlist{FFFFFF} - See the full list of wanted players online \n{F00000}/arrest [ID]{FFFFFF} - Arrest a player if he has more than 2 stars wanted level \n{F00000}/ticket [ID]{FFFFFF} - Give a ticket to a player is he has 1 star wanted level"; strcat(string," \n{F00000}/su [ID][Reason]{FFFFFF} - Give an additional star wanted level to a player [Reason required](Only for Rank 3 or higher) \n{F00000}/eject [ID]{FFFFFF} - Eject a wanted player from his vehicle \n{F00000}/r [Text]{FFFFFF} - Police Chat \n {F00000}/backup{FFFFFF} - Request backup to other Cops \n{00FF00}/cstats [Cop ID]{FFFFFF} - See the archievements of a specific Cop"); strcat(string," \n{00FF00}/cops{FFFFFF} - See the full list of Cops online \n{00FF00}/cophelp{FFFFFF} - Opens this dialog \n - /invite [ID]{FFFFFF} - Invite a player into the Police Team (Only for Rank 8 [Police Commissioner]) \n{F00000}/uninvite [ID]{FFFFFF} - Uninvites a Cop from the Police Team (Only for Rank 8 [Police Commissioner]) \n{F00000}/setrank [ID][Rank]{FFFFFF} - Set a Cop's Rank (Only for Rank 8 [Police Commissioner])"); ShowPlayerDialog(playerid,5,0, "{0080C0}Available Cop Commands",string,"Close",""); return 1; } public OnPlayerSpawn(playerid) { if(Info[playerid][Jailed] == 1) { SetTimerEx("JailPlayer",1000,0,"d",playerid); new name[MAX_PLAYER_NAME]; new string[256]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "%s has automatically been jailed (Trying to escape punishment)", name); SendClientMessageToAll(0xFF8000FF, string); } if((gTeam[playerid] <= 8) && (gTeam[playerid] > 0)) { if(CopDuty[playerid] == 1) { new copskin; if(gTeam[playerid] == 1) { copskin = 280; } else if (gTeam[playerid] == 2) { copskin = 165; } else if (gTeam[playerid] == 3) { copskin = 163; } else if (gTeam[playerid] == 4) { copskin = 164; } else if (gTeam[playerid] == 5) { copskin = 282; } else if (gTeam[playerid] == 6) { copskin = 285; } else if (gTeam[playerid] == 7) { copskin = 286; } else if (gTeam[playerid] == 8) { copskin = 287; } SetPlayerSkin(playerid, copskin); GivePlayerWeapon(playerid, 17, 25); GivePlayerWeapon(playerid, 3, 1); GivePlayerWeapon(playerid, 28, 1000); GivePlayerWeapon(playerid, 31, 1000); GivePlayerWeapon(playerid, 34, 100); GivePlayerWeapon(playerid, 41, 1000); GivePlayerWeapon(playerid, 26, 200); GivePlayerWeapon(playerid, 23, 100); } } return 1; } public Jail1(player1) { TogglePlayerControllable(player1,false); new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerCameraPos(player1,x+10,y,z+10); SetPlayerCameraLookAt(player1,x,y,z); SetTimerEx("Jail2",1000,0,"d",player1); } public Jail2(player1) { new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z); if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP); GameTextForPlayer(player1,"~r~Busted By Police",3000,3); SetTimerEx("Jail3",1000,0,"d",player1); } public Jail3(player1) { new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z); } public JailPlayer(player1) { TogglePlayerControllable(player1,true); SetPlayerPos(player1,197.6661,173.8179,1003.0234); SetPlayerInterior(player1,3); SetCameraBehindPlayer(player1); Info[player1][Jailed] = 1; } public UnjailPlayer(player1) { KillTimer(JailTimer[player1]); Info[player1][JailTime] = 0; Info[player1][Jailed] = 0; SetPlayerInterior(player1,0); SpawnPlayer(player1); PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3); } public TeamChat(string[]) { foreach(Player,i) { if((gTeam[i] <= 8) && (gTeam[i] > 0)) { SendClientMessage(i,COP_COLOR,string); } } return 1; } stock GetDistanceBetweenPlayers(playerid, playerid2) { new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2; new Float:tmpdis; GetPlayerPos(playerid, x1, y1, z1); GetPlayerPos(playerid2, x2, y2, z2); tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2, x1)), 2) + floatpower(floatabs(floatsub(y2, y1)), 2) + floatpower(floatabs(floatsub(z2, z1)), 2)); return floatround(tmpdis); } public Tazed(playerid) { pTazed[playerid] = 0; TogglePlayerControllable(playerid, true); ClearAnimations(playerid); return 1; } public CountDown(playerid) { Count--; if(Count == 0) { ShowPlayerDialog(playerid,-1,0, " ", " ", " ", " "); GameTextForPlayer(playerid, "~g~You took too long to pay the ticket...",3000,3); SetPlayerWantedLevel(playerid, 2); new name[MAX_PLAYER_NAME]; new string[256]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "%s took too long to pay the ticket", name); SendClientMessageToAll(COP_COLOR, string); return KillTimer(CountTimer[playerid]); } if(Count < 0) return KillTimer(CountTimer[playerid]); new string[128]; format(string,sizeof(string),"~r~%i",Count); GameTextForPlayer(playerid,string,1000,4); return 1; } //ZCMD Command processing(Fast Commands) CMD:locker(playerid, params[]) { if(IsPlayerInRangeOfPoint(playerid, 3.0, 1459.2537,-1760.4387,3285.2859)) { ShowPlayerDialog(playerid, DIALOG_EQUIPMENT, DIALOG_STYLE_LIST, "LSPD Locker", "Pistols \nHeavy weapons \nMelee weapons \nEquipment Suits(Skins) \nDonuts \nGo on duty", "Select", "Exit"); } return 1; } //END OF ZCMD public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_EQUIPMENT) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid, DIALOG_PISTOLS, DIALOG_STYLE_LIST, "Equipment - Pistols", "Colt. 45 \nColt. 45 w/Silencer \nDesert Eagle \nBack", "Select", "Exit"); } if(listitem == 1) { ShowPlayerDialog(playerid, DIALOG_HEAVYWEPS, DIALOG_STYLE_LIST, "Equipment - Heavy weapons", "M4 Carbine \nShotgun \nRifle \nSniper \nMP5 \nBack", "Select", "Exit"); } if(listitem == 2) { ShowPlayerDialog(playerid, DIALOG_MELEE, DIALOG_STYLE_LIST, "Equipment - Melee", "Nitestick \nPepper-Spray \nTear Gas \nBack", "Select", "Exit"); } if(listitem == 3) { ShowPlayerDialog(playerid, DIALOG_CLOTHING, DIALOG_STYLE_LIST, "Equipment - Clothing", "Cadet \nPolice Uniform \nSWAT Uniform \nBack", "Select", "Exit"); } if(listitem == 4) { SetPlayerHealth(playerid, 100); SendClientMessage(playerid, COLOR_WHITE, "[DONUTS]:{AD9797} You have eaten some donuts, and your feeling quite bloated."); ShowPlayerDialog(playerid, DIALOG_EQUIPMENT, DIALOG_STYLE_LIST, "LSPD Locker", "Pistols \nHeavy weapons \nMelee weapons \nDonuts \nGo on duty", "Select", "Exit"); } if(listitem == 5) { SetPlayerColor(playerid, COLOR_BLUE); new string[256], pName[MAX_PLAYER_NAME]; GetPlayerName(playerid,pName,MAX_PLAYER_NAME); format(string,sizeof string,"Police Officer: {FFFFFF}%s is now on duty.",pName); SendClientMessageToAll(COLOR_BLUE,string); GetPlayerName(playerid, pName,MAX_PLAYER_NAME); } } return 1; } if(dialogid == DIALOG_PISTOLS) { if(response) { if(listitem == 0) { GivePlayerWeapon(playerid, 22, 250); ShowPlayerDialog(playerid, DIALOG_PISTOLS, DIALOG_STYLE_LIST, "Equipment - Pistols", "Colt. 45 \nColt. 45 w/Silencer \nDesert Eagle \nBack", "Select", "Exit"); } if(listitem == 1) { GivePlayerWeapon(playerid, 23, 250); ShowPlayerDialog(playerid, DIALOG_PISTOLS, DIALOG_STYLE_LIST, "Equipment - Pistols", "Colt. 45 \nColt. 45 w/Silencer \nDesert Eagle \nBack", "Select", "Exit"); } if(listitem == 2) { GivePlayerWeapon(playerid, 24, 250); ShowPlayerDialog(playerid, DIALOG_PISTOLS, DIALOG_STYLE_LIST, "Equipment - Pistols", "Colt. 45 \nColt. 45 w/Silencer \nDesert Eagle \nBack", "Select", "Exit"); } if(listitem == 3) { ShowPlayerDialog(playerid, DIALOG_EQUIPMENT, DIALOG_STYLE_LIST, "LSPD Locker", "Pistols \nHeavy weapons \nMelee weapons \nEquipment Suits(Skins) \nDonuts \nGo on duty", "Select", "Exit"); } } return 1; } if(dialogid == DIALOG_HEAVYWEPS) { if(response) { if(listitem == 0) { GivePlayerWeapon(playerid, 31, 400); ShowPlayerDialog(playerid, DIALOG_HEAVYWEPS, DIALOG_STYLE_LIST, "Equipment - Heavy weapons", "M4 Carbine \nShotgun \nRifle \nSniper \nMP5 \nBack", "Select", "Exit"); } if(listitem == 1) { GivePlayerWeapon(playerid, 25, 200); ShowPlayerDialog(playerid, DIALOG_HEAVYWEPS, DIALOG_STYLE_LIST, "Equipment - Heavy weapons", "M4 Carbine \nShotgun \nRifle \nSniper \nMP5 \nBack", "Select", "Exit"); } if(listitem == 2) { GivePlayerWeapon(playerid, 33, 100); ShowPlayerDialog(playerid, DIALOG_HEAVYWEPS, DIALOG_STYLE_LIST, "Equipment - Heavy weapons", "M4 Carbine \nShotgun \nRifle \nSniper \nMP5 \nBack", "Select", "Exit"); } if(listitem == 3) { GivePlayerWeapon(playerid, 34, 50); ShowPlayerDialog(playerid, DIALOG_HEAVYWEPS, DIALOG_STYLE_LIST, "Equipment - Heavy weapons", "M4 Carbine \nShotgun \nRifle \nSniper \nMP5 \nBack", "Select", "Exit"); } if(listitem == 4) { GivePlayerWeapon(playerid, 29, 500); ShowPlayerDialog(playerid, DIALOG_HEAVYWEPS, DIALOG_STYLE_LIST, "Equipment - Heavy weapons", "M4 Carbine \nShotgun \nRifle \nSniper \nMP5 \nBack", "Select", "Exit"); } if(listitem == 5) { ShowPlayerDialog(playerid, DIALOG_EQUIPMENT, DIALOG_STYLE_LIST, "LSPD Locker", "Pistols \nHeavy weapons \nMelee weapons \nEquipment Suits(Skins) \nDonuts \nGo on duty", "Select", "Exit"); } } return 1; } if(dialogid == DIALOG_MELEE) { if(response) { if(listitem == 0) { GivePlayerWeapon(playerid, 3, 1); ShowPlayerDialog(playerid, DIALOG_MELEE, DIALOG_STYLE_LIST, "Equipment - Melee", "Nitestick \nPepper-Spray \nTear Gas \nBack", "Select", "Exit"); } if(listitem == 1) { GivePlayerWeapon(playerid, 41, 9999); ShowPlayerDialog(playerid, DIALOG_MELEE, DIALOG_STYLE_LIST, "Equipment - Melee", "Nitestick \nPepper-Spray \nTear Gas \nBack", "Select", "Exit"); } if(listitem == 2) { GivePlayerWeapon(playerid, 17, 5); ShowPlayerDialog(playerid, DIALOG_MELEE, DIALOG_STYLE_LIST, "Equipment - Melee", "Nitestick \nPepper-Spray \nTear Gas \nBack", "Select", "Exit"); } if(listitem == 3) { ShowPlayerDialog(playerid, DIALOG_EQUIPMENT, DIALOG_STYLE_LIST, "LSPD Locker", "Pistols \nHeavy weapons \nMelee weapons \nEquipment Suits(Skins) \nDonuts \nGo on duty", "Select", "Exit"); } } return 1; } if(dialogid == DIALOG_CLOTHING) { if(response) { if(listitem == 0) { SetPlayerSkin(playerid, 71); ShowPlayerDialog(playerid, DIALOG_CLOTHING, DIALOG_STYLE_LIST, "Equipment - Clothing", "Cadet \nPolice Uniform \nSWAT Uniform \nBack", "Select", "Exit"); } if(listitem == 1) { SetPlayerSkin(playerid, 280); ShowPlayerDialog(playerid, DIALOG_CLOTHING, DIALOG_STYLE_LIST, "Equipment - Clothing", "Cadet \nPolice Uniform \nSWAT Uniform \nBack", "Select", "Exit"); } if(listitem == 2) { SetPlayerSkin(playerid, 287); ShowPlayerDialog(playerid, DIALOG_CLOTHING, DIALOG_STYLE_LIST, "Equipment - Clothing", "Cadet \nPolice Uniform \nSWAT Uniform \nBack", "Select", "Exit"); } if(listitem == 3) { ShowPlayerDialog(playerid, DIALOG_EQUIPMENT, DIALOG_STYLE_LIST, "LSPD Locker", "Pistols \nHeavy weapons \nMelee weapons \nEquipment Suits(Skins) \nDonuts \nGo on duty", "Select", "Exit"); } } return 1; } if(dialogid == DIALOG_TICKET) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); new string[256]; if(response) { KillTimer(CountTimer[playerid]); SetPlayerWantedLevel(playerid, 0); GivePlayerMoney(playerid, -1000); format(string, sizeof(string), "%s has paid the ticket.", name); SendClientMessageToAll(COP_COLOR, string); SetPlayerScore(Info[playerid][TicketingCop], GetPlayerScore(Info[playerid][TicketingCop]) + 5); GivePlayerMoney(Info[playerid][TicketingCop], 1000); new copname[MAX_PLAYER_NAME]; GetPlayerName(Info[playerid][TicketingCop], copname, sizeof(copname)); format(string, sizeof(string), "Congratulations, Officer %s, you received $1000 and 5 score for a paid ticket!", copname); SendClientMessage(Info[playerid][TicketingCop], RED, string); return KillTimer(CountTimer[playerid]); } if(!response) { KillTimer(CountTimer[playerid]); SetPlayerWantedLevel(playerid, 2); format(string, sizeof(string), "%s did NOT pay the ticket.", name); SendClientMessageToAll(COP_COLOR, string); return KillTimer(CountTimer[playerid]); } return 1; } return 0; }