/report Command

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
  • Moin. Mal wieder eine Frage von mir ;)


    Ich bräuchte für meinen Baldigen Stuntserver ein /report System:
    Ungefähr so:


    Code
    /report 1 Hacker!


    Code
    ID 3 hat ID 1 Gemeldet. Grund: Hacker!



    Könnte das einer UNGEFÄHR so ähnlich machen? Danke!




    GER-Clan - Seit 2007 - WIEDER DA!

  • ich wette, dass da mindestens 15 errors kommen^^
    es bringt nix report-befehle aus anderen scrpts rauszukopieren... wie das mit [playerinfo][padmin], das wird eigentlich keiner so haben^^ ------ genau wie das !strlen(tmp)) und so...

    2 Mal editiert, zuletzt von KeksOfDeath ()

  • Hier, das ist aus GF:


    Bei den Forwards das einfügen:

    Code
    forward ABroadCast(color,const string[],level);


    Und dann einfach noch irgendwo (ausserhalb eines anderen Callbacks) das einfügen:

  • Hier, das ist aus GF:


    Bei den Forwards das einfügen:

    Code
    forward ABroadCast(color,const string[],level);


    Und dann einfach noch irgendwo (ausserhalb eines anderen Callbacks) das einfügen:

    Bitte eines Das Funktioniert!!!!!!!




    GER-Clan - Seit 2007 - WIEDER DA!

  • stock ReturnUser(tmp[])
    {
    new playerid=INVALID_PLAYER_ID;
    if(strlen(tmp)>=1)
    {
    if(IsNumeric(tmp))
    {
    if(IsPlayerConnected(strval(tmp)))
    playerid=strval(tmp);
    }
    else
    {
    if(strlen(tmp)>=3)
    {
    new count;
    for(new i=0;i<MAX_SLOTS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(strfind(PlayerName(i),tmp,true)!=-1)
    {
    playerid=i;
    count++;
    }
    }
    }
    if(count>1)
    {
    playerid=INVALID_PLAYER_ID;
    }
    }
    }
    }
    return playerid;
    }
    stock PlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return name;
    }
    stock PlayerIP(playerid)
    {
    new ip[16];
    GetPlayerIp(playerid,ip,16);
    return ip;
    }
    stock PlayerReportPlayer(playerid,reportid,report[])
    {
    new h,m,s;
    new d,y,month;
    getdate(d,y,month);
    gettime(h,m,s);
    new string[512];
    format(string,sizeof(string),"%d.%d.%d | %d:%d:%d | %s(%d,%s) meldet %s(%d,%s) wegen: %s\r\n",d,month,y,h,m,s,
    PlayerName(playerid),playerid,PlayerIP(playerid),PlayerName(reportid),reportid,PlayerIP(reportid),report);
    new File:log=fopen("Report.log",io_append);
    fwrite(log,string);
    fclose(log);
    SendClientMessage(playerid,0xF60000F6,"Meldung erfolgreich gesendet.");
    SendClientMessage(playerid,0xF60000F6,"Falls kein Admin online ist, wird sie später ein Admin lesen.");
    format(string,sizeof(string),"[Meldung] %s (%d) meldet %s (%d) wegen: %s",PlayerName(playerid),playerid,PlayerName(reportid),reportid,report);
    for(new i=0;i<MAX_PLAYERS;i++)
    if(IsPlayerConnected(i))
    if(IsPlayerAdmin(i))
    SendClientMessage(i,0xF60000F6,string);
    return 1;
    }


    Der Command((strtok benötigt):


    if(strcmp(cmd,"/melden",true)==0)
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
    pid=ReturnUser(tmp);
    if(!IsPlayerConnected(pid))
    return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
    if(strlen(cmdtext[strlen(cmd)+strlen(tmp)+2])<3)
    return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");

    PlayerReportPlayer(playerid,pid,cmdtext[strlen(cmd)+strlen(tmp)+2]);
    return 1;
    }


    Sollte funktionieren. Hab ich aus meinem eigenen Script^^

  • error 017: undefined symbol "cmd"
    error 017: undefined symbol "tmp"
    error 017: undefined symbol "strtok"
    error 017: undefined symbol "tmp"
    error 017: undefined symbol "pid"
    error 017: undefined symbol "tmp"
    error 017: undefined symbol "pid"
    error 017: undefined symbol "cmd"
    error 017: undefined symbol "pid"
    error 017: undefined symbol "IsNumeric"
    error 017: undefined symbol "MAX_SLOTS"


    Was soll ich dagegen tun? oO




    GER-Clan - Seit 2007 - WIEDER DA!

    Einmal editiert, zuletzt von Wayne_Waylay ()

  • IsNumeric(const string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    if (string[i] > '9' || string[i] < '0') return 0;
    return 1;
    }
    stock strtok(const string[], &index,seperator=' ')
    {
    new length = strlen(string);
    new offset = index;
    new result[64];
    while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    if ((index < length) && (string[index] == seperator))
    {
    index++;
    }
    return result;
    }


    Ich habe geschrieben, dass noch strtok(...) benötigt wird :/ Die Variablen für strtok(...) usw.:


    new cmd[64],idx,tmp[64],pid;


    cmd=strtok(cmdtext, idx);


    Anstatt MAX_SLOTS MAX_PLAYERS benutzen.



    Bisschen denken würd nicht schaden...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • sehr interessant leute, nur jetzt ne frage von mir kann mir einer helfen, das mit strget zu machen habe das ganze schon fertig, mir fehlt nur noch das bisher genannte "result", könnte mir einer sagen wie ich das einfügen muss? wäre sehr wichtig.


    gruß spike

  • Also ich komme da irgendwie nicht weiter...ich habs jetzt ma eingefügt, aber ich habe 6 Errors:


    PHP
    error 017: undefined symbol "pid" 
    error 017: undefined symbol "pid" 
    error 017: undefined symbol "pid" 
    error 025: function heading differs from prototype 
    error 021: symbol already defined: "ReturnUser" 
    error 017: undefined symbol "MAX_SLOTS"


    Keine Ahnung was ich machen soll, da das Script insgesant etwas größer für meine verhältnisse ist (3000 Zeilen möglichst platzsparend), ist es ziemlich schwer (für mich) das da korrekt einzufügen.


    In Verzweiflung FACE ;(


    :P



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )