Hi ich möchte das wenn einer /report eingibt sich ein fenster mit einem feld öfnet wo ers sein problem reinschreiben kann.
und wenn er dann auf reporten klickt dass es dann NUR die Admins sehen können.
leider weiß ich nicht wie könntet ihr mir bitte helfen?
/report befehl
- Acrio
- 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
-
-
ocmd:report(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new rep[128];
if(sscanf(params,"s",rep)) return SendClientMessage(playerid,BLAU,"Info: /report [text]");
format(rep,sizeof(rep),"Report von: %s: %s",SpielerName(playerid),rep);
for(new i=0; i<getmaxplayers(); i++)=""
}
//edit:
Musste noch auf dein Admin System Anpassen und allgmein auf dein system -
ocmd:report(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new rep[128];
if(sscanf(params,"s",rep)) return SendClientMessage(playerid,ROT,"ERROR: /report [text]");
format(rep,sizeof(rep),"Report von: %s: %s",SpielerName(playerid),rep);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"AdminLevel")!=0)
{
SendClientMessage(i,ROT,rep);
}
}
}
SendClientMessage(playerid,ROT,"Report erfolgreich gesendet!");
}
return 1;
}
Probier's mal so, ist ein simples /report sys. -
Er meinte doch mit nem Dialog..
-
Lest ihr euch auch den Post durch?
Er will das mit einem Input Dialog. -
und wenn ich es so machen möchte?
ocmd:report(playerid,params[])
{
ShowPlayerDialog(playerid,Dialog_Report,DIALOG_STYLE_LIST,"*REPORT*","Buguser\nBug\nCheater\nFrage","Auswählen","Abbrechen");
}und dann bei jedem ein neuen dialog wo ein DIALOG_STYLE_INPUT kommt? praktisch so
if(dialogid==Dialog_Report)
{
if(response)
{
if(listitem==0)
{
ShowPlayerDialog(playerid,Dialog_Buguser,DIALOG_STYLE_INPUT,"*BUGUSER*","So. Du hast also einen Buguser gesehen?\n Dann verrate uns mal seinen Namen.","Report","Abbrechen");
}
if(listutem==1)
{
ShowPlayerDialog(playerid,Dialog_Bug,DIALOG_STYLE_INPUT,"*BUG*","So. Du hast also einen Bug gefunden?\n Schreib uns deinen Namen und bleib dort stehen wo du gerade bist.","Report","Abbrechen");
}
if(listitem==2)
{
ShowPlayerDialog(playerid,Dialog_Cheater,DIALOG_SYTLE_INPUT,"*CHEATER*","So. Du hast also einen Cheater gesehen?\n Schreibe uns bitte SEINEN Namen.","Report","Abbrechen");
}
if(listitem==3)
{
ShowPlayerDialog(playerid,Dialog_Frage,DIALOG_STYLE_INPUT,"*FRAGE*","So. Du hast also eine Frage.\n Dann Schießmal los !!!","Report","Abbrechen");
}
}
}und dass dann nur die admins sehen können was hier reingeschrieben wird?
if(dialogid==Dialog_Buguser2)
{
if(reponse==0)
{}
}//edit: ich weis das ist ziemlich umständlich
-
Es ist eher viel komplexer, wenn du es vollständig ausarbeitest.
Aber hier mal ein Tutorial dazu, was sehr gut ausgearbeitet ist: Ticket-Support-System -
naja das hilft mir nicht wirklich weiter...
wie sende ich denn nachrichten nur an einen admin? wenn mir das einer sagen könnte wär mir schon geholfen! -
Du musst abfragen ob er Admin ist und dann die Nachricht an ihn senden.
if(IsPlayerAdmin(pID))
{
SendClientMessage(pID, ...);
}Musst halt noch pID in deinem Code definieren.
-
Wie hast du denn dein Adminsystem aufgebaut ?
Speicherst du in einer Spielerdatei ob der Spieler Admin ist ? Wie hast du das genannt (pAdmin, ..) ?
Der Vorschlag von Hans wirkt nur, wenn du als RCON-Admin eingeloggt bist.
-
-
-
Also wenn ich z.B. if(isPlayerAnAdmin ... mache, ist das über ein stock
mein registersystem ist mit PVars dort heist es Adminlevel -
Um Nachrichten an Spieler zu schicken, welche die PVar "Adminlevel" auf 1 oder höher stehen haben, musst du folgendes einbauen:
for(new i = 0; i < MAX_PLAYERS; i++) // Das ist eine sogenannte Schleife. Schau dazu mal ins SA:MP Wiki rein
{
if(GetPVarInt(playerid,"Adminlevel")>0) // Abfrage ob "Adminlevel" höher als 0 ist.
{
// Was du eben machen willst. Statt Playerid musst du nun "i" benutzen.
// Beispiel: SendClientMessage(i,Farbe,"Nachricht");
}
} -
Also so? public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==Dialog_Buguser2)
{
if(response==0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPVarInt(playerid,"Adminlevel")>0)
{
SendClientMessage(i,Grün,"%s");
}
}
}
} -
breadfish.de
Hat das Thema geschlossen.