Haussystem Probleme

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 Community,


    ich habe probleme bei meinem Haussystem und zwar wenn ich das Haus lade


    public OnHausLoad(hausid)
    {
    new result[64];
    new haus = 0;
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    /* while(haus<num_rows)
    {
    hInfo[haus+1][hCreated] = 1;
    cache_get_field_content(hausid,"id",result);
    hInfo[haus+1][hID] = strval(result);
    cache_get_field_content(hausid,"besitzer",result);
    hInfo[haus+1][hBesitzer] = strval(result);
    cache_get_field_content(hausid,"created",result);
    hInfo[haus+1][hCreated] = strval(result);
    cache_get_field_content(hausid,"owned",result);
    hInfo[haus+1][hOwned] = strval(result);
    cache_get_field_content(hausid,"Enx",result);
    hInfo[haus+1][h_enx] = floatstr(result);
    cache_get_field_content(hausid,"Eny",result);
    hInfo[haus+1][h_eny] = floatstr(result);
    cache_get_field_content(hausid,"Enz",result);
    hInfo[haus+1][h_enz] = floatstr(result);
    cache_get_field_content(hausid,"preis",result);
    hInfo[haus+1][hPreis] = strval(result);
    cache_get_field_content(hausid,"level",result);
    hInfo[haus+1][hLevel] = strval(result);
    if(hInfo[haus+1][hOwned] == 1)
    {
    CreatePickup(1239,1,hInfo[haus+1][h_enx], hInfo[haus+1][h_eny], hInfo[haus+1][h_enz]);
    }
    if(hInfo[hausid][hOwned] == 0)
    {
    CreatePickup(1273,1,hInfo[haus+1][h_enx], hInfo[haus+1][h_eny], hInfo[haus+1][h_enz]);
    }
    hLabel[hausid]=Create3DTextLabel("Haha", COLOR_RED, hInfo[haus+1][h_enx], hInfo[haus+1][h_eny], hInfo[haus+1][h_enz], 40.0, 0, 0);
    UpdateHausLabel(haus+1,hInfo[haus+1][hOwned]+1);
    printf("Häuser geladen %i",num_rows);
    }*/
    return 1;
    }


    wird die Schleife nicht geladen :/
    die grünen stellen halt


    Ich hoffe einer kann mir helfen


    MfG


    Master

    • Entferne /* und */, sodass dein Code auch ausgeführt werden kann.
    • Verwende for() statt while(), sodass sich deine haus Variable auch erhöht oder: Schreibe haus++ als letzte Zeile in deine while()-Schleife.
    • In den neuen Versionen des Plugins gibt es auch extra Funktionen für Integer, Floats, etc. Du musst es garnicht so kompliziert mit einem result-String zu machen.
    • Warum verwendest du haus und hausid?
    • Warum schreibst du haus + 1 - das macht keinen Sinn!
    • Warum schreibst du zwei if-Abfragen anstatt einfach ein else einzubauen?
    • Warum gibst du die Anzahl der geladenen Häuser in der Schleife aus?
  • Zum threas: ich denke campbell hat alles ausdrücklich erklärt

    Deine Antwort ist demnach sinnlos.
    Hör auf Beiträge zu Farmen.


    B2T
    Printe bzw. Debugge mal an den stellen wo es nicht funktioniert, zeig uns dann das Ergebniss :)

  • habs heute morgen mal anders geschrieben es sieht nun so aus


    public OnHausLoad(hausid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new x=getfreehausid();
    hInfo[x][hID]=cache_get_field_content_int(i,"id",dbhandle);
    hInfo[x][hBesitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
    hInfo[x][hCreated]=cache_get_field_content_int(i,"created",dbhandle);
    hInfo[x][h_enx]=cache_get_field_content_float(i,"enx",dbhandle);
    hInfo[x][h_eny]=cache_get_field_content_float(i,"eny",dbhandle);
    hInfo[x][h_enz]=cache_get_field_content_float(i,"enz",dbhandle);
    hInfo[x][hPreis]=cache_get_field_content_int(i,"preis",dbhandle);
    hInfo[x][hLevel]=cache_get_field_content_int(i,"level",dbhandle);
    hInfo[x][hOwned]=cache_get_field_content_int(i,"owned",dbhandle);
    if(hInfo[x][hOwned] == 1)
    {
    CreatePickup(1239,1,hInfo[x][h_enx], hInfo[x][h_eny], hInfo[x][h_enz]);
    }
    if(hInfo[x][hOwned] == 0)
    {
    CreatePickup(1273,1,hInfo[x][h_enx], hInfo[x][h_eny], hInfo[x][h_enz]);
    }
    hLabel[x]=Create3DTextLabel("Haha", COLOR_RED, hInfo[x][h_enx], hInfo[x][h_eny], hInfo[x][h_enz], 40.0, 0, 0);
    UpdateHausLabel(x,hInfo[x][hOwned]+1);
    print("Haus loaded");
    }
    print("Es wird nix geladen");
    return 1;
    }


    Und nun wird dieser Public garnicht ausgelesen


    Die restlichen Codes zum Haussystem:

    Spoiler anzeigen
    createhaus(Float:X,Float:Y,Float:Z,Preis,Level)
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(hInfo[i][hCreated]!=0)continue;
    // strmid(hInfo[i][hBesitzer],"Niemand",0,strlen("Niemand"),24);
    hInfo[i][hBesitzer] = 0;
    hInfo[i][hPreis] = Preis;
    hInfo[i][hLevel] = Level;
    hInfo[i][h_enx] = X;
    hInfo[i][h_eny] = Y;
    hInfo[i][h_enz] = Z;
    hInfo[i][hCreated] = 1;
    hInfo[i][hOwned] = 0;
    hInfo[i][h_ex] = 0;
    hInfo[i][h_ey] = 0;
    hInfo[i][h_ez] = 0;
    CreatePickup(1273,1, hInfo[i][h_enx], hInfo[i][h_eny], hInfo[i][h_enz]);
    new string[128];
    format(string,sizeof(string),"Das Haus hInfo[%i] wurde erstellt.",i);
    SendClientMessageToAll(COLOR_RED,string);
    saveHausToDB(i);
    return 1;
    }
    return 1;
    }

    Spoiler anzeigen
    savehaus(hausid)
    {
    new query[256];
    format(query,sizeof(query),"UPDATE haus SET besitzer='%i',owned='%i',created='%s',enx='%f',eny='%f',enz='%f',preis='%d',level='%d' WHERE id='%i'",hInfo[hausid][hBesitzer],hInfo[hausid][hOwned],hInfo[hausid][hCreated],hInfo[hausid][h_enx],hInfo[hausid][h_eny],hInfo[hausid][h_enz],hInfo[hausid][hPreis],hInfo[hausid][hLevel],hInfo[hausid][hID]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }

    Spoiler anzeigen
    saveHausToDB(hausid)
    {
    new query[256];
    format(query,sizeof(query),"INSERT INTO haus (besitzer,created,owned,Enx,Eny,EnZ,preis,level) VALUES ('%i','%i','%i','%f','%f','%f','%i','%i')",hInfo[hausid][hBesitzer],hInfo[hausid][hCreated],hInfo[hausid][hOwned],hInfo[hausid][h_enx],hInfo[hausid][h_eny],hInfo[hausid][h_enz],hInfo[hausid][hPreis],hInfo[hausid][hLevel]);
    mysql_function_query(dbhandle,query,true,"hausSavedToDB","i",hausid);
    return 1;
    }

    Spoiler anzeigen
    public hausSavedToDB(hausid)
    {
    hInfo[hausid][hID]=cache_insert_id(dbhandle);
    return 1;
    }

    Spoiler anzeigen
    loadHauser(hausid)
    {
    new query[256];
    format(query,sizeof(query),"SELECT * FROM haus WHERE id='%i'",hInfo[hausid][hID]);
    mysql_function_query(dbhandle,query,true,"OnHausLoad","i",hausid);
    return 1;
    }