Make your specifiers with PawnPlus plugin.
Simply install to your project:
sampctl package install Mergevos/samp-pp-specifiers
Include in your code and begin using the library:
#include <pp-specifiers>
Register your own specifiers with this function:
stock PP_RegisterSpecifier(specifier, const handler[], bool:is_string=false)
//Example
PP_RegisterSpecifier('g', "SomeCallbackToHandle", false);
print_s(str_format("He is %g connected.", playerid));
forward String: SomeCallbackToHandle(playerid, type, String: format);
public String: SomeCallbackToHandle(playerid, type, String: format)
{
if(!IsPlayerConnected(playerid))
{
return str_new("Not connected");
}
return str_new("Connected");
}
Firstly, we register specifier character with handler function, and our specifier doesn't accept normal strings, so you can't specify NORMAL (not PawnPlus) string instead of playerid. print_s
part is pretty straightforward.
public String: SomeCallbackToHandle(playerid, type, String: format)
is handler. It is basically a function which handles the specifier. type
is character of the specifier, in this case it is g
. String: format
is pawnplus string of everything you input in front of specifier, eg. %03g
, will make format 03
.
New Specifiers | What does it do? |
---|---|
%a | Returns modelid from vehicleid. |
%m | Vehicle name from modelid. |
%M | Vehicle name from modelid (used in sentence). |
%w | Weapon name from weaponid. |
%W | Weapon name from weaponid (used in sentence). |
To test, simply run the package:
sampctl package run