Run time error 20: "Invalid index parameter (bad entry point)" bei jedem Schuss

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 kriege bei jedem abgefeurten Schuss oder bei jedem ausgeführten Befehl in die Konsole einmal "[debug] Run time error 20: "Invalid index parameter (bad entry point)"" geschickt, ich habe das "main {}" über meinem OnGameModeInit aber das hat nichts gebracht, wie kann ich das ganze beheben?

  • Danke, das hat es behoben, ich habe aber leider ein weiteres Problem, jedes mal wenn ein Spieler Schaden von der Welt kriegt(Fallschaden etc.) dann steht in der Konsole etwas von array out of bounds. Ich habe aber bei meinem OnPlayerTakeDamage überall "if(playerid != INVALID_PLAYER_ID && issuerid != INVALID_PLAYER_ID" stehen...

  • 20:13:54] [debug] Run time error 4: "Array index out of bounds"[20:13:54] [debug] Attempted to read/write array element at index 65535 in array of size 1000[20:13:54] [debug] AMX backtrace:[20:13:54] [debug] #0 000225cc in public OnPlayerTakeDamage (playerid=0, issuerid=65535, Float:amount=4.95000, weaponid=54, bodypart=3) at C:\Users\Agando\Desktop\Garage\AnotherLife Keybinder\SAMP 1HK Server\gamemodes\1hk.pwn:1413


    Zeile 1413:

    if(Health[0] > 0 && playerid != INVALID_PLAYER_ID && issuerid != INVALID_PLAYER_ID)
    {
    if(amount > Health[0])
    {
    Damage = amount - Health[0];
    amount = amount - Damage;
    }
    }


    EDIT:
    Manchmal steht dort statt 1413 auch 1422...


    Zeile 1422:

    if(HitSound[issuerid] == true && issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID)
    {
    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    }

  • Wenn du Arrays hast und diese mit Variablen prüfen möchtest, dann prüfe die Variable ob sie auch in die Range des Arrays passt, bevor du sie nutzt und nicht danach.


    if(HitSound[issuerid] == true && issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID)
    zu
    if(issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID && HitSound[issuerid] == true)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski