ID umgehen?

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 Tag, liebe User


    Ich habe hier mal eine Frage
    Undzwar ist bei unserem Script die ID 0 und 1 verbuggt.


    Sprich, wenn sich diese ausloggen, crasht der Server.
    Kann man irgendwie machen, dass die Personen, diese ID's nicht bekommen?


    Mfg

  • Versuch es mal mit Debug Meldungen.
    Also einfach bei OnPlayerDisconnect nach jeder Funktion die ausgeführt wird printf("Debug 1"); usw...
    Dann schauen bei welcher Zahl es crasht usw..


    Hmm weis auch nciht genau


    Hier die Crashinfo

    Spoiler anzeigen
    --------------------------

    Spoiler anzeigen
    SA-MP Server: 0.3x

    Spoiler anzeigen
    Exception At Address: 0x00492D8B Module: (samp-server.exe)

    Spoiler anzeigen
    Registers:

    Spoiler anzeigen
    EAX: 0x0018F26C EBX: 0x034A3C5C ECX: 0x00000000 EDX: 0x004056F0

    Spoiler anzeigen
    ESI: 0x00000000 EDI: 0x022A5E30 EBP: 0x0018F27C ESP: 0x0018F254

    Spoiler anzeigen
    EFLAGS: 0x00010286

    Spoiler anzeigen
    +0000: 0x022A5E30 0x022A5E30 0x034A3C5C 0xFFFFFFFF

    Spoiler anzeigen
    +0010: 0x0018F254 0x0018ECAC 0x0018FDFC 0x00496BF8

    Spoiler anzeigen
    +0020: 0x004B16A0 0xFFFFFFFF 0x034A53AC 0x004056FD

    Spoiler anzeigen
    +0030: 0x00000000 0x004010B6 0x022A5E30 0x046B4220

    Spoiler anzeigen
    +0040: 0x0372346C 0x00402B63 0x022A5E30 0x0000000D

    Spoiler anzeigen
    +0050: 0x0018F2BC 0x046B4220 0x0018F758 0x00000000

    Spoiler anzeigen
    +0060: 0x046B4378 0x022A5E30 0x00000000 0x00F90DB0

    Spoiler anzeigen
    +0070: 0x00F90DB4 0x00F90F00 0x00F88F54 0x00F90DC0

    Spoiler anzeigen
    +0080: 0x00F88F54 0x034A3C5C 0x0372346C 0x00000000

    Spoiler anzeigen
    +0090: 0x034A0020 0x0027F810 0x00471F3E 0x022A5E30

    Spoiler anzeigen
    +00A0: 0x0018F748 0x000000AC 0x00006969 0x65747449

    Spoiler anzeigen
    +00B0: 0x6E4F5F72 0x79616C50 0x69447265 0x6E6F6373

    Spoiler anzeigen
    +00C0: 0x7463656E 0x00471C00 0x022A5E30 0x022A5E30

    Spoiler anzeigen
    +00D0: 0x034A3C5C 0x00000000 0x00000000 0x00000000

    Spoiler anzeigen
    +00E0: 0x00000000 0x00000000 0x00000000 0x00000000

    Spoiler anzeigen
    +00F0: 0x00000000 0x00000000 0x00000000 0x00000000

    Spoiler anzeigen
    +0100: 0x00000000 0x00000000 0x00000000 0x00000000

    Spoiler anzeigen
    +0110: 0x00000000 0x00681EF0 0x00000000 0x0049274B

    Spoiler anzeigen
    +0120: 0x022A5E30 0x00000000 0x00000002 0x0018F46C

    Spoiler anzeigen
    +0130: 0x00000045 0x00610000 0x00681CB8 0x0018F46C

    Spoiler anzeigen
    --------------------------

    Spoiler anzeigen
    Loaded Modules:

    Spoiler anzeigen
    samp-server.exe A: 0x00400000 - 0x004F4000 (C:\Users\Markus\Desktop\SAMP-Projekt\sampserver\samp-server.exe)

    Spoiler anzeigen
    ntdll.dll A: 0x77240000 - 0x773C0000 (C:\Windows\SysWOW64\ntdll.dll)

    Spoiler anzeigen
    kernel32.dll A: 0x767C0000 - 0x768D0000 (C:\Windows\syswow64\kernel32.dll)

    Spoiler anzeigen
    KERNELBASE.dll A: 0x74CA0000 - 0x74CE7000 (C:\Windows\syswow64\KERNELBASE.dll)

    Spoiler anzeigen
    SHELL32.dll A: 0x75520000 - 0x7616A000 (C:\Windows\syswow64\SHELL32.dll)

    Spoiler anzeigen
    msvcrt.dll A: 0x76560000 - 0x7660C000 (C:\Windows\syswow64\msvcrt.dll)

    Spoiler anzeigen
    SHLWAPI.dll A: 0x76610000 - 0x76667000 (C:\Windows\syswow64\SHLWAPI.dll)

    Spoiler anzeigen
    GDI32.dll A: 0x762E0000 - 0x76370000 (C:\Windows\syswow64\GDI32.dll)

    Spoiler anzeigen
    USER32.dll A: 0x766C0000 - 0x767C0000 (C:\Windows\syswow64\USER32.dll)

    Spoiler anzeigen
    ADVAPI32.dll A: 0x768E0000 - 0x76980000 (C:\Windows\syswow64\ADVAPI32.dll)

    Spoiler anzeigen
    sechost.dll A: 0x75120000 - 0x75139000 (C:\Windows\SysWOW64\sechost.dll)

    Spoiler anzeigen
    RPCRT4.dll A: 0x74BB0000 - 0x74CA0000 (C:\Windows\syswow64\RPCRT4.dll)

    Spoiler anzeigen
    SspiCli.dll A: 0x74920000 - 0x74980000 (C:\Windows\syswow64\SspiCli.dll)

    Spoiler anzeigen
    CRYPTBASE.dll A: 0x74910000 - 0x7491C000 (C:\Windows\syswow64\CRYPTBASE.dll)

    Spoiler anzeigen
    LPK.dll A: 0x75510000 - 0x7551A000 (C:\Windows\syswow64\LPK.dll)

    Spoiler anzeigen
    USP10.dll A: 0x74EE0000 - 0x74F7D000 (C:\Windows\syswow64\USP10.dll)

    Spoiler anzeigen
    WSOCK32.dll A: 0x739E0000 - 0x739E7000 (C:\Windows\system32\WSOCK32.dll)

    Spoiler anzeigen
    WS2_32.dll A: 0x762A0000 - 0x762D5000 (C:\Windows\syswow64\WS2_32.dll)

    Spoiler anzeigen
    NSI.dll A: 0x76170000 - 0x76176000 (C:\Windows\syswow64\NSI.dll)

    Spoiler anzeigen
    WINMM.dll A: 0x727C0000 - 0x727F2000 (C:\Windows\system32\WINMM.dll)

    Spoiler anzeigen
    IMM32.DLL A: 0x75140000 - 0x751A0000 (C:\Windows\system32\IMM32.DLL)

    Spoiler anzeigen
    MSCTF.dll A: 0x76370000 - 0x7643C000 (C:\Windows\syswow64\MSCTF.dll)

    Spoiler anzeigen
    streamer.DLL A: 0x5DAD0000 - 0x5DB0F000 (C:\Users\Markus\Desktop\SAMP-Projekt\sampserver\plugins\streamer.DLL)

    Spoiler anzeigen
    MSVCP100.dll A: 0x729B0000 - 0x72A19000 (C:\Windows\system32\MSVCP100.dll)

    Spoiler anzeigen
    MSVCR100.dll A: 0x72B80000 - 0x72C3F000 (C:\Windows\system32\MSVCR100.dll)

    Spoiler anzeigen
    nativechecker.DLL A: 0x5F2D0000 - 0x5F2D5000 (C:\Users\Markus\Desktop\SAMP-Projekt\sampserver\plugins\nativechecker.DLL)

    Spoiler anzeigen
    mswsock.dll A: 0x73810000 - 0x7384C000 (C:\Windows\system32\mswsock.dll)

    Spoiler anzeigen
    wshtcpip.dll A: 0x73800000 - 0x73805000 (C:\Windows\System32\wshtcpip.dll)

    Spoiler anzeigen
    NLAapi.dll A: 0x724B0000 - 0x724C0000 (C:\Windows\system32\NLAapi.dll)

    Spoiler anzeigen
    napinsp.dll A: 0x724A0000 - 0x724B0000 (C:\Windows\system32\napinsp.dll)

    Spoiler anzeigen
    pnrpnsp.dll A: 0x72480000 - 0x72492000 (C:\Windows\system32\pnrpnsp.dll)

    Spoiler anzeigen
    DNSAPI.dll A: 0x72430000 - 0x72474000 (C:\Windows\system32\DNSAPI.dll)

    Spoiler anzeigen
    winrnr.dll A: 0x72420000 - 0x72428000 (C:\Windows\System32\winrnr.dll)

    Spoiler anzeigen
    wshbth.dll A: 0x72410000 - 0x7241D000 (C:\Windows\system32\wshbth.dll)

    Spoiler anzeigen
    WLIDNSP.DLL A: 0x723E0000 - 0x72407000 (C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live\WLIDNSP.DLL)

    Spoiler anzeigen
    PSAPI.DLL A: 0x77210000 - 0x77215000 (C:\Windows\syswow64\PSAPI.DLL)

    Spoiler anzeigen
    IPHLPAPI.DLL A: 0x739F0000 - 0x73A0C000 (C:\Windows\system32\IPHLPAPI.DLL)

    Spoiler anzeigen
    WINNSI.DLL A: 0x73C20000 - 0x73C27000 (C:\Windows\system32\WINNSI.DLL)

    Spoiler anzeigen
    rasadhlp.dll A: 0x723D0000 - 0x723D6000 (C:\Windows\system32\rasadhlp.dll)

    Spoiler anzeigen
    uxtheme.dll A: 0x73BA0000 - 0x73C20000 (C:\Windows\system32\uxtheme.dll)

    Spoiler anzeigen
    PROPSYS.dll A: 0x725D0000 - 0x726C5000 (C:\Windows\system32\PROPSYS.dll)

    Spoiler anzeigen
    OLEAUT32.dll A: 0x764D0000 - 0x7655F000 (C:\Windows\syswow64\OLEAUT32.dll)

    Spoiler anzeigen
    comctl32.dll A: 0x74200000 - 0x7439E000 (C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.dll)

    Spoiler anzeigen
    apphelp.dll A: 0x73B00000 - 0x73B4C000 (C:\Windows\system32\apphelp.dll)

    Spoiler anzeigen
    CLBCatQ.DLL A: 0x75480000 - 0x75503000 (C:\Windows\syswow64\CLBCatQ.DLL)

    Spoiler anzeigen
    iertutil.dll A: 0x752C0000 - 0x75479000 (C:\Windows\syswow64\iertutil.dll)

    Spoiler anzeigen
    urlmon.dll A: 0x751A0000 - 0x752B1000 (C:\Windows\syswow64\urlmon.dll)

    Spoiler anzeigen
    WININET.dll A: 0x74A60000 - 0x74B7B000 (C:\Windows\syswow64\WININET.dll)

    Spoiler anzeigen
    Normaliz.dll A: 0x768D0000 - 0x768D3000 (C:\Windows\syswow64\Normaliz.dll)

    Spoiler anzeigen
    SETUPAPI.dll A: 0x74F80000 - 0x7511D000 (C:\Windows\syswow64\SETUPAPI.dll)

    Spoiler anzeigen
    CFGMGR32.dll A: 0x74980000 - 0x749A7000 (C:\Windows\syswow64\CFGMGR32.dll)

    Spoiler anzeigen
    DEVOBJ.dll A: 0x749B0000 - 0x749C2000 (C:\Windows\syswow64\DEVOBJ.dll)

    Spoiler anzeigen
    ntmarta.dll A: 0x747B0000 - 0x747D1000 (C:\Windows\system32\ntmarta.dll)

    Spoiler anzeigen
    WLDAP32.dll A: 0x76670000 - 0x766B5000 (C:\Windows\syswow64\WLDAP32.dll)

    Spoiler anzeigen
    Secur32.dll A: 0x73310000 - 0x73318000 (C:\Windows\system32\Secur32.dll)

  • Die crashinfo bringt den meisten so gut wie nix daher compile dein skript im debug modus


    erstelle eine pawn.cfg mit dem inhalt -d3 -r in deinem pawno ordner


    danach kompile sein skript neu weil nun werden die fehler in der server.log angezeigt mit entsprechender zeile.

  • Die crashinfo bringt den meisten so gut wie nix daher compile dein skript im debug modus


    erstelle eine pawn.cfg mit dem inhalt -d3 -r in deinem pawno ordner


    danach kompile sein skript neu weil nun werden die fehler in der server.log angezeigt mit entsprechender zeile.


    Habe von dieser Funktion noch nie gehört, und bei mir funktioniert das auch nicht (Habe es einfach mal probiert xD)

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Die crashinfo bringt den meisten so gut wie nix daher compile dein skript im debug modus


    erstelle eine pawn.cfg mit dem inhalt -d3 -r in deinem pawno ordner


    danach kompile sein skript neu weil nun werden die fehler in der server.log angezeigt mit entsprechender zeile.


    Hat bei mir leider nicht funktioniert :S
    Aber das ist einfach so ein scheiß, dass muss gehen xD


    Das mit den Bots hat auch nichts gebracht :S

  • Also, um den Fehler direkt zu beheben müsstest du bei ich denke mal es iiegt beim verlassen an irgendwelchen Save punkten, sprich da wo die Spieler gespeichert werden. Allerdings kann das mehr oder weniger viel aufwand sein.


    Die einfachste Methode diesen Fehler ohne viel Arbeit zu beheben ist: ... es kommt gleich... Hau 2 Bots rein, diese belegen automatisch die ersten ID´s.


    GreeZ

  • Also, um den Fehler direkt zu beheben müsstest du bei ich denke mal es iiegt beim verlassen an irgendwelchen Save punkten, sprich da wo die Spieler gespeichert werden. Allerdings kann das mehr oder weniger viel aufwand sein.


    Die einfachste Methode diesen Fehler ohne viel Arbeit zu beheben ist: ... es kommt gleich... Hau 2 Bots rein, diese belegen automatisch die ersten ID´s.


    GreeZ


    Hab ich gemacht, dennoch schliest sich der Server

  • Also ich wiederhol mich zum letzten mal.


    Wenns es wirklich nur passiert, wenn ein Spieler den Server verlässt, muss der Fehler unter OnPlayerDisconnect seint.


    Ich würde dir raten, den Fehler zu beheben und nicht mit nem Bot zu umgehen. Bringt dir nur noch mehr Probleme....

    Nova-eSports Supporter 2012 - 2016



  • Zeig uns einfach mal den code von OnPlayerDisconnect


    Hier


    Spoiler anzeigen
    Function OnPlayerDisconnect(playerid, reason)
    {
    TextDrawHideForPlayer(playerid, Respekt[playerid]);
    DeleteTicket(playerid);
    PlayerInfo[playerid][pAdjustable] = 1;
    isFight[playerid] = 0;
    GW_OnPlayerDisconnect(playerid);
    printf("Debug 1");
    SaveWeapons(playerid);
    printf("Debug 1");
    if(IsPlayerNPC(playerid))
    {
    ConnectNPC("zivi","zivi");
    ConnectNPC("zivi1","zivi1");
    }
    if(BlindFold[playerid] == 1)
    {
    BlindFold[playerid] = 0;
    }
    if(PlayerInfo[playerid][pMauled] == 1)
    {
    PlayerInfo[playerid][pMauled] = 0;
    }
    if(PlayerInfo[playerid][pMember] == 24 || PlayerInfo[playerid][pLeader] == 24 && BlitzerErstellt[playerid] == 1)
    {
    RemoveBlitzer(playerid);
    }
    if(PlayerTied[playerid] == 1)
    {
    PlayerInfo[playerid][pGangJailed] = 1;
    PlayerTied[playerid] = 0;
    }
    if(IsTowTrucker[playerid] == 1)
    {
    IsTowTrucker[playerid] = 0;
    TowTruckers--;
    }
    new sendername[MAX_PLAYER_NAME];
    new string[200];
    GetPlayerName(playerid,sendername,sizeof(sendername));
    OnPlayerCarUpdate(playerid);
    MoneySpam[playerid] = 0;
    DestroyObject(Sperre[playerid][0]);
    DestroyObject(Sperre[playerid][1]);
    DestroyObject(Sperre[playerid][2]);
    DestroyObject(Sperre[playerid][3]);
    DestroyObject(Sperre[playerid][4]);
    Sperrebit[playerid]=0;
    Pylonenbit[playerid]=0;
    // Barrierenbit[playerid]=0;
    InCargo[playerid] = 0; InLevi[playerid] = 0; InEnfo[playerid] = 0;
    if(reason == 1)
    {
    if(PlayerCuffed[playerid] >= 1)
    {
    OfflineFlucht[playerid] = 1;
    format(string,sizeof(string),"Warnung %s ist Gefesselt Offline gegangen!(evtl. Offline-Flucht))",sendername);
    ABroadCast(COLOR_YELLOW,string,1);
    //mepmöp
    }
    }
    if(reason == 0)
    {
    if(PlayerCuffed[playerid] >= 1)
    {
    //OfflineFlucht[playerid] = 2;
    format(string,sizeof(string),"Warnung %s hatte gefesselt einen Exe-Crash! Er wird nicht ins Auto-Jail kommen.",sendername);
    ABroadCast(COLOR_YELLOW,string,1);
    //mepmöp
    }
    }
    gActivePlayers[playerid]--;
    if(gActivePlayers[playerid] <= 9) {
    noooc = 1;
    }
    numplayers--;
    PlayerInfo[playerid][pAdjustable] = 1;
    PlayerUpdate(playerid);

    Spoiler anzeigen
    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);

    Spoiler anzeigen
    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);
    }
    }
    }
    }
    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);
    }
    }
    if(GotHit[playerid] > 0)
    {
    if(GetChased[playerid] < 999)
    {
    if(IsPlayerConnected(GetChased[playerid]))
    {
    //SendClientMessage(GetChased[playerid], COLOR_YELLOW, "Er hat DRP verlassen.");
    GoChase[GetChased[playerid]] = 999;
    }
    }
    }
    if(PlayerPaintballing[playerid] != 0)
    {
    PaintballPlayers --;
    }
    if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0)
    {
    KartingPlayers --;
    }
    if(PlayersChannel[playerid] < 999)
    {
    IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1;
    }
    if(HireCar[playerid] != 299)
    {
    gLastDriver[HireCar[playerid]] = 300;
    gCarLock[HireCar[playerid]] = 0;
    UnLockCar(HireCar[playerid]);
    }
    if (gLastCar[playerid] > 0)
    {
    gLastDriver[gLastCar[playerid]] = 300;
    if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1)
    {
    gCarLock[gLastCar[playerid]] = 0;
    UnLockCar(gLastCar[playerid]);
    }
    }
    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);
    }
    }
    InRing = 0;
    RoundStarted = 0;
    Boxer1 = 255;
    Boxer2 = 255;
    TBoxer = 255;
    }
    if(TransportDuty[playerid] == 1)
    {
    TaxiDrivers -= 1;
    }
    else if(TransportDuty[playerid] == 2)
    {
    BusDrivers -= 1;
    }
    if(IsPlayerInFrac(playerid, 4))
    {
    if(JobDuty[playerid] == 1)
    {
    Medics -= 1;
    }
    }
    else if(PlayerInfo[playerid][pLeader] == 24 || PlayerInfo[playerid][pMember] == 24)
    {
    if(JobDuty[playerid] == 1) { Mechanics -= 1; }
    }
    if (PlayerInfo[playerid][pRoadblock] != 0)
    {
    RemoveRoadblock(playerid);
    }
    return 1;
    }


  • bis zum welchen "Debug .." kommt es? Bau mal ein bisschen mehr ein, Debug 1-10 oder so und guck wohin es kommt...

    __________________________________________


    Scripter & Programmierer im Ruhestand

    Derzeitiges Projekt:
    __________________________________________