Help sending a message to a specific player only -
Neil. - 09.06.2012
fixed
Re: Help sending a message to a specific player only -
Niko_boy - 09.06.2012
yes you should do something like
strcmp stuff too
Re: Help sending a message to a specific player only -
Calgon - 09.06.2012
Yes, you're on the right tracks. However, you'll need to use a loop to go through every player to check if their name is Ken.
pawn Код:
CMD:ken(playerid, params[]) {
new
szPlayerName[MAX_PLAYER_NAME],
iKen = INVALID_PLAYER_ID; // We'll assign "INVALID_PLAYER_ID" to this, we know Ken isn't online if INVALID_PLAYER_ID is the value of 'iKen' at the end, otherwise it will change to the actual player ID of Ken while he's online.
for(new i = 0; i < MAX_PLAYERS; i++) { // Looping through every player online
if(IsPlayerConnected(i)) { // Confirming they're connected
GetPlayerName(i, szPlayerName, MAX_PLAYER_NAME); // Getting their name and storing it in a variable so we can reference it against "Ken"
if(!strcmp(szPlayerName, "Ken", true)) { // Referencing the name against "Ken". Is it Ken?
iKen = i; // If it's Ken, we're getting his player ID here.
}
}
}
if(iKen != INVALID_PLAYER_ID) { // Is Ken online? If 'iKen' is not INVALID_PLAYER_ID then it would appear he is!
new
szMessage[128]; // Let's create a string so we can format a message for him
// Ken is online. Here's a message for Ken!
GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
format(szMessage, sizeof(szMessage), "%s sent you a message: %s", szPlayerName, params);
SendClientMessage(iKen, 0xFFFFFFFF, szMessage);
SendClientMessage(playerid, 0xFFFFFFFF, "Your message has been sent to Ken.");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Ken is not online at the moment"); // Unfortunately, he's not online. We'll tell the command executer that.
return 1;
}
I've written you the command and documented it with comments to explain how I've done it. If you have any questions, comments or concerns, reply.
Re: Help sending a message to a specific player only -
Neil. - 09.06.2012
PHP код:
if(!strcmp(szPlayerName, "Neil", true))
^^ This is what I don't get, how come some use true and some use false? (Sorry don't really know much about strcmp)
Or to save time are there any tutorials regarding to a command similar to this? If so, then please post, I really want to learn
(And i'm testing Calgon's code and see if it works)
EDIT: It worked! Ty Calgon and for the Strcmp wiki tutorial link
Re: Help sending a message to a specific player only -
Calgon - 09.06.2012
If you look at the wiki page for
strcmp, the third parameter is 'ignorecase'. You can ignore case sensitivity in the names, so for example, if you logged on with the name "ken" as opposed to "Ken", my code would ignore case sensitivity and it would still know you're Ken, despite the fact that you haven't capitalized the 'K' at the beginning of your name.
The SA-MP wiki has details like this for (almost) every native function.