Handsup TXT
#1

Rather than having /handsup when a policeman says handsup,
Im making it so as soon as they say handsup,
They automatically put there hands up,
I know how but it only works if they actulley say handsup alone,
But i want it to pick it up in a sentence, How?
Cause its annoying saying, This is the police put your
And then i have to say handsup in order to do it,
But i want it so i can say, This is the police put your handsup,
I want it to detect the handsup, But in a sentence
Reply
#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
#3

Thankyou
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)