Beiträge von Jeffry

    Nochmal die Frage:
    Nutzt du das Plugin oder die stock Funktion?


    Falls Funktion: Nutze das neue Plugin und mach unten stehende Änderung.
    Falls Plugin:
    if(sscanf(params,"s",text))
    zu:
    if(sscanf(params,"s[256]",text))

    Du greifst zu Anfang mit playerid auf den Index zu, dann muss es so sein:
    AdminObjects[playerid][AObjectX] = fX;
    AdminObjects[playerid][AObjectY] = fZ;
    AdminObjects[playerid][AObjectZ] = fY;


    if(strcmp("/objects", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Objecte:");
    if(AdminObjects[playerid][AObjectID] != -1)
    {
    format(string, sizeof(string), "ID %d, X %f, Y %f, Z %f", AdminObjects[playerid][AObjectID], AdminObjects[playerid][AObjectX], AdminObjects[playerid][AObjectY], AdminObjects[playerid][AObjectZ]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    }
    }
    return 1;
    }

    Habe es ihm per TeamViewer kurz gemacht.
    Das Haupt-Problem, dass es nicht richtig ging war der AI-Key in der Datenbank und falsche Zugriffe auf die Variablen.


    Es funktioniert nun alles, auch wenn man Fraktionen aus der Mitte löscht, werden diese wieder eingefügt.

    Du hast eine Zeile mehr, also 11 und 6.

    Spoiler anzeigen
    enum Pilotwaren
    {
    Float:pos_x,
    Float:pos_y,
    Float:pos_z,
    };
    new pilotwarens[11][Pilotwaren] =
    {
    {2077.7405,-2262.9973,13.5469},
    {2079.4575,-2308.3552,13.5469},
    {2077.3298,-2364.7249,13.5469},
    {2059.5100,-2382.7617,13.5469},
    {1893.1982,-2329.1050,13.5469},
    {1892.6921,-2245.3176,13.5469},
    {1826.6731,-2390.2268,13.5547},
    {1767.5862,-2434.3186,13.5547},
    {1685.7271,-2432.7996,13.5547},
    {1608.8894,-2435.3000,13.2597},
    {1525.5851,-2432.9492,13.2601}
    };

    Spoiler anzeigen
    enum Pilotkoffer
    {
    Float:pos_x,
    Float:pos_y,
    Float:pos_z,
    };
    new pilotkoffers[6][Pilotkoffer] =
    {
    {1642.5515,-2373.1008,13.1621},
    {1684.1864,-2373.7517,13.1622},
    {1729.1421,-2373.5588,13.1616},
    {1571.1232,-2266.8850,-3.0940},
    {1474.4879,-2248.7656,-3.1163},
    {1581.5092,-2291.5144,-3.1597}
    };


    Oder du lässt es einfach leer:

    Spoiler anzeigen
    enum Pilotwaren
    {
    Float:pos_x,
    Float:pos_y,
    Float:pos_z,
    };
    new pilotwarens[][Pilotwaren] =
    {
    {2077.7405,-2262.9973,13.5469},
    {2079.4575,-2308.3552,13.5469},
    {2077.3298,-2364.7249,13.5469},
    {2059.5100,-2382.7617,13.5469},
    {1893.1982,-2329.1050,13.5469},
    {1892.6921,-2245.3176,13.5469},
    {1826.6731,-2390.2268,13.5547},
    {1767.5862,-2434.3186,13.5547},
    {1685.7271,-2432.7996,13.5547},
    {1608.8894,-2435.3000,13.2597},
    {1525.5851,-2432.9492,13.2601}
    };

    Spoiler anzeigen
    enum Pilotkoffer
    {
    Float:pos_x,
    Float:pos_y,
    Float:pos_z,
    };
    new pilotkoffers[][Pilotkoffer] =
    {
    {1642.5515,-2373.1008,13.1621},
    {1684.1864,-2373.7517,13.1622},
    {1729.1421,-2373.5588,13.1616},
    {1571.1232,-2266.8850,-3.0940},
    {1474.4879,-2248.7656,-3.1163},
    {1581.5092,-2291.5144,-3.1597}
    };

    So wie ich das sehe fehlt vor mysql_connect das hier:
    mysql_debug(1);


    Hast du das nicht eingefügt? Es wird nämlich kein Query geloggt, nichts. Du siehst ja, dass es praktisch leer ist. ;)

    Erstelle doch in deiner Datenbank mal die Tabelle für die Fraktionsfahrzeuge. Wenn du das gemacht hast, und alle benötigten Spalten hinzugefügt hast, poste einen Screenshot der Tabelle.
    Dann poste bitte auch das enum deiner Fraktionen dazu.

    Es ist allerdings egal, ob da jetzt 0 steht, oder mysql_num_rows 0 ausgibt, das kommt im Endeffekt auf das gleiche raus.
    Natürlich muss es so aussehen:
    mysql_query("SELECT * FROM Kassen");
    mysql_store_result();
    new rows = mysql_num_rows();
    for(new i=rows; i < MAX_FRAKTION; i++)
    {
    if(mysql_CheckKasse(i) == 0)
    {
    switch(i)
    {
    case 1: mysql_query("INSERT INTO Kassen (Name) VALUES ('ADAC');");
    case 2: mysql_query("INSERT INTO Kassen (Name) VALUES ('Staatskasse');");
    case 3: mysql_query("INSERT INTO Kassen (Name) VALUES ('Test');");
    }
    }
    }


    Und das "Connect_To_Database();" muss vor dem Code stehen.
    Schreibe am besten "Connect_To_Database();" in die erste Zeile nach public OnGameModeInit.

    Nein BlackAce, dann erstellt es ja bei jedem Server-Start die Fraktionen. Er prüft ja, wie viele Fraktionen existieren und erstellt dann ggf. die, die noch nicht existieren.



    TVPikachu, du rufst den Code gar nicht auf. Poste doch bitte mal dein gesamtes OnGameModeInit, und zwar auch den Teil, mit dem du die Verbindung zur Datenbank herstellst (Passwort entfernen!).
    Und ändere das wieder zurück, das war schon richtig, sonst hätte ich es dir nicht gesagt.

    Dann gibt es zwei Möglichkeiten:
    - Entweder du arbeitest dich in die Arbeit mit MySQL ein (das ist nicht in 5 Minuten gemacht, sondern kann mehrere Wochen dauern),
    - oder du baust erst mal Systeme auf, die du dir zutraust.


    Gegebenenfalls kannst du das System ja auch zuerst mit Dateien aufbauen, wenn dir das leichter fällt.


    Hast du die Fraktionen denn schon in MySQL?

    Der Abschnitt mit den INSERT's (also den Code Teil den du gepostet hast) muss nach der Herstellung der Verbindung zur Datenbank stehen.
    Von jetzt an, wenn es nicht geht, immer den MySQL Log gleich dazu posten.

    Das ist der Server Log, und nicht der MySQL Log.


    Aber schreib den switch mal so:
    case 1: mysql_query("INSERT INTO Kassen (Name) VALUES ('ADAC');");
    case 2: mysql_query("INSERT INTO Kassen (Name) VALUES ('Staatskasse');");
    case 3: mysql_query("INSERT INTO Kassen (Name) VALUES ('Test');");


    Auf dem Bild heißt es ja "Name" und nicht "fName". Der Rest müsste passen. Wenn es immer noch nicht geht, poste bitte den MySQL Log.

    Du hast bei jedem Zeitpunkt diese Position:
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);


    Wenn du die Position ändern willst, musst du diese Koordinaten ändern.