Beiträge von Jeffry

    Warum soll die Nachricht mit "Du" an alle geschickt werden, Kaliber? Macht wenig Sinn.


    Schreibe das zu deinem Befehl dazu:
    new str[145], name[MAX_PLAYER_NAME];
    GetPlayerName (playerid, name, MAX_PLAYER_NAME);
    format(str, 145, "%s ist jetzt Duty.", name);
    for(new i =0; i < MAX_PLAYERS; i++) if(i!= playerid) SendClientMessage(i, ROT, str);

    Bist du sicher, dass der Befehl die Nachricht schickt? Weil in dem Befehl sehe ich definitiv keine Nachricht, die an irgendjemand anderes geschickt wird, als an den Spieler selbst, und das ist die eine SCM, die kommt auch nicht zwei mal.


    Könntest du mal einen Screenshot davon machen, und sagen, welchen Befehl du genau eingibst?

    Ich schätze mal, fName steht in deinem enum, also dann so:
    stock mysql_CheckKasse(i)
    {
    new query[128],count;
    format(query, sizeof(query), "SELECT * FROM `Kassen` WHERE `Name` = '%s'", fInfo[i][fName]); //fInfo eben so wie es bei dir heißt.
    mysql_query(query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }


    Dann sollte es passen.

    Das kannst du einfach so schreiben.


    for(new i=rows; i < MAX_FRAKTION; i++)
    {
    if(mysql_CheckKasse(i) == 0)
    {
    switch(i)
    {
    case 1: mysql_query("INSERT INTO Kassen (fName) VALUES ('ADAC');");
    case 2: mysql_query("INSERT INTO Kassen (fName) VALUES ('Staatskasse');");
    case 3: mysql_query("INSERT INTO Kassen (fName) VALUES ('Test');");
    }
    }
    }


    Den Stock brauchst du gar nicht.

    Du hast beides mal
    KassenInfo[i]
    geschrieben, ändere das zu
    KassenInfo[i][fGeld]


    Dann gehe ich davon aus, dass dein ADAC eine Fraktion ist. Diese Fraktionen würde ich halb-automatisiert anlegen, indem du beim Server Start prüfst, welche Fraktion noch nicht in der Tabelle steht und die entsprechenden Fraktionen dann hinzufügst. Heißt, wie beim Laden das SELECT und dann:
    for(new i=rows; i < MAX_FRAKTION; i++)
    In der Schleife dann ein query welches einen INSERT macht, mit dem Fraktionsnamen (den findest du über einen switch heraus, über i).
    Beispiel:
    case 1: mysql_query("INSERT INTO Kassen (frakName) VALUES ('ADAC');");


    Oder eben mit dem Fraktionsname über eine Variable, ich weiß ja nicht, wie dein restliches System aufgebaut ist.


    Und erst danach kommt dann der LoadKassen Teil.

    Dann nimmst du die ID auch noch in das enum auf:


    new Float:Tore[][Gates] = {
    {987,-1522.80005, 482.5, -0.4,0.0, 0.0, 0.0,"Das Tor schließt sich Automatisch nach 8 Sekunden", -1522.80005, 482.5, 6.2, 0.0, 0.0, 180.0, 1, 1},//zeile 123
    {DIENEUEID,-1631.7, 688.20001, 3.4, 0.0, 0.0, 0.0,"Das Tor schließt sich Automatisch nach 8 Sekunden",-1631.7, 688.20001, 8.5, 0.0, 0.0, 0.0, 1, 2}//zeile 124
    };


    Auch hier:
    enum Gates {
    modelID,
    Float: OpenX,
    Float: OpenY,
    Float: OpenZ,
    Float: OpenRx,
    Float: OpenRy,
    Float: OpenRz,
    Text[200],
    Float: CloseX,
    Float: CloseY,
    Float: CloseZ,
    Float: CloseRx,
    Float: CloseRy,
    Float: CloseRz,
    Gateteam,
    TorID
    };


    Und hier schreibst du es einfach so:
    for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++)
    {
    Tore[Gateid][TorID] = CreateObject(Tore[Gateid][modelID], Tore[Gateid][CloseX], Tore[Gateid][CloseY], Tore[Gateid][CloseZ], Tore[Gateid][CloseRx], Tore[Gateid][CloseRy], Tore[Gateid][CloseRz]);
    }

    for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++)
    {
    Tore[Gateid][TorID] = CreateObject(987, Tore[Gateid][CloseX], Tore[Gateid][CloseY], Tore[Gateid][CloseZ], Tore[Gateid][CloseRx], Tore[Gateid][CloseRy], Tore[Gateid][CloseRz]);//Army Oben Zeile 142
    }


    Möp. :D


    Dadurch dass wir die Indizes weg gemacht haben, hab ich gar nicht mehr darauf geachtet, dass es jetzt doppelt da steht.

    Warum hast du es nicht einfach kopiert? Vergleiche mal zwischen deiner und meiner Version. ;)


    for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++)
    {
    Tore[Gateid][TorID] = CreateObject(987, Tore[Gateid][CloseX], Tore[Gateid][CloseY], Tore[Gateid][CloseZ], Tore[Gateid][CloseRx], Tore[Gateid][CloseRy], Tore[Gateid][CloseRz]);//Army Oben Zeile 142
    // Zeile natürlich weg... Tore[Gateid][TorID] = CreateObject(987, Tore[Gateid][CloseX], Tore[Gateid][CloseY], Tore[Gateid][CloseZ], Tore[Gateid][CloseRx], Tore[Gateid][CloseRy], Tore[Gateid][CloseRz]); //SFPD
    }

    Nein, ich kann es so kompilieren, aber schau mal, du hast immer noch keine Float Werte bei der Deklaration. Schreibe es so:
    new Float:Tore[][Gates] = {
    {-1522.80005, 482.5, -0.4,0.0, 0.0, 0.0,"Das Tor schließt sich Automatisch nach 8 Sekunden", -1522.80005, 482.5, 6.2, 0.0, 0.0, 180.0, 1, 1},//zeile 123
    {-1631.7, 688.20001, 3.4, 0.0, 0.0, 0.0,"Das Tor schließt sich Automatisch nach 8 Sekunden",-1631.7, 688.20001, 8.5, 0.0, 0.0, 0.0, 1, 2}//zeile 124
    };


    Der Fehler in Zeile 142 kommt bei mir nicht. Poste bitte nochmal dein enum und deine Zeile 142, bzw. die ganze Schleife.

    Mach das mit den TorIDs mal so:
    for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++)
    {
    Tore[Gateid][TorID] = CreateObject(987, Tore[Gateid][CloseX], Tore[Gateid][CloseY], Tore[Gateid][CloseZ], Tore[Gateid][CloseRx], Tore[Gateid][CloseRy], Tore[Gateid][CloseRz]);//Army Oben Zeile 142
    Tore[Gateid][TorID] = CreateObject(987, Tore[Gateid][CloseX], Tore[Gateid][CloseY], Tore[Gateid][CloseZ], Tore[Gateid][CloseRx], Tore[Gateid][CloseRy], Tore[Gateid][CloseRz]); //SFPD
    }


    Und im enum:
    TorID[4]
    zu:
    TorID

    Nein, du brauchst 3 Rotationen für Open und 3 für Close.
    RotX, RotY, RotZ.


    Und das hier muss bei 0 anfangen, auch die ID.
    Tore[Gateid][TorID][1] = CreateObject(987, Tore[Gateid][CloseX][0], Tore[Gateid][CloseY][0], Tore[Gateid][CloseZ][0], Tore[Gateid][CloseR][0]);//Army Oben
    zu:
    Tore[Gateid][TorID][0] = CreateObject(987, Tore[Gateid][CloseX][0], Tore[Gateid][CloseY][0], Tore[Gateid][CloseZ][0], Tore[Gateid][CloseR][0], /*hier noch die anderen Rot's*/);//Army Oben

    Schau mal alle deine Includes und deinen Code durch, und suche nach OnPlayerConnect-Hooks (ein Code Teil, bei dem OnPlayerConnect in einem #define steht).
    Dann poste alles was du dazu findest.


    Möglicherweise überschneidet sich da ein Hook mit einem anderen.

    Du musst die Rotation auch hinzufügen, also drei für Open und drei für Closed. Natürlich bei der Erstellung nur die drei für Closed angeben.


    Und alle müssen den Index 0 haben, beim Objekt 1.

    Du hast hier statische Werte drin, da musst du deine Variablen (x, y, z,...) anstatt den Koordinaten einfügen.


    for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++)
    {
    Tore[Gateid][TorID][1] = CreateObject(987, -1522.80005, 482.5, 6.2, 0, 0, 180);//Army Oben
    Tore[Gateid][TorID][2] = CreateObject(980, -1631.7, 688.20001, 8.5, 0, 0, 0); //SFPD
    }
    Also
    Tore[Gateid][CloseX][0]
    Anstatt - 1522.800...


    Es fängt bei 0 an und geht bis 3. ;)