Server Crash

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 habe ein Problem, undzwar fährt dieser sich manchmal einfach runter. Also aufeinmal passiert nichtsmehr. Kein Befehl geht, man sieht die Spieler nichtmehr oder sie bewegen sich nicht usw.
    Dann nach einer Zeit geht der Server aus, wenn man joinen will kommt nurnoch Connecting to .. Connected.. Joining the game usw. aber mehr dann nicht.
    Sprich die ClientMessage usw. erscheint nicht beim Joinen, nix geht mehr dann. Ich müsste dann den Server restarten. Dass passiert so 2-5x am Tag.


    Kann mir jemand dabei helfen? :/
    Hab das Crash Detect Plugin drin, und bei dem letzten Server-Crash stand nurnoch das hier drin:


    [13:31:25] [GC] [Verentiz19]: ?
    [13:31:33] [debug] Run time error 4: "Array index out of bounds"
    [13:31:33] [debug] Accessing element at index 555 past array upper bound 4
    [13:31:33] [debug] AMX backtrace:
    [13:31:33] [debug] #0 0007256c in public OnPlayerStateChange () from visualtest.amx
    [13:32:09] Ap0llinaris ändert Geld von Ap0llinaris in 1000000


    Mehr dann auch nicht. :/
    Kann jemand helfen?

  • Das habe ich auch mit meinem Script, nur bei OnPlayerConnect, OnPlayerDisconnect und OnPlayerDeath. :(

  • [13:31:33] [debug] #0 0007256c in public OnPlayerStateChange () from visualtest.amx


    da sollte dir ein Fehler unterlaufen sein guck da mal alles genau an

  • Spoiler anzeigen

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    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)
    {
    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://www.hardcoreradio.nl/hr.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;

    Spoiler anzeigen
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, light, alarm, doors, bonnet, boot, objective);

    Spoiler anzeigen
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, light, alarm, doors, bonnet, boot, objective);

    Spoiler anzeigen
    }
    if(Spieler[playerid][pLevel] <= 2)
    {
    if(!IsAFahrrad(mod))
    {
    SendClientMessage(playerid, COLOR_GREEN, "* Verwende /motor um den Motor zu starten/stoppen.");
    SendClientMessage(playerid, COLOR_GREEN, "* Verwende /licht um das Licht an/auszuschalten.");
    }
    }
    if(IsACar(mod))
    {
    if(Spieler[playerid][pCarLic] == 0 && pFahrStunde[playerid] == 0)
    {
    if(pMakeTutorial[playerid] == 1)return 1;
    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;
    }
    }

    Spoiler anzeigen
    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[1024];
    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<MAX_PLAYERS;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<MAX_PLAYERS;pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    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<MAX_PLAYERS;pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    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<MAX_PLAYERS;i++)
    {
    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] == 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<MAX_PLAYERS;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 /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<MAX_PLAYERS;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 *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /starttruck zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stoptruck zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    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<MAX_PLAYERS;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;
    }
    }
    }
    for(new i=0;i<sizeof(lspdcars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == lspdcars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 1))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein LSPD Mitglied.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(sanicars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == sanicars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 3))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein SA-MD Mitglied.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(oamtcars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == oamtcars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 5))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Ordnungsämtler.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(fbicars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == fbicars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 2))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein FBI Mitglied.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(ballascars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == ballascars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 7))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Ballas Mitglied.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(grovecars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == grovecars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 6))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Grove Street Mitglied.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(fscars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == fscars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 8 || pFahrStunde[playerid] == 1))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Fahrlehrer oder kein Fahrschüler!");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(virtualtruck);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == virtualtruck[i])
    {
    if(!(Spieler[playerid][pFraktion] == 9))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Virtual Trucking GmbH Mitglied.");
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(newscars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == newscars[i])
    {
    if(!(Spieler[playerid][pFraktion] == 4))
    {
    FreezePlayer(playerid);
    UnfreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein San Andreas News Agentur Mitglied.");
    return 1;
    }
    }
    }

    Spoiler anzeigen
    new vehicle = GetPlayerVehicleID(playerid);

    Spoiler anzeigen
    new besitzer = GetCarOwner(vehicle);

    Spoiler anzeigen
    new Slot = GetCarOwnerSlot(besitzer, vehicle);

    Spoiler anzeigen
    if(vehicle == PlayerCar[besitzer][Slot][CarId])
    {

    Spoiler anzeigen
    if(PlayerCar[besitzer][Slot][CarState] == 1)
    {
    FreezePlayer(playerid);
    format(string, sizeof(string), COLOR_HEX_BLUE"Dieses Fahrzeug wurde abgeschleppt!\n"COLOR_HEX_WHITE"Um das Fahrzeug freizukaufen, benötigst du "COLOR_HEX_ORANGE"$2000"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");
    }
    }
    }

    Spoiler anzeigen
    return 1;
    }


    //Edit
    Kann niemand helfen? :(


    PS: Habe die OnPlayerStateChange mal hinzugefügt.. <.<


    //edit
    Der Server ist vorhin erneut abgeschmiert, und das stand im Log:


    Kann jemand helfen? :(