Guten Morgen,
Ich wollte euch mal Fragen wie ich ein Admin Chat hinbekomme?
Sollte so aussehen: %s sagt: %s"
mfg.
Nutze ocmd und sscanf.
Guten Morgen,
Ich wollte euch mal Fragen wie ich ein Admin Chat hinbekomme?
Sollte so aussehen: %s sagt: %s"
mfg.
Nutze ocmd und sscanf.
Du kannst sowas mit schleifen erstellen ich möchte dir jetzt kein code schreiben da du es selber mal versuchen solltest das was er als text schreibt durch eine schleife schicken lassen
stock Spielername(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
ocmd:ach(playerid, params[])
{
new Message[1024];
if(sscanf(params, "s", Message))
{
SendClientMessage(playerid, 0xBB0000FF, "/ach [NACHRICHT]");
return 1;
}
else
{
if(Player[playerid][IsAdmin] == 1 || Player[playerid][IsAdmin] == 2)
{
new string[2048];
format(string, sizeof(string), "[ADMIN-CHAT] %s: %s", Spielername(playerid), Message); //MARKIERT
new x;
for(x = 0; x < MAX_PLAYERS; x++)
{
if(Player[playerid][IsAdmin] == 1 || Player[playerid][IsAdmin] == 2)
{
SendClientMessage(x, 0xBBBB00FF, string);
}
}
}
else
{
SendClientMessage(playerid, 0xBB0000FF, "Du besitzt nicht die erforderlichen Rechte um den Befehl auszuführen.");
}
return 1;
}
}
Joa das wars Kannst die ausgabe Formatieren in der Zeile mit //MARKIERT
Syntax des Cmds: /ach [NACHRICHT]
(Ich habe das aus einem selbstgeschriebenen Gamemode, also kann es sein, dass der Code so noch nicht läuft)
Danke für die Antworten..
Habe ja das Beispiel von CO2 und Fummel mich da mal ein bissen durch.
CO2: Nachrichten dieser Größe sind unnötig. Das maximum liegt bei 144 zeichen. Außerdem kannst du auf sscanf verzichten.
ocmd:achat(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, ROT, "Du bist kein admin. ");
if(!strlen(params)) return SendClientMessage(playerid, ROT, "Benutze: /achat (text)");
new str[144];
format(str, sizeof(str), "(Admin Chat) %s sagt: %s", SpielerName(playerid), params);
for(new i = 0; i<MAX_PLAYERS; i++) if(IsPlayerAdmin(i)) SendClientMessage(i,FARBE, str);
return 1;
}
Alles anzeigenCO2: Nachrichten dieser Größe sind unnötig. Das maximum liegt bei 144 zeichen. Außerdem kannst du auf sscanf verzichten.
ocmd:achat(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, ROT, "Du bist kein admin. ");
if(!strlen(params)) return SendClientMessage(playerid, ROT, "Benutze: /achat (text)");
new str[144];
format(str, sizeof(str), "(Admin Chat) %s sagt: %s", SpielerName(playerid), params);
for(new i = 0; i<max_players; i++)="" if(isplayeradmin(i))="" sendclientmessage(i,farbe,="" str);
return 1;
}
Danke, also so Richtig?
Blicke mit denn for Schleifen nicht so ganz durch...
ocmd:a(playerid,params[])
{
if(!IstSpielerEinAdmin(playerid,1))return SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Du hast nicht das Recht dazu diesen Befehl zu nutzen!");
if(!strlen(params))return SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Nutze /a [TEXT]");
new string[144];
format(string,sizeof(string),"[ADMIN-CHAT] %s sagt: %s",SpielerName(playerid),params);
for(new i = 0; i<MAX_PLAYERS; i++) if(IstSpielerEinAdmin(i,1))SendClientMessage(i,FARBE_GELB,string);
return 1;
}
Genau so. Etwas Mut zum probieren, Kannst ja nichts kaputt machen.