Haussystem speichert keine Einträge

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, habe hier ein Problem:
    ocmd:hauskaufen(playerid,params[])
    {
    if(hatPlayerHaus(playerid))return SendClientMessage(playerid,ROT,"Du hast bereits ein Haus!");
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]))continue;
    if(!strlen(hInfo[i][h_besitzer]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(GetPlayerMoney(playerid)<hInfo[i][h_preis])return SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld!");
    GivePlayerMoney(playerid,-hInfo[i][h_preis]);
    strmid(hInfo[i][h_besitzer],name,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    updateHaus(i);
    saveHaus(i);
    return 1;
    }
    return SendClientMessage(playerid,ROT,"Das Haus steht nicht zum Verkauf!");
    }
    return 1;
    }
    strmid(hInfo[i][h_besitzer],name,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    wird durch das hier der Spieler name in die Variable h_besitzer gespeichert?


    Unten im Befehl mache ich ja saveHaus(i);


    Sieht so aus:
    saveHaus(id)
    {
    new query[128];
    format(query,sizeof(query),"UPDATE house SET besitzer='%s', h_preis='%i' WHERE id='%i'",hInfo[id][h_besitzer],hInfo[id][h_preis],hInfo[id][h_id]);
    mysql_function_query(dbverbindung, query, false,"","");
    return 1;
    }



    Wenn jetzt im hInfo[id][h_besitzer] der Spielername stehen würde, müsste ja mein Name in der Datenbank angezeigt werden. Wird er aber nicht, der bleibt leer

  • Beitrag von Fernando_Jizuya ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • hatte mich bei preis verschrieben.
    Habe aber noch ein 2 Problem.


    und zwar kann ich nur das 1 erstellte Haus betreten, bzw bekomme eine Meldung wenn das Haus keinem gehört.
    Bei den danach erstellten ist es wie wenn sie nicht da wären.


    ocmd:enter(playerid,params[])
    {
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    SetPlayerVirtualWorld(playerid,i);
    return 1;
    }
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]))continue;
    if(!hInfo[i][h_id])continue;
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!strlen(hInfo[i][h_besitzer]))return SendClientMessage(playerid,ROT,"Dieses Haus gehört keinem!");
    SetPlayerPos(playerid,hInfo[i][h_ix],hInfo[i][h_iy],hInfo[i][h_iz]);
    SetPlayerInterior(playerid,hInfo[i][h_interior]);
    SetPlayerVirtualWorld(playerid,i);
    return 1;
    }
    return 1;
    }

  • ocmd:createhaus(playerid,params[])
    {
    new preis,interior,Float:ixc,Float:iyc,Float:izc;
    if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
    if(sscanf(params,"iifff",preis,interior,ixc,iyc,izc))return SendClientMessage(playerid,ROT,"Befehl: /createhaus [PREIS][INTERIOR][INT-X][INT-Y][INT-Z]");
    new Float:xc, Float: yc, Float:zc;
    GetPlayerPos(playerid,xc,yc,zc);
    new id=getFreeHouseID();
    hInfo[id][h_x]=xc;
    hInfo[id][h_y]=yc;
    hInfo[id][h_z]=zc;
    hInfo[id][h_ix]=Float:ixc;
    hInfo[id][h_iy]=Float:iyc;
    hInfo[id][h_iz]=Float:izc;
    hInfo[id][h_interior]=interior;
    hInfo[id][h_preis]=preis;
    strmid(hInfo[id][h_besitzer],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    updateHaus(id);
    new query[256];
    format(query,sizeof(query),"INSERT INTO house (h_x,h_y,h_z,h_ix,h_iy,h_iz,h_interior,preis) VALUES ('%f','%f','%f','%f','%f','%f','%i','%i')",xc,yc,zc,hInfo[id][h_ix],hInfo[id][h_iy],hInfo[id][h_iz],hInfo[id][h_interior],hInfo[id][h_preis]);
    mysql_function_query(dbverbindung,query,true,"OnHausCreate","i",id);
    return 1;
    }

  • ocmd:createhaus(playerid,params[])
    {
    new preis,interior,Float:ixc,Float:iyc,Float:izc;
    if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
    if(sscanf(params,"iifff",preis,interior,ixc,iyc,izc))return SendClientMessage(playerid,ROT,"Befehl: /createhaus [PREIS][INTERIOR][INT-X][INT-Y][INT-Z]");
    new Float:xc, Float: yc, Float:zc;
    GetPlayerPos(playerid,xc,yc,zc);
    for(new i=1; i<sizeof(hInfo); i++)
    {
    if(hInfo[i][h_Erstellt] == 0)
    {
    hInfo[i][h_Erstellt] =1;
    hInfo[i][h_x]=xc;
    hInfo[i][h_y]=yc;
    hInfo[i][h_z]=zc;
    hInfo[i][h_ix]=Float:ixc;
    hInfo[i][h_iy]=Float:iyc;
    hInfo[i][h_iz]=Float:izc;
    hInfo[i][h_interior]=interior;
    hInfo[i][h_preis]=preis;
    strmid(hInfo[i][h_besitzer],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    updateHaus(i);
    new query[256];
    format(query,sizeof(query),"INSERT INTO house (h_id,h_Erstellt,h_x,h_y,h_z,h_ix,h_iy,h_iz,h_interior,preis) VALUES ('%i','%i','%f','%f','%f','%f','%f','%f','%i','%i')",i,hInfo[i][h_Erstellt],xc,yc,zc,hInfo[i][h_ix],hInfo[i][h_iy],hInfo[i][h_iz],hInfo[i][h_interior],hInfo[i][h_preis]);
    mysql_function_query(dbverbindung, query, false,"","");
    }
    }
    return 1;
    }


    Ersetz alle Haus Schleifen durch:
    for(new i=1; i<sizeof(hInfo); i++)


    Und erstell noch eine Variable für die Häuser mit dem Namen: h_Erstellt.

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