Haus System Update3DTextLableText

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 liebe com,
    ich habe ein kleines problemchen und zwar das wenn ich meine Häuser laden lasse, lasse ich auch sofort überprüfen ob dieses haus jemanden gehört falls ja soll das hier ausgeführt werden:


    public UpdateHausText()
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, dbhandle);
    for(new i=0; i<num_rows; i++)
    {
    for(new ix=0; ix<sizeof(hInfo); ix++)
    {
    if(hInfo[ix][h_status]==0)continue;
    new name[MAX_PLAYER_NAME];
    cache_get_field_content(i,"Username",name,dbhandle);
    new string[164];
    format(string,sizeof(string),"Haus ID: %i\nBesitzer: %s",hInfo[ix][h_db_id],name);
    Update3DTextLabelText(hInfo[ix][h_id_y],grün,string);
    }
    }
    return 1;
    }


    Jedoch habe ich das Problem das nur ein und der selbe string bei allen Häusern genutzt wird auch wenn diese alle andere besitzer haben...


    Vielen Dank schonmal im vorraus


    MfG MrKonsonant

  • public UpdateHausText()
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, dbhandle);
    for(new i=0; i<num_rows; i++)
    {
    if(hInfo[i][h_status]==0)continue;
    new name[MAX_PLAYER_NAME];
    cache_get_field_content(i,"Username",name,dbhandle);
    new string[164];
    format(string,sizeof(string),"Haus ID: %i\nBesitzer: %s",hInfo[i][h_db_id],name);
    Update3DTextLabelText(hInfo[i][h_id_y],grün,string);
    }
    return 1;
    }


    Du brauchst da nicht zwei Schleifen verschachteln.

  • Poste bitte mal dein Query das du zuvor aufrufst.
    Den Namen hast du in der Datenbank aber schon zugeweisen, oder?
    Und "hInfo[ i ][h_status]" ist auch wirklich nicht bei allen anderen 0?


    Du kannst auch mal den string nach dem format mit "print(string);" ausgeben lassen, dass weißt du für welche Häuser es überall gemacht wird.

  • public LoadAllHouses()
    {
    print("*************************");
    print("* Häuser werden Geladen *");
    print("* *");
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, dbhandle);
    if(!num_rows)return print("keine Häuser!");
    for(new i=0; i<num_rows; i++)
    {
    new uid = getFreeHausID();
    hInfo[uid][h_status] = cache_get_field_content_int(i,"status",dbhandle);
    hInfo[uid][h_db_id] = cache_get_field_content_int(i,"id",dbhandle);
    hInfo[uid][h_x] = cache_get_field_content_float(i,"x",dbhandle);
    hInfo[uid][h_y] = cache_get_field_content_float(i,"y",dbhandle);
    hInfo[uid][h_z] = cache_get_field_content_float(i,"z",dbhandle);
    hInfo[uid][h_i_x] = cache_get_field_content_float(i,"ix",dbhandle);
    hInfo[uid][h_i_y] = cache_get_field_content_float(i,"iy",dbhandle);
    hInfo[uid][h_i_z] = cache_get_field_content_float(i,"iz",dbhandle);
    hInfo[uid][h_interior] = cache_get_field_content_int(i,"interior",dbhandle);
    hInfo[uid][h_besitzer] = cache_get_field_content_int(i,"besitzer",dbhandle);
    hInfo[uid][h_kosten] = cache_get_field_content_int(i,"kosten",dbhandle);
    if(hInfo[uid][h_status]==0)
    {
    new string[164];
    format(string,sizeof(string),"Haus ID: %i\nKauf Kosten: %i$\nBesitzer: No_one",hInfo[uid][h_db_id],hInfo[uid][h_kosten]);
    hInfo[uid][h_id_x]= CreatePickup(Pickup_Hausfrei,1,hInfo[uid][h_x],hInfo[uid][h_y],hInfo[uid][h_z],0);
    hInfo[uid][h_id_y]= Create3DTextLabel(string,rot,hInfo[uid][h_x],hInfo[uid][h_y],hInfo[uid][h_z],20,0);
    }
    else
    if(hInfo[uid][h_status]==1)
    {
    new string[164];
    format(string,sizeof(string),"Haus ID: %i\nBesitzer: %s",hInfo[uid][h_db_id],"No_one");
    hInfo[uid][h_id_x]= CreatePickup(Pickup_Hausvergeben,1,hInfo[uid][h_x],hInfo[uid][h_y],hInfo[uid][h_z],0);
    hInfo[uid][h_id_y]= Create3DTextLabel(string,grün,hInfo[uid][h_x],hInfo[uid][h_y],hInfo[uid][h_z],20,0);
    format(string,sizeof(string),"SELECT * FROM user WHERE id='%i'",hInfo[uid][h_besitzer]);
    mysql_function_query(dbhandle,string,true,"UpdateHausText","");
    hInfo[uid][h_id_z]= CreatePickup(Pickup_Info,1,hInfo[uid][h_i_x],hInfo[uid][h_i_y],hInfo[uid][h_i_z],0);
    }
    printf("* Haus %i geladen *",hInfo[uid][h_db_id]);
    }
    print("* *");
    print("* Häuser wurden Geladen *");
    print("*************************");
    print(".");
    print(".");
    return 1;
    }


    ja das habe ich alles überprüft der status ist überall richtig zugewiesen

  • Ah, so machst du das. Dann musst du die Haus ID übergeben:
    public UpdateHausText(id)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, dbhandle);
    if(hInfo[id][h_status]==0)return 1;
    new name[MAX_PLAYER_NAME];
    cache_get_field_content(0,"Username",name,dbhandle);
    new string[164];
    format(string,sizeof(string),"Haus ID: %i\nBesitzer: %s",hInfo[id][h_db_id],name);
    Update3DTextLabelText(hInfo[id][h_id_y],grün,string);
    return 1;
    }


    mysql_function_query(dbhandle,string,true,"UpdateHausText","d", uid);

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen