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?
Run time error 20: "Invalid index parameter (bad entry point)" bei jedem Schuss
- LeonMrBonnie
- Geschlossen
- Erledigt
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
-
-
Aktualisiere dein Crashdetect Plugin:
http://forum.sa-mp.com/showthread.php?t=262796 -
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...
-
Lass dir wie hier in Kapitel 1.5 beschrieben, die Zeile mit dem Fehler ausgeben:
Tipps: Scripting-Probleme richtig erklärenDann weißt du wo das Problem liegt und kannst dort ebenfalls die Abfrage hinzufügen.
-
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) -
Naja du greifst in der zeile 1422 erst auf das array zu und danach prüfst du erst ob der spieler valide ist.
-
breadfish.de
Hat das Thema geschlossen.