report Befehl

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
  • Hei
    ich weiß es gibt tausend threads mit report sachen aber es hat mir nichts weiter geholfen :cursing: :cursing:


    hier di zeilen


    if(strcmp(strget(cmdtext,0),"/report",true) == 0)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /report [Grund]");
    return 1;
    }
    new msg1[200];
    GetPlayerName(playerid,msg1,sizeof(msg1));
    format(msg1,sizeof(msg1),"Report über %s: %s",opfer,ziel,msg1);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen Report abgeschickt.");
    if(SpielerInfo[playerid][admin]>= 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,msg1);
    }
    return 1;
    }
    das problem:
    nur wenn man admin is wird der report auch wirklich den admins angezeigt sonst nicht
    hoffe ihr könnt mir helfen




    mfg nehli

  • Versuchs mit ner For Schleife...


    Hier:



    if(strcmp(strget(cmdtext,0),"/report",true) == 0)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /report [Grund]");
    return 1;
    }
    new msg1[200];
    GetPlayerName(playerid,msg1,sizeof(msg1));
    format(msg1,sizeof(msg1),"Report über %s: %s",opfer,ziel,msg1);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen Report abgeschickt.");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][admin]>= 1)
    {
    SendClientMessage(i,COLOR_YELLOW,msg1);
    }
    }
    return 1;
    }


    Gruß Deo

  • du schickst das gesendete ja auch nur an den ders gesendet hat
    if(SpielerInfo[playerid][admin]>= 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,msg1);
    }


    wenn dann musst du das mit ner for schleife realisieren

  • du schickst das gesendete ja auch nur an den ders gesendet hat
    if(SpielerInfo[playerid][admin]>= 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,msg1);
    }


    wenn dann musst du das mit ner for schleife realisieren

    So wie du das gesagt hast ist es falsch...


    Er sendet es garnicht an irgendjemanden :D


    Nur wenn der Spieler der den Report sendet Admin ist, wird ihm sein eigener Text gesendet :D


    Gruß Deo

  • forward SendAdminNachricht(color, text[]);


    public SendAdminNachricht(color, text[])
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][Adminlevel] >= 1)
    {
    SendClientMessage(i,color,text);
    }
    }
    return 1;
    }



    if(strcmp(strget(cmdtext,0),"/report",true) == 0)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /report [Grund]");
    return 1;
    }
    new msg1[200];
    GetPlayerName(playerid,msg1,sizeof(msg1));
    format(msg1,sizeof(msg1),"Report über %s: %s",opfer,ziel,msg1);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen Report abgeschickt.");
    SendAdminNachricht(COLOR_YELLOW,msg1);
    return 1;
    }




    So sollte funken. Nur solltest du deine Admin Abfrage in den Public einfügen.


    lg


    pS

  • habs so gemacht aber es kommt noch immer kein text bei [Grund]
    an was könnte das liegen?


    //edit
    habe format(msg1,sizeof(msg1),"{32CD32} Report über %s: %s",opfer,cmdtext[8]); mit deiner format zeile ausgetauscht und jetz funkt es :)


    danke für euere Hilfe :)


    //closed


    Einmal editiert, zuletzt von nehli ()

  • format(msg1,sizeof(msg1),"Report über %s: %s Grund: %s",opfer,ziel,msg1);


    sollte gehn.


    lg


    pS


  • if(strcmp(strget(cmdtext,0),"/report",true) == 0)
    {
    new grund[256];
    if(!strlen(grund))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /report [Grund]");
    return 1;
    }
    new msg1[200];
    new opfer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,opfer,sizeof(opfer));
    format(msg1,sizeof(msg1),"Report von %s: %s",opfer,(grund));
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen Report abgeschickt.");
    SendAdminNachricht(COLOR_YELLOW,msg1);
    return 1;
    }


    PS: Ziel gibt es doch garnicht ??? Da steht nur Grund nicht /report [ID] [Grund] ...


    Gruß Deo

  • if(!strlen(grund))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /report [Grund]");
    return 1;
    }



    Zu


    if(sscanf(params,"s",grund))//sscanf prüft ob ein Text geschrieben wurde wenn nicht
    {
    return SendClientMessage(playerid,COLOR_YELLOW,"Verwende /report [Text/Frage]");
    }

    format(msg1,sizeof(msg1),"Report von %s: %s",opfer,text);


    lg


    pS




  • Da kommt dann 2 Errors:



    C:\Program Files (x86)\Rockstar Games\filterscripts\Report1.pwn(94) : error 017: undefined symbol "strget"
    C:\Program Files (x86)\Rockstar Games\filterscripts\Report1.pwn(107) : error 017: undefined symbol "SendAdminNachricht"


    Was kann ich da machen?

  • du musst den stock strget haben und die funktion die oben genannt wurde sendandminmessage oder sendandminnachricht