Admin-Commands in einer extra Datei speichern

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
  • Hi Leute,


    da mein vorheriges Vorhaben nur teilweise verwirklichbar war, wollte ich nun fragen ob und wie es möglich ist, dass es die Commands aus meinem Adminscript in einem Extra-Logfile speichert ?!?







    Gruß
    Colin

  • Wenn dein Adminscript in einem extra FS ist, dannin OnPlayerCommandText (NICHTin einen cmd) :
    new name[MAX_PLAYER_NAME], s[100];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s nutzte %s\r\n",name,cmdtext[0]);
    new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);
    Sollten es nur einzelne cmds sein, dann fügst du dies in die cmds ein

  • Ne, ich hab ein extra Adminscript sprich ein FS für die Admin-Commands, welche somit nicht im Gamemode sind ;)




    Gruß
    Colin


    EDIT:


    Es ist jetzt doch ein Problem aufgetaucht. Also ich habe das jetzt eingefügt, aber jetzt bekomme ich folgende Errors:


    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1602) : warning 219: local variable "name" shadows a variable at a preceding level
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1602) : warning 219: local variable "s" shadows a variable at a preceding level
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1633) : warning 219: local variable "name" shadows a variable at a preceding level
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 1836 bytes
    Code size: 73080 bytes
    Data size: 57740 bytes
    Stack/heap size: 16384 bytes; estimated max. usage=4341 cells (17364 bytes)
    Total requirements: 149040 bytes


    3 Warnings.


    Die 2 Zeilen sind folgende:


    new name[MAX_PLAYER_NAME], s[80]; // Zeile 1602


    new string[128],name[18],name2[18] // Zeile 1633



    Was kann ich hier tun ?!?





    Gruß
    Colin

    4 Mal editiert, zuletzt von Udgesbou ()

  • new name[MAX_PLAYER_NAME], s[100],tag,monat,jahr,std,minuten,sek;
    GetPlayerName(playerid,name,sizeof(name));
    Getdate(tag,monat,jahr);
    Gettime(std,minuten,sek);
    format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext[0],tag,monat,jahr,std,minuten,sek);
    new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);


    ich glaub so müsste es stimmen ^^

    Einmal editiert, zuletzt von Flo_White ()

  • Da bekomme ich folgende Errors:


    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(357) : error 017: undefined symbol "Getdate"
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(358) : error 017: undefined symbol "Gettime"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Und hier die Zeilen dazu:


    Getdate(tag,monat,jahr); // 357
    Gettime(std,minuten,sek); // 358




    Gruß
    Colin

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sorry für Doppelpost aber jetzt ist doch ein Problem aufgetaucht.


    Und zwar speichert es doch alle Commands bzw. von jedem User die Commands in der extra Datei, aber es sollen ja in dieser Datei nur die Commands die die Admins von Level 1-5 eingeben speichern und nicht die Commands von jedem, da dann doch auch die Teleportcommands usw. gespeichert werden :(





    Gruß
    Colin

  • OnPLayerCommand Text
    {
    if(PlayerData[playerid][Level] >= 1) //da musste deine definitions von den Adminlvls einfügen
    {
    new name[MAX_PLAYER_NAME], s[100],tag,monat,jahr,std,minuten,sek;
    GetPlayerName(playerid,name,sizeof(name));
    getdate(tag,monat,jahr);
    gettime(std,minuten,sek);
    format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext[0],tag,monat,jahr,std,minuten,sek);
    new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);
    return 1;
    }
    return 1;
    }


    versuchs mal so vll geht's ja ;)

  • OnPLayerCommand Text
    {
    if(PlayerData[playerid][Level] >= 1) //da musste deine definitions von den Adminlvls einfügen
    {
    new name[MAX_PLAYER_NAME], s[180],tag,monat,jahr,std,minuten,sek;
    GetPlayerName(playerid,name,sizeof(name));
    getdate(tag,monat,jahr);
    gettime(std,minuten,sek);
    format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext,tag,monat,jahr,std,minuten,sek);
    new File:gla=fopen("admcmds.txt",io_append);
    if(gla) {
    fwrite(gla,s);
    fclose(gla);
    }
    }
    return 1;
    }
    - string s würd ich größer machen
    - gab keinen grund cmdtext[0] zu nehmen,cmdtext ist das Gleiche
    - return 1; am ende solltest du weg lassen je nachdem wo du den Code in OnPlayerCommandText einfügt,lass es lieber weg und alles ist ok.
    - Abfrage ob admcmds.txt erfolgeich geöffnet wurde kann nicht schaden.

  • Also ich habe Adminlevel 1-5 muss ich das dann so schreiben ??


    if(PlayerData[playerid][Level] >= 1)
    if(PlayerData[playerid][Level] >= 2)
    if(PlayerData[playerid][Level] >= 3)
    if(PlayerData[playerid][Level] >= 4)
    if(PlayerData[playerid][Level] >= 5)


    Oder wie kann ich das sonst für alle Level definieren ?!? ?(





    Gruß
    Colin

  • Also ich habe es jetzt folgendermaßen eingefügt:


    if(GetPlayerLevel(playerid) >= 1) //da musste deine definitions von den Adminlvls einfügen
    {
    new name[MAX_PLAYER_NAME], s[180],tag,monat,jahr,std,minuten,sek;
    GetPlayerName(playerid,name,sizeof(name));
    getdate(tag,monat,jahr);
    gettime(std,minuten,sek);
    format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext,tag,monat,jahr,std,minuten,sek);
    new File:gla=fopen("admcmds.txt",io_append);
    if(gla) {
    fwrite(gla,s);
    fclose(gla);
    }
    }


    Und bekomme dabei folgende Errors:


    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : error 017: undefined symbol "name"
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : error 017: undefined symbol "name"
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : error 029: invalid expression, assumed zero
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.



    Die Zeile dazu lautet:


    GetPlayerName(playerid,name,sizeof(name));






    Gruß
    Colin