[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
  • Aso..ja sry mein Fehler..hatte mich verlesen ^^


    Hier, probiers mal so:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Bräuchte mal etwas Hilfe :D
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(SpielerInfo[playerid][uAdmin] > 4)
    {
    ShowPlayerDialog(playerid,DIALOG_PLAYERCLICK,DIALOG_STYLE_LIST,"Spieler Menue","Admin-Menue\nSupporter-Menue\nTester-Menue","Auswählen","Beenden");
    return 1;
    }
    return 1;
    }


    Sobald ich diesen code drin hab, funktioniert kein Command mehr :/

  • Guten Abend,
    ich bin dabei auf R39-6 ein System aufzubauen, nun ist das Problem da, das ich die Tabelle nicht so erstellen kann wie ich möchte.



    new string[256];
    format(string, sizeof(string), "CREATE TABLE IF NOT EXISTS `Accounts` (`Spielername` varchar(24) NOT NULL AUTO_INCREMENT, `Passwort` varchar(128), `IP` varchar(16), `Level` int(11)");
    format(string, sizeof(string), "%s, `Bargeld` int(11), PRIMARY KEY(`Spielername`))", string);
    mysql_tquery(Handle, string);


    Fehler code der MySQL Log:

    [ERROR] CMySQLQuery::Execute[] - (error #1063) Incorrect column specifier for column 'Spielername' (Query: "CREATE TABLE IF NOT EXISTS `Accounts` (`Spielername` varchar(24) NOT NULL AUTO_INCREMENT, `Passwort` varchar(128), `IP` varchar(16), `Level` int(11), `Bargeld` int(11), PRIMARY KEY(`Spielername`))")


    Mit freundlichen Grüßen,

  • Bräuchte mal etwas Hilfe :D
    public OnPlayerClickPlayer(playerid, clickedplayerid, source){if(SpielerInfo[playerid][uAdmin] > 4){ShowPlayerDialog(playerid,DIALOG_PLAYERCLICK,DIALOG_STYLE_LIST,"Spieler Menue","Admin-Menue\nSupporter-Menue\nTester-Menue","Auswählen","Beenden");return 1;}return 1;}


    Sobald ich diesen code drin hab, funktioniert kein Command mehr :/

    mach mal so


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(!SpielerInfo[playerid][uAdmin] > 4)return SendClientMessage(playerid,DeineFarbe,"Text");
    {
    ShowPlayerDialog(playerid,DIALOG_PLAYERCLICK,DIALOG_STYLE_LIST,"Spieler Menue","Admin-Menue\nSupporter-Menue\nTester-Menue","Auswählen","Beenden");
    return 1;
    }
    return 1;
    }

    Mit freundlichen Grüßen
    Siepac

  • Fehler code der MySQL Log:

    AUTO_INCREMENT bedeutet, dass er automatisch das Feld erhöht..aber das geht nur bei Integern, nicht bei Strings...


    Also das ist fehl am Platz :)



    Sobald ich diesen code drin hab, funktioniert kein Command mehr

    Denke nicht, dass es an dem Callback liegt...das sieht so eigentlich richtig aus...


    Wie haste denn DIALOG_PLAYERCLICK definiert? :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • mach mal so
    public OnPlayerClickPlayer(playerid, clickedplayerid, source){if(!SpielerInfo[playerid][uAdmin] > 4)return SendClientMessage(playerid,DeineFarbe,"Text");{ShowPlayerDialog(playerid,DIALOG_PLAYERCLICK,DIALOG_STYLE_LIST,"Spieler Menue","Admin-Menue\nSupporter-Menue\nTester-Menue","Auswählen","Beenden");return 1;}return 1;}

    Bringt nichts :/



    Denke nicht, dass es an dem Callback liegt...das sieht so eigentlich richtig aus...


    Wie haste denn DIALOG_PLAYERCLICK definiert?

    So wie jeden anderen Dialog
    #define DIALOG_PLAYERCLICK 11
    Die anderen Funktionieren (sofern die Befehle funktionieren) wie z.B. der /help-Dialog

  • Die anderen Funktionieren (sofern die Befehle funktionieren) wie z.B. der /help-Dialog

    Keine Ahnung..was du damit aussagen willst.


    Aber an dem Code den du geschrieben hast..ist nichts falsch :)


    Der Fehler muss also woanders liegen...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ...nutzt du denn einen "CMD Prozessor", wenn ja welchen..hast du noch andere Includes..wo dieser Callback drinnen ist?


    Lade eventuell mal crashdetect und probiere mal aus, was der so ausspuckt :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hi, hat jemand eine bessere Funktion um die aktuelle Real Time abzufragen? Hab's aktuell so, aber der zählt alle ~10 Sekunden immer +2 hoch anstatt +1.



    public settime(playerid)
    {
    new string[256],hours,minutes,seconds;
    gettime(hours, minutes, seconds);
    format(string, sizeof string, "%s%d:%s%d:%s%d", (hours < 10) ? ("0") : (""), hours, (minutes < 10) ? ("0") : (""), minutes, (seconds < 10) ? ("0") : (""), seconds);
    TextDrawSetString(Time, string);
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Die Funktion kannste vereinfachen:


    C
    public settime(playerid)
    {
        new string[16];
        gettime(string[0], string[1], string[2]);
        format(string,sizeof(string),"%02d:%02d:%02d",string[0],string[1],string[2]);
        TextDrawSetString(Time, string);
    }

    Für jeden Spieler das einzeln zu setzen macht btw keinen Sinn...kannst das direkt nur für das TextDraw setzen, das wird dann für die einzelnen Spieler automatisch angezeigt :)


    Zudem wenn er zu langsam zählt, liegt das an dem Timer-Interval, ders zu groß :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Okay, verwende nun deine Version :)


    Letzte Frage, wie loope ich hier korrekt, wenn meine TextDraws so erstellt werden?


    new PlayerText:LoginTextDraw[MAX_PLAYERS][33];


    Hab's so, aber bekomme ein Error.



    stock ShowLoginTextDraws(playerid)
    {
    for(new i; i < LoginTextDraw[playerid]; i++)
    {
    PlayerTextDrawHide(playerid, LoginTextDraw[playerid][i]);
    }
    }


    logintextdraws.inc(387) : error 033: array must be indexed (variable "LoginTextDraw")


    Mit freundlichen Grüßen
    JustMe.77 8)

  • So:


    for(new i; i <sizeof(LoginTextDraw[]); i++)


    Wenn du einen kleinen Performanz hinweis magst:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Schreibweise etwas kompliziert

    Makros sind nice :love:


    Hahah xD


    Aber ist okay, dein Skript ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

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