SA-MP Forums Archive
Arrest cmd bugged - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Arrest cmd bugged (/showthread.php?tid=524777)



Arrest cmd bugged - NoahF - 08.07.2014

SO I debugged the Arrest command, and the debug messages I put stop at this line:

Код:
if(GetDistanceBetweenPlayers(playerid, CriminalID) < 5.0)



Re: Arrest cmd bugged - greentarch - 08.07.2014

Can you post the function "GetDistanceBetweenPlayers"?


Re: Arrest cmd bugged - BroZeus - 08.07.2014

and also some lines after and above it..


Re: Arrest cmd bugged - NoahF - 08.07.2014

Sure.

Код:
forward Float:GetDistanceBetweenPlayers(player1,player2);
public Float:GetDistanceBetweenPlayers(player1,player2)
{
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(player1) || !IsPlayerConnected(player2))
    {
        return -1.00;
    }
    GetPlayerPos(player1,x1,y1,z1);
    GetPlayerPos(player2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
Код:
	if(gTeam[playerid] != POL && gTeam[playerid] != SECSRV && gTeam[playerid] != ARMY && gTeam[playerid] != SWAT) return SendClientMessage(playerid, COLOR_RED, "You are not a Law Enforcement Officer!");
    print("This part works.");
	if(sscanf(params, "u", CriminalID)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /arrest [ID]");
	print("this part works.");
	if(CriminalID == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot arrest yourself, how is that possible?!");
	print("This part works.");
	if(!IsPlayerConnected(CriminalID)) return SendClientMessage(playerid, COLOR_RED, "That player is not connected.");
	print("This part works.");
	if(GetDistanceBetweenPlayers(playerid, CriminalID) < 5.0)
	{
		new WantedLvl;
        print("This part works.");
		WantedLvl = GetPlayerWantedLevel(CriminalID);
        print("This part works.");
		if(WantedLvl >= 3)
		{
			print("This part works.");
			SetTimerEx("UnjailTimer", 120000, false, "i", CriminalID);



Re: Arrest cmd bugged - BroZeus - 08.07.2014

try using a stock for it
and the fucntion u use is way long
i have a simpler function for it use this
pawn Код:
forward Float:GetDistanceBetweenPlayers(player1,player2);
public Float:GetDistanceBetweenPlayers(player1,player2)
{
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(player1) || !IsPlayerConnected(player2))
    {
        return -1.00;
    }
    GetPlayerPos(player1,x1,y1,z1);
    GetPlayerPos(player2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
replace the above code with this --
pawn Код:
stock GetDistanceBetweenPlayers(player1, player2)
{
    if(!IsPlayerConnected(player1) || !IsPlayerConnected(player2))
    {
        return -1;
    }
    new Float:x,Float:y,Float:z;
    GetPlayerPos(player2, x, y, z);
    return GetPlayerDistanceFromPoint(player1, x, y, z);
}



Re: Arrest cmd bugged - NoahF - 08.07.2014

With your stock I get a tag mismatch on this line:
return GetPlayerDistanceFromPoint(player1, x, y, z);


Re: Arrest cmd bugged - NoahF - 10.07.2014

EDIT: FIXED.