Crashdetect meldet Fehler in Log

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
  • Guten Abend,
    ich nutze das Plugin crashdetect.so, diese meldete heute einige Fehler in den Logs.
    Ich wollte mal nachfragen, was diese Fehler bedeuten könnten und in welchen Fällen dies meist auftritt etc.


    [19:17:54] [debug] AMX backtrace:
    [19:17:54] [debug] #0 000d2e30 in public OnPlayerStateChange () from neu.amx
    [19:17:55] [debug] Run time error 4: "Array index out of bounds"
    [19:17:55] [debug] Accessing element at index 555 past array upper bound 4
    [19:17:55] [debug] AMX backtrace:
    [19:17:55] [debug] #0 000d2e30 in pu



    Das ist die "OnPlayerStateChange" Funktion:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_ONFOOT)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && gPlayerLogged[i] && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
    {
    PlayerSpectatePlayer(i, SpectatedPlayer[i]);
    }
    }
    }
    if(newstate == PLAYER_STATE_PASSENGER)
    {
    if(!(GetPlayerWeapon(playerid) == 29 || GetPlayerWeapon(playerid) == 30 || GetPlayerWeapon(playerid) == 31))
    {
    SetPlayerArmedWeapon(playerid, 0);
    }
    }
    if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
    StopAudioStreamForPlayer(playerid);
    }
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && gPlayerLogged[i] && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
    {
    PlayerSpectateVehicle(i, GetPlayerVehicleID(SpectatedPlayer[i]));
    }
    }
    new vID = GetPlayerVehicleID(playerid);
    if(RadioSender[vID] > 0)
    {
    if(RadioSender[vID] == 1)
    {
    PlayAudioStreamForPlayer(playerid, "http://www.wdr.de/wdrlive/media/einslive.m3u");
    }
    else if(RadioSender[vID] == 2)
    {
    PlayAudioStreamForPlayer(playerid, "http://ni39999_2.fastdownload.nitrado.net/TechnoBase.pls");
    }
    else if(RadioSender[vID] == 3)
    {
    PlayAudioStreamForPlayer(playerid, "http://ni39999_2.fastdownload.nitrado.net/HardBase.pls");
    }
    else if(RadioSender[vID] == 4)
    {
    PlayAudioStreamForPlayer(playerid, "http://ni39999_2.fastdownload.nitrado.net/iloveradio.m3u");
    }
    else if(RadioSender[vID] == 5)
    {
    PlayAudioStreamForPlayer(playerid, "http://breakz.us/radio/listen.m3u");
    }
    else if(RadioSender[vID] == 6)
    {
    PlayAudioStreamForPlayer(playerid, "http://metafiles.gl-systemhaus.de/hr/youfm_2.m3u");
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    SetPlayerArmedWeapon(playerid, 0);
    new mod = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(IsAFahrrad(mod))
    {
    new engine, light, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, light, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, light, alarm, doors, bonnet, boot, objective);
    }
    if(Spieler[playerid][pLevel] <= 10)//von lv. 1 - 10 anzeigen^^
    {
    if(!IsAFahrrad(mod))
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-4 "COLOR_HEX_WHITE"um den Motor zu starten.");
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-6 "COLOR_HEX_WHITE"um das Licht zu aktivieren.");
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Mit dem Befehl /Radio schaltest du dein Auto-Radio an!");
    }
    }
    if(mod == 560)
    {
    if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 2)
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-2 "COLOR_HEX_WHITE"um die Sirene zu aktivieren.");
    }
    }
    if(mod == 525)
    {
    if(Spieler[playerid][pFraktion] == 5)
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-2 "COLOR_HEX_WHITE"um die Sirene zu aktivieren.");
    }
    }
    if(IsACar(mod))
    {
    if(Spieler[playerid][pCarLic] == 0 && pFahrStunde[playerid] == 0)
    {


    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Führerschein!");
    return 1;
    }
    }
    if(IsABoat(mod))
    {
    if(Spieler[playerid][pBoatLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Bootsschein!");
    return 1;
    }
    }
    if(IsAPlane(mod))
    {
    if(Spieler[playerid][pFlyLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Flugschein!");
    return 1;
    }
    }
    if(IsATruck(mod))
    {
    if(Spieler[playerid][pLKWLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen LKW-Schein!");
    return 1;
    }
    }
    if(IsABike(mod))
    {
    if(Spieler[playerid][pMotoLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Motorradschein!");
    return 1;
    }
    }
    new vehicleid = GetPlayerVehicleID(playerid);
    new typ, string[256];
    typ=IsAutohausCar(vehicleid);
    if(!(typ==-1))
    {
    FreezePlayer(playerid);
    Spectating[playerid][0]=typ;
    new str[512];
    format(str, sizeof(str), "{FFFFFF}Willkommen im Autohaus.\n{3F62DA}Informationen:\n{3F62DA}Name:{FFFFFF}\t%s\n{3F62DA}Preis:{FFFFFF}\t %d$\n{3F62DA}Tank:{FFFFFF}\t %d\n\nWenn du dieses Fahrzeug wirklich kaufen möchtest,\ndann drücke auf \"{3F62DA}Kaufen{FFFFFF}\".\nWenn nicht drücke auf \"{3F62DA}Abbrechen{FFFFFF}\".", Kaufliste[typ][Name], Kaufliste[typ][aPreis], Kaufliste[typ][Tank]);
    ShowPlayerDialog(playerid, DIALOG_SELLCAR, DIALOG_STYLE_MSGBOX, "{3F62DA}Autohaus", str, "Kaufen", "Abbrechen");
    }
    for(new i=0;i<sizeof(combines);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == combines[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 1)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Farmer Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /startharvest zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stopharvest zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Farmer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(drogen);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == drogen[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 7)
    {
    JobVehicle[playerid] = vID;
    new str[128];
    format(str, sizeof(str), "** Drogenbestand des Fahrzeugs: %d/5 **", bestand[vID]);
    SendClientMessage(playerid, COLOR_GREEN, str);
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadpakete zum aufladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /unloadpakete zum entladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Drogendealer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(wdealer);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == wdealer[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 8)
    {
    JobVehicle[playerid] = vID;
    new str[128];
    format(str, sizeof(str), "** Waffenbestand des Fahrzeugs: %d/5 **", bestand[vID]);
    SendClientMessage(playerid, COLOR_GREEN, str);
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadpakete zum aufladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /unloadpakete zum entladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Drogendealer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(bus);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == bus[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 2)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Busfahrer Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /startlinie zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stoplinie zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Busfahrer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(flug);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == flug[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 4)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Pilot Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /startflug zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stopflug zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Pilot.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(truck);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == truck[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 3)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Trucker Information *");
    if(GetVehicleModel(vID) == 514)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Beliefere nun die Tankstellen mit Benzin!");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadbenzin um den Tanker mit Benzin zu beladen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /sellbenzin um Benzin an Tankstellen zu verkaufen.");
    SendClientMessage(playerid, COLOR_WHITE, "Unter /navi -> Weitere Orte findest du die Öl-Raffinerie.");
    return 1;
    }
    else if(GetVehicleModel(vID) == 499)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Beliefere nun die Geschäfte mit Waren!");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadwaren um den Transporter mit Waren zu beladen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /sellwaren um Waren an Geschäfte zu verkaufen.");
    SendClientMessage(playerid, COLOR_WHITE, "Unter /navi -> Weitere Orte findest du die Waren-Vergabe.");
    return 1;
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Trucker.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(kfz);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == kfz[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 5)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* KFZ-Mechatroniker Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /repaircar [SpielerID/Name] [Preis] zum reparieren.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /refillcar [SpielerID/Name] [Preis] zum auftanken.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein KFZ-Mechatroniker.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    new vehicle = GetPlayerVehicleID(playerid);
    new besitzer = GetCarOwner(vehicle);
    new Slot = GetCarOwnerSlot(besitzer, vehicle);
    if(vehicle == PlayerCar[besitzer][Slot][CarId])
    {
    if(PlayerCar[besitzer][Slot][CarState] == 1)
    {
    FreezePlayer(playerid);
    format(string, sizeof(string), COLOR_HEX_BLUE"Dieses Fahrzeug wurde aufgrund einer Ordnungswidrigkeit abgeschleppt!\n"COLOR_HEX_WHITE"Um das Fahrzeug freizukaufen, benötigst du "COLOR_HEX_ORANGE"$35000"COLOR_HEX_WHITE"!\nKlicke nun auf \"Freikaufen\" um dein Fahrzeug zurück zu bekommen.");
    ShowPlayerDialog(playerid, DIALOG_CAROAMT, DIALOG_STYLE_MSGBOX, COLOR_HEX_BLUE"Ordnungsamt", string, "Freikaufen", "Abbrechen");
    }
    }
    }


    return 1;
    }


    Lg.

  • "Array index out of bounds"
    bedeutet, das du eine Variable mit einem Array verwendest, der so groß nicht definiert ist.

    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !

  • Wie es dort drin steht.
    Dann schau mal dort wo du ein array verwendest und vergrößer den.

    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !

  • Ich habe hier die komplette "OnPlayerStateChange" Kopiert und hier eingefügt.
    Nirgends ist im Script "Array" zu finden, und welche Funktion ist in der "OnPlayerStateChange" Funktion zu groß definiert wurden?


    Bitte um Hilfe!