Beiträge von Kaliber

    Hab es soweit angepasst.

    Nein, du hast vergessen beim else Vehicle[vehicleid][vehMats] = 0; zu setzen..so wie in meinem Code.



    Aber wen die Fraktion nur 5.000 brauchen liefert er trotzdem 25k ab?

    Bist du dir denn sicher, dass nur 5k gebraucht werden?


    Printe dir doch mal gebraucht und schau, welcher Wert da berechnet wird.


    Und ich hoffe dir ist klar, dass du angegeben hast, dass in das Lager 250k passen.

    einfach nur hinfahren und die menge was das biz braucht abladen. Wen zuviel geladen ist bleibt der Rest bzw sollte es bleiben. Schließlich bezahlt man dafür so gesehn.

    Dann musst du das berechnen.


    Du hast auch die Klammern falsch gesetzt...oh man..


    C
    if(GetVehicleModel(GetVehicleTrailer(GetPlayerVehicleID(playerid))) != 435) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast den falschen Anhänger. Du brauchst den Produkt Anhänger!");

    hoffe jemand kann mir helfen

    Du machst es dir viel zu kompliziert, schreib es einfach nur so:


    #define MAX_FRAKTIONEN 1

    Okay, alles klar :)


    Das Problem ist du hast einen index.


    Also schauen wir uns das mal an:



    new x[1];
    x[0] = 5; //Das ist kein Problem, denn ein Array fängt bei 0 an
    x[1] = 3; //Das geht nicht...weil wir nur 1nen Index zur Verfügung haben und zwar die 0


    Du versuchst aber, genau das untere auf x[1] zuzugreifen.


    Die Lösung ist ganz einfach, du musst entweder überall Fraktion[f_ID-1] verwenden oder direkt nur 0 als Fraktion eingeben, da sich das ja auf den Index bezieht :)

    [19:33:16] [debug] Run time error 4: "Array index out of bounds"
    [19:33:16] [debug] Attempted to read/write array element at index 1 in array of size 1

    Da, das ist dein Fehler :)


    Wie hast du denn Fraktion deklariert? ;)



    Ich komm auf den Fehler nicht ich änder das die ganze zeit und die fehler beleiben..

    Dann schreib es doch mal ordentlich ^^


    Oder lager es aus.


    C
    new veh = GetPlayerVehicleID(playerid);
    new trailer = GetVehicleTrailer(vehicleid);
    new model = GetVehicleModel(veh);
    
    
    if((model == 514 || model == 515) && GetVehicleModel(trailer) == 584)

    Hinzufüge kann der Compeiler den Code nicht compeilen warum? bzw reagiert er nicht mehr

    Vermutlich weil die Zeile zu lang ist.


    Aber lager das doch aus:


    Schreib es lieber so, das ist effizienter:



    1. Dieses @ ist quasi nur forward und public.


    2. Das ist nur eine Schleife, die durch alle Spieler iteriert und prüft, ob ein Spieler länger als 120 Sekunden inaktiv war :D

    Hier mal eine Möglichkeit:


    Das kann an vielem liegen.


    Bist du sicher, dass es kein Klammerfehler ist?


    Weder ein { noch ein (.


    Hast du OP-Code wie #emit in deinem Skript?


    Kann auch an ungültigen defines liegen...


    Ein trick wäre..erstmal ganz viel auszukommentieren und es empfiehlt sich generell immer ein Backup zu haben :D