[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
  • Er erstellt keine Datenbank es kommt dann nur dies,




    Code:


    format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `"SERVER_TAG"_settings` (");
    format(query, sizeof(query), "%s `ID` int(11) NOT NULL PRIMARY KEY,", query);
    format(query, sizeof(query), "%s `Steuerklasse 1` int(2) NOT NULL DEFAULT '22',", query);
    format(query, sizeof(query), "%s `Steuerklasse 2` int(2) NOT NULL DEFAULT '25',", query);
    format(query, sizeof(query), "%s `Steuerklasse 3` int(2) NOT NULL DEFAULT '18',", query);
    format(query, sizeof(query), "%s `Steuerklasse 4` int(2) NOT NULL DEFAULT '20',", query);
    format(query, sizeof(query), "%s `Staatskasse` int(11) NOT NULL DEFAULT '1250000'", query);
    format(query, sizeof(query), "%s) ENGINE=InnoDB DEFAULT CHARSET=latin1;", query);
    mysql_tquery(Handle, query);



    Es soll so aussehen ohen das ich das eintragen muss.





    Jeffry: kannst du weiter helfen ? ?(

    Einmal editiert, zuletzt von Havoc ()

  • whitetiiger:


    Dann kriege ich diese Errors:


    C:\Users\Dave\Desktop\Hoe's Wonderland\gamemodes\heal.pwn(31) : error 017: undefined symbol "INI_String"
    C:\Users\Dave\Desktop\Hoe's Wonderland\gamemodes\heal.pwn(266) : warning 202: number of arguments does not match definition
    C:\Users\Dave\Desktop\Hoe's Wonderland\gamemodes\heal.pwn(290) : error 029: invalid expression, assumed zero
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • @Havoc:
    Wenn du keine Daten in der Tabelle hast, was bei einer neu erstellten Tabelle ja normal ist, dann wird dir da auch nichts angezeigt. Gehe auf den Reiter SQL und füge das ein:

    SQL
    INSERT INTO name_der_tabelle_hier VALUES ();


    name_der_tabelle_hier ersetzt du natürlich.
    Dann hast du einen Datensatz drin und kannst loslegen.


    @[LnD]JustMe.77:
    Das Laden der Daten ist hier beschrieben:
    http://wiki.sa-mp.com/wiki/YSI:INI#Reading


    Generell rate ich von diesem System aber ab, auf Grund der überkomplizierten Struktur und der Tatsache, dass Y_Less SA-MP (wohl endgültig) verlassen hat, sprich es folgen keine Updates mehr.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: Tippfehler


  • ocmd:countdown(playerid,params[])
    {
    if(!PlayerIsAdmin(playerid,3))return AERROR
    if(countdown != 0) return SendClientMessage(playerid, C_GREY, "Es wurde bereits ein Countdown ausgeführt.");
    new sec;
    if(sscanf(params,"s[90]d",cdstr,sec)) return SendClientMessage(playerid,C_GREY,"Benutze {FFFFFF}/countdown [Nachricht] [Sekunden]");
    if(sec > 300) return SendClientMessage(playerid,C_GREY,"* Du kannst nur ein Countdown bis 300 Sekunden erstellen.");
    if(strlen(cdstr) > 90)return SendClientMessage(playerid,C_GREY,"* Du darfst maximal nur 90 Zeichen in der Nachricht verwenden.");
    countdown = sec;
    SetTimer("CountDownCheck",1000,0);
    return 1;
    }


    Das Problem liegt jetzt hierbei, wenn ich inGame /countdown Beeilt euch es gibt freie Eventkarten 180. Werden die Leerzeichen die ich bei der NAchricht gemacht habe als Sekunde verstanden, und somit funktioniert der ganze Befehl nicht,
    hat da jemand eine Lösung von euch :>?

  • Du musst es umdrehen:
    ocmd:countdown(playerid,params[])
    {
    if(!PlayerIsAdmin(playerid,3))return AERROR
    if(countdown != 0) return SendClientMessage(playerid, C_GREY, "Es wurde bereits ein Countdown ausgeführt.");
    new sec;
    if(sscanf(params,"ds[90]",sec,cdstr)) return SendClientMessage(playerid,C_GREY,"Benutze {FFFFFF}/countdown [Sekunden] [Nachricht]");
    if(sec > 300) return SendClientMessage(playerid,C_GREY,"* Du kannst nur ein Countdown bis 300 Sekunden erstellen.");
    if(strlen(cdstr) > 90)return SendClientMessage(playerid,C_GREY,"* Du darfst maximal nur 90 Zeichen in der Nachricht verwenden.");
    countdown = sec;
    SetTimer("CountDownCheck",1000,0);
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ok. Dann drücke jetzt auf den "SQL" Button, neben "Struktur".
    Dort fügst du das ein:

    SQL
    INSERT INTO bcl_settings VALUES ();


    Dann drückst du auf "Go/Ok" (je nach dem wie es bei dir heißt) rechts unten.


    Danach solltest du eine neue Zeile in der Datenbank sehen, in der du dann die Daten eintragen kannst.

  • Jeffry:


    Funktioniert leider immernoch :/


    format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `"SERVER_TAG"_settings` (");
    format(query, sizeof(query), "%s `ID` int(11) NOT NULL PRIMARY KEY,", query);
    format(query, sizeof(query), "%s `Steuerklasse 1` int(2) NOT NULL DEFAULT '22',", query);
    format(query, sizeof(query), "%s `Steuerklasse 2` int(2) NOT NULL DEFAULT '25',", query);
    format(query, sizeof(query), "%s `Steuerklasse 3` int(2) NOT NULL DEFAULT '18',", query);
    format(query, sizeof(query), "%s `Steuerklasse 4` int(2) NOT NULL DEFAULT '20',", query);
    format(query, sizeof(query), "%s `Staatskasse` int(11) NOT NULL DEFAULT '1250000'", query);
    format(query, sizeof(query), "%s) ENGINE=InnoDB DEFAULT CHARSET=latin1;", query);
    mysql_tquery(Handle, "INSERT INTO "SERVER_TAG"_settings VALUES ();");
    mysql_tquery(Handle, query);