mercredi 2 septembre 2015

[Tutorial] Very simple /setskin

This is my first tutorial.
I noticed how everyone scripts their /setskin cmd so complicated, I decided to explain people a very easy one.

((As I am not experienced in explaining/creating tutorials, It may be hard to understand, idk, lets hop the best!))

I work with zcmd/sscanf, so you have to include that in the top of your script with
Quote:

#include <a_samp>
Quote:

#include <zcmd>
Quote:

#include <sscanf>
Ok, lets begin.
PHP Code:

CMD:setskin(playerid, params[])
{
   new 
targetplayer, skinid; // targetplayer = (the player you want to set the skin of) skinid = (obviously the skin you want to set)
   
if(!IsPlayerAdmin(playerid)) return 0; // You may choose if you whether wants this cmd to be used for rcon admins only or everyone, if you prefer for admins only, use this line.
{
   if(
sscanf(params, "ui", targetplayer, skinid)) return SendClientMessage(playerid, COLOR_ORANGE, "Usage: /setskin [ID] [skinid]"); // this line is for; if you type /setskin, you will receive a message displayed with the "Usage" part.
   
if(skinid < 0 || skinid > 311) return SendClientMessage(playerid, COLOR_RED, "Error: Available skinids 0 - 311"); // This line is for; if an admin uses the cmd inproperly like, /setskin [ID] 401, the admin will receive an message displayed, "Error: Available skinids 0 - 311".  I will explain the code,  if(skinid < 0 (means you're not allowed to use a skin below the 0. and the other part, skinid > 311 (basically means, you're not allowed to use a skin above 311. I hope you have learned the meanings of < > in school.
   
if(!IsPlayerConnected(targetplayer)) return SendClientMessage(playerid, COLOR_RED, "Error: Player is not connected!");
 
// this line means nothing less than detecting if the player is connected.
   
new string[150], pName[MAX_PLAYER_NAME]; // string[150] = just the characters of the format that will be used later. pName[MAX_PLAYER_NAME] = for detecting the player's name.
   
SetPlayerSkin(targetplayer, skinid); // That's basically the code of the /setskin
   
format(string, sizeof string, "Your skinid has been set by an admin to %i", skinid); // %i in the format is the skinid
   
SendClientMessage(targetplayer, COLOR_GREEN, string); // Sending the player a message in GREEN, as you can see, and string means the string I have made in the format above.
   
GetPlayerName(targetplayer, pName, MAX_PLAYER_NAME); // Detecting the player name.
   
format(string, sizeof string, "You have set %s's skinid to %i", pName, skinid); // Yep you have noticed it good, the second format. This format will be sent to the ADMIN who gives the skinids to players.
   
SendClientMessage(playerid, COLOR_WHITE, string); // This message will be send to the Admin with a WHITE color.
}
return 
1; 

I hope I have explained as detailed as possible.
Feel free to comment, and to state what clearly should be improved in my next Tutorial(s)


Aucun commentaire:

Enregistrer un commentaire