Beiträge von Kaliber

    Bekomme immernoch die id 0 zurück.

    Okay, kannst du mal aus Spaß zeigen was die Werte von:


    VehicleTowedSpawn[0][TowedSpawnMinX] , VehicleTowedSpawn[0][TowedSpawnMinY], VehicleTowedSpawn[0][TowedSpawnMaxX], VehicleTowedSpawn[0][TowedSpawnMaxY]


    und


    VehicleTowedSpawn[0][TowedSpawnX],VehicleTowedSpawn[0][TowedSpawnY],VehicleTowedSpawn[0][TowedSpawnZ]


    sind :)

    Also setzen wir mal voraus, dass die Koordinaten stimmen, dann gibt es einige Logik Fehler in deinem Code.


    Ich versuche dir das mal zu erklären, was deine 2 größten sind.


    • Du startest die vehicleids ab 0. Allerdings starten diese bei 1, somit steht das 1. Fahrzeug natürlich nie, an einem Parkplatz, da es nicht existiert. Dann prüfst du, ob es da steht, natürlich nicht und schwupp scheint es so als sei Parkplatz 0 frei.
    • Hier solltest du den 2. Logikfehler gesehen haben, du musst erst durch alle Fahrzeuge durchloopen um zu schauen, ob ein Parkplatz frei ist oder nicht.

    Also hier mal anders:



    Und schreib die andere Funktion mal so, das ist eleganter und schneller:



    C
    stock IsVehicleInArea(vehicleid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
        new Float:X, Float:Y, Float:Z;
        GetVehiclePos(vehicleid, X, Y, Z);
        return (X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY);
    }

    Uff, du machst da ein ziemliches doppel gemoppel.


    Du könntest auch einfach die vehicleid als index für dein Array nehmen, anstatt nach einem freien Platz zu suchen.


    Schließlich soll das ja auch wieder überschrieben werden, aber so wird dein Array immer größer..und gelöschte Autos bleiben da stehen (es sei denn du resettest diese manuell).


    Wie dem auch sei, du denkst du hättest den index gemappt, aber in deinem Fall ist fV != vehicleid wie es eigentlich sein sollte.


    Also du hast 2 Möglichkeiten, entweder du passt das an und änderst das oder du schreibst eine Funktion wie:


    C
    stock getFV(vehicleid)
    {
        for(new v; v<sizeof(Vehicle); v++)
        {
            if(Vehicle[v][vehID] == vehicleid) return v;
        }
        return INVALID_VEHICLE_ID;
    }


    Und dann deine Funktion so:



    vehFraktion werden nach nummern eingefragen.

    Das würde ich gerne mal sehen, da ich vermute, dass dort der Fehler liegt :)


    Zur Überprüfung, kannst du ja auch einfach mal mit printf dir aus Spaß eine Fahrzeug Fraktion ausgeben lassen um zu testen, ob es denn funktioniert, aber ich denke nicht :D

    So gehts

    So ist das aber falsch, da dann nur die Fraktion von einem selbst angezeigt werden würde. (da du playerid und nicht pID nutzt)


    Schreib das mal so:


    dass ich einen zu neuen(?) Release der Include benutze

    Ehh glaube ich nicht, eher einen zu alten?


    Es wäre einfacher, wenn du uns sagst, welche Version du nutzt ^^


    Brauchen tust du denke ich eine zwischen R5-R7...aber ich weiß nicht, ob du die noch auftreiben kannst.


    Ist ne doofe Sache nur das Gamemode ohne Includes & Plugins zu speichern ^^

    Versuchs mal so:


    @Kaliber hast du eine Idee ?

    Grundsätzlich kannst du davon ausgehen, dass du etwas vergessen hast, wenn sowas passiert :)


    Entweder eine { oder } oder eine ( oder ) oder sogar " oooder ;


    Wenn du vergessen hast z.B. den String wieder zu schließen :)


    Manchmal gibt der da Errors, aber manchmal reagiert der compiler auch sehr allergisch darauf und verabschiedet sich ^^


    Deshalb Code nochmal genau anschauen ;)

    Weißt du noch, wo du das gesehen hattest?


    Denn ich hatte mal sowas vorgestellt gehabt:


    Videos / Gifs in SA:MP


    Allerdings handelt es sich hier um kein simples Include, da ist erstmal ein wenig Vorarbeit nötig die Bilder zu konvertieren und das ein wenig zu optimieren, da wird leider nichts nativ von SA:MP unterstützt.


    Inspiriert wurde ich von diesem Projekt: http://forum.sa-mp.com/showthread.php?t=591938


    //Edit: Ahh okay, cool ^^


    PS: Das war nur eine Vorstellung meinen Source Code hab ich nicht veröffentlicht :P