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:
|