[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
  • kann man bei pawno nicht eine variable in eine andere packen ?

    Wie hast denn hours deklariert? :)
    PS: Die Sprache heißt nur Pawn :)



    Test und test2 sind die Nachrichten die Gespeichert werden.

    Nein ich meine..wenn du darauf klickst...was soll den passieren..welche Nachricht willst du denn sehen..wo ist diese gespeichert :D

    ast2ufdyxkb1.png


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

  • @Kaliber:
    Ich hatte ja gefragt wie das geht dass ich mir die Bugreports anzeigen lasse da hattest du mir Geholfen ( voherige seite ).
    Doch da wird die Ganze zeile Ausgegen aber ich will in dem Dialog dann nur die namen stehen habem wie z.b wemn 3 leute ein Bug gemeldet haben dann soll der Dialog so aussehen
    Spieler x
    Spieler y
    Spieler z


    Wenn ich dann auf spieler x drücke soll doe Ganze nachricht ausgegeben werden ist das realisierbar ?
    Die bugmeldungen werden dort gespeichert
    "logs/Bugreports.txt"

  • 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

  • ...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