sscanf with default syntax? Problems with /pm command -
faxxe - 11.02.2017
Ahoy friends.
Currently im trying to find a way to get this /pm command working.
Код:
if(strcmp(cmd, "/pm", true) == 0)
{
new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
if(sscanf(cmdtext, "us", id, str2))
{
SendClientMessage(playerid, 0xFF0000FF, "Usage: /pm <id> <message>");
return 1;
}
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Player not connected");
if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You cannot pm yourself!");
{
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(id, Name2, sizeof(Name2));
format(str, sizeof(str), "PM To %s(ID %d): %s", Name2, id, str2);
SendClientMessage(playerid, 0xFF0000FF, str);
format(str, sizeof(str), "PM From %s(ID %d): %s", Name1, playerid, str2);
SendClientMessage(id, 0xFF0000FF, str);
}
return 1;
}
unfortunately i didnt use sscanf yet. Only the way with strtok but i heard sscanf should higher the efficieny so i would be glad to receive some help and examples.
Re: sscanf with default syntax? Problems with /pm command -
Stuntff - 11.02.2017
Код:
CMD:pm(playerid,params[])
{
new
str[256],
str2[256],
id,
Name1[MAX_PLAYER_NAME],
Name2[MAX_PLAYER_NAME]
;
if(sscanf(params, "us", id, str2))
{
SendClientMessage(playerid, 0xFF0000FF, "Usage: /pm <id> <message>");
return 1;
}
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Player not connected");
if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You cannot pm yourself!");
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(id, Name2, sizeof(Name2));
format(str, sizeof(str), "PM To %s(ID %d): %s", Name2, id, str2);
SendClientMessage(playerid, 0xFF0000FF, str);
format(str, sizeof(str), "PM From %s(ID %d): %s", Name1, playerid, str2);
SendClientMessage(id, 0xFF0000FF, str);
return 1;
}
Re: sscanf with default syntax? Problems with /pm command -
YouHack - 11.02.2017
Sscanf is easy to use
PHP код:
CMD:pm(playerid, params[])
{
new id,message[128], string[256], sendername[25], giveplayer[25];
if(sscanf(params, "us[128]", id, message)) return SendClientMessage(playerid, 0xFFFFFFFF,"{FFFFFF}Syntax: /pm <Name/Playerid> <Message>");
{
if(id != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(id, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "> PM from %s: %s", sendername, message);
SendClientMessage(id, -1, string);
format(string, sizeof(string), "PM sent to %s: %s", giveplayer , message);
SendClientMessage(playerid, -1, string);
}
else return SendClientMessage(playerid, -1, "{FFFFCC}Error: Player not connected.");
}
return 1;
}
Re: sscanf with default syntax? Problems with /pm command -
faxxe - 11.02.2017
is params[] the same as cmdtext[] ?
Re: sscanf with default syntax? Problems with /pm command -
YouHack - 11.02.2017
params[] is the parameters string of ZCMD,
and cmdtext[] is the command that was entered (only if you use STRCMP, not ZCMD).
Re: sscanf with default syntax? Problems with /pm command -
Dayrion - 11.02.2017
PHP код:
if(strcmp(cmd, "/pm", true) == 0)
{
new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
if(sscanf(cmdtext[strlen("/pm")+1], "us", id, str2))
return SendClientMessage(playerid, 0xFF0000FF, "Usage: /pm <id> <message>");
if(!IsPlayerConnected(id))
return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Player not connected");
if(playerid == id)
return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You cannot pm yourself!");
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(id, Name2, sizeof(Name2));
format(str, sizeof(str), "PM To %s(ID %d): %s", Name2, id, str2);
SendClientMessage(playerid, 0xFF0000FF, str);
format(str, sizeof(str), "PM From %s(ID %d): %s", Name1, playerid, str2);
SendClientMessage(id, 0xFF0000FF, str);
return 1;
}
Re: sscanf with default syntax? Problems with /pm command -
faxxe - 12.02.2017
Thanks Dayrion thats exactly what i was searching for!! +Rep.