Roleplay commands, strcmp.
#2

First of all download & include sscanf + define these colours -

Код:
#define COLOR_FADE1 0xC2A2DAAA // somekind of purple for /me /do /low etc
#define COLOR_FADE2 0xFFFFFFAA // white for /b and /shout command
Then paste this under OnPlayerCommandText(playerid, cmdtext[])

Код:
if(strcmp(cmdtext,"/me",true)==0)
{
    new textv2[128];
    if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /me [action]");
	format(textv2, sizeof(textv2), "** %s %s!", NAMEGET(playerid), params);
    ProxDetector(playerid, 5, textv2, COLOR_FADE1,COLOR_FADE1,COLOR_FADE1,COLOR_FADE1,COLOR_FADE1);
	return 1;
}
Код:
if(strcmp(cmdtext,"/do",true)==0)
{
    new textv2[128];
    if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /do [action]");
	format(textv2, sizeof(textv2), "** %s  ((%s))",  params, NAMEGET(playerid));
     ProxDetector(playerid, 5, textv2, COLOR_FADE1,COLOR_FADE1,COLOR_FADE1,COLOR_FADE1,COLOR_FADE1);
	return 1;
}
And these stocks for the near messages and for getting the player name at the end of your gm/fs -

Код:
stock ProxDetector(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
{
	new Float:x, Float:y, Float:z;
	GetPlayerPos(playerid, x, y, z);
	new Float:ix, Float:iy, Float:iz;
	new Float:cx, Float:cy, Float:cz;
	foreach(Player, i)
	{
	        if(GetPlayerInterior(playerid) == GetPlayerInterior(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
	        {
				GetPlayerPos(i, ix, iy, iz);
				cx = (x - ix);
				cy = (y - iy);
				cz = (z - iz);
				if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16)))
				{
				    SendClientMessage(i, col1, string);
				}
				else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8)))
				{
				    SendClientMessage(i, col2, string);
				}
				else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4)))
				{
				    SendClientMessage(i, col3, string);
				}
				else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2)))
				{
				    SendClientMessage(i, col4, string);
				}
				else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius)))
				{
				    SendClientMessage(i, col5, string);
				}
			}
	}
	return 1;
}

stock NAMEGET(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if(name[i] == '_') name[i] = ' ';
    }
    return name;
}
You can make the other commands like /low /shout and so on by editing these ones.

Hope I helped you.

If you have problems with including sscanf or you dont want to use it remove this line -

Код:
    if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /me [action]");
Reply


Messages In This Thread
Roleplay commands, strcmp. - by angus_31 - 03.10.2012, 22:00
Re: Roleplay commands, strcmp. - by Dizzle - 03.10.2012, 22:15
Re: Roleplay commands, strcmp. - by angus_31 - 03.10.2012, 22:29
Re: Roleplay commands, strcmp. - by Dizzle - 03.10.2012, 23:12
Re: Roleplay commands, strcmp. - by Vince - 03.10.2012, 23:35
Re: Roleplay commands, strcmp. - by Skyrise - 04.10.2012, 00:03
Re: Roleplay commands, strcmp. - by angus_31 - 04.10.2012, 00:21
Re: Roleplay commands, strcmp. - by ReneG - 04.10.2012, 05:03
Re: Roleplay commands, strcmp. - by Cameltoe - 04.10.2012, 06:11
Re: Roleplay commands, strcmp. - by mamorunl - 04.10.2012, 09:01

Forum Jump:


Users browsing this thread: 1 Guest(s)