Beiträge von Octalype

    Ich finde, dass die Changelog/Update Spalte auf der rechten Seite weg muss. Mir persönlich ist es egal wie innovativ das neue Feature FooBarXYZ² ist - die Spalte nimmt einfach Platz auf dem Bildschirm weg.
    Das Login-Fenster braucht an den unteren Ecken den gleichen Radius wie oben. Außerdem ist das Login-Fenster extrem groß und was macht das zufällige Profilbild außerhalb vom Fenster? Mach es größer und zieh es über die Benutzernameneingabe.

    Das Ergebnis von dbPoll benutzt numerische Indizes, dass heißt du kannst ohne große Mühe einen zufälligen Eintrag aus der gesamten Tabelle auswählen.
    local row = result[math.random(#result)]

    Wenn ich mich richtig erinnere, dann kannst du über die Namen der Spalten aus deiner SQL-Tabelle die einzelnen Werte rausziehen.
    local mapName = row["mapname"]
    local spawn = row["spawn"]

    Du willst also zum Ergebnis der Datenbank-Abfrage, dh. der Lua Tabelle aus dbPoll, noch weitere Einträge (neue Maps) hinzufügen?
    Wenn ja, dann hab ich dich beim ersten Durchlesen falsch verstanden, weil du eine SQL-Tabelle und/oder eine Lua-Tabelle gemeint hättest können.

    Lua
    function Gate (player)
    local open = setTimer(Gate, 60000, 1)
    if isTimer(open) then
    outputChatBox("[GATE OPEN] Anyone make your Way to the Marker within 1 Minute", player, 255, 0, 0)
    moveObject(gate2, 1000, 77, 2496.76, 23.3,  0, 0, 0)
    end, 360000, 1)
    end
    addEventHandler("onMarkerHit",marker17, Gate)

    Der Code macht ja alles richtig. Wenn ein Element den Marker trifft, dann wird die Funktion aufgeruft. Die Funktion erstellt ohne irgendwelche Beschränkungen einen Timer, der in einer Minute die Funktion namens Gate aufruft. Danach wird in der if-Bedingung durch die isTimer Funktion überprüft, ob die Variable open auf einen gültigen Timer zeigt. Falls ja, wird eine Nachricht in der ChatBox beschränkt auf das Element, dass in den Marker getreten ist, angezeigt; das Objekt hinter Variable gate2 zu einer anderen Position verschoben und ein Lua Fehler in der Zeile 6 generiert, falls dieser nicht bereits beim Laden vom Skript erkannt wird.

    Laut meiner Erfahrung brauche ich bei gewissen Zähnen eine stärkere Betäubung als bei den anderen, weil ich bei der gewöhnlichen Betäubung immer noch den Schmerz empfunden hatte.
    Außerdem habe ich mein Zahnarzt gewechselt, weil ich bei dem vorherigen Zahnarzt noch Schmerzen (von der Spritze, nicht von der Zahnbehandlung) nachdem die Betäubung abgeklungen ist.
    Der neue Zahnarzt wirkt auf mich auch kompetenter.

    Ohne zusätzliche Variablen mit metatable-Magie. Man kann den Rückgabewert der Funktion wie eine normale Funktion aufrufen (createIntervalFunction(2000, function () end))().
    Anzumerken wäre hier, dass type(returnValue) == "table" ist. Man könnte natürlich den Rückgabewert durch eine anonyme Funktion "wrappen".

    Lua
    function createIntervalWrapFunction(...)
        local self = createIntervalFunction(...)
        return function (...) return self(...) end
    end

    Webradio-API
    GitHub: SofaKingCool/Webradio-API

    Die Webradio-API ist eine minimale Mehrfachanbieter Such- und Streaming-API für deinen Multi Theft Auto server.
    Sie vereinfacht den Zugriff auf relativ beliebte Plattformen, die eine Audioquelle (in-)direkt anbieten und sich über playSound abspielen lassen.

    Einstieg

    Voraussetzungen
    Du brauchst einen Webserver von nginx oder Apache, der die PHP Skripte ausführen kann. Der Webserver muss den Inhalt aus dem Ordner public freigeben, damit die API einwandfrei arbeiten kann und weil dadurch deine API-Schlüssel verborgen bleiben. Durch die frühen Phasen der Entwicklung wurde die API nur mit PHP 7 getestet. Es gibt keine Garantie, dass es mit einer niedrigeren Version arbeiten wird.

    Installation
    Lade die Repository auf deine Festplatte, kopiere die Datei config.example.php und speichere diese als config.php in den Stammordner der Anwendung. Öffne anschließend die neue Datei config.php in einem Quelltexteditor.
    Entferne die Standard Schlüssel aus den Arrays $searchKeys und $streamKeys und füge deine eigenen Schlüssel hinzu. Bei den Schlüsseln gibt es keine Grenzen und auch keine Beschränkungen. Es sei angemerkt, dass die Schlüssel relativ URL-freundlich bleiben sollten.

    Beispiel:

    Schlussendlich solltest du deine privaten API-Schlüssel für YouTube, Soundcloud und Jamendo hinzufügen. Andere Anbieter verlangen keine Schlüssel von dir.

    Wichtig: Dein Webserver MUSS die Dateien aus dem public Ordner der Anwendung freigeben.

    Abkürzungen für API-Anmeldung

    Cron: Cleanup
    Für die Aufräumarbeiten musst du einen Cronjob einrichten, damit die alten und unbenutzen Dateien in den Unterordnern aus storage automatisch entfernt werden.
    Hier ein kleines Template für einen cron Eintrag (die URL musst du entsprechend ändern, damit sie auf deine Umgebung passt):
    0 0 * * 0 /usr/bin/curl http://127.0.0.1/webradio-api/cleanup.php?key=<a key from $streamKeys> >/dev/null 2>&1

    Entwicklungshilfe
    Falls du selber die kleinen Probleme bei der Einrichtung oder Entwicklung beheben willst, dann ändere den Wert der Variable $debug_mode auf true. Diese Variable
    liegt in der Konfigurationsdatei config.php. Diese Änderung sollte dir bei "Out of Order" Fehlern weiterhelfen, aber vergesse sie nicht später zurückzuändern.

    Fehlerbehandlung

    Permission denied for mkdir()
    Dein Webserver hat nicht ausreichend Zugriffsrechte zum Schreiben in den Unterordnern von storage.

    Viele YouTube Videos funktionieren nicht mehr
    Dieser Fehler wird häufiger auftreten, wenn die Entwickler hinter YouTube den Video-Abspieler-Quellcode so stark abändern, so dass der mitgelieferte Decoder den Schlüssel der Videos nicht mehr entziffern kann. Anzumerken wäre hier natürlich, dass eine Dritt-Anbieter Lösung effizienter ist, aber wegen der Minimalität darauf verzichtet wurde. Bei andauernder Unerreichbarkeit der Videos erstelle bitte einen Issue auf GitHub, damit ich darauf aufmerksam gemacht werde, falls ich es nicht merke.

    Benutzung

    Suche
    /search.php?key=<a key from $searchKeys>&service=YouTube&query=Bohemian+Rhapsody
    /search.php?key=<a key from $searchKeys>&service=Soundcloud&query=Adele+Hello
    /search.php?key=<a key from $searchKeys>&service=Jamendo&query=Sunshine
    /search.php?key=<a key from $searchKeys>&service=MyFreeMP3&query=We+Right+Here
    /search.php?key=<a key from $searchKeys>&service=MP3Library&query=Bob+Dylan

    Wiedergabe
    /stream.php?key=<a key from $streamKeys>&service=YouTube&id=<song id>
    /stream.php?key=<a key from $streamKeys>&service=Soundcloud&id=<song id>
    /stream.php?key=<a key from $streamKeys>&service=Jamendo&id=<song id>
    /stream.php?key=<a key from $streamKeys>&service=MyFreeMP3&id=<song id>
    /stream.php?key=<a key from $streamKeys>&service=MP3Library&id=<song id>

    Beispiele

    YouTube
    /search.php?query=Bohemian+Rhapsody&service=YouTube&key=<a key from $searchKeys>

    Soundcloud
    /search.php?query=Adele+Hello&service=Soundcloud&key=<a key from $searchKeys>

    Fehler
    Dieses Beispiel zeigt die JSON Ausgabe, wenn du den key Parameter aus der URL entfernst.

    Code
    {
      "error": "Unauthorized",
      "errno": 2
    }

    Contributing
    Contributions sind herzlich willkommen. Du kannst gerne einen ISSUE oder PULL REQUEST erstellen.

    Lizenz
    Das Projekt und der Quelltext sind unter der MIT License lizensiert - siehe LICENSE.

    Du musst den aktuellen Quellcode verwenden, weil deiner anscheinend noch eine ältere Version der netc.dll erwartet und dementsprechend diese Meldung anzeigt.
    Du kannst über GitHub die aktuelle Ausgabe vom Quellcode bequem als eine .zip Datei herunterladen. master.zip
    Wenn du jedoch einen eigenen Fork der Repository auf GitHub besitzt, dann solltest du deinen master-Branch auf den letzten/neuesten Commit aktualisieren. Wie man einen Fork aufräumt und diesen zurücksetzt.