Wie mach ich ein /me befehl
Ich will das mal machen und das wenn man beispiel an der BAr /vodka eingibt komm %s hat Wodka getrunken als wie du bsp. /me hat Wodka getrunken
mfg
 
			
									
		Wie mach ich ein /me befehl
Ich will das mal machen und das wenn man beispiel an der BAr /vodka eingibt komm %s hat Wodka getrunken als wie du bsp. /me hat Wodka getrunken
mfg
Willst du jetzt nen /vodka oder /me befehl?
new string[64], name[24];
GetPlayerName(playerid, name, 24);
format(string, 64, "Spieler %s hat 2L Vodka getrunken !",name);
SendClientMessageToAll(0xFFFFFF, string);
SendClientMessageToAll halt nicht, sondern irgentwas was einen Radius bei dir hat 
mfg. 
Ne ich will ein /me Befehl das mit dem Vodka schaff ich selber
Dann speicher' deinen Namen in einer Variable, formatiere Text mit "format" und sende ihn mit einer beliebigen Farbe mittels "SendClientMessage".
if(strcmp(cmd, "/me", true) == 0)// Command name
{// opening bracket
        new length = strlen(cmdtext);// forgot how to explain this
        while ((idx < length) && (cmdtext[idx] <= ' ')) {//forgot this part =D
            idx++;
        }
        new offset = idx;
        new result[128];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;// untill here :)
        if(!strlen(result)) { // if he wrote nothing infront of /me
            SendClientMessage(playerid, 0xFFFFFFFF, " /me [action]");// sending a message
            return 1;// returning 'true'
        }
        format(string, sizeof(string), "* %s %s", sendername, result);// formatting the message
        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);//sending the message to nearby players
        return 1;// returning 'true'
}//closing bracket
Google ist was feines 
mfg. 
rCmd[s]->me(playerid,success,text[64]) //Der Befehl, hab ihn grad mit rcmd gemacht
{
	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,deinefarbe,"Du bist kein Administrator!"); //Das ist ne RCON Abfrage, musst es halt an deine Anpassen. Wichtig ist das ! was not oder halt den Wert 0 wiederspiegelt
	/*Kleiner Tipp:
	oben ins Script:
	#undef MAX_PLAYERS
	#define MAX_PLAYERS deineslotanzahl
	Musst du halt durch deine Spieleranzahl ergänze, das kann die amx als mehr um die hälfte schrumpfen lassen. */
	new i = 0, Float:x,Float:y,Float:z, name[24]; GetPlayerPos(playerid,x,y,z); GetPlayerName(playerid,name,24);
	for; i < MAX_PLAYERS; i++) //Die Schleife
	{
	    if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(playerid,15.0,x,y,z)) //Fragt ab ob der Spieler connected ist & in der nähe (15.0) meter von dir ist.
 		{
 		    new string[100]; format(string,100,"%s %s",name,text);
 		    SendClientMessage(playerid,deinefarbe,string);
		}
	}
	return true;
}
So, oder so ähnlich.
Weiß nisch obs geht, bin kein schleifen-profi.
Die Schleife muss bei dir so aussehen Dominik:
for(i < MAX_PLAYERS; i++)
PS: Nicht jeder nutzt rCmd, ich glaube außer dir und dem Erfinder (vielleicht) keiner 
mfg. 
	if(strcmp(cmd, "/me", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
	    	if(gPlayerLogged[playerid] == 0)
	    	{
	        	SendClientMessage(playerid, COLOR_GREY, "   Du bist noch nicht eingeloggt!");
	        	return 1;
	    	}
			GetPlayerName(playerid, sendername, sizeof(sendername));
			new length = strlen(cmdtext);
			while ((idx < length) && (cmdtext[idx] <= ' '))
			{
				idx++;
			}
			new offset = idx;
			new result[64];
			while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
			{
				result[idx - offset] = cmdtext[idx];
				idx++;
			}
			result[idx - offset] = EOS;
			if(!strlen(result))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "NUTZUNG: /me [aktion]");
				return 1;
			}
			format(string, sizeof(string), "* %s %s", sendername, result);
			ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			printf("%s", string);
		}
		return 1;
	}
forward ProxDetectorS(Float:radi, playerid, targetid);
public ProxDetectorS(Float:radi, playerid, targetid)
{
	if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
	{
		new Float:posx, Float:posy, Float:posz;
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		//radi = 2.0; //Trigger Radius
		GetPlayerPos(targetid, posx, posy, posz);
		tempposx = (oldposx -posx);
		tempposy = (oldposy -posy);
		tempposz = (oldposz -posz);
		//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
		if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
		{
			return 1;
		}
	}
	return 0;
}
Verständlicher ist das ganze mit dem stock "strget", welches
den komplizierten strtok Befehl um einiges leichter macht.
Zum Beispiel:
if(strcmp(strget(cmdtext,0),"/me",true)==0)
{
      if(strlen(strget(cmdtext,1)==0) return SendClientMessage(playerid,COLOUR_RED,"Benutze: /me [AKTION]"); // Falls jemand nur /me eingibt kommt ein Error.
      new aktion[200]=cmdtext; // Die Variable hat nun den kompletten eingegeben Text eingespeichert.
      new name[MAX_PLAYER_NAME]; // Variablenerstellung zum Speichern des Namens
      GetPlayerName(name,sizeof(name)); // Spielername in die Variable speichern
      strdel(aktion,0,4); // wir löschen das /me aus der Variable, damit nicht da steht: "/me USER trinkt Wein."
      format(aktion,sizeof(aktion),"%s %s",name,aktion); // Formatieren des Ausgabetextes
      new Float:x,Float:y,Float:z; // Variablenerstellung für die Koordinaten des Spielers
      GetPlayerPos(playerid,x,y,z); // Koordinaten werden hineingespeichert
      for(new i=0;i<MAX_PLAYERS;i++) // ALle Spieler werden überprüft,
      {
            if(!IsPlayerConnected(i)) continue; // Wenn sie nicht mit dem Server verbunden sind, -> Weiter
            if(!IsPlayerInRangeOfPoint(i,5,x,y,z)) continue; // Wenn sie nicht in Reichweite des Spielers sind -> Weiter
            SendClientMessage(i,string); // Ausgabetext für alle Spieler die in Reichweite des Punktes sind.
      }
      return 1;
}
Hoffe ich konnte helfen 
 
							
							 
		