/uncuff problem. -
ponagandlamanoj - 24.02.2014
Guys. In my GM, I put special action cuffed for /cuff command. But the problem is. after /uncuff its not getting back to normal. So how to stop the speciall action and get the player to normal state?
Here are the commands: Cuff
Код:
dcmd_cuff(playerid,params[])
{
new string[128];
new ID;
if(sscanf(params, "u", ID))
{
SendClientMessage(playerid,COLOR_ERROR,"USAGE: /cuff (Player Name/ID)");
return 1;
}
if(IsSpawned[playerid] != 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You must be alive and spawned in order to be able to use this command.");
return 1;
}
if(IsKidnapped[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You are kidnapped. You cannot use this command.");
return 1;
}
if(IsFrozen[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You have been frozen by a Server Administrator. You cannot use this command.");
return 1;
}
if(InAdminMode[ID] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command on this player because they are in Administrator mode.");
return 1;
}
if(gTeam[playerid] != TEAM_COP && gTeam[playerid] != TEAM_ARMY && gTeam[playerid] != TEAM_CIA)
{
SendClientMessage(playerid,COLOR_ERROR,"Only law enforcement can place cuffs on suspects.");
return 1;
}
if(!IsPlayerConnected(ID))
{
format(string,sizeof(string),"The player ID (%d) is not connected to the server. You cannot cuff them",ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(GetDistanceBetweenPlayers(playerid,ID) > 4)
{
format(string,sizeof(string),"%s(%d) is too far away. You cannot reach him to place cuffs on him.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(gTeam[ID] == TEAM_COP || gTeam[ID] == TEAM_ARMY || gTeam[ID] == TEAM_CIA)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot place other Law Enforcement officer in cuffs. You might lose your job for that ..");
return 1;
}
if(IsCuffed[ID] == 1)
{
format(string,sizeof(string),"%s(%d) is already cuffed. You don't want to waste a second pair of cuffs on them.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot place a suspect in cuffs while in a vehicle. Exit the vehicle first.");
return 1;
}
if(GetPlayerState(ID) == PLAYER_STATE_DRIVER || GetPlayerState(ID) == PLAYER_STATE_PASSENGER)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot place a suspect in cuffs while they are in a vehicle. Get them to exit the vehicle first.");
return 1;
}
if(playerid == ID)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot put cuffs on yourself, it wouldn't be a good idea with rapists around.");
return 1;
}
if(IsSpawned[ID] != 1)
{
format(string,sizeof(string),"%s(%d) is not spawned. You cannot place cuffs on dead people ..",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(IsFrozen[ID] == 1)
{
format(string,sizeof(string),"%s(%d) is frozen by a Server Administrator. You cannot place cuffs them.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(AttemptedToCuffRecently[playerid] >= 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You're handcuffs are stuck in the lock from your last attempt. Please wait until they get unstuck first.");
return 1;
}
new crand = random(100);
if(crand <= 30)
{
SendClientMessage(playerid,COLOR_ERROR,"Cuff attempt failed. The suspect's arm slipped out of your hands.");
AttemptedToCuffRecently[playerid] =25;
return 1;
}
if(GetDistanceBetweenPlayers(playerid,ID) <= 4 && crand > 30)
{
SendClientMessage(playerid,COLOR_DEADCONNECT,"[[_Suspect Cuffed_]]");
format(string,sizeof(string),"You have placed cuffs on %s(%d)! They can no longer move.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
SendClientMessage(ID,COLOR_DEADCONNECT,"[[_Placed in handcuffs_]]");
format(string,sizeof(string),"Law enforcement officer %s(%d) has placed you in handcuffs! You cannot move! You will be auto uncuffed in 30 seconds.",PlayerName(playerid),playerid);
SendClientMessage(ID,COLOR_LIGHTBLUE,string);
TogglePlayerControllable(ID,0);
LoopingAnim(ID, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover
IsCuffed[ID] =1;
CuffTime[ID] =30;
return 1;
}
return 1;
}
/UNCUFF
Код:
dcmd_uncuff(playerid,params[])
{
new string[128];
new ID;
if(sscanf(params, "u", ID))
{
SendClientMessage(playerid,COLOR_ERROR,"USAGE: /uncuff (Player Name/ID)");
return 1;
}
if(IsSpawned[playerid] != 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You must be alive and spawned in order to be able to use this command.");
return 1;
}
if(IsFrozen[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You have been frozen by a Server Administrator. You cannot use this command.");
return 1;
}
if(IsKidnapped[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You are kidnapped. You cannot use this command.");
return 1;
}
if(gTeam[playerid] != TEAM_COP && gTeam[playerid] != TEAM_ARMY && gTeam[playerid] != TEAM_CIA)
{
SendClientMessage(playerid,COLOR_ERROR,"Only law enforcement can remove cuffs from suspects.");
return 1;
}
if(InAdminMode[ID] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command on this player because they are in Administrator mode.");
return 1;
}
if(!IsPlayerConnected(ID))
{
format(string,sizeof(string),"The player ID (%d) is not connected to the server. You cannot uncuff them",ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(GetDistanceBetweenPlayers(playerid,ID) > 4)
{
format(string,sizeof(string),"%s(%d) is too far away. You cannot reach him to remove cuffs from him.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(IsCuffed[ID] == 0)
{
format(string,sizeof(string),"%s(%d) is not cuffed. You cannot uncuff them.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot remove a suspect's cuffs while in a vehicle. Exit the vehicle first.");
return 1;
}
if(GetPlayerState(ID) == PLAYER_STATE_DRIVER || GetPlayerState(ID) == PLAYER_STATE_PASSENGER)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot remove a suspect's cuffs while they are in a vehicle. Get them to exit the vehicle first.");
return 1;
}
if(playerid == ID)
{
SendClientMessage(playerid,COLOR_ERROR,"You cannot remove cuffs from yourself.");
return 1;
}
if(IsSpawned[ID] != 1)
{
format(string,sizeof(string),"%s(%d) is not spawned. You cannot remove cuffs from dead people ..",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(IsFrozen[ID] == 1)
{
format(string,sizeof(string),"%s(%d) is frozen by a Server Administrator. You cannot remove cuffs from them.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
return 1;
}
if(GetDistanceBetweenPlayers(playerid,ID) <= 4)
{
format(string,sizeof(string),"You have removed %s(%d)'s cuffs. They can now move again.",PlayerName(ID),ID);
SendClientMessage(playerid,COLOR_ERROR,string);
format(string,sizeof(string),"Law enforcement officer %s(%d) has removed your cuffs! You can now move again!",PlayerName(playerid),playerid);
SendClientMessage(ID,COLOR_ERROR,string);
TogglePlayerControllable(ID,1);
IsCuffed[ID] =0;
StopLoopingAnim(ID);
CuffTime[ID] =0;
return 1;
}
return 1;
}
Re: /uncuff problem. -
TTJJ - 24.02.2014
You can clear a users special action by using the following:
Код:
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
More here:
https://sampwiki.blast.hk/wiki/SetPlayerSpecialAction
However, I don't see special action calls in your code anywhere.. only the application of an animation
Re: /uncuff problem. -
ponagandlamanoj - 24.02.2014
Lemme try it..
Re: /uncuff problem. -
ponagandlamanoj - 24.02.2014
Thts not working..
Re: /uncuff problem. -
AnonScripter - 24.02.2014
1. Remove the looping anim from both commands.
2. Remove TogglePlayerControllable from both commands.
3. Use in the cuff command..
pawn Код:
SetPlayerSpecialAction(ID, SPECIAL_ACTION_CUFFED)
4. use in the uncuff command..
pawn Код:
SetPlayerSpecialAction(ID, SPECIAL_ACTION_NONE)
Re: /uncuff problem. -
ponagandlamanoj - 24.02.2014
Thanks bro.. it worked..
Re: /uncuff problem. -
AnonScripter - 12.03.2014
Quote:
Originally Posted by ponagandlamanoj
Thanks bro.. it worked.. :)
|
you're welcome :)