Handsup TXT - 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)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Handsup TXT (
/showthread.php?tid=81592)
Handsup TXT -
JoeDaDude - 12.06.2009
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
Re: Handsup TXT -
Tannz0rz - 12.06.2009
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));
}
Re: Handsup TXT -
JoeDaDude - 12.06.2009
Thankyou