Handsup TXT
#2

I'm not sure as to exactly what it is that you're looking for, but I took this from the GF. When a cop says "handsup" near the suspect, it should force the suspect to put their hands up.

Код:
strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

public OnPlayerText(playerid, text[])
{
      new idx;
	  tmp = strtok(text, idx);
	  if ((strcmp("handsup", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("handsup")))
      {
          if(IsPlayerConnected(playerid))
	      {
			if(IsACop(playerid))
			{
			  new suspect = GetClosestPlayer(playerid);
			  if(IsPlayerConnected(suspect))
				{
				  if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
					{
                       if(GetPlayerState(suspect) == PLAYER_STATE_ONFOOT) 
                       {
		                   SetPlayerSpecialAction(suspect,SPECIAL_ACTION_HANDSUP);
                           return 1;
                       }
                    }
                 }
             }
          }
        }
}

forward GetClosestPlayer(p1);
public GetClosestPlayer(p1)
{
	new x,Float:dis,Float:dis2,player;
	player = -1;
	dis = 99999.99;
	for (x=0;x<MAX_PLAYERS;x++)
	{
		if(IsPlayerConnected(x))
		{
			if(x != p1)
			{
				dis2 = GetDistanceBetweenPlayers(x,p1);
				if(dis2 < dis && dis2 != -1.00)
				{
					dis = dis2;
					player = x;
				}
			}
		}
	}
	return player;
}

forward Float:GetDistanceBetweenPlayers(p1,p2);
public Float:GetDistanceBetweenPlayers(p1,p2)
{
	new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
	if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
	{
		return -1.00;
	}
	GetPlayerPos(p1,x1,y1,z1);
	GetPlayerPos(p2,x2,y2,z2);
	return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
Reply


Messages In This Thread
Handsup TXT - by JoeDaDude - 12.06.2009, 13:30
Re: Handsup TXT - by Tannz0rz - 12.06.2009, 13:54
Re: Handsup TXT - by JoeDaDude - 12.06.2009, 13:55

Forum Jump:


Users browsing this thread: 1 Guest(s)