error 035: argument type mismatch (argument 2)

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
  • Guten Tag,


    ich habe mal wieder ein Problem. Nach einer Suche im Web habe ich festgestellt das viele das Problem haben wenn sie ein ENUM verwenden. Da ich kein ENUM verwende weis ich nicht genau was ich ändern sollte da die meisten das nicht in Verbindung mit MySQL einsetzen.


    Danke nochmal das ihr mir gestern so gut geholfen habt, ich hoffe ihr könnt mir auch bei diesem Problem weiterhelfen :)


    Also ich bekomme beim kompilieren folgende Meldung:

    Code
    error 035: argument type mismatch (argument 2)


    Die Fehlerhafte Zeile beinhaltet folgendes:
    SetPlayerColor(playerid, userGroupColor);


    Der komplette Code:

    public OnPlayerConnect(playerid)
    {
    // Objekte
    new playerName[MAX_PLAYER_NAME+1], string[24+MAX_PLAYER_NAME+1];
    new query1[180];
    new query2[180];
    new query3[180];
    new playerIP[16];
    new userRank[20];
    new userGroupID[2];
    new userGroupColor[20];


    // Spielername
    GetPlayerName(playerid, playerName, sizeof(playerName));


    // Spieler IP-Adresse
    GetPlayerIp(playerid, playerIP, sizeof(playerIP));


    // Log Eintrag schreiben
    format(query1, sizeof(query1), "INSERT INTO logs (logType, logValue, timestamp, ipAddress) VALUES ('playerConnect', 'Spieler %s hat den Server betreten.', '', '%s');", playerName, playerIP);

    // Welche Gruppe hat dieser Spieler ?
    format(query2, sizeof(query2), "SELECT groupID FROM users WHERE username = '%s'", playerName);
    mysql_query(query2);
    mysql_store_result();

    mysql_fetch_field("groupID", userGroupID);


    mysql_free_result();

    // Lade Infos von der Gruppe
    format(query3, sizeof(query3), "SELECT color FROM groups WHERE groupID = %s", userGroupID);
    mysql_query(query3);
    mysql_store_result();

    mysql_fetch_field("color", userGroupColor);

    mysql_free_result();

    // Setze Spielernamen Farbe
    SetPlayerColor(playerid, userGroupColor);

    printf("Farbe: %s", userGroupColor);

    // Willkommen auf dem Server
    SendClientMessage(playerid, yellow, "-------------------------------------------------------------------------------------------");
    SendClientMessage(playerid, white, "Willkommen auf dem ]MSAH[ Clan Reallife Server!");
    SendClientMessage(playerid, yellow, "-------------------------------------------------------------------------------------------");

    // return
    return 1;
    }


    Kurze Erklärung:
    Ich möchte aus einer Tabelle die Gruppen-ID des Spielers auslesen und dann bei der Gruppe nachgucken welchen Farbcode ich festgelegt habe. Angenommen ich komme auf den Server, so würde der Farbcode 0xFF0019FF lauten.


    Ich habe vorhin noch ein bisschen rumprobiert und zwar habe ich dann z.B. das hier
    SetPlayerColor(playerid, userGroupColor);
    in
    SetPlayerColor(playerid, mysql_fetch_field("groupID"));
    und habe dann halt mysql_free_result(); weiter unten platziert das ich mysql_fetch_field("groupID"); noch verwenden kann.


    Komme gerade auf keine Lösung.


    Danke schon einmal im Voraus :)

    Einmal editiert, zuletzt von Mr_Brox ()

  • Es ist aber keine richtige Farbe oder hab ich das falsch verstanden.

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung

  • Wie meinst du mit keiner richtigen Farbe ? Der Farbcode 0xFF0019FF steht bereits in der Tabelle. Wird eigentlich auch mit diesem Code ausgelesen. Aber das Problem kommt ja nicht In-Game. Das Problem kommt ja beim kompilieren. Mir geht es vorerst um das argument type mismatch.


    Das mit dem "PS" unten hat sich auf das bezogen als ich etwas geändert habe. Ich werde es rausnehmen damit ihr nicht durcheinander kommt ;)


    Edit: Bitte helft mir noch einmal. Das Problem hat sich noch nicht gelöst.

    Einmal editiert, zuletzt von Mr_Brox ()

  • "0xFFFFFF" <--- Variable?? Nein. Und als String kannst du es nicht einsetzen.


    Du kannst höchstens mit ID's und Define's arbeiten um die Farbe extern zu speichern.


    Du speicherst extern dann nur die passende Farb-ID.


    Gruss: Sonic

    I didn't hit you. I high fived your face.

  • Wenn ich aber jetzt aus einer MySQL Datenbank bestimmte Sachen auslesen will und diese in eine Funktion einbaue, wie mache ich das ?
    Beispiel:

    new testfield[30];


    mysql_query("SELECT testfield FROM test");
    mysql_store_result();


    mysql_fetch_field("testfield", testfield);


    mysql_free_result();


    SetPlayerFightStyle(playerid, testfield);


    Das ganze gibt es ja auch für Integers das ich statt testfield einfach strval(testfield) mache.


    Also dann praktisch das hier:

    SetPlayerFightStyle(playerid, testfield);

    in

    SetPlayerFightStyle(playerid, strval(testfield));

    ändere. Würde nicht gehen da ich keine Integers bei SetPlayerFightStyle verwenden kann, ich weis. Soll auch nur ein Beispiel sein.


    Es muss doch einen Weg geben Strings aus einer MySQL Tabelle auslesen zu können und diese dann in Funktionen verwenden kann.

    Einmal editiert, zuletzt von Mr_Brox ()