[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
  • hey, ich habe das problem das die kicks in mysql nicht abgespeichert werden. mein code sieht wie gefolgt aus:

    Code
            new ip[32];
            GetPlayerIp(pID,ip,sizeof(ip));
    
            new query[512];
            mysql_format(mysql, query, sizeof(query), "INSERT INTO `log_kicks` (`name`, `kickedby`, `reason`, `timestamp`, `ip`) 
    VALUES ('%i', '%i', '%e', '%i', '%e')", GetPVarInt(pID, "accountid"), GetPVarInt(playerid, "accountid"),  reason, gettime(), ip);
            mysql_tquery(mysql, query);


    Code
    CREATE TABLE `log_kicks` (
      `id` int(11) NOT NULL,
      `name` int(11) NOT NULL,
      `kickedby` int(11) NOT NULL,
      `reason` text NOT NULL,
      `timestamp` int(11) NOT NULL,
      `ip` text NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    ich bekomme keine errors/warnings.

  • hey, ich habe das problem das die kicks in mysql nicht abgespeichert werden. mein code sieht wie gefolgt aus:

    Code
            new ip[32];
            GetPlayerIp(pID,ip,sizeof(ip));
    
            new query[512];
            mysql_format(mysql, query, sizeof(query), "INSERT INTO `log_kicks` (`name`, `kickedby`, `reason`, `timestamp`, `ip`) 
    VALUES ('%i', '%i', '%e', '%i', '%e')", GetPVarInt(pID, "accountid"), GetPVarInt(playerid, "accountid"),  reason, gettime(), ip);
            mysql_tquery(mysql, query);


    Code
    CREATE TABLE `log_kicks` (
      `id` int(11) NOT NULL,
      `name` int(11) NOT NULL,
      `kickedby` int(11) NOT NULL,
      `reason` text NOT NULL,
      `timestamp` int(11) NOT NULL,
      `ip` text NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    ich bekomme keine errors/warnings.

    Was sagt die MySQL log?

  • Was sagt die MySQL log?

    [16:21:48] [ERROR] CMySQLQuery::Execute[] - (error #1146) Table 'datenbank.log_kicks' doesn't exist

    existieren tut sie

  • Heißt denn die Datenbank in der sich 'log_kicks' befindet auch 'datenbank' wie in der MySQL Log angegeben oder hast du vielleicht eine andere Datenbank im Script ausgewählt?

    Existiert sie auch in der Datenbank: Datenbank

    Danke euch allen, das war der Fehler. Werde nächstes mal genauer hinschauen.

  • Guten Abend,

    hab gerade mal den Compiler "geupdatet" und dazu die Includes, jetzt bekomme ich bei der kleinsten Sache schon Warnings die ich nicht behoben bekomme ...


    » Compiler: https://github.com/pawn-lang/compiler/releases

    » Includes: https://github.com/pawn-lang/samp-stdlib


    Code
    new strQuery[80];
    mysql_format(DBHandle, strQuery, sizeof(strQuery), "SELECT * FROM `srv_accounts` WHERE `Name` = '%e' LIMIT 1", PlayerInfo[playerid][pName]); // <- 76
    mysql_pquery(DBHandle, strQuery, "OnAccountCheck", "d", playerid); // <- 77
    
    (76) : warning 239: literal array/string passed to a non-const parameter
    (77) : warning 239: literal array/string passed to a non-const parameter
    (77) : warning 239: literal array/string passed to a non-const parameter

    Mich interessiert nicht, wessen Schuld es ist, vor allem nicht, wenn es meine eigene ist!

  • Klar, ist zwar die Originale R39-6, aber hier, gerne. :)


    Mich interessiert nicht, wessen Schuld es ist, vor allem nicht, wenn es meine eigene ist!

  • Versuch es mal so:


    ast2ufdyxkb1.png


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

  • Öhm, das hat geklappt, woran lag das Problem.

    Bei dem "neuen" Compiler ist es notwendig, dass alle Strings als const angegeben werden.


    Zum Beispiel:


    C
    stock test(str[])

    Das müsste zu:


    C
    stock test(const str[])

    Theoretisch ist es nicht notwendig, aber der Compiler, kann solche Funktionen dann besser optimieren.

    ast2ufdyxkb1.png


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

  • Beitrag von Klex ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: ach egal samp ist am arsch ().
  • Beitrag von Klex ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: rip samp ().
  • Guten Abend,


    ich wollte eine Mitgliederliste für die Fraktionsleader machen das Problem ist nur das ich aus einer anderen Tabelle den Charakternamen brauche und meine Funktion um den Charakternamen zu bekommen beendet immer die aktuelle Query wodurch mir immer nur ein Fraktionsmitglied angezeigt wird.


    Die Query womit man alle Fraktionsmitglieder bekommt

    Code
     mysql_format(connection, query, sizeof(query), "SELECT * FROM `character_job` WHERE `faction` = '%i'", CharacterInfo[playerid][CHARACTER_FACTION]);
                        mysql_tquery(connection, query, "GetFactionMember", "i", playerid);


    GetFactionMember


    Funktion um den Charakternamen zu bekommen


    Mit freundlichen Grüßen


    Allrounder18

    • Offizieller Beitrag

    ich wollte eine Mitgliederliste für die Fraktionsleader machen das Problem ist nur das ich aus einer anderen Tabelle den Charakternamen brauche

    Das kannst du einfach in SQL mit einer Subquery lösen, als Beispiel so (Vorausgesetzt die ID in character & character_job sind für alle Spieler identisch):

    SQL
    SELECT `firstname`, `lastname` FROM `character` WHERE EXISTS (SELECT `id`, `faction` FROM `character_job` WHERE `faction` = 'HIER_DIE_FRAKTIONS_ID_PER_FORMAT_EINFÜGEN' AND `character`.`id` = `character_job`.`id`);