plugins sscanf
plugins sscanf.so
#include <sscanf2>
#include <zcmd>
public OnPlayerSpawn(playerid)
{
return 1;
}
CMD:your_command(playerid, params[])
COMMAND:your_command(playerid, params[])
command(mycommand, playerid, params[])// or cmd(mycommand, playerid, params[])
CMD:your_command(playerid, params[])
CMD:your_command(playerid, o[])
{
// Here will be our code.
return 1;
}
CMD:helpme(playerid, params[])
{
// Here will be our code.
return 1;
}
CMD:helpme(playerid, params[])
{
SendClientMessage(playerid, 0xFFFFFFF, "My first command ^^ ");
return 1;
}
My first command ^^
CMD:heal(playerid, params[])
{
new targetid; //Here we declare the target id.The one on which the command will be executed.
if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /heal [PlayerID]");
/*We need to split the parameters, "u" is the specifier that stands for Player Name/ID,also
sscanf will check if the sender uses the correct usage of the command, if they use something wrong
like: " /heal " will return the message above.(Syntax error...)*/
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to the server!");
//This actually will check if the player on which you try to execute the command is connected to the server, if not you will recieve the message above.(That player...)
// Notice, before IsPlayerConnected I've put a " ! " this means " NOT ", so if(Not player connected(targetid))... return message, more control structures can be found a little bit more down.
SetPlayerHealth(targetid, 100); //Here is the action, this will heal the targeted player, for example:Dave has 30 health, you execute /heal Dave and he will be healed to 100.
return 1;
}
if(sscanf(params,
" specifier_here "
"specifier_here", targetid))
Код:
Format Use L(true/false) Optional logical truthity l Logical truthity B(binary) Optional binary number b Binary number N(any format number) Optional number n Number C(character) Optional character c Character I(integer) Optional integer i Integer D(integer) Optional integer d Integer H(hex value) Optional hex number h Hex number O(octal value) Optional octal value o Octal value F(float) Optional floating point number f Floating point number G(float/INFINITY/-INFINITY/NAN/NAN_E) Optional float with IEEE definitions g Float with IEEE definitions { Open quiet section } Close quiet section P<delimiter> Invalid delimiter change p<delimiter> Delimiter change Z(string)[length] Invalid optional string z(string)[length] Deprecated optional string S(string)[length] Optional string s[length] String U(name/id) Optional user (bot/player) u User (bot/player) Q(name/id) Optional bot (bot) q Bot (bot) R(name/id) Optional player (player) r Player (player) A<type>(default)[length] Optional array of given type a<type>[length] Array of given type E<specification>(default) Optional enumeration of given layout e<specification> Enumeration of given layout 'string' Search string % Deprecated optional specifier prefix |
CMD:heal(playerid, params[])
{
new targetid;
if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /heal [PlayerID]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to the server!");
SetPlayerHealth(targetid, 100);
return 1;
}
CMD:healplayer(playerid, params[])
{
return cmd_heal(playerid, params);
}
CMD:givemoney(playerid, params[])
{
//Here will be our codes
return 1;
}
CMD:givemoney(playerid, params[])
{
new targetid;
new ammount;
return 1;
}
CMD:givemoney(playerid, params[])
{
new targetid, ammount;
return 1;
}
CMD:givemoney(playerid, params[])
{
new targetid, ammount;
if(sscanf(params,"ui", targetid, ammount)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /givemoney [PlayerID] [Ammount]");
return 1;
}
" specifier_here_specifier_here "
IsPlayerAdmin
CMD:givemoney(playerid, params[])
{
new targetid, ammount;
if(sscanf(params,"ui", targetid, ammount)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /givemoney [PlayerID] [Ammount]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"Error: This command is only for RCON Admins");
return 1;
}
CMD:givemoney(playerid, params[])
{
new targetid, ammount;
if(sscanf(params,"ui", targetid, ammount)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /givemoney [PlayerID] [Ammount]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"Error: This command is only for RCON Admins");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server!");
return 1;
}
GivePlayerMoney
CMD:givemoney(playerid, params[])
{
new targetid, ammount;
if(sscanf(params,"ui", targetid, ammount)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /givemoney [PlayerID] [Ammount]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"Error: This command is only for RCON Admins");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server!");
GivePlayerMoney(targetid, ammount); // So it will give the targetid the ammount you want.
return 1;
}
CMD:ooc(playerid, params[])
{
return 1;
}
CMD:ooc(playerid, params[])
{
new sendername[MAX_PLAYER_NAME], string[56];
return 1;
}
string[56]
GetPlayerName
CMD:ooc(playerid, params[])
{
new sendername[MAX_PLAYER_NAME], string[56];
GetPlayerName(playerid, sendername, sizeof(sendername));
return 1;
}
CMD:ooc(playerid, params[])
{
new sendername[MAX_PLAYER_NAME], string[56];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(isnull(params)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /ooc [text]"); // This will check if the player types just: "/ooc" he will get the following syntax message.
return 1;
}
CMD:ooc(playerid, params[])
{
new sendername[MAX_PLAYER_NAME], string[56];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(isnull(params)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /ooc [text]");
format(string, sizeof(string), "(( %s: %s ))", sendername, params);
return 1;
}
SendClientMessageToAll
CMD:ooc(playerid, params[])
{
new sendername[MAX_PLAYER_NAME], string[56];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(isnull(params)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /ooc [text]");
format(string, sizeof(string), "(( %s: %s ))", sendername, params);
SendClientMessageToAll(0xFFFFFFF, string);
return 1;
}
SendClientMessageToAll(color, "message");
CMD:o(playerid, params[])
{
return cmd_ooc(playerid, params);
}
(( Dave: Hello ))
%b Inserts a number at this position in binary radix %c Inserts a single character. %d Inserts an integer (whole) number %f Inserts a floating point number. %i Inserts an integer. %s Inserts a string. ( We used this ) %x Inserts a number in hexadecimal notation. %% Inserts the literal '%'
CMD:setskin(playerid, params[])
{
//Here will be our codes
return 1;
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receivername[MAX_PLAYER_NAME], string[128];
return 1;
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receivername[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
return 1;
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receivername[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
if(skin > 299 || skin < 1) return SendClientMessage(playerid, 0xFFFFFFF,"Wrong Skin ID! Available ID's: 1-299");
return 1;
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receivername[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
if(skin > 299 || skin < 1) return SendClientMessage(playerid, 0xFFFFFFF,"Wrong Skin ID! Available ID's: 1-299");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server");
return 1;
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receivername[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
if(skin > 299 || skin < 1) return SendClientMessage(playerid, 0xFFFFFFF,"Wrong Skin ID! Available ID's: 1-299");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server");
GetPlayerName(playerid, sendernamename, sizeof(sendername));
GetPlayerName(targetid, receivername,sizeof(receivername));
return 1;
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receiver[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
if(skin > 299 || skin < 1) return SendClientMessage(playerid, 0xFFFFFFF,"Wrong Skin ID! Available ID's: 1-299");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server");
GetPlayerName(playerid, sendernamename, sizeof(sendername));
GetPlayerName(targetid, receivername,sizeof(receivername));
format(string, sizeof(string),"Your skin have been set to model %d by admin %s", skin, sendername);
SeneClientMessage(targetid, 0xFFFFFF, string); // Note, this message will be send to the targetid
format(string, sizeof(string),"You have set %s skin to model %d", receivername, skin);
SendClientMessage(playerid, 0xFFFFFF, string); // This will be send to the one who execute the command
return 1;
}
SetPlayerSkin
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receiver[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
if(skin > 299 || skin < 1) return SendClientMessage(playerid, 0xFFFFFFF,"Wrong Skin ID! Available ID's: 1-299");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server");
GetPlayerName(playerid, sendernamename, sizeof(sendername));
GetPlayerName(targetid, receivername,sizeof(receivername));
format(string, sizeof(string),"Your skin have been set to model %d by admin %s", skin, sendername);
SeneClientMessage(targetid, 0xFFFFFF, string);
format(string, sizeof(string),"You have set %s skin to model %d", receivername, skin);
SendClientMessage(playerid, 0xFFFFFF, string);
SetPlayerSkin(targetid, skin); // This will set the target the skin ID the sender want to
return 1;
}
CMD:givemoney(playerid, params[])
{
new targetid, ammount;
if(sscanf(params,"ui", targetid, ammount)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /givemoney [PlayerID] [Ammount]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"Error: This command is only for RCON Admins");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server!");
GivePlayerMoney(targetid, ammount);
return 1;
}
CMD:ooc(playerid, params[])
{
new sendername[MAX_PLAYER_NAME], string[56];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(isnull(params)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /ooc [text]");
format(string, sizeof(string), "(( %s: %s ))", sendername, params);
SendClientMessageToAll(0xFFFFFFF, string);
return 1;
}
CMD:heal(playerid, params[])
{
new targetid;
if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /heal [PlayerID]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to the server!");
SetPlayerHealth(targetid, 100);
return 1;
}
CMD:healplayer(playerid, params[])
{
return cmd_heal(playerid, params);
}
CMD:o(playerid, params[])
{
return cmd_ooc(playerid, params);
}
CMD:setskin(playerid, params[])
{
new targetid, skin, sendername[MAX_PLAYER_NAME], receiver[MAX_PLAYER_NAME], string[128];
if(sscanf(params,"ui", targetid, skin)) return SendClientMessage(playerid, 0xFFFFFFF,"Syntax error.Correct usage: /setskin [PlayerID] [Skinmodel]");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFF,"This command is only for RCON Admins.");
if(skin > 299 || skin < 1) return SendClientMessage(playerid, 0xFFFFFFF,"Wrong Skin ID! Available ID's: 1-299");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFFFFFFF,"That player is not connected to your server");
GetPlayerName(playerid, sendernamename, sizeof(sendername));
GetPlayerName(targetid, receivername,sizeof(receivername));
format(string, sizeof(string),"Your skin have been set to model %d by admin %s", skin, sendername);
SeneClientMessage(targetid, 0xFFFFFF, string);
format(string, sizeof(string),"You have set %s skin to model %d", receivername, skin);
SendClientMessage(playerid, 0xFFFFFF, string);
SetPlayerSkin(targetid, skin);
return 1;
}
CMD:your_command(playerid, params[])
CMD:your_command(playerid, o[])
Beautiful tutorial, greatly explained! I wish there were more tutorials like this!
Though remember, there are more specifiers than what you've listed Very nice job ![]() |
this is a very nice tut, though. i still dont know the meaning of zcmd. i use strcmp and in my opinion it works much better >.<
|
Tips: You can change the params variable to a different name ( shorter; nor longer ).
pawn Code:
pawn Code:
|