Fehler in /admins

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!


    Bei meinem /admins wird nicht angezeigt ob der User Online ist sobald er online ist.


    Was ist hier falsch?


  • Jetzt werden alle Spieler als online angezeigt, obwohl nur einr online ist.


  • Momentan wirft das Script folgende Errors:
    [17:52:47] [debug] Run time error 4: "Array index out of bounds"
    [17:52:47] [debug] Attempted to read/write array element at index 65535 in array of size 1000
    [17:52:47] [debug] AMX backtrace:
    [17:52:47] [debug] #0 0000e944 in ?? (65535) in arp.amx
    [17:52:47] [debug] #1 000108c0 in public AdminList (0) in arp.amx


    Edit: Hab mal mit -d3 compiled, jetzt komt folgendes
    [18:50:11] [debug] Run time error 4: "Array index out of bounds"
    [18:50:11] [debug] Attempted to read/write array element at index 65535 in array of size 1000
    [18:50:11] [debug] AMX backtrace:
    [18:50:11] [debug] #0 00011d10 in GetPlayerStatus (playerid=65535) at C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc:671
    [18:50:11] [debug] #1 0001455c in public AdminList (playerid=0) at C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/daten.inc:160

  • pID = GetPlayerIdFromName(name);
    Gibt 65535 (INVALID_PLAYER_ID) zurück wenn der Spieler nicht online ist.
    Nach sowas solltest du immer mit IsPlayerConnected überprüfen ob die zurückgegebene ID überhaupt online ist.


    Also:


    pID = GetPlayerIdFromName(name);
    if (!IsPlayerConnected(pID)) continue;

  • Jetzt wird der Dialog garnicht mehr angezeigt


    @Infra

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hab deinen Code etwas falsch verstanden,


    Nimm in der AdminList funktion das if (!IsPlayerConnected(pID)) continue; wieder raus.


    Ersetz bei GetPlayerStatus das if(SpielerDaten[playerid][player_Eingeloggt]) mit if (IsPlayerConnected(playerid) && SpielerDaten[playerid][player_Eingeloggt])

  • Funktioniert. Aber irgendwie führt er OnPlayerSpawn nicht mehr aus.


    Edit: Auf Windows funktoniert es, jedoch auf Linux nicht.


    @Infra