[HELP] Saving Stuff
#1

I have a Police Script that I made.. but it's missing one thing. When I make someone a cop.. I want it to save to a scriptfile so that whenever they log back on.. or the server restarts, they will still be a cop. I would also like you to save your rank, so if they log off as Rank 8 Commissioner... they will log back on as Rank 8 Commissioner. Here is my script:

Quote:

#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] <= && (gTeam[playerid] > 0))
{
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] <= && (gTeam[playerid] > 0))
{
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] <= && (gTeam[playerid] > 0))
{
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;
}

If anyone can do that, that would be great. REPS to anyone who writes a useful comment!
NOTE: I cut a piece of the end due to it being to long.. I'll add it as a comment.
Reply
#2

Код:
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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)