Hey Community, ich habe eine Frage und die Wäre wie skriptet man ein Befehl das falls er den Befehl benutzt soll es an den Admin kommen was fürn Befehl er benutzt hat?
Hallo Community, frage
- Mitzu
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Deiner Argumentation ist absolut nicht zu folgen.
Schon mal etwas von Satzzeichen und Zeilenumbrüchen gehört?Zum Thema:
Willst Du ein Support System oder wie?
-
Ich verstehe deine Frage jetzt nicht so ganz Du willst also, dass wenn ein Administrator einen "Admin-CMD" ausführt, alle anderen Administratoren,
die zu diesem Zeitpunkt auf dem Server sind, darüber informiert werden ? -
Du darfst in dem ganzen Callback "OnPlayerCommandText" nichts returnen.
Und dann hängst du ganz unten an:
new string[100],nam[MAX_PLAYER_NAME];
for(new i=0;i<MAX_PLAYERS;i++) // Schleife, jeder Spieler wird durchgegangen
{
if(!IsPlayerConnected(i)) continue; // Wenn der Spieler nciht online ist, braucht an ihn auch ncihts versendet werden
if(SpielerInfo[i][Admin]==0) continue; // Adminabfrage
GetPlayerName(playerid,nam,sizeof(name)); // Name des Spielers wird gecheckt
format(string,sizeof(string),"%s hat den Befehle %s gesendet.",nam,cmdtext); // Zeichenkette wird formatiert
SendClientMessage(i,FARBE,string); // Nachricht wird gesendet
}
return 1; -
Ich mache jetz z.B /open Alka1 das sollte dan an Alle Cops gesendet werden wer den Befehl gerade benutzt hat.
@ Fipz ja genau so
@Pille_ Ich hatte gerade kein Richtigen Wort für die Cops xD -
Cops? Ich dachte Admins
-
Folgendes "Schnippsel" in Deinem Befehl hinzufügen und anpassen:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(isACop || isAAdmin || isAetc...)
{
new plName[MAX_PLAYERS_NAME], string[100];
GetPlayerName(playerid, plName, sizeof(plName));
format(string, sizeof(string), "%s hat gerade den Befehl XYZ ausgeführt.", plName);
SendClientMessage(i, -1, string);
}
} -
Gehts nicht Einfacher?
-
Doch.
Schreib Dir eine Funktion und füge diese
dann bei den Befehlen ein, die, so zusagen,
veröffentlicht werden sollen.Das wäre einfacher.
-
Bei diesen Befehl
if (strcmp("/alka",cmdtext,true) == 0)
{
if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
{
if(alkatorvar == 0)
{
MoveObject(alkator,2045.8000488281, 8.8000001907349, 13.299999237061,6.0);
PlaySoundForPlayer(playerid,1035);
SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
alkatorvar = 1;
}
else
{
MoveObject(alkator,2045.8000488281, 8.8000001907349, 23.299999237061,6.0);
PlaySoundForPlayer(playerid,1035);
SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
alkatorvar = 0;
}
}
else SendClientMessage(playerid,COLOR_RED," Du bist kein S.W.A.T/Army Mitglied !");
} -
// anzuwenden mit:
//
// SendCMDtoAdmin(playerid, cmdtext[]);forward SendCMDtoAdmin(playerid, cmd[]);
public SendCMDtoAdmin(playerid, cmd[])
{
new string[100], playerName[MAX_PLAYERS_NAME];
GetPlayerName(playerid, playerName, sizeof(playerName));
format(string, sizeof(string), "%s hat den Befehl '%s' gerade ausgeführt.", playerName, cmd);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(i)) // <-- anpassen
{
SendClientMessage(i, -1, string);
return 1;
}
}
return 1;
} -
Gehts nicht Einfacher?
Klar geht es vom Code her einfacher, aber ressourcensparend und halbwegs professionell ist es nur so.
Ich erklär dir eben einfach mal die Funktion:Codefor(new i = 0; i < MAX_PLAYERS; i++)//an alle Online-Player [ if(isACop || isAAdmin || isAetc...)//hier die Definierungen eintragen, an welche Fraktion die Nachricht gehen soll { new plName[MAX_PLAYERS_NAME], string[100];//Stringdefinierungen GetPlayerName(playerid, plName, sizeof(plName));//Name des Players wird für die Ausgabe abgefragt format(string, sizeof(string), "%s hat gerade den Befehl XYZ ausgeführt.", plName);//Hier bekommt der Player diese Nachricht SendClientMessage(i, -1, string);//Die Nachricht wird gesendet } }
Hier der fertige Befehl:
Code
Alles anzeigenif (strcmp("/alka",cmdtext,true) == 0) { if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3) { if(alkatorvar == 0) { MoveObject(alkator,2045.8000488281, 8.8000001907349, 13.299999237061,6.0); PlaySoundForPlayer(playerid,1035); SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036); alkatorvar = 1; } else { MoveObject(alkator,2045.8000488281, 8.8000001907349, 23.299999237061,6.0); PlaySoundForPlayer(playerid,1035); SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036); alkatorvar = 0; } } else SendClientMessage(playerid,COLOR_RED," Du bist kein S.W.A.T/Army Mitglied !"); } for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3) { new plName[MAX_PLAYERS_NAME], string[100]; GetPlayerName(playerid, plName, sizeof(plName)); format(string, sizeof(string), "%s hat gerade Alkatraz geöffnet.", plName); SendClientMessage(i, -1, string); } }
mfG
-
Oh Danke Twipz habe Getestet viele Dank es funktioniert.
THREAD CLOSE
-
So nochmal "politisch" korrekt...
Die Funktion kannst Du nun in jedem Befehl
einfügen, der an die Admins gesendet werden soll.// anzuwenden mit:
//
// SendCMDtoAdmin(playerid, cmdtext[]);
//forward SendCMDtoAdmin(playerid, cmd[]);
public SendCMDtoAdmin(playerid, cmd[])
{
new string[100], playerName[MAX_PLAYERS_NAME];
GetPlayerName(playerid, playerName, sizeof(playerName));
format(string, sizeof(string), "%s hat den Befehl '%s' gerade ausgeführt.", playerName, cmd);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(i)) // <-- anpassen
{
SendClientMessage(i, -1, string);
return 1;
}
}
return 1;
}//
if (strcmp("/alka",cmdtext,true) == 0)
{
if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
{
if(alkatorvar == 0)
{
MoveObject(alkator,2045.8000488281, 8.8000001907349, 13.299999237061,6.0);
PlaySoundForPlayer(playerid,1035);
SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
alkatorvar = 1;
}
else
{
MoveObject(alkator,2045.8000488281, 8.8000001907349, 23.299999237061,6.0);
PlaySoundForPlayer(playerid,1035);
SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
alkatorvar = 0;
}
SendCMDtoAdmin(playerid, cmdtext[]); // <-- hier ist es an der richtigen Stelle
}
else SendClientMessage(playerid,COLOR_RED," Du bist kein S.W.A.T/Army Mitglied !");
} -
breadfish.de
Hat das Thema geschlossen.