Beiträge von Edgar

    Ja mooin!


    Bin hier nun auch offiziell ich. Spontan nach dem Billiard spielen beschlossen sich zu betrinken.. 3 Min vor Verkaufsverbot noch alles mitgenommen, was man in die Hände bekommen hat. :sleeping:

    Ich würde das folgendermaßen aufbauen:

    Füge deinem Vehicle-Enum noch einen Wert hinzu, bspw: fvehInUse (als Boolean-Wert)

    Damit kannst du prüfen, ob der Index/Slot bereits in Verwendung ist.


    Diesen Wert musst du immer auf true setzen, wenn du ein Fahrzeug erstellst und somit diesen Slot verwendest und auf false, wenn du diesen wieder freigibst.


    Mit dieser Funktion kannst du den nächsten freien slot erhalten.

    Code: getNextFreeVehicleSlot.stock.inc
    stock getNextFreeVehicleSlot() {
        for(new i; i < MAX_FRAK_VEHICLE; i++) {
            if (!fVehInfo[i][fvehInUse]) return i;
        }
        return -1;
    }


    Dann kannst du das folgendermaßen in deinen Befehl einbauen:


    Vergiss nicht, an den Stellen in deinem Script, an der du Fahrzeuge erstellst auch fVehInfo[freeSlot][fvehInUse] = true; zu verwenden und

    da, wo du welche wieder löscht dann auf false.


    Und dein Enum um fvehInUse erweitern.


    Anmerkung zur deiner Methode mit IsValidVehicle:

    Sollte das Fahrzeug irgendwann mal irgendwie verschwinden (Explodiert, nicht geladen, Troller und so weiter) dann wird das Fahrzeug durch dein Befehl überschrieben, da es nunmal nicht valide ist.


    Mit meiner Empfehlung auf fvehInUse zu prüfen, hast du die alleinige Kontrolle über den "Datensatz", ob dieser verwenden wird oder nicht. Mit IsValidVehicle hingegen kann dir auch mal das Spielgeschähen dazwischen funken, das ist aber in diesem Fall nie gewollt.

    Habe das schnell frei aus dem Kopf erledigt, könnte sein, dass da auch Denkfehler mitbei sind, einfach mal testen.

    Marschl


    Ich gehe mal davon aus, dass der Fehler von fInfo[frak][fName] erzeugt wird. frak scheint größer zu sein, als der mögliche Index von fInfo zulässt.

    Dabei noch eine Frage: Fragst du innerhalb der Schleife ab, ob das Fahrzeug valide ist und wenn nicht, dann soll er das Fahrzeug erstellen?


    Das sieht alles nämlich etwas zu unkonventionell aus. Magst du mal sonst dein Befehl hier reinschreiben, dann kann man mal schauen, was man da verbessern kann.

    Marschl

    Du gibst ja auch printf("%d", fVehInfo[i][fvehID]); in deiner Schleife an. Ich gehe mal davon aus, dass in der fvehID die Datensatz-ID des Fahrzeuges gespeichert ist.

    Damit der Schleifendurchgang geprinted wird, brauchst du nur die lokale Variable i in deinem print angeben.

    Witzig. Das nervende Kleinkind ist der erste Benutzer, den ich je verwarnen musste. Das Schloss hinter seinem Namen steht ihm aber.

    lets gooo Edgar BEEF!!!!!!!11111111!!

    Ich habe gleich eine sieben Stunden Fahrt vor mir. Kann mich mit der Vorschulgruppe leider nicht auseinandersetzen. Dafür sind aber die Erzieher da - die scheinbar nichts im Griff haben bada-bamm

    Immer wieder schön zu sehen, wie jemand ankommt und erstmal einen Markenkrieg beginnt. Wie alt ist man schätzungsweise bei so einem Verhalten? 12?