Some help for the /arrest command
#1

Hello everyone,

I have a problem with this command. When the Cops arrests someone at the arrest point, everything going alright but when the suspect teleporting to his cell he's frozen and can't move ... It's very annoying to admins to /unfreeze every suspects when they're released from jail. So if one of you could help me with it, I'd be very thankful.

Here is the script :

Код:
}
  if(strcmp(cmd, "/arreter", true) == 0 || strcmp(cmd, "/arrest", true) == 0)
	{
	  if(IsPlayerConnected(playerid))
	  	{
			if(gTeam[playerid] == 2 || IsACop(playerid))
			{
				if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 2 )
				{
				  SendClientMessage(playerid, COLOR_GREY, "  You are not on Duty!");
				  return 1;
				}
		    /*if(!PlayerToPoint(6.0, playerid, 268.3327,77.8972,1001.0391) || !PlayerToPoint(15.0, playerid,1537.2515,-1674.9572,13.3828))
				{// Jail spot
				  SendClientMessage(playerid, COLOR_GREY, "  You are not near the Jail, can't Arrest!");
				  return 1;
				}*/

				if(PlayerToPoint(6.0, playerid, 268.3327,77.8972,1001.0391) || PlayerToPoint(15.0, playerid,1537.2515,-1674.9572,13.3828) || PlayerToPoint(6.0, playerid, 1528.9080,-1678.0759,5.8906)|| PlayerToPoint(6.0, playerid,1510.5193,-1467.4611,9.5000))
				{//New arrest system

					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
						SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
						return 1;
					}
					moneys = strval(tmp);
					if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, "  Jail Price can't be below $1 or above $99999!"); return 1; }
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
						SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
						return 1;
					}
					new time = strval(tmp);
					if(time < 1 || time > 60) { SendClientMessage(playerid, COLOR_GREY, "  Jail Time Minutes can't be below 1 or above 20 (Take the person to prison then)!"); return 1; }
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
						SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
						return 1;
					}
					new bail = strval(tmp);
					if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, "  Jail Bailing can't be below 0 or above 1!"); return 1; }
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
						SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
						return 1;
					}
					new bailprice = strval(tmp);
					if(bailprice < 0 || bailprice > 3000000) { SendClientMessage(playerid, COLOR_GREY, "  Jail Bailing can't be below $0 or above $3000000!"); return 1; }
					new suspect = GetClosestPlayer(playerid);
					if(IsPlayerConnected(suspect))
					{
						if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
						{
							GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
							GetPlayerName(playerid, sendername, sizeof(sendername));
							if(WantedLevel[suspect] < 1)
							{
						  	SendClientMessage(playerid, COLOR_GREY, "  Player must be at least Wanted Level 1!");
						  	return 1;
							}
							format(string, sizeof(string), "* You arrested %s!", giveplayer);
							SendClientMessage(playerid, COLOR_WHITE, string);
							SafeGivePlayerMoney(suspect, -moneys);
							SafeGivePlayerMoney(playerid, TicketMoney[playerid]);
							format(string, sizeof(string), "arrested by %s ~n~  for $%d", sendername, moneys);
							GameTextForPlayer(suspect, string, 5000, 5);
							SafeResetPlayerWeapons(suspect);
							if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
							{
							  new currank[64];
		  					if(PlayerInfo[playerid][pRank] == 1) { currank = "Cadet"; }
								else if(PlayerInfo[playerid][pRank] == 2) { currank = "Officer"; }
								else if(PlayerInfo[playerid][pRank] == 3) { currank = "Sergent"; }
								else if(PlayerInfo[playerid][pRank] == 4) { currank = "Lieutenant"; }
	    					else if(PlayerInfo[playerid][pRank] == 5) { currank = "Captaine"; }
	    					else if(PlayerInfo[playerid][pRank] == 6) { currank = "Sheriff adjoint"; }
	    					else if(PlayerInfo[playerid][pRank] == 7) { currank = "Sheriff"; }
								else { currank = "Cadet"; }
								format(string, sizeof(string), "[Police] %s %s has just arrested %s", currank ,sendername, giveplayer);
								OOCNews(COLOR_BLUE, string);
							}
							else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
							{
								format(string, sizeof(string), "[Police] Agent %s has just arrested %s", sendername, giveplayer);
								OOCNews(COLOR_BLUE, string);
							}
							SetPlayerInterior(suspect, 6);
							SetPlayerPos(suspect,264.6288,77.5742,1001.0391);
							PlayerInfo[suspect][pJailTime] = time * 60;
							if(bail == 1)
							{
								JailPrice[suspect] = bailprice;
								format(string, sizeof(string), "You are jailed for %d seconds.  Bail: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
								SendClientMessage(suspect, COLOR_WHITE, string);
							}
							else
							{
							  JailPrice[suspect] = 0;
								format(string, sizeof(string), "You are jailed for %d seconds.  Bail: Unable", PlayerInfo[suspect][pJailTime]);
								SendClientMessage(suspect, COLOR_WHITE, string);
							}
							PlayerInfo[suspect][pJailed] = 1;
				   	  	PlayerInfo[suspect][pArrested] += 1;
							SetPlayerFree(suspect,playerid, "Got Arrested");
							WantedPoints[suspect] = 0;
							WantedLevel[suspect] = 0;
							WantLawyer[suspect] = 1;
						}//distance
					}//not connected
					else
					{
				  	SendClientMessage(playerid, COLOR_GREY, "  No-one close enough to arrest.");
				  	return 1;
					}
				}
				else
				{
				  SendClientMessage(playerid, COLOR_GREY, "  You're not in the jail spot.");
				  return 1;
				}
			}
			else
			{
			  SendClientMessage(playerid, COLOR_GREY, "  You are not a Cop / FBI!");
			  return 1;
			}
		}//not connected
		return 1;
	}
Reply
#2

Try this

pawn Код:
if(strcmp(cmd, "/arreter", true) == 0 || strcmp(cmd, "/arrest", true) == 0)
    {
      if(IsPlayerConnected(playerid))
        {
            if(gTeam[playerid] == 2 || IsACop(playerid))
            {
                if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 2 )
                {
                  SendClientMessage(playerid, COLOR_GREY, "  You are not on Duty!");
                  return 1;
                }
            /*if(!PlayerToPoint(6.0, playerid, 268.3327,77.8972,1001.0391) || !PlayerToPoint(15.0, playerid,1537.2515,-1674.9572,13.3828))
                {// Jail spot
                  SendClientMessage(playerid, COLOR_GREY, "  You are not near the Jail, can't Arrest!");
                  return 1;
                }*/


                if(PlayerToPoint(6.0, playerid, 268.3327,77.8972,1001.0391) || PlayerToPoint(15.0, playerid,1537.2515,-1674.9572,13.3828) || PlayerToPoint(6.0, playerid, 1528.9080,-1678.0759,5.8906)|| PlayerToPoint(6.0, playerid,1510.5193,-1467.4611,9.5000))
                {//New arrest system

                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, "  Jail Price can't be below $1 or above $99999!"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
                        return 1;
                    }
                    new time = strval(tmp);
                    if(time < 1 || time > 60) { SendClientMessage(playerid, COLOR_GREY, "  Jail Time Minutes can't be below 1 or above 20 (Take the person to prison then)!"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
                        return 1;
                    }
                    new bail = strval(tmp);
                    if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, "  Jail Bailing can't be below 0 or above 1!"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "UTILISATION: /arreter [prix] [temps (minutes)] [caution (0=non 1=oui)] [prix de la caution]");
                        return 1;
                    }
                    new bailprice = strval(tmp);
                    if(bailprice < 0 || bailprice > 3000000) { SendClientMessage(playerid, COLOR_GREY, "  Jail Bailing can't be below $0 or above $3000000!"); return 1; }
                    new suspect = GetClosestPlayer(playerid);
                    if(IsPlayerConnected(suspect))
                    {
                        if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
                        {
                            GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            if(WantedLevel[suspect] < 1)
                            {
                            SendClientMessage(playerid, COLOR_GREY, "  Player must be at least Wanted Level 1!");
                            return 1;
                            }
                            format(string, sizeof(string), "* You arrested %s!", giveplayer);
                            SendClientMessage(playerid, COLOR_WHITE, string);
                            SafeGivePlayerMoney(suspect, -moneys);
                            SafeGivePlayerMoney(playerid, TicketMoney[playerid]);
                            format(string, sizeof(string), "arrested by %s ~n~  for $%d", sendername, moneys);
                            GameTextForPlayer(suspect, string, 5000, 5);
                            SafeResetPlayerWeapons(suspect);
                            TogglePlayerControllable(suspect, 1);
                            if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
                            {
                              new currank[64];
                            if(PlayerInfo[playerid][pRank] == 1) { currank = "Cadet"; }
                                else if(PlayerInfo[playerid][pRank] == 2) { currank = "Officer"; }
                                else if(PlayerInfo[playerid][pRank] == 3) { currank = "Sergent"; }
                                else if(PlayerInfo[playerid][pRank] == 4) { currank = "Lieutenant"; }
                            else if(PlayerInfo[playerid][pRank] == 5) { currank = "Captaine"; }
                            else if(PlayerInfo[playerid][pRank] == 6) { currank = "Sheriff adjoint"; }
                            else if(PlayerInfo[playerid][pRank] == 7) { currank = "Sheriff"; }
                                else { currank = "Cadet"; }
                                format(string, sizeof(string), "[Police] %s %s has just arrested %s", currank ,sendername, giveplayer);
                                OOCNews(COLOR_BLUE, string);
                            }
                            else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
                            {
                                format(string, sizeof(string), "[Police] Agent %s has just arrested %s", sendername, giveplayer);
                                OOCNews(COLOR_BLUE, string);
                            }
                            SetPlayerInterior(suspect, 6);
                            SetPlayerPos(suspect,264.6288,77.5742,1001.0391);
                            PlayerInfo[suspect][pJailTime] = time * 60;
                            if(bail == 1)
                            {
                                JailPrice[suspect] = bailprice;
                                format(string, sizeof(string), "You are jailed for %d seconds.  Bail: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
                                SendClientMessage(suspect, COLOR_WHITE, string);
                            }
                            else
                            {
                              JailPrice[suspect] = 0;
                                format(string, sizeof(string), "You are jailed for %d seconds.  Bail: Unable", PlayerInfo[suspect][pJailTime]);
                                SendClientMessage(suspect, COLOR_WHITE, string);
                            }
                            PlayerInfo[suspect][pJailed] = 1;
                        PlayerInfo[suspect][pArrested] += 1;
                            SetPlayerFree(suspect,playerid, "Got Arrested");
                            WantedPoints[suspect] = 0;
                            WantedLevel[suspect] = 0;
                            WantLawyer[suspect] = 1;
                        }//distance
                    }//not connected
                    else
                    {
                    SendClientMessage(playerid, COLOR_GREY, "  No-one close enough to arrest.");
                    return 1;
                    }
                }
                else
                {
                  SendClientMessage(playerid, COLOR_GREY, "  You're not in the jail spot.");
                  return 1;
                }
            }
            else
            {
              SendClientMessage(playerid, COLOR_GREY, "  You are not a Cop / FBI!");
              return 1;
            }
        }//not connected
        return 1;
    }
Reply
#3

Thanks i'm going to test it right now.

EDIT : It works ! Thanks a lot !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)