Zeig dein format
Kleiner Admin Chat
- Dominik
- 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
-
-
Was meinst du? Code steht doch da
// Irgendiwe kommt da gar nix
-
dein fehler ist:
Du fragst in deiner Abfrage im "/a" Befehl nach, ob vom Spieler das Adminlevel kleiner / gleich 0 hat, und wenn ja, dann kann er die nachricht senden usw//handy
#edit Text bearbeitet -
Wie müsste ich es denn machen das er das nur mit Level 1 - 3 kann?
-
Wie du es gemacht hast muss es so:
größer gleich 1 (>= 1)
-
Ich gebe dir im folgenden eine Hilfestellung.
Dies soll nicht heißen, dass ich dir komplett bei deiner Aufgabe helfe, sondern dir nur einen Denkanstoß gebe bzw. ein Beispiel, wie man es machen könnte.
ocmd:a(playerid,params[]) //Ein Beispiel für den Adminrang Supporter
{
new message[128],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
if(GetPVarInt(playerid,"Adminlevel")==1) //Es wird abgefragt, ob der Spieler das Adminlevel 1 besitzt.
{
if(sscanf(params,"s",message))return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
format(message,sizeof(message),"* Supporter %s: %s",name,message); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
}
return 1;
}
stock SendAdminMessage(farbe,const message[]) //Ein Stock mit den Parametern farbe und message wird erstellt.
{
new playerid;
for(;playerid!=MAX_PLAYERS;playerid++)
{
if(!IsPlayerConnected(playerid)) continue;
if(GetPVarInt(playerid,"Adminlevel"))SendClientMessage(playerid,farbe,message); // Wenn der Spieler ein Adminlevel besitzt, wird die Message weitergeleitet.
}
} -
Ich gebe dir im folgenden eine Hilfestellung.
Dies soll nicht heißen, dass ich dir komplett bei deiner Aufgabe helfe, sondern dir nur einen Denkanstoß gebe bzw. ein Beispiel, wie man es machen könnte.
ocmd:a(playerid,params[]) //Ein Beispiel für den Adminrang Supporter
{
new message[128],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
if(GetPVarInt(playerid,"Adminlevel")==1) //Es wird abgefragt, ob der Spieler das Adminlevel 1 besitzt.
{
if(sscanf(params,"s",message))return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
format(message,sizeof(message),"* Supporter %s: %s",name,message); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
}
return 1;
}
stock SendAdminMessage(farbe,const message[]) //Ein Stock mit den Parametern farbe und message wird erstellt.
{
new playerid;
for(;playerid!=MAX_PLAYERS;playerid++)
{
if(!IsPlayerConnected(playerid)) continue;
if(GetPVarInt(playerid,"Adminlevel"))SendClientMessage(playerid,farbe,message); // Wenn der Spieler ein Adminlevel besitzt, wird die Message weitergeleitet.
}
}
Hab mir das jetzt 3x Durchgelesen, aber ich verstehe trotzdem nicht was ich da jz genau falsch gemacht habe, was die einzelnen Dinge bewirken weis ich ja, nur irgendwie funktioniert es in dieser zusammensetzung nicht so wie ich es möchte. -
Verwende mal meine Stütze und ändere es halt an dein Script ab.
Danach sagst du uns, ob es so funktioniert hat und wenn nicht, was Ingame passiert bzw. was für Fehler auftreten. -
Auch wenn das nicht wirklich zum Thema gehört:
Spoiler anzeigen Wenn man nur 1nen Parameter haben will so wie in diesem Fall, sollte man kein sscanf nutzen, da das nur unnötig Zeit verbraucht und ungenau ist (wenn du z.B. einen Text hast splittet sscanf die Leerzeichen raus, was bei einem Text suboptimal ist)...Spoiler anzeigen Also kannst du auch einfach folgendes machen:Spoiler anzeigen ocmd:a(playerid,params[]) {
if(!GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,Grau,"Du bist kein Administrator!");
if(!params[0]) return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
new message[144],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
format(message,sizeof(message),"* Supporter %s: %s",name,params); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
return SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
}mfg.
-
Danke sehr, funktioniert einwandfrei. jetzt weis ich wenigstens wo mein Fehler war
-
breadfish.de
Hat das Thema geschlossen.