[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Habe auch ein kleinen Problem, wenn ich den Befehl /fraktionen eingebe bekomme ich eine Debug Meldung in der Konsole.


    Fehlercode:

    C
    [21:41:56] [debug] Run time error 4: "Array index out of bounds"
    [21:41:56] [debug]  Accessing element at index 6 past array upper bound 5
    [21:41:56] [debug] AMX backtrace:
    [21:41:56] [debug] #0 00032e88 in public ocmd_fraktionen (playerid=0, ... <1 argument>) at C:\Users\xxx\xxx\xxx\xxx.pwn:1246
    [21:41:56] [debug] #1 native CallLocalFunction () from samp-server.exe
    [21:41:56] [debug] #2 0000104c in public OnPlayerCommandText (playerid=0, cmdtext[]=@00981ce8 "/fraktionen") at C:\Users\xxx\xxx\xxx\include\ocmd.inc:78


    Code:


    Mit freundlichen Grüßen
    German_ScripterHD

  • Mach das +1 bei MAX_FRAKS weg.
    Im Debug steht auch "Run time error 4: "Array index out of bounds"
    Heisst soviel wie du greifst auf einen Index Bereich zu der nicht existiert.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Erstmal vielen Dank @Jeffry
    Jetzt habe ich aber nochmal ein Problem welches ich mir nicht erklären kann.
    Undzwar wird mir der Leader nicht angezeigt im Dialog, sprich die Memberanzahl rutscht eins nach vorne (siehe Bild)
    Um den Fehler auf die schliche zu kommen, habe ich ein print in die Funktion gesetzt und da wird alles ausgegeben.


    print:

    C
    [17:09:24] Leadername: German_ScripterHD - Frakid: 2

    An was liegt der Fehler?

  • Hai,
    ich wollte gerne das die MySQL Tabellen vom Script aus erstellt werden, jetzt möchte ich gerne wissen,
    wie ich dies am besten tue.


    Direkt in OnGameModeInit oder doch lieber mit einem Stock bzw Public?

    Mit freundlichen Grüßen, BlvckAir :thumbup:

  • Perfekt! Ich danke dir, klappt super. :)


    Habe nun ein ganz anderes Problem, mein Script wird Geladen und Co, aber es wird keiner Funktion ausgeführt!
    Egal welche, nicht mal die einfachste Funktion führt das Script aus.



    public OnPlayerRequestClass(playerid, classid)
    {
    // *** Sonstiges ***
    SetPlayerColor(playerid, -1);
    ResetPlayerData(playerid);
    // *** Spieler Login / Register ***
    if(!sInfo[playerid][sEingeloggt])
    {
    new query[128];
    mysql_format(Handle, query, 128, "SELECT `ID` FROM `spieler` WHERE `Name` = '%e'", sInfo[playerid][sName]);
    mysql_pquery(Handle, query, "OnUserCheck", "d", playerid);
    }
    return 1;
    }


    Und er führt zB den pquery nicht aus.



    forward OnUserCheck(playerid);
    public OnUserCheck(playerid)
    {
    new string[256];
    ClearPlayerChat(playerid);
    if(cache_get_row_count() == 0)
    {
    format(string, 256, "{FFFFFF}\tHerzlich willkommen {00FF00}%s{FFFFFF}!\nEs gibt keinen Eintrag in der Datenbank mit deinem Spielernamen, solltest du schon einen Charakter besitzen, so klicke bitte auf 'Verlassen'", sInfo[playerid][sName]);
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}Sensix Reallife - Registration", string, "Weiter", "Verlassen");
    return 1;
    }
    else
    {
    format(string, 256, "{FFFFFF}\tHerzlich willkommen {00FF00}%s{FFFFFF}!\nEs gibt keinen Eintrag in der Datenbank mit deinem Spielernamen, solltest du schon einen Charakter besitzen, so klicke bitte auf 'Verlassen'", sInfo[playerid][sName]);
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Sensix Reallife - Einloggen", string, "Weiter", "Verlassen");
    return 1;
    }
    }


    Habt ihr eine Lösung dafür?

    Mit freundlichen Grüßen, BlvckAir :thumbup:

    • Offizieller Beitrag

    Findet grade jemand den Fehler im Sytax? Updated irgendwie nur Teile der Querry



    //Edit: Fehler gefunden, string war zu kurz, habe es nun in mehrere kleinere Querry's aufgeteilt

  • Lass es mal für die Fraktion 2 in dem Befehl nochmal ausführen, wird es dann korrekt angezeigt?
    Wenn ja, dann überschreibst du den Wert irgendwo.

    Habe es nun so getestet... aber es klappt nicht.


    C
    ocmd:fracleader(playerid,params[]){
    	SCMEx(playerid,COLOR_WHITE,"Fraktionsname: %s - Fraktionsid: %d - Leader: %s",fData[2][fName],fData[2][fId],fData[2][fLeaderName]);
    	printf("Fraktionsname: %s - Fraktionsid: %d - Leader: %s",fData[2][fName],fData[2][fId],fData[2][fLeaderName]);
    	return 1;
    }


    C
    [19:27:55] Fraktionsname: San Andreas Fire Department - Fraktionsid: 2 - Leader:


    Mit freundlichen Grüßen
    German_ScripterHD

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen