Problem Haussystem -> Nur 1 Haus wird erstellt (Pickup/TextLabel fehler?)

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 kleines problem mit meinem Haussystem welches ich gerade erstelle.
    Es wird immer nur 1 Haus im Spiel erstellt, ich denke es werden alle geladen aber nur 1 Haus erstellt.
    Hat einer eine Ahnung was das Problem ist?


    enum Haus_Info
    {
    Float:HausPX,
    Float:HausPY,
    Float:HausPZ,
    Besitzer[64],
    Hauskasse,
    Innenraum,
    Mieter,
    Verschlossen,
    Kaufpreis,
    MietPreis,
    Health,
    Armor,
    HausLevel,
    HausPickup,
    Text3D:HausLabel
    }
    new HausInfo[MAX_HAUSES][Haus_Info];


    OnGameModeInit:
    for(new i = 0; i < MAX_HAUSES; i++)
    {
    HausInfo[i][HausPX] = mysql_GetFloatH("houses","HausPX","HausID",i);
    HausInfo[i][HausPY] = mysql_GetFloatH("houses","HausPY","HausID",i);
    HausInfo[i][HausPZ] = mysql_GetFloatH("houses","HausPZ","HausID",i);
    format(HausInfo[i][Besitzer],64,mysql_GetStringH("houses","Besitzer","HausID",i));
    HausInfo[i][Hauskasse] = mysql_GetIntH("houses","Hauskasse","HausID",i);
    HausInfo[i][Innenraum] = mysql_GetIntH("houses","Innenraum","HausID",i);
    HausInfo[i][Mieter] = mysql_GetIntH("houses","Mieter","HausID",i);
    HausInfo[i][Verschlossen] = mysql_GetIntH("houses","Verschlossen","HausID",i);
    HausInfo[i][Kaufpreis] = mysql_GetIntH("houses","Kaufpreis","HausID",i);
    HausInfo[i][HausLevel] = mysql_GetIntH("houses","HausLevel","HausID",i);
    HausInfo[i][MietPreis] = mysql_GetIntH("houses","MietPreis","HausID",i);
    HausInfo[i][Health] = mysql_GetIntH("houses","Health","HausID",i);
    HausInfo[i][Armor] = mysql_GetIntH("houses","Armor","HausID",i);
    if(strfind(HausInfo[i][Besitzer], "Keiner") != -1)
    {
    new HausString[150];
    HausInfo[i][HausPickup] = CreatePickup(1273,1,HausInfo[i][HausPX],HausInfo[i][HausPY],HausInfo[i][HausPZ],-1);
    format(HausString,sizeof(HausString),"Dieses Haus steht zum Verkauf\nLevel: %d\nPreis: %d$\n\nDu kannst dieses Haus mit '/buyhouse' Kaufen!",HausInfo[i][HausLevel],HausInfo[i][Kaufpreis]);
    HausInfo[i][HausLabel] = Create3DTextLabel(HausString,0xE2E200FF,HausInfo[i][HausPX],HausInfo[i][HausPY],HausInfo[i][HausPZ],20.0,0,1);
    }
    else
    {
    new HausString[150];
    HausInfo[i][HausPickup] = CreatePickup(1239,1,HausInfo[i][HausPX],HausInfo[i][HausPY],HausInfo[i][HausPZ],-1);
    format(HausString,sizeof(HausString),"Dieses Haus ist Mietbar!\nBesitzer: %s\nMietpreis: %d\n\nDu kannst dich mit '/rentroom' einmieten!",HausInfo[i][Besitzer],HausInfo[i][MietPreis]);
    if(HausInfo[i][Verschlossen] == 0)
    {
    HausInfo[i][HausLabel] = Create3DTextLabel(HausString,0x00E200FF,HausInfo[i][HausPX],HausInfo[i][HausPY],HausInfo[i][HausPZ],20.0,0,1);
    }
    else
    {
    HausInfo[i][HausLabel] = Create3DTextLabel(HausString,0xE20000FF,HausInfo[i][HausPX],HausInfo[i][HausPY],HausInfo[i][HausPZ],20.0,0,1);
    }
    }
    printf("Haus %d wurde geladen!", i);
    }


    Und nur als Info, MAX_HAUSES ist oben mit 50 definiert.

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Zeig mal den MySQL Debug
    da wird man mehr sehen und mach das rückgängig was dir Deagle andrehen möchte


    Sagt Mr. Ichdrehdeaglewasfalschesan.


    Mein Rat, kommt von BlackAce, welcher mir bei meinem Haussystem geholfen hat.
    Seitdem Ich das von ihm drin hatte, lief alles 100% richtig. (das mit dem new str)
    Aber sehen wir mal, was du ihm so andrehen willst.


    B2T:
    Wie werden denn all deine Häuser geladen (OnGameModeInit)

  • Ok Zeig mal alle Funktionen die ich aufliste



    mysql_GetFloatH
    mysql_GetStringH
    mysql_GetIntH


    die Kompletten Funktionen aber bitte, da da zu 99% nen fehler ist


    //e
    Deagle er hatte fehler und das lag daran das du ein intger zum string gemacht hast

    All in all it's just another brick in the wall

  • stock Float:mysql_GetFloatH(Table[], Field[], Where[], Is)
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    stock mysql_GetIntH(Table[], Field[], Where[], Is)
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


    stock mysql_GetStringH(Table[], Field[], Where[], Is)
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Deine querys sind falsch
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    die ganzen in das ändern
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%d'", Field, Table, Where, Is);

    All in all it's just another brick in the wall

  • Deine querys sind falsch
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    die ganzen in das ändern
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%d'", Field, Table, Where, Is);


    DAS ist PEINLICH.......
    .....Das war der Fehler, jetzt klappt es ohne probleme.
    Vielen danke für deine hilfe!
    Und auch danke an die anderen die es versucht haben :)
    Nächstesmal achte ich am besten darauf dass ich gleich alles richtig ändere...

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png