Hilfe argument type mismatch

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
  • Hallo
    ich habe ein Haussystem von meinen Kolege in mysql umgeschreiben aber jetzt kriege ich immer da wo er auslesen oder speichern soll immer eine error


    stock LoadHouse()
    {
    new line[255];
    for(new i = 0;i<MAX_HH;i++)
    {
    HausDaten[_cache_haus][Besitzer] = mysql_GetString("hauser", "Besitzer", "ID", _cache_haus);
    HausDaten[_cache_haus][ax] = mysql_GetFloat("hauser", "ax", "ID", _cache_haus);
    HausDaten[_cache_haus][ay] = mysql_GetFloat("hauser", "ay", "ID", _cache_haus);
    HausDaten[_cache_haus][az] = mysql_GetFloat("hauser", "az", "ID", _cache_haus);
    HausDaten[_cache_haus][ix] = mysql_GetFloat("hauser", "ix", "ID", _cache_haus);
    HausDaten[_cache_haus][iy] = mysql_GetFloat("hauser", "iy", "ID", _cache_haus);
    HausDaten[_cache_haus][iz] = mysql_GetFloat("hauser", "iz", "ID", _cache_haus);
    HausDaten[_cache_haus][interior] = mysql_GetInt("hauser", "interior", "ID", _cache_haus);
    HausDaten[_cache_haus][virtual_world] = mysql_GetInt("hauser", "virtual_world", "ID", _cache_haus);
    HausDaten[_cache_haus][kosten] = mysql_GetInt("hauser", "kosten", "ID", _cache_haus);
    HausDaten[_cache_haus][nicht_zum_kauf] = mysql_GetInt("hauser", "nicht_zum_kauf", "ID", _cache_haus);
    HausDaten[_cache_haus][verschlossen] = mysql_GetInt("hauser", "verschlossen", "ID", _cache_haus);
    format(line,sizeof line,"Besitzer : %s\nKosten : %d$",HausDaten[_cache_haus][Besitzer],HausDaten[_cache_haus][kosten]);
    HausDaten[_cache_haus][lbl_haus] = Create3DTextLabel(line,(!HausDaten[_cache_haus][nicht_zum_kauf]) ? (0x00FF00FF) : (0xFF0000FF),HausDaten[_cache_haus][ax],HausDaten[_cache_haus][ay],HausDaten[_cache_haus][az],10.0,0,0);
    HausDaten[_cache_haus][pickid] = CreatePickup(1273,1,HausDaten[_cache_haus][ax],HausDaten[_cache_haus][ay],HausDaten[_cache_haus][az],0);
    HausDaten[_cache_haus][icon_id] = iAddStreamIcon(HausDaten[_cache_haus][ax],HausDaten[_cache_haus][ay],HausDaten[_cache_haus][az],(HausDaten[_cache_haus][nicht_zum_kauf]) ? (32) : (31),0);
    _cache_haus++;
    }
    return 1;
    }
    stock SaveCache()
    {
    for(new i = 0;i<_cache_haus;i++)
    {
    if(!HausDaten[i][interior])continue;
    mysql_SetString("hauser", "Besitzer", HausDaten[i][Besitzer], "ID", i);
    mysql_SetFloat("hauser", "ax", HausDaten[i][ax], "ID", i);
    mysql_SetFloat("hauser", "ay", HausDaten[i][ay], "ID", i);
    mysql_SetFloat("hauser", "az", HausDaten[i][az], "ID", i);
    mysql_SetFloat("hauser", "ix", HausDaten[i][ix], "ID", i);
    mysql_SetFloat("hauser", "iy", HausDaten[i][iy], "ID", i);
    mysql_SetFloat("hauser", "iz", HausDaten[i][iy], "ID", i);
    mysql_SetInt("hauser", "interior", HausDaten[i][interior], "ID", i);
    mysql_SetInt("hauser", "virtual_world", HausDaten[i][virtual_world], "ID", i);
    mysql_SetInt("hauser", "kosten", HausDaten[i][kosten], "ID", i);
    mysql_SetInt("hauser", "nicht_zum_kauf", HausDaten[i][nicht_zum_kauf], "ID", i);
    mysql_SetInt("hauser", "verschlossen", HausDaten[i][verschlossen], "ID", i);
    }
    return 1;
    } Ich glaube daran das ich bei sonst jeder mysql abfrage stadt id imemr ein Namen auslesen lasse da aber anderes kann ich mir das nicht vorstellen da ist in meinen augen alels richtig. Bei den Hauser habe ich halt nur IDs wie solll ich das denn auslesen lassen das da keine errors kommen

  • Das ergebniss einer MySQL abfrage kommt immer als String an, du brauchst da wohl an einer stelle nen Float / Integer.
    Leider kenn ich die anderen Funktionen nicht und wie welchen Type die Values haben, hier könnte vielleicht einer
    mit mehr GM Erfahrung wissen, welchen Typ die einzellnen Values haben müssen.

  • aslo das ist oben so definiert
    new _cache_haus;
    und es wird überall als hausid verwendet also jedes haus hat eine id und das ist halr _cache_haus

  • stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    Also meistens ist es ja so aufgebaut.
    Aber bei dir ist ja _cache_house
    ein int und ein Int != String
    d.h. du musst entweder deine Funktion ändern oder valstr nutzen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski