Beiträge von Douq

    Ist der Server denn Online bei dir bei dem anderen Skript, aber reagiert nicht auf deine Verbindung?

    • Dann ist wahrscheinlich eine Endlosschleife schuld.


    Ist der Server Offline?

    • Probier mal den Code innerhalb von OnGameModeInit() auszukommentieren. Ich bin mir nicht sicher, aber ich glaube crashdetect reagiert nicht, wenn man versucht wird ein Verzeichnis / Datei zu öffnen, was nicht existiert.

    Versteh halt nicht wie manche Quantität höher sehen können als Qualität, aber naja. Ich finde die Map eigentlich ziemlich ansehenswert und originell. Sicherlich nicht viele Objekte benötigt, aber das ist sicherlich auch kein Kriterium einer guten Map :rolleyes:

    Kannst du einfach nicht mit dem Server verbinden? Schon mal einfach mit einem default Skript (z.B. grandlarc) probiert? Würde nämlich dann schon mal die Fehlerursachen deutlich eingrenzen, auf Server oder Skript.

    frakid frakname maxmembers maxrangs rang1 rang2 rang3 rang4 rang5 rang6 rang7 rang8 rang9 rang10 rang11 kasse gehalt1 gehalt2 gehalt3 gehalt4 gehalt5 gehalt6 gehalt7 gehalt8 gehalt9 gehalt10 gehalt11 drugs mats
    1 Regierung 24 11 Rang1 Rang2 Rang3 Rang4 Rang5 Rang6 Rang7 Rang8 Rang9 Rang10 Rang11 1 0 0 0 0 0 0 0 0 0 0 0 0



    Das ist einmal der erste Teil deines Datensatzes, mit der du einen neuen row erstellen willst. Das ist so weit (scheinbar) auch alles richtig, nur bleiben folgende Werte übrig: 0 und 0.


    Lösch einfach bei jedem Datensatz die letzten zwei Nullen, dann sollte der Query erfolgreich ausgeführt werden.

    Hast du denn Zugriff auf den Benutzer root? Denn eigentlich sollte der Befehl das Problem beheben, es sei denn, du verursachst wieder Verbindungsfehler. Dabei gibt es zwei mögliche Vorgehensweisen um das Problem zu lösen:


    • Die Anzahl der maximalen Verbindungsfehler bis zum Sperren des Hosts zu erhöhen (max_connect_errors) - empfehle ich dir aber nicht.
    • Den Fehler suchen und lösen. Du musst ja scheinbar entweder innerhalb deines Skripts oder per einem PHP Skript Quark an den MySQL Server beim Verbinden senden (musst mal schauen WER / WAS auf die Datenbank zu greifen will / kann).

    Die Anzahl der Spalten entspricht nicht der Anzahl der Inhalte die du pro Zeile setzen willst. Beim Durchzählen fällt auf, dass du weniger Spalten hast, als du Werte setzen möchtest. Musst du mal drüber schauen und falsche (/überflüssige) Werte löschen.

    Code
    stock GetFreeHouseID()
    {
        for(new i=0; i<sizeof(hInfo); i++)
        {
            if(hInfo[i][Haus_ID]==0)return 1;
        }
        return 0;
    }

    Die Funktion ist ja an sich auch Quatsch, du willst ja den nächsten freien Index von deinem Array haben und nicht herrausfinden, ob einer frei ist oder nicht. return 1 musst du ersetzen mit return i.

    Um das alles ein wenig einfach zu gestalten, kannst du einfach eine .ini Datei nehmen, die du wesentlich einfacher und unkomplizierter Auslesen kannst. (Natürlich denn aber auch anders Speichern!)

    Soweit ich weiß (arbeite nicht mit DINI, Y_INI, ...) müssen diese immer im folgenden Format sein VALUENAME = VALUE. Würde ja bedeuten, er müsste Spawn1 = Koordinaten, Spawn2 = Koordinaten ... Objekt1 = Objekt 1 Koordinaten machen, was deutlich umständlicher, per Code unübersichtlich und schlichtweg nicht einfacher wäre.


    Kannst mich ja gern aufklären, wenn es auch anders geht (also ich gehe mal davon aus, dass du solche Systeme meinst, denn *.ini ist ja keine Art und Weise eine Datei auszulesen sondern nur ein Dateintyp. )

    Dann lad mal bitte das ganze Filterscript auf pastebin hoch, denn der Code ist nicht vollständig, was für eine Fehleranalyse (wahrscheinlich) notwendig wäre.

    Zu deinem hauptsächlichen Problem:
    Sinn macht es, entweder über eine Datenbank oder per File zu lösen. Ich hatte es damals per File gelöst, da es zu diesem Zeitpunkt die sinnvollere und einfachere Methode für mich und meinen Kollegen Dentafa war, als es per Datenbank zu lösen.


    Dabei sind wir es so angegangen, dass wir einen Ordner unter scriptfiles erstellt haben (Derby), in welchem all unsere .derby Datein enthalten waren. Zusätzlich gab es noch eine maplist.derby, in welche alle Derbydatein per Namen enthalten waren (da es ja ohne Plugin nicht möglich ist herrauszufinden, welche Datein innerhalb eines Verzeichnisses liegen). Hier könnte man auch auf eine statische Methode zurückgreifen wie z.B. ein Array im Skript mit den Namen, wir haben uns aber dadurch die Möglichkeit gegeben, während des Spielbetriebes neue Mapdatein hinzufügen zu können (was auch immer ganz nützlich war, auch beispielsweise wenn eine Map fehlerhaft war).


    Innerhalb dieser Map wurden dann folgende Informationen gespeichert: Name der Map, Author, niedrigste Z - Koordinate (wobei später es glaube ich automatisiert abläufte), Spawns und Objekte. Dabei enthielt Zeile 1 immer die ersten drei Informationen, Zeile 2 - 21 die 20 Spawnpositionen und die restlichen Zeilen die Objektkoordinaten. Diese dann einfach per fread & while Schleife auslesen, und dann je nach Zeile den Zeilensatz anders splitten und die Informationen anders zuweisen.


    Hoffe das war soweit verständlich, sollten noch Fragen bestehen mich einfach nochmal markieren.


    Gruß

    Du benötigst das MySQL Plugin von BlueG, ich glaube R7 beinhaltet die benötigten Funktionen.


    edit: Link hinzugefügt
    edit: Version korrigiert