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

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

  • 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 !