Bitte Um Hilfe

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 Breadfishe,


    ich habe ein Problem mit meinen Script , ich glaube es ist das Rockstar oder RGR script^^ Keine Ahnung, naja.



    Also das Problem ist :


    Wenn ein Player sich Ausloggt Stürzt der Server sofort ab.


    Weiß einer Warum ?


    Bitte um Hilfe :S


    Mfg
    xRider

    2 Mal editiert, zuletzt von xRider ()

  • Erstmal vorab, dieses Thema gehört in die Scriptingbase, nicht hier rein, wie kommt man drauf, es hier zu posten?
    Naja, ist ja auch jetzt zu spät und daher egal.


    Der Fehler müsste bei OnPlayerDisconnect oder OnGameModeExit liegen, dass war bei vielen anderen Scripts auch so,
    mich wundert, dass so viele dieses Problem haben, ich wurde schon 2x mal schon in ICQ gefragt.


    Die beiden genannten Callbacks würden uns helfen. Wenn der Inhalt nicht zu groß ist, kannst du den ja mal hier posten.
    ;)

  • Liegt an OnPlayerDisconnect, und es ist das RGR Script.


    Hier der Fix, einfach drüber schreiben:


    public OnPlayerDisconnect(playerid, reason)
    {
    new string[256];
    new sendername[MAX_PLAYER_NAME];
    DeleteTicket(playerid);
    KillTimer(paydaycount[playerid]);
    GetPlayerName(playerid,sendername,sizeof(sendername));
    // MoneySpam[playerid] = 0;
    DestroyObject(Sperre[playerid][0]);
    DestroyObject(Sperre[playerid][1]);
    DestroyObject(Sperre[playerid][2]);
    DestroyObject(Sperre[playerid][3]);
    DestroyObject(Sperre[playerid][4]);
    // Delete3DTextLabel(label[playerid]);
    Sperrebit[playerid]=0;
    InCargo[playerid] = 0; InLevi[playerid] = 0;
    // DestroyPickup(LogoutPickup[playerid][0]);
    gActivePlayers[playerid]--;
    numplayers--;
    PlayerInfo[playerid][pAdjustable] = 1;
    PlayerUpdate(playerid);
    StadtreinigungCP[playerid] = 0;
    Stadtreinigung[playerid] = 0;
    StadtreinigungCP2[playerid] = 0;
    Stadtreinigung2[playerid] = 0;
    StadtreinigungCP3[playerid] = 0;
    Stadtreinigung3[playerid] = 0;
    MullabfuhrCP[playerid] = 0;
    Mullabfuhr[playerid] = 0;
    MullabfuhrCP2[playerid] = 0;
    Mullabfuhr2[playerid] = 0;
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string,sizeof(string),"%s war nun %d Minuten online! (ID: %d | IP: %s)",sendername,PlayerInfo[playerid][pMinutesSinceLogin],playerid,pIP[playerid]);
    Log("Online.txt",string);

    new dateiname[128];

    new playername[MAX_PLAYER_NAME];


    new var[256];


    GetPlayerName(playerid, playername, sizeof(playername));


    format(dateiname, sizeof(dateiname), "/fahrzeuge/%s.car", playername);


    new File: CarFile = fopen(dateiname, io_write);


    format(var, 256, "AH_Typ=%i\n", Carlist[playerid][Typ]); fwrite(CarFile, var);


    format(var, 256, "AH_X=%f\n", Carlist[playerid][CarPos_x]); fwrite(CarFile, var);


    format(var, 256, "AH_Y=%f\n", Carlist[playerid][CarPos_y]); fwrite(CarFile, var);


    format(var, 256, "AH_Z=%f\n", Carlist[playerid][CarPos_z]); fwrite(CarFile, var);


    format(var, 256, "AH_Rot=%f\n", Carlist[playerid][CarRotate]); fwrite(CarFile, var);


    format(var, 256, "AH_Status=%i\n", Carlist[playerid][Status]); fwrite(CarFile, var);


    format(var, 256, "AH_Lock=%i\n", Carlist[playerid][Lock]); fwrite(CarFile, var);


    format(var, 256, "AH_Paintjob=%i\n", Carlist[playerid][Paintjob]); fwrite(CarFile, var);


    format(var, 256, "AH_Farbe1=%i\n", Carlist[playerid][Farbe1]); fwrite(CarFile, var);


    format(var, 256, "AH_Farbe2=%i\n", Carlist[playerid][Farbe2]); fwrite(CarFile, var);


    format(var, 256, "AH_mod1=%i\n", Carlist[playerid][mod1]); fwrite(CarFile, var);


    format(var, 256, "AH_mod2=%i\n", Carlist[playerid][mod2]); fwrite(CarFile, var);


    format(var, 256, "AH_mod3=%i\n", Carlist[playerid][mod3]); fwrite(CarFile, var);


    format(var, 256, "AH_mod4=%i\n", Carlist[playerid][mod4]); fwrite(CarFile, var);


    format(var, 256, "AH_mod5=%i\n", Carlist[playerid][mod5]); fwrite(CarFile, var);


    format(var, 256, "AH_mod6=%i\n", Carlist[playerid][mod6]); fwrite(CarFile, var);


    format(var, 256, "AH_mod7=%i\n", Carlist[playerid][mod7]); fwrite(CarFile, var);


    format(var, 256, "AH_mod8=%i\n", Carlist[playerid][mod8]); fwrite(CarFile, var);


    format(var, 256, "AH_mod9=%i\n", Carlist[playerid][mod9]); fwrite(CarFile, var);


    format(var, 256, "AH_mod10=%i\n", Carlist[playerid][mod10]); fwrite(CarFile, var);


    format(var, 256, "AH_mod11=%i\n", Carlist[playerid][mod11]); fwrite(CarFile, var);


    format(var, 256, "AH_mod12=%i\n", Carlist[playerid][mod12]); fwrite(CarFile, var);


    format(var, 256, "AH_mod13=%i\n", Carlist[playerid][mod13]); fwrite(CarFile, var);


    format(var, 256, "AH_mod14=%i\n", Carlist[playerid][mod14]); fwrite(CarFile, var);


    format(var, 256, "AH_mod15=%i\n", Carlist[playerid][mod15]); fwrite(CarFile, var);


    format(var, 256, "AH_mod16=%i\n", Carlist[playerid][mod16]); fwrite(CarFile, var);


    format(var, 256, "AH_mod17=%i\n", Carlist[playerid][mod17]); fwrite(CarFile, var);


    fclose(CarFile);


    /* if(Invade[playerid] != 255)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast während dem einehmen einer Gang Zone den Server verlassen.");
    Invade[playerid] = 255;
    if(GangWarMember[playerid] == 1) Attackers --;
    else if(GangWarMember[playerid] == 2) Defenders --;
    GangWarMember[playerid] = 0;
    }*/
    if(Carlist[playerid][Carid]!=-1)
    {
    SetVehicleParamsForAll(Carlist[playerid][Carid],0,0);
    DestroyVehicle(Carlist[playerid][Carid]);
    Carlist[playerid][Carid]=-1;
    }
    if (Spectating[playerid][0]!=-1)
    {
    SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
    Spectating[playerid][0]=-1;
    }
    if(RobStatus[playerid] == 1)
    {
    KillTimer(robbing[playerid]);
    RobInfo[Rob_Zone[playerid]][rRobber] --;
    }
    if(robtransp1[playerid] == 1)
    {
    new s[256];
    format(s,sizeof(s),"%s hat den Server verlassen. Transporterrob gescheitert.",PlayerName(playerid));
    SendClientMessageToAll(COLOR_YELLOW,s);
    RobTransp[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SetVehicleToRespawn(RobTransporter[0]);
    }
    printf("Debug4");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(TaxiAccepted[i] < 999)
    {
    if(TaxiAccepted[i] == playerid)
    {
    TaxiAccepted[i] = 999;
    GameTextForPlayer(i, "~w~Kunde~n~~r~Hat das Spiel Verlassen", 5000, 1);
    TaxiCallTime[i] = 0;
    DisablePlayerCheckpoint(i);
    }
    }
    else if(BusAccepted[i] < 999)
    {
    if(BusAccepted[i] == playerid)
    {
    BusAccepted[i] = 999;
    GameTextForPlayer(i, "~w~Kunde~n~~r~Hat Spiel Verlassen", 5000, 1);
    BusCallTime[i] = 0;
    DisablePlayerCheckpoint(i);
    }
    }
    else if(reauber[playerid] == 1)
    {
    new s[100], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    reauber[playerid] = 0;
    glav = 1800;
    KillTimer(bankcountdown1);
    KillTimer(bankcountdown2);
    KillTimer(bankcountdown3);
    KillTimer(bankcountdown4);
    KillTimer(bankcountdown5);
    KillTimer(ausgeraubt1);
    SetTimer("rauberlauben1", 1800000, 0);
    format(s,sizeof(s),"%s hat den Server verlassen. Bankrob gescheitert.",name);
    SendClientMessageToAll(COLOR_YELLOW,s);
    }
    else if(reaubersf[playerid] == 1)
    {
    new s[100], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    reaubersf[playerid] = 0;
    glavsf = 1800;
    KillTimer(bankcountdown1sf);
    KillTimer(bankcountdown2sf);
    KillTimer(bankcountdown3sf);
    KillTimer(bankcountdown4sf);
    KillTimer(bankcountdown5sf);
    KillTimer(ausgeraubt1sf);
    SetTimer("rauberlauben1sf", 1800000, 0);
    format(s,sizeof(s),"%s hat den Server verlassen. Bankrob gescheitert.",name);
    SendClientMessageToAll(COLOR_YELLOW,s);
    }
    }
    }
    printf("Debug5");
    if(reason == 0)
    {
    if(PlayerCuffed[playerid] >= 1)
    {
    format(string,sizeof(string),"AdmCmd: %s hatte gefesselt einen Exe-Crash! Er wird nicht ins Auto-Jail kommen.",sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    }
    }
    if(reason == 1)
    {
    if(PlayerCuffed[playerid] >= 1)
    {
    format(string,sizeof(string),"AdmCmd: %s ist gefesselt bzw. gecufft Offline gegangen! Strafe: 10 min. Prison(Offline-Flucht)",sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    PlayerInfo[playerid][pJailed] = 2;
    PlayerInfo[playerid][pJailTime] = 10*60;
    }
    }
    if(reason == 0)
    {
    if(InGangJail[playerid] == 1)
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid,-1634.9923,-2239.2424,31.4766);
    UnFreezePlayer(playerid);
    PlayerTied[playerid] = 0;
    InGangJail[playerid] = 1;
    format(string,sizeof(string),"AdmCmd: %s hatte im Gangjail einen Exe-Crash! Er wird automatisch beim Connecten zurück teleportiert.",sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    }
    }
    if(reason == 1)
    {
    if(InGangJail[playerid] == 1)
    {
    PlayerInfo[playerid][pJailed] = 2;
    PlayerInfo[playerid][pJailTime] = 10*600;
    format(string,sizeof(string),"AdmCmd: %s ist gefangen im Gangjail Offline gegangen! Strafe: 100 min. Prison(Offline-Flucht)",sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    }
    }


    if(GettingCK[playerid] < 999)
    {
    if(IsPlayerConnected(GettingCK[playerid]))
    {
    SendClientMessage(GettingCK[playerid], COLOR_YELLOW, "Dein Abschuss hat den Server verlassen, versuch es später nochmal.");
    OnCK[GettingCK[playerid]] = 999;
    }
    }
    if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999)
    {
    if(IsPlayerConnected(TransportDriver[playerid]))
    {
    TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
    TransportTime[TransportDriver[playerid]] = 0;
    TransportCost[TransportDriver[playerid]] = 0;
    format(string, sizeof(string), "~w~Kunde ist ausgestiegen~n~~g~Verdienst: $%d",TransportCost[playerid]);
    GameTextForPlayer(TransportDriver[playerid], string, 5000, 1);
    }
    }
    printf("Debug6");
    if(GotHit[playerid] > 0)
    {
    if(GetChased[playerid] < 999)
    {
    if(IsPlayerConnected(GetChased[playerid]))
    {
    SendClientMessage(GetChased[playerid], COLOR_YELLOW, "Er hat den Server verlassen.");
    GoChase[GetChased[playerid]] = 999;
    }
    }
    }
    if(PlayerPaintballing[playerid] != 0)
    {
    PaintballPlayers --;
    }
    if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0)
    {
    KartingPlayers --;
    }
    if(HireCar[playerid] != 299)
    {
    gLastDriver[HireCar[playerid]] = 300;
    gCarLock[HireCar[playerid]] = 0;
    UnLockCar(HireCar[playerid]);
    SetVehicleToRespawn(HireCar[playerid]);
    SetVehicleToRespawn(RobTransporter[0]);
    }
    if (gLastCar[playerid] > 0)
    {
    gLastDriver[gLastCar[playerid]] = 300;
    if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1)
    {
    gCarLock[gLastCar[playerid]] = 0;
    UnLockCar(gLastCar[playerid]);
    }
    }
    printf("Debug7");
    if(PlayerBoxing[playerid] > 0)
    {
    if(Boxer1 == playerid)
    {
    if(IsPlayerConnected(Boxer2))
    {
    PlayerBoxing[Boxer2] = 0;
    SetPlayerPos(Boxer2, 765.8433,3.2924,1000.7186);
    SetPlayerInterior(Boxer2, 5);
    GameTextForPlayer(Boxer2, "~r~Kampf unterbrochen", 5000, 1);
    }
    }
    else if(Boxer2 == playerid)
    {
    if(IsPlayerConnected(Boxer1))
    {
    PlayerBoxing[Boxer1] = 0;
    SetPlayerPos(Boxer1, 765.8433,3.2924,1000.7186);
    SetPlayerInterior(Boxer1, 5);
    GameTextForPlayer(Boxer1, "~r~Kampf unterbrochen", 5000, 1);
    }
    }
    new caller = Mobile[playerid];
    if(caller != 255)
    {
    if(caller < 255)
    {
    SendClientMessage(caller, COLOR_GRAD2, " Die Verbindung wurde unterbrochen....");
    CellTime[caller] = 0;
    CellTime[playerid] = 0;
    Mobile[caller] = 255;
    }
    Mobile[playerid] = 255;
    CellTime[playerid] = 0;
    }
    InRing = 0;
    RoundStarted = 0;
    Boxer1 = 255;
    Boxer2 = 255;
    TBoxer = 255;
    }
    if(TransportDuty[playerid] == 1)
    {
    TaxiDrivers -= 1;
    }
    else if(TransportDuty[playerid] == 2)
    {
    BusDrivers -= 1;
    }
    if(PlayerInfo[playerid][pJob] == 11)
    {
    if(JobDuty[playerid] == 1) { Medics -= 1; }
    }
    else if(PlayerInfo[playerid][pJob] == 7)
    {
    if(JobDuty[playerid] == 1) { Mechanics -= 1; }
    }
    else if(PlayerInfo[playerid][pJob] == 22)
    {
    if(JobDuty[playerid] == 1) { Eismanner -= 1; }
    }
    else if(PlayerInfo[playerid][pJob] == 11)
    {
    if(JobDuty[playerid] == 1) { Oamt -= 1; }
    }
    printf("Debug8");
    return 1;
    }


    Sind noch ein paar Debug-Zeilen drin da ich selber den Bug gesucht habe. :)

  • Danke aber ich Bekomme nun diese Errors :


    C:\Dokumente und Einstellungen\Pascal.PASCAL-B2230234\Eigene Dateien\Downloads\German Second Reallife Script\gamemodes\rl.pwn(59146) : error 021: symbol already defined: "strtok"
    C:\Dokumente und Einstellungen\Pascal.PASCAL-B2230234\Eigene Dateien\Downloads\German Second Reallife Script\gamemodes\rl.pwn(59161) : error 047: array sizes do not match, or destination array is too small



    59146 : {
    59161 : return result;