Beiträge von Padarom

    #define dini_path "manuell"
    So ist das richtig.


    David: Hast du vorher per Tab-Menü jemanden reportet? Könnte damit zusammenhängen, da wird Seite 2 nämlich direkt geskippt, weil der zu reportende Spieler ja schon ausgewählt ist.

    Hast du bei der Dateispeicherungsmethode die richtige ausgewählt?
    Und hast du auch die entsprechende Include zum compilen verwendet?
    Hast du MySQL ausgewählt, aber das Plugin nicht installiert?


    So kann ich dir nicht helfen.

    Update auf v1.12 - Pastebin und mediafire wurden aktualisiert.
    Ich hab mein bestes getan alles zu testen, sollten aber dennoch Bugs auftreten (insbesondere im MySQL-Part, das konnte ich noch nicht testen), bitte ich euch diese zu melden.
    Hier nochmal das Changelog:

    Code
    dynamicReport v1.12 - 24.02.2012-19:45
    + Falls gewünscht, kann nun auch zwischen Gamemode und Filterscript kommuniziert werden, und das Adminlevel aus einer frei definierbaren PVar gelesen werden.
      Damit kann eine Nachricht auch an Nicht-RCON-Admins gesendet werden.
    + Command /showtickets, /tickets, /checkreports hinzugefügt, mit dem alle Tickets ingame eingesehen werden können (und auch ingame löschbar sind).
    + Adminchat zwischen Beschwerdeschreiber und Admin eingefügt.
    + Bei der Ticketanzeige wird nun ebenfalls farbig hinterlegt, ob das Ticket bereits von einem Admin eingesehen wurde (dafür die neue MySQL-Anweisung beachten, Feld "read" hinzugefügt.)
    # fwrite-Funktionen werden dynamischer erstellt. Keine Abhängigkeit von der Datei num.txt mehr.



    edit: Ein Bug ist mir schon bekannt - Wenn in die Beschreibung der Beschwerde ein sehr langer Text eingegeben wird, wird der Beschwerde-Grund nicht angezeigt. Aktuell verschmerzbar, da dies nicht oft vorkommen sollte.


    Mit freundl. Grüßen
    Padarom

    Hallo,
    ich habe mir eine kleine fread-Funktion im Command geschrieben, die ein Report Zeile für Zeile ausliest. Je nach Inhalt der Zeile soll einer bestimmten Variable dann der jeweilige Wert zugewiesen werden.
    Der Code dabei ist der folgende:
    do
    {
    i++;
    exists = true;
    format(path, 68, "/%s/%i.txt", dini_path, i);
    if(fexist(path))
    {
    ID[count] = i;
    count++;
    new File:report = fopen(path, io_read);
    while(fread(report, string))
    {
    if(strfind(string, "subject", true) != -1) { strdel(string, 0, 8); subject = string; }
    if(strfind(string, "time", true) != -1) { strdel(string, 0, 5); date = string; }
    if(strfind(string, "reason", true) != -1) { strdel(string, 0, 7); reason = string; }
    if(strfind(string, "read", true) != -1) { strdel(string, 0, 5); read = strval(string); }
    if(read) format(cat, 68, "{ED9E15}%s {FFFFFF}\t%s: %s\n", date, subject, reason);
    else format(cat, 68,"{ED9E15}%s {ED1515}\t%s: %s\n", date, subject, reason);
    strcat(msg, cat);
    }
    fclose(report);
    }
    }
    while(i<50);


    if(!exists) return ShowPlayerDialog(playerid, 104,
    DIALOG_STYLE_MSGBOX, "Beschwerden", "Es sind aktuell keine Beschwerden
    eingetragen.", "Okay", "Nicht okay");
    ShowPlayerDialog(playerid, 104, DIALOG_STYLE_LIST, "Beschwerden", msg, "Auswählen", "Abbrechen");
    Wenn ich den Command allerdings eingebe, erhalte ich folgenden Dialog:

    Meine eigene Vermutung wäre natürlich, dass ich strdel am falschen Anfangs- und Endplatz nutze und damit eine neue Zeile mit in den String formatiere, aber ich sehe nicht wieso das so sein sollte.


    Das Textdokument ist wie folgt aufgebaut:

    Code
    reporter=Padarom
    subject=Mike
    reason=Regelverstoß
    ...


    Ich hoffe ihr könnt mir weiterhelfen.
    Sollte dann auch erstmal meine letzte Scriptfrage sein, außer mit fread (glücklicherweise verwende ich sonst überall dini, MySQL o.Ä. mit denen ich umgehen kann) habe ich keine weiteren Probleme in meinem Script.


    Mit freundl. Grüßen
    Padarom

    Die bewohner hatten keine Heizung, kein Fließend Wasser, kein Strom... und NICHTS... kümmert ein anderes Land sich um sie?

    Dein Ansatz ist falsch. Man sollte nicht spenden, weil man glaubt, dass einem selbst geholfen werden könnte indem andere dann für einen selbst spenden.
    Man soll spenden um etwas gutes, uneigennütziges zu tun. Und wenn man nicht das Geld dafür hat, dann muss man das auch nicht machen.

    Solution: Natürlich genießen arme Leute im Kongo oder sonstigen verarmten Ländern nicht die gleichen Standards wie wir, aber ioRawr will darauf hinaus, dass obwohl wir hier hohe Standards und Lebensqualitäten haben, trotzdem nicht jeder genug Geld hat um sich komplett selbst zu versorgen. Ich wohne auch nicht in einer reichen Familie. Wir sind zwar auch nicht die ärmsten, aber manchmal müssen wir auch sehen wo wir am Monatsende bleiben, wenn wir Großeinkauf machen (vll nicht so extrem^^). Und wieso sollte man dann Leuten in noch ärmeren Ländern spenden, wenn es für einen selbst kaum noch reicht?

    if(strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,1004.0812,-939.4362,42.1797) || IsPlayerInRangeOfPoint(playerid,10,1004.0812,-939.4362,42.1797) || IsPlayerInRangeOfPoint(playerid,10,1004.0812,-939.4362,42.1797) || IsPlayerInRangeOfPoint(playerid,10,1004.0812,-939.4362,42.1797)) // Natürlich überall die Koordinaten ändern.
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_YELLOW," Du kannst kein Fahrrad betanken!");
    }
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    return 1;
    }
    }
    }

    Mit freundl. Grüßen
    Padarom

    Hallo,
    ich habe mir eine kleine fread-Funktion im Command geschrieben, die ein Report Zeile für Zeile ausliest. Je nach Inhalt der Zeile soll einer bestimmten Variable dann der jeweilige Wert zugewiesen werden.
    Der Code dabei ist der folgende:
    Wenn ich den Command allerdings eingebe, erhalte ich ein "Error: Unknown Command." - Also ist irgendwo ein Fehler im Script, ich wüsste aber nicht wo. Beim compilen gibts auch keine Schwierigkeiten/Errors/Warnings.
    Ich hoffe ihr könnt mir weiterhelfen.


    Mit freundl. Grüßen
    Padarom

    OnPlayerText(playerid, text[])
    {
    new msg[128], pName[24], h, m, s;
    gettime(h, m, s);
    GetPlayerName(playerid, pName, 24);
    format(msg, 128, "[%02i:%02i:%02i] %s: %s", h, m, s, pName, text);
    SendClientMessageToAll(COLOR_WHITE, msg);
    return 0;
    }
    So sollte es eigentlich klappen.


    Mit freundl. Grüßen
    Padarom

    Das ist dann aber clientside, wenn du das Serverside haben willst, musst du die Zeit mit gettime() abrufen und in 'nen String (zusammen mit der geschriebenen Nachricht) formatieren, den du dann ausgibst.

    Hallo,
    ich aktualisiere gerade mein dynamicReport auf v1.12 und habe dabei eine kleine Frage.


    Wenn ich fopen an Dateien nutze, die nicht existieren, crasht der Server. Also wie kann ich überprüfen, ob eine bestimmte Datei existiert?
    Hier der aktuelle Code, mit dem ich Dateien schreibe:
    format(path, 68, "/%s/num.txt", dini_path);
    new File:num = fopen(path, io_readwrite), text[256], numb[16];
    fread(num, numb);
    print(numb);
    fclose(num);
    num = fopen(path, io_write);
    if(strlen(numb)<1) fwrite(num, "1");
    else
    {
    format(text, 5, "%i", strval(numb)+1);
    fwrite(num, text);
    }
    fclose(num);
    format(path, 68, "/%s/%i.txt", dini_path, strval(numb)+1);
    new File:report = fopen(path, io_readwrite);
    format(text, 256, "reporter=%s\r\nsubject=%s\r\nreason=%s\r\ndescription=%s\r\ntime=%s", pName, sName, reason, description, date);
    fwrite(report, text);
    fclose(report);
    Wenn ich den Code so schreibe, dann erstellt er ja Dateien wie folgt: 1.txt, 2.txt, 3.txt, 4.txt, 5.txt ...
    Wenn ich dann allerdings die 2.txt lösche und alle auslesen möchte, würde mein Server crashen.
    Also gibt es da eine Möglichkeit das zu umgehen? Bitte nicht mit "nutze dini oder MySQL" kommen, ich nutze 3 Dateispeicherungsmethoden im dynamicReport. dini und MySQL sind dort auch verarbeitet.


    Mit freundl. Grüßen
    Padarom