Haussystem hilfe

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
  • Hi


    also ich bin da an einem dynamischen Haussystem mit mysql dran.
    Nachdem jetzt endlich das Erstellen funktioniert komme ich nicht auf den
    richtigen Weg die Häuser aus der Tabelle auszulesen und Pickups zu erstellen.
    Also mit for-Schleife und Pickups erstellen ist klar. Aber (wie) kann ich eine Tabelle Zeile
    für Zeile durchgehen?


    Ich hoffe mir kann jemand einen Lösungsansatz geben.


    mit freundlichen Grüßen

  • danke, das hat mich schonmal deutlich weiter gebracht.


    aber jetzt stoße ich an einen Error der nicht weg gehen will -.-
    public LoadHouses()
    {
    for(new i = 0; i < MAX_HOUSES; i++)
    {
    new owner[128];
    format(owner, sizeof(owner), "%s", mysql_GetString("haeuser", "Besitzer", "ID", i));
    }
    }
    der Error ist beim format
    error 035: argument type mismatch (argument 4)


    mfg

  • Du machst das auch ein wenig umständlich, wenn du die gesammte tabelle auslesen willst:


    new string[256];
    mysql_query("SELECT * FROM hierdernamedertabelle");
    mysql_store_result();
    while(mysql_retrieve_row())
    {
    mysql_fetch_field_row(string, "namederspalte");
    }



    Die While-Schleife liest Zeile für Zeile aus, das heißt hier geht das System jetzt Zeile für Zeile aller (siehe Abrage) Einträge durch. Einen Spaltenteil (Spalte: Name beispielsweise) erhälst du durch das fetchen.

    nanosMalte


    Zitat

    Zitat von Goldkiller




    Obwohl MiniYoda das Wörtchen "Dynamisch" in der Deutschen SA-MP szene mit durchaus fatalen Folgen verbreitete, so hat er dennoch bewiesen, dass er das Handwerk PAWN hervorragend beherrscht. Er gehört definitiv zu den kompetentesten Scriptern die man bei SA-MP.DE finden kann.

  • hm. also das mit den ids hab ich jetzt schon umgesetzt und ganz ehrlich blicke ich durch deins nicht so ganz durch.
    zureit siehts folgendermaßen aus, aber ich habe halt immernoch diesen error von oben und in der if abfrage stimmt
    das mit dem owner noch nicht.
    public LoadHouses()
    {
    for(new i = 0; i < MAX_HOUSES; i++)
    {
    new owner[128];
    format(owner, sizeof(owner), "%s", mysql_GetString("haeuser", "Besitzer", "ID", i));
    if(owner != "Zu Verkaufen")
    {
    new Float:X, Float:Y, Float:Z;
    X = mysql_GetFloat("haeuser", "enterX", "ID", i);
    Y = mysql_GetFloat("haeuser", "enterY", "ID", i);
    Z = mysql_GetFloat("haeuser", "enterZ", "ID", i);
    housepickup[i] = CreatePickup(1273, 2, X, Y, Z, 0);
    }
    else
    {
    new Float:X, Float:Y, Float:Z;
    X = mysql_GetFloat("haeuser", "enterX", "ID", i);
    Y = mysql_GetFloat("haeuser", "enterY", "ID", i);
    Z = mysql_GetFloat("haeuser", "enterZ", "ID", i);
    housepickup[i] = CreatePickup(1273, 2, X, Y, Z, 0);
    }
    }
    }


    //edit also ich konnte das problem eingrenzen.
    irgentwie passt dem mysql_GetString das i von der for-schleife nicht. wie kann ich das beheben?


    //edit also das habe ich gelöst indem ich einen string house angelegt habe und mit i formatiert habe.
    format(house, sizeof(house), "%d", i);
    jez weis ich nur immernoch nicht wie ichif(owner != "Zu Verkaufen") ohne error formulieren kann
    //edit ok mit strcmp wieso ich da nicht gleich drauf gekommen bin 8|

    3 Mal editiert, zuletzt von Truuper ()

  • äh... 8|


    if(strcmp(owner,"Zu Verkaufen", true ) == 0 )



    if(strcmp(owner,"Zu Verkaufen", true ) == 0 )
    {
    new Float:X, Float:Y, Float:Z;
    X = mysql_GetFloat("haeuser", "enterX", "ID", i);
    Y = mysql_GetFloat("haeuser", "enterY", "ID", i);
    Z = mysql_GetFloat("haeuser", "enterZ", "ID", i);
    housepickup[i] = CreatePickup(1273, 2, X, Y, Z, 0);
    }
    else
    {
    new Float:X, Float:Y, Float:Z;
    X = mysql_GetFloat("haeuser", "enterX", "ID", i);
    Y = mysql_GetFloat("haeuser", "enterY", "ID", i);
    Z = mysql_GetFloat("haeuser", "enterZ", "ID", i);
    housepickup[i] = CreatePickup(1273, 2, X, Y, Z, 0);
    }


    Ich hätte es jetzt so gemacht.



    Gruss: Sonic

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