Haus System 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
  • Schon selber behoben ich habe einfach das mit der Virtual World nach dem übetragen auslesen und erst alles eintragen lassen.
    Nun habe ich noch eine frage: Wieso bekomme ich hier eine tag mismatch error:

    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10,0,0);

  • Beitrag von CaZe ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Jeffry erstmal danke für die großartige und gute Hilfe.
    Jetzt habe ich allerdings noch soweit ich es bemerke 1 Problem:
    Wenn ich das Haus lösche wird das PickUp nicht gelöscht ebenso beim Serverrestart auch nicht.


    Löschebefehl

    ocmd:hdelete(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not allowed to use this Command.");
    if(!IsPlayerAdminRank(playerid,4))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not allowed to use this Command.");
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ]))
    {
    HouseInfo[i][h_enterX] = 0;
    HouseInfo[i][h_enterY] = 0;
    HouseInfo[i][h_enterZ] = 0;
    HouseInfo[i][h_exitX] = 0;
    HouseInfo[i][h_exitY] = 0;
    HouseInfo[i][h_exitZ] = 0;
    HouseInfo[i][h_int] = 0;
    format(HouseInfo[i][h_owner], 24, "");
    HouseInfo[i][h_buyprice] = 0;
    HouseInfo[i][h_rentprice] = 0;
    HouseInfo[i][h_bought] = 0;
    HouseInfo[i][h_rentable] = 0;
    HouseInfo[i][h_locked] = 0;
    HouseInfo[i][h_money] = 0;
    HouseInfo[i][h_type] = 0;
    HouseInfo[i][h_vw] =0 ;
    DestroyPickup(HouseInfo[i][h_pick]);
    Delete3DTextLabel(HouseInfo[i][h_label]);
    new query[512];
    format(query,sizeof(query),"DELETE FROM houses WHERE id='%i'",i);
    mysql_pquery(Handle,query);
    return SendClientMessage(playerid,Gelb,"[SInfo] {FFFFFF}You have delete the House.");
    }
    }
    return 1;
    }
    public OnGameModeExit()
    {
    for(new h=0;h<MAX_HOUSES;h++)
    {
    DestroyPickup(HouseInfo[h][h_pick]);
    Delete3DTextLabel(HouseInfo[h][h_label]);
    }
    return 1;
    }


    Wie Das PickUp deklariert wird:

    ocmd:buyhouse(playerid,params[])
    {
    new query[256];
    for(new h=0;h<MAX_HOUSES;h++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ]))
    {
    if(HouseInfo[h][h_buyprice] <= GetPlayerMoney(playerid))
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    if(SpielerInfo[playerid][pHouseOwned] == 0)
    {
    SendClientMessage(playerid,Gelb,"[SInfo] {FFFFFF}Congratulations. You bought the House.");
    format(query,sizeof(query),"UPDATE houses SET Owner='%s',Bought='1' WHERE id='%i'",getPlayerName(playerid),h);
    mysql_pquery(Handle,query);
    format(HouseInfo[h][h_owner],24,getPlayerName(playerid));
    GivePlayerMoney(playerid,-HouseInfo[h][h_buyprice]/2);
    DestroyPickup(HouseInfo[h][h_pick]);
    Delete3DTextLabel(HouseInfo[h][h_label]);
    SpielerInfo[playerid][pHouseOwned] = 1;
    if(HouseInfo[h][h_type] == 1)
    {
    new str[148];
    format(str,sizeof(str),"This Apartment is already bought.\nType /rent to rent a room in this Apartment.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else if(HouseInfo[h][h_type] == 2)
    {
    new str[128];
    format(str,sizeof(str),"This House is already bought.\nType /rent to rent a room in this House.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else if(HouseInfo[h][h_type] == 3)
    {
    new str[128];
    format(str,sizeof(str),"This Villa is already bought.\nType /rent to rent a room in this Villa.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    }
    }
    }
    }
    return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not close to any House,the House is bought or you don't have enough money.");
    }

    Wie Das PickUp deklariert wird:
    forward LoadHouses_Data();
    public LoadHouses_Data()
    {
    new rows;
    rows = cache_num_rows();
    for(new i=0;i<rows;i++)
    {
    HouseInfo[i][h_ID] = cache_get_field_content_int(i, "id");
    cache_get_field_content(i,"Owner",HouseInfo[i][h_owner],Handle,24);
    HouseInfo[i][h_enterX] = cache_get_field_content_float(i, "EnterPosX");
    HouseInfo[i][h_enterY] = cache_get_field_content_float(i, "EnterPosY");
    HouseInfo[i][h_enterZ] = cache_get_field_content_float(i, "EnterPosZ");
    HouseInfo[i][h_exitX] = cache_get_field_content_float(i, "ExitPosX");
    HouseInfo[i][h_exitY] = cache_get_field_content_float(i, "ExitPosY");
    HouseInfo[i][h_exitZ] = cache_get_field_content_float(i, "ExitPosZ");
    HouseInfo[i][h_int] = cache_get_field_content_int(i, "Interior");
    HouseInfo[i][h_vw] = cache_get_field_content_int(i, "VirtualWorld");
    HouseInfo[i][h_buyprice] = cache_get_field_content_int(i, "BuyPrice");
    HouseInfo[i][h_rentprice] = cache_get_field_content_int(i, "RentPrice");
    HouseInfo[i][h_bought] = cache_get_field_content_int(i, "Bought");
    HouseInfo[i][h_rentable] = cache_get_field_content_int(i, "RentAble");
    HouseInfo[i][h_locked] = cache_get_field_content_int(i, "IsLocked");
    HouseInfo[i][h_money] = cache_get_field_content_int(i, "Money");
    HouseInfo[i][h_type] = cache_get_field_content_int(i, "Type");
    for(new h=0;h<MAX_HOUSES;h++)
    {
    if(HouseInfo[h][h_type] == 1)
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    new str[128];
    format(str,sizeof(str),"This Apartment has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[h][h_buyprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    CreatePickup(1274,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else
    {
    new str[148];
    format(str,sizeof(str),"This Apartment is already bought.\nType /rent to rent a room in this Apartment.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    else if(HouseInfo[h][h_type] == 2)
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    new str[128];
    format(str,sizeof(str),"This House has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[h][h_buyprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1274,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else
    {
    new str[148];
    format(str,sizeof(str),"This House is already bought.\nType /rent to rent a room in this House.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    else if(HouseInfo[h][h_type] == 3)
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    new str[128];
    format(str,sizeof(str),"This Villa has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[h][h_buyprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1274,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else
    {
    new str[148];
    format(str,sizeof(str),"This Villa is already bought.\nType /rent to rent a room in this Villa.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    }
    }
    return 1;
    }


    Btw:
    Beim /buyhouse Befehl wird alles gelöscht wie es soll.

    Einmal editiert, zuletzt von CaZe ()

  • Jetzt wird nur das Label & Pickup entfernt wenn es ein Apartment ist.


    Erstell Befehl

    ocmd:hcreate(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not allowed to use this Command.");
    if(!IsPlayerAdminRank(playerid,4))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not allowed to use this Command.");
    new inter,price,type;
    if(sscanf(params,"iii",inter,type,price))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}Use /hcreate [Interior ID] [Type] [BuyPrice]"),
    SendClientMessage(playerid,Grau,"[Types]: 1: Apartment, 2: House, 3: Villa");
    if(type < 1 || type > 3)return SendClientMessage(playerid,Rot,"Error: Something's wrong with the Type");
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(strlen(HouseInfo[i][h_owner]))continue;
    {
    new query[512];
    new Float:pos[3];
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    HouseInfo[i][h_enterX] = pos[0];
    HouseInfo[i][h_enterY] = pos[1];
    HouseInfo[i][h_enterZ] = pos[2];
    new count, tmp;
    for(new j=0; j<sizeof(HouseInfo); j++) if(HouseInfo[j][h_int] == inter && HouseInfo[j][h_type] == type) count++;
    printf("count: %d", count);
    for(new j=0; j<sizeof(InteriorInfo); j++)
    {
    printf("%d == %d | %d == %d", InteriorInfo[j][int_ID], inter, InteriorInfo[j][int_type], type);
    if(InteriorInfo[j][int_ID] == inter && InteriorInfo[j][int_type] == type)
    {
    printf("%d == %d", tmp, count);
    if(tmp == count)
    {
    printf("Nutze InteriorInfo %d", j);
    HouseInfo[i][h_exitX] = InteriorInfo[j][int_exitX];
    HouseInfo[i][h_exitY] = InteriorInfo[j][int_exitY];
    HouseInfo[i][h_exitZ] = InteriorInfo[j][int_exitZ];
    }
    tmp++;
    }
    }
    HouseInfo[i][h_int] = inter;
    format(HouseInfo[i][h_owner], 24, "");
    HouseInfo[i][h_buyprice] = price;
    HouseInfo[i][h_rentprice] = 100;
    HouseInfo[i][h_bought] = 0;
    HouseInfo[i][h_rentable] = 0;
    HouseInfo[i][h_locked] = 1;
    HouseInfo[i][h_money] = 0;
    HouseInfo[i][h_type] = type;
    format(query,sizeof(query),"INSERT INTO Houses (id,Owner,EnterPosX,EnterPosY,EnterPosZ,ExitPosX,ExitPosY,ExitPosZ,Interior,BuyPrice,RentPrice,Bought,RentAble,IsLocked,Money,Type) VALUES ('%i','%s','%f','%f','%f','%f','%f','%f','%i','%i','%i','%i','%i','%i','%i','%i')",
    i,HouseInfo[i][h_owner],HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],HouseInfo[i][h_exitX],HouseInfo[i][h_exitY],HouseInfo[i][h_exitZ],HouseInfo[i][h_int],HouseInfo[i][h_buyprice],HouseInfo[i][h_rentprice],HouseInfo[i][h_bought],HouseInfo[i][h_rentable],HouseInfo[i][h_locked],HouseInfo[i][h_money],HouseInfo[i][h_type]);
    mysql_pquery(Handle,query);
    HouseInfo[i][h_vw] = cache_get_field_content_int(i,"VirtualWorld");
    if(HouseInfo[i][h_type] == 1)
    {
    new str[128];
    format(str,sizeof(str),"This Apartment has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[i][h_buyprice]);
    HouseInfo[i][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],10,0,0);
    HouseInfo[i][h_pick] = CreatePickup(1274,0,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],0);
    }
    else if(HouseInfo[i][h_type] == 2)
    {
    new str[128];
    format(str,sizeof(str),"This House has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[i][h_buyprice]);
    HouseInfo[i][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],10,0,0);
    HouseInfo[i][h_pick] = CreatePickup(1274,0,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],0);
    }
    else if(HouseInfo[i][h_type] == 3)
    {
    new str[128];
    format(str,sizeof(str),"This Villa has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[i][h_buyprice]);
    HouseInfo[i][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],10,0,0);
    HouseInfo[i][h_pick] = CreatePickup(1274,0,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ],0);
    }
    return 1;
    }
    }
    return 1;
    }


    Häuser Laden

    stock LoadHouses()
    {
    mysql_pquery(Handle, "SELECT * FROM houses ORDER BY ID ASC","LoadHouses_Data");
    return 1;
    }

    Häuser Laden
    forward LoadHouses_Data();
    public LoadHouses_Data()
    {
    new rows;
    rows = cache_num_rows();
    for(new i=0;i<rows;i++)
    {
    HouseInfo[i][h_ID] = cache_get_field_content_int(i, "id");
    cache_get_field_content(i,"Owner",HouseInfo[i][h_owner],Handle,24);
    HouseInfo[i][h_enterX] = cache_get_field_content_float(i, "EnterPosX");
    HouseInfo[i][h_enterY] = cache_get_field_content_float(i, "EnterPosY");
    HouseInfo[i][h_enterZ] = cache_get_field_content_float(i, "EnterPosZ");
    HouseInfo[i][h_exitX] = cache_get_field_content_float(i, "ExitPosX");
    HouseInfo[i][h_exitY] = cache_get_field_content_float(i, "ExitPosY");
    HouseInfo[i][h_exitZ] = cache_get_field_content_float(i, "ExitPosZ");
    HouseInfo[i][h_int] = cache_get_field_content_int(i, "Interior");
    HouseInfo[i][h_vw] = cache_get_field_content_int(i, "VirtualWorld");
    HouseInfo[i][h_buyprice] = cache_get_field_content_int(i, "BuyPrice");
    HouseInfo[i][h_rentprice] = cache_get_field_content_int(i, "RentPrice");
    HouseInfo[i][h_bought] = cache_get_field_content_int(i, "Bought");
    HouseInfo[i][h_rentable] = cache_get_field_content_int(i, "RentAble");
    HouseInfo[i][h_locked] = cache_get_field_content_int(i, "IsLocked");
    HouseInfo[i][h_money] = cache_get_field_content_int(i, "Money");
    HouseInfo[i][h_type] = cache_get_field_content_int(i, "Type");
    for(new h=0;h<MAX_HOUSES;h++)
    {
    if(HouseInfo[h][h_type] == 1)
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    new str[128];
    format(str,sizeof(str),"This Apartment has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[h][h_buyprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1274,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else
    {
    new str[148];
    format(str,sizeof(str),"This Apartment is already bought.\nType /rent to rent a room in this Apartment.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    else if(HouseInfo[h][h_type] == 2)
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    new str[128];
    format(str,sizeof(str),"This House has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[h][h_buyprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1274,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else
    {
    new str[148];
    format(str,sizeof(str),"This House is already bought.\nType /rent to rent a room in this House.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    else if(HouseInfo[h][h_type] == 3)
    {
    if(HouseInfo[h][h_bought] == 0)
    {
    new str[128];
    format(str,sizeof(str),"This Villa has NO Owner.Type /buyhouse to buy it.\nPrice: %i$",HouseInfo[h][h_buyprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1274,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    else
    {
    new str[148];
    format(str,sizeof(str),"This Villa is already bought.\nType /rent to rent a room in this Villa.\nOwner: %s\nRent Price: %i$",HouseInfo[h][h_owner],HouseInfo[h][h_rentprice]);
    HouseInfo[h][h_label] = Create3DTextLabel(str,Weiß,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],10.0,0,0);
    HouseInfo[h][h_pick] = CreatePickup(1273,0,HouseInfo[h][h_enterX],HouseInfo[h][h_enterY],HouseInfo[h][h_enterZ],0);
    }
    }
    }
    }
    return 1;
    }


    Häuser löschen:


    ocmd:hdelete(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not allowed to use this Command.");
    if(!IsPlayerAdminRank(playerid,4))return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not allowed to use this Command.");
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[i][h_enterX],HouseInfo[i][h_enterY],HouseInfo[i][h_enterZ]))
    {
    /*SpielerInfo[GetPlayerID(HouseInfo[i][h_owner])[pOwnHouse] = 0;
    new str[128];
    format(str,sizeof(str),"[SInfo] {FFFFFF}%s has deleted your House.",getPlayerName(playerid));
    SendClientMessage(GetPlayerID(HouseInfo[i][h_owner]),Rot,str);*/
    HouseInfo[i][h_enterX] = 0;
    HouseInfo[i][h_enterY] = 0;
    HouseInfo[i][h_enterZ] = 0;
    HouseInfo[i][h_exitX] = 0;
    HouseInfo[i][h_exitY] = 0;
    HouseInfo[i][h_exitZ] = 0;
    HouseInfo[i][h_int] = 0;
    format(HouseInfo[i][h_owner], 24, "");
    HouseInfo[i][h_buyprice] = 0;
    HouseInfo[i][h_rentprice] = 0;
    HouseInfo[i][h_bought] = 0;
    HouseInfo[i][h_rentable] = 0;
    HouseInfo[i][h_locked] = 0;
    HouseInfo[i][h_money] = 0;
    HouseInfo[i][h_type] = 0;
    HouseInfo[i][h_vw] =0 ;
    DestroyPickup(HouseInfo[i][h_pick]);
    Delete3DTextLabel(HouseInfo[i][h_label]);
    new query[512];
    format(query,sizeof(query),"DELETE FROM houses WHERE id='%i'",i);
    mysql_pquery(Handle,query);
    return SendClientMessage(playerid,Gelb,"[SInfo] {FFFFFF}You have deleted the House.");
    }
    }
    return 1;
    }


    Label &amp;amp;amp; PickUp beim Restart löschen

    public OnGameModeExit()
    {
    SaveHouses();
    for(new h=0;h<MAX_HOUSES;h++)
    {
    DestroyPickup(HouseInfo[h][h_pick]);
    Delete3DTextLabel(HouseInfo[h][h_label]);
    }
    return 1;
    }

    2 Mal editiert, zuletzt von CaZe ()

  • Okay Jeffry: Ich habe das Problem gefunden weiß aber natürlich nicht wie ich es beheben soll:
    Beim erstellen des Hauses wird die ID nicht hochgezählt, sondern bleibt immer 0 dato, lösche ich 2 verschiedene Häuser per ID und weil die ID jeweils gleich ist werden zwar beide Einträge aus der DB gelöscht aber es bleibt jedoch 1 PickUp & Label rest da da, diese ja nicht mehr zu einem Haus gehört.

  • Jetzt kommt wieder der Fehler wenn ich ein 2tes Haus eintragen möchte er die ExitPositions nicht mehr aus dem Enum lädt und beim 2ten Mal löschen nur das Label löscht.


    //EDIT::
    Das mit den Exit Positionen passiert nur wenn 2x die gleiche Interior ID sowie der gleiche Type erstellt wird.

    Einmal editiert, zuletzt von CaZe ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hier die Debug Nachrichten(Original)
    Ich habe lediglich 2x hintereinander exakt das gleiche Haus erstellt.


    //EDIT::
    Btw. die PickUps die "anscheinend" noch da sind werden trotzdem gelöscht aber noch für die jenigen angezeigt, in deren Reichweite das PickUp gestreamed wurde. Also da ist das eigentlich egal.

    Einmal editiert, zuletzt von CaZe ()

  • Problem 1:
    Das geht nicht, wenn du in deinem Daten-Array keine zweite Datenreihe für dieses Interior mit diesem Typ hast.


    Zwecks den Pickups: Gut, das kann ein Problem vom Streamer sein, das weiß ich nicht. Wenn es aber eigentlich richtig gelöscht wird ist es ja in Ordnung.

  • new InteriorInfo[][interEnum] =
    {
    //Apartments
    {12,444.646911,508.239044,1001.419494,1},
    {1,244.411987,305.032989,999.148437,1},
    {2,271.884979,306.631988,999.148437,1},
    {2,1523.509887,-47.821197,1002.130981,1},
    {},
    //Houses
    {8,2807.619873,-1171.899902,1025.570312,2},
    {3,2496.049804,-1695.238159,1014.742187,2},
    {5,318.564971,1118.209960,1083.882812,2},
    {5,2350.339843,-1181.649902,1027.976562,2},
    {1,2527.654052,-1679.388305,1015.498596,2},
    //Villas
    {12,2324.419921,-1145.568359,1050.710083,3},
    {5,1267.663208,-781.323242,1091.906250,3}
    };


    Du hast 12 und 3 eingegeben, es gibt aber nur eine Zeile (die vorletzte) die 12 und 3 hat, eine zweite gibt es nicht => Fehler.
    Am besten du lässt dir beim Erstellen, wenn keine Zeile gefunden wird, einen Fehler ausgeben.

  • In dem Array sind ja nur die Positionen des Interiors angegeben, also wo man hingeportert wird wenn man das Haus betritt.
    Die Eingangs-Positionen sind ja da wo das PickUp etc. erstellt wird und dies wird ja per GetPlayerPos ermittelt.

  • //EDIT::
    enum interEnum
    {
    int_ID,
    Float:int_exitX,
    Float:int_exitY,
    Float:int_exitZ,
    Float:int_exitA,
    int_type
    };


    new InteriorInfo[][interEnum] =
    {
    //Apartments
    {1,244.411987,305.032989,999.148437,265.2689,1},
    /*Little edit*/{2,267.1509,304.9328,999.1484,265.6090,1},
    //Houses
    {8,2807.7825,-1174.4812,1025.5703,3.5707,2},
    {3,2495.9944,-1692.4015,1014.7422,182.3604,2},
    //Muss gemapped werden{5,2352.3496,-1180.6302,1027.9766,92.6137,2},
    //Vielleicht Mappen{1,2524.4817,-1679.3834,1015.4986,267.9829,2},
    //Villas
    {12,2324.4504,-1149.1239,1050.7101,5.4272,3},
    {5,1261.4669,-785.3972,1091.9063,268.5041,3}
    };


    die Zahlen am Ende sind der Type, also ob es ein Apartment,Haus oder eine Villa ist.


    //EDIT2::
    Btw. exitA ist die Rotation die ich selber gesetzt habe

    Einmal editiert, zuletzt von CaZe ()