Okay in this tutorial you will learn that how to make a /cuff and a /uncuff command.
Okay first:
Include these files.
Okay now here are the full codes and I have explained them in the script:
Now the lines I haven't explained in the script.
This will check that if a player enter a invalid information,if it is a invalid information,it will send him an error message.
format is used for formatting messages that you want to send to other people or to yourself.
for more info go here:
http://wiki.sa-mp.com/wiki/Format
Okay first:
Include these files.
Code:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
Code:
CMD:cuff(playerid, params[])//This is will create you cmd so you can continue your codes.
{
new targetid;//this defines the id of the player you want to cuff((playerid id your id and the target id that I defined it the id of the player you want to cuff))
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, -1, "[USAGE]: /cuff [Part of Name/Player ID]");
if(IsPlayerConnected(targetid))//this will check that if the player you want to cuff is connected to the server or not.
{
new Float:x, Float:y, Float:z;//these are the defines of your x,y and z position.
GetPlayerPos(playerid, x, y, z);//this will store your position to be used in the following codes.((this stores the your x,y, and z position in to the variables we created.))
if(IsPlayerInRangeOfPoint(targetid, 5.0, x, y, z))//this will check that if the player you want to cuff is near you or not.
{
new str[512];//this it the define for the string you will format further.((str means string.You can also change it to string but this seems to be easy.))
new name[MAX_PLAYER_NAME];//this is the variable you created to store the your name.
GetPlayerName(playerid, name, sizeof(name));//this will get your name and store it in the variable you defines as name.
new target[MAX_PLAYER_NAME];//this is the variable you created to store the name of the player you want to cuff.
GetPlayerName(targetid, target, sizeof(target));//this will get the name of the person you want to cuff and will store it into a variable we defined as target.
format(str, sizeof(str), "INFO: You have cuffed %s!",target);//explained at the end of the tutorial.
SendClientMessage(playerid, 0xE01B1B, str);//this will send the formated message to you that you created before.
format(str, sizeof(str), "WARNING: You have been cuffed by %s!",name);//explained at the end of the tutorial.
SendClientMessage(targetid, 0xE01B1B, str);//this will send the formated message to the player you cuffed.
SetPlayerAttachedObject(targetid, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977,-81.700035, 0.891999, 1.000000, 1.168000);//this will set the object cuffs at the hand of the player you want to cuff.
SetPlayerSpecialAction(targetid,SPECIAL_ACTION_CUFFED);//this will set players hand backwards.
return 1;
}
}
return 1;
}
CMD:uncuff(playerid, params[])//sfcs cmd.
{
new targetid;//this defines the id of the player you want to cuff((playerid id your id and the target id that I defined it the id of the player you want to cuff))
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, -1, "[USAGE]: /uncuff [Part of Name/Player ID]");
if(IsPlayerConnected(targetid))//this will check that if the player you want to cuff is connected to the server or not.
{
new Float:x, Float:y, Float:z;//these are the defines of your x,y and z position.
GetPlayerPos(playerid, x, y, z);//this will store your position to be used in the following codes.((this stores the your x,y, and z position in to the variables we created.))
if(IsPlayerInRangeOfPoint(targetid, 5.0, x, y, z))//this will check that if the player you want to cuff is near you or not.
{
if(!SetPlayerAttachedObject(targetid, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977,-81.700035, 0.891999, 1.000000, 1.168000))return SendClientMessage(playerid,-1,"ERROR: The player is not cuffed!");//this will check that if the player is not cuffed and you are trying to apply this cmd,this will send him a error message.
SetPlayerSpecialAction(targetid,SPECIAL_ACTION_NONE);//this will remove the players cuffs and his arms will go normal.
new str[512];//this it the define for the string you will format further.((str means string.You can also change it to string but this seems to be easy.))
new name[MAX_PLAYER_NAME];//this is the variable you created to store the your name.
GetPlayerName(playerid, name, sizeof(name));//this will get your name and store it in the variable you defines as name.
new target[MAX_PLAYER_NAME];//this is the variable you created to store the name of the player you want to cuff.
GetPlayerName(targetid, target, sizeof(target));//this will get the name of the person you want to cuff and will store it into a variable we defined as target.
format(str, sizeof(str), "INFO: You have uncuffed %s!",target);//explained at the end of the tutorial.
SendClientMessage(playerid, 0xE01B1B, str);//will send the formated message to you that you created above.
format(str, sizeof(str), "WARNING: You have been uncuffed by %s!",name);//explained bellow.
SendClientMessage(targetid, 0xE01B1B, str);//will send the formated message to the player you want to cuff that you created above.
return 1;
}
}
return 1;
}
Now the lines I haven't explained in the script.
Code:
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, -1, "[USAGE]: /uncuff [Part of Name/Player ID]");
for more info about sscanf,use this.:
http://forum.sa-mp.com/showthread.php?t=120356
This will check that if a player enter a invalid information,if it is a invalid information,it will send him an error message.
Code:
format(str, sizeof(str), "INFO: You have cuffed %s!",target);//explained at the end of the tutorial.
format is used for formatting messages that you want to send to other people or to yourself.
for more info go here:
http://wiki.sa-mp.com/wiki/Format
Post a Comment