[SA:MP] Run time error 4: "Array index out of bounds"

  • Hallo,


    ich erhalte von der Konsole einen Fehler zurück der auf eine Funktion zurückzuführen sein soll. Hat jemand eine Idee dass ganze zu optimieren dass dort kein Fehler erscheint ?



    Code
    [debug] Run time error 4: "Array index out of bounds"
    [debug]  Attempted to read/write array element at negative index -400
    [debug] AMX backtrace:
    [debug] #0 00009910 in ?? (0) in script.amx
    [debug] #1 00013b88 in public OnPlayerUpdate (0) in script.amx

    OnPlayerUpdate

  • Das hat erstmal nix zu sagen wenn das server so normal geht

    sieht mir nach einer ausgabe vom plugin crashdetect aus

    Den som venter på noe godt, venter aldri forgjeves.

    Der Klügere gibt nach bye bye

  • Naja...sollte man schon nicht ignorieren...


    Du setzt irgendwie keine geschweiften Klammern bei deinen if-Abfragen...wiiiesooo?!

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Um das Problem zu beheben frage am besten ab wenn das Ereigniss nicht passiert.

    Das würde dir sehr viel Arbeit/Stress sparen.

    Danach kannst du ein continue hinter deiner Abfrage setzen.

    Was bedeutet:

    Wenn der Spieler nicht verbunden ist: passiert nichts.

    Code
        if(!IsPlayerConnected(playerid))continue;
        if(!IsPlayerInAnyVehicle(playerid))continue;
  • Danach kannst du ein continue hinter deiner Abfrage setzen.

    Wenn ein return, das ist keine Schleife.

    Allerdings soll ja auch Code ausgeführt werden, wenn er nicht im Auto ist...

    Das müsste er nach oben packen oder die Abfragen einfach richtig machen :D

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • getVehicleName(GetVehicleModel(vID))


    Du überprüfst nicht, ob der Spieler in einem Fahrzeug sitzt; in getVehicleName wird vermutlich von 0 die 400 abgezogen, weshalb du bei deinem Fahrzeug-Namen-Array auf -400 zugreifst, was keine definierte Aktion ist.

    Abgesehen von den anderen syntaktischen Fehlern. :)

  • Ich habe dass ganze mal nach euren Ratschlägen angepasst. Dabei ist mir selbst eine Sache aufgefallen die eigentlich ziemlich sinnlos ist.


    Der tanktimer wird nur in einer Funktion aufgerufen. Hier habe ich sinnloserweise mit dem setzen von der Variable und dem zurücksetzen mir den Fehler selbst eingebrockt.

    Ich danke euch für eure Hilfe und die zusätzlichen Tipps !