Some commands when player is masked -
Lajko1 - 14.10.2013
Hey I'm making some commands and I'm not sure how to make if player is masked the command will do SAME thing but message will be changed a bit so player's name will be replaced with "Stranger" here is the code:
pawn Код:
if(strcmp(cmd, "/cigsmoke", true) == 0)
{
if(IsDown[playerid] == 1 || IsDown[playerid] == 2) { return SendClientMessage(playerid,0xFF0000AA,"You can't do this while incapacitated."); }
if(Cig[playerid] == 0) return SendClientMessage(playerid,0xFF0000AA,"You dont have a cigrette!");
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
format(string, sizeof(string), "*%s opens the cigarette package, pulls out a cigarette and lights it up.", sendername);
ProxDetector(8.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
Cig[playerid] --;
if(Masked[playerid] == 1) // checking if the person is masked
{
if(IsDown[playerid] == 1 || IsDown[playerid] == 2) { return SendClientMessage(playerid,0xFF0000AA,"You can't do this while incapacitated."); }
if(Cig[playerid] == 0) return SendClientMessage(playerid,0xFF0000AA,"You dont have a cigrette!");
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
format(string, sizeof(string), "*Stranger opens the cigarette package, pulls out a cigarette and lights it up.", sendername);
ProxDetector(8.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
Cig[playerid] --;
return 1;
}
return 1;
}
And how in this format I'm not using any strings so I guess I need to replace this with other code ^^
Thanks in advance
EDIT: and about return 1; is it even needed at end of if(Masked)... ?
Re: Some commands when player is masked -
Dragonsaurus - 14.10.2013
pawn Код:
if(strcmp(cmd, "/cigsmoke", true) == 0)
{
if(IsDown[playerid] == 1 || IsDown[playerid] == 2) { return SendClientMessage(playerid,0xFF0000AA,"You can't do this while incapacitated."); }
if(Cig[playerid] == 0) return SendClientMessage(playerid,0xFF0000AA,"You dont have a cigrette!");
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
Cig[playerid] --;
if(Masked[playerid] == 1) string = "*Stranger opens the cigarette package, pulls out a cigarette and lights it up.";
else format(string, sizeof(string), "*%s opens the cigarette package, pulls out a cigarette and lights it up.", sendername);
ProxDetector(8.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
return 1;
}
Edit: If you got the first one, don't use it, I made a mistake. Use the above one which is edited.
Re: Some commands when player is masked -
Lajko1 - 14.10.2013
Thanks for responding and help, I reped you
Re: Some commands when player is masked -
Lajko1 - 14.10.2013
Sorry for writing again, only 1 more question
Will this work?
pawn Код:
if(strcmp(cmd, "/me", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(!strlen(result))
{
SendClientMessage(playerid, 0x33CCFFAA, "USAGE: /me [action]");
return 1;
}
format(string, sizeof(string), "* %s %s", sendername, result);
ProxDetector(30.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
printf("- /me: %s", string);
// If player is masked
if(Masked[playerid] == 1)
{
format(string, sizeof(string), "* Stranger %s",result);
ProxDetector(8.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
return 1;
}
}
return 1;
}
if(strcmp(cmd, "/do", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(!strlen(result))
{
SendClientMessage(playerid, 0x33CCFFAA, "USAGE: /do [action]");
return 1;
}
format(string, sizeof(string), "* %s (( %s ))", result, sendername);
ProxDetector(30.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
printf("- /do: (( %s ))", string);
if(Masked[playerid] == 1)
{
format(string, sizeof(string), "* %s (( Stranger ))",result);
ProxDetector(8.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
return 1;
}
}
return 1;
}
Re: Some commands when player is masked -
Dragonsaurus - 14.10.2013
I'd do it like this:
pawn Код:
if(strcmp(cmd, "/me", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(!strlen(result))
{
SendClientMessage(playerid, 0x33CCFFAA, "USAGE: /me [action]");
return 1;
}
if(Masked[playerid] == 1) format(string, sizeof(string), "* Stranger %s",result);
else format(string, sizeof(string), "* %s %s", sendername, result);
ProxDetector(30.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
printf("- /me: %s", string);
}
return 1;
}
if(strcmp(cmd, "/do", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(!strlen(result))
{
SendClientMessage(playerid, 0x33CCFFAA, "USAGE: /do [action]");
return 1;
}
if(Masked[playerid] == 1) format(string, sizeof(string), "* %s (( Stranger ))",result);
else format(string, sizeof(string), "* %s (( %s ))", result, sendername);
ProxDetector(30.0, playerid, string,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA,0x33CCFFAA);
printf("- /do: (( %s ))", string);
}
return 1;
}
Re: Some commands when player is masked -
Lajko1 - 14.10.2013
Well it seems somehow better than my so I will use it too, thanks for help