Bizlabel bugt, bitte guckt rein!

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,


    erstmal vorweg:

    for(new sb = 0; sb < sizeof(SBizzInfo); sb++)
    {
    if(SBizzInfo[sb][sbOwned] == 0)
    {
    AddStaticPickup(1274, 2, SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ]);
    pickups++;
    }
    if(SBizzInfo[sb][sbOwned] == 1)
    {
    AddStaticPickup(1239, 2, SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ]);
    pickups++;
    }
    format(string, sizeof(string), "==== [sBizz ID: %d] ====\nBesitzer: %s\nPreis: %d$\nEintritt: %d$\nProdukte: %d / %d",sb,SBizzInfo[sb][sbOwner],SBizzInfo[sb][sbBuyPrice],SBizzInfo[sb][sbEntranceCost],SBizzInfo[sb][sbProducts],SBizzInfo[sb][sbMaxProducts]);
    SBizzInfo[sb][sbText] = Create3DTextLabel(string,COLOR_YELLOW,SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ],18.0,0,0);
    }


    hier wird bei OngamemodeInit Das Label und der Pickup festgestellt.
    So nun die Bugs:


    -Wenn ich ein Biz sehe steht da nur die bizid, aber nicht der rest der oben ist.
    -Wenn ich ein biz kaufe, ist das label richtig, aber nach serverrestart steht wieder nur noch die bizid da.
    aber das biz besitze ich auch trozdem noch und die pickupid ändert sich auch nach dem kauf, wie gewollt.
    Bloß das Label was oben erstellt wird, wird nicht komplett angezeigt.
    Nein der STring ist auch nicht zu klein^^.


    Bitte helft mir ^^


    DANKE



    MFG :love:

  • mach das mal anstatt mit [sb] mit [h]
    format(string, sizeof(string), "==== [sBizz ID: %d] ====\nBesitzer: %s\nPreis: %d$\nEintritt: %d$\nProdukte: %d / %d",sb,SBizzInfo[h][sbOwner],SBizzInfo[h][sbBuyPrice],SBizzInfo[h][sbEntranceCost],SBizzInfo[h][sbProducts],SBizzInfo[h][sbMaxProducts]); SBizzInfo[h][sbText] = Create3DTextLabel(string,COLOR_YELLOW,SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ],18.0,0,0);


    kannst du mir zeigen wie du den 3d Textlabel updatest wen du das bizz kaufst :o bei mir geht das nicht ...


  • format(string4, sizeof(string4), "[%s]\nInhaber: %s\nTeilhaber: %s\nEintrittspreis: %d$\nLevel: %d\nProdukte: %d/%d\nPreis pro Produkt: %d", SBizzInfo[b][sbMessage],SBizzInfo[b][sbOwner],SBizzInfo[b][sbExtortion],SBizzInfo[b][sbEntranceCost],SBizzInfo[b][sbLevelNeeded],SBizzInfo[b][sbProducts],SBizzInfo[b][sbMaxProducts], SBizzInfo[b][sbPriceProd]);
    Update3DTextLabelText(SBizzInfo[b][sbText],COLOR_BUYED,string4);


    //edit:


    habs jez so, geht aber nicht:

    for(new sb = 0; sb < sizeof(SBizzInfo); sb++)
    {
    if(SBizzInfo[sb][sbOwned] == 0)
    {
    AddStaticPickup(1274, 2, SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ]);
    pickups++;
    format(string, sizeof(string), "==== [sBizz ID: %d] ====\nBesitzer: %s\nPreis: %d$\nEintritt: %d$\nProdukte: %d / %d",sb,SBizzInfo[sb][sbOwner],SBizzInfo[sb][sbBuyPrice],SBizzInfo[sb][sbEntranceCost],SBizzInfo[sb][sbProducts],SBizzInfo[sb][sbMaxProducts]);
    SBizzInfo[sb][sbText] = Create3DTextLabel(string,COLOR_YELLOW,SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ],18.0,0,0);
    }
    if(SBizzInfo[sb][sbOwned] == 1)
    {
    AddStaticPickup(1239, 2, SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ]);
    pickups++;
    format(string, sizeof(string), "==== [sBizz ID: %d] ====\nBesitzer: %s\nPreis: %d$\nEintritt: %d$\nProdukte: %d / %d",sb,SBizzInfo[sb][sbOwner],SBizzInfo[sb][sbBuyPrice],SBizzInfo[sb][sbEntranceCost],SBizzInfo[sb][sbProducts],SBizzInfo[sb][sbMaxProducts]);
    SBizzInfo[sb][sbText] = Create3DTextLabel(string,COLOR_YELLOW,SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ],18.0,0,0);
    }
    }


    es wird nur angezeigt ==== [sBizz ID: %d] ==== egal ob ge/oder verkauft.

    Einmal editiert, zuletzt von [PGN]DerezZeD ()

  • vlt Hilft dir ein BSP aus meinem Script :o
    for(new h = 0; h < sizeof(SBizzInfo); h++)
    {
    if(SBizzInfo[h][sbOwned] == 0)
    {
    new sbizstring[500];
    format(sbizstring, sizeof(sbizstring), "Zu Verkaufen: %s\nPreis: $%d\nLevel %d\n'/buybiz'",SBizzInfo[h][sbMessage],SBizzInfo[h][sbBuyPrice],SBizzInfo[h][sbLevelNeeded]);
    sbizsale = Create3DTextLabel(sbizstring,0x006400FF,SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]+1,15,0,1);
    AddStaticPickup(1272, 8, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]);
    pickups++;
    }
    if(SBizzInfo[h][sbOwned] == 1)
    {
    new sbizstring[500];
    format(sbizstring, sizeof(sbizstring), "%s\nBesitzer: %s\nTeilhaber: %s\nEintrittspreis: $%d\nProdukte: %d/%d",SBizzInfo[h][sbMessage],SBizzInfo[h][sbOwner],SBizzInfo[h][sbExtortion],SBizzInfo[h][sbEntranceCost],SBizzInfo[h][sbProducts],SBizzInfo[h][sbMaxProducts]);
    sbizsold = Create3DTextLabel(sbizstring,0x006400FF,SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]+1,15,0,1);
    AddStaticPickup(1272, 8, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]);
    pickups++;
    }
    }

  • solangsam verstehe ich garnichts mehr, ich habs jetzt so.

    for(new sb = 0; sb < sizeof(SBizzInfo); sb++)
    {
    new stringb[256];
    if(SBizzInfo[sb][sbOwned] == 0)
    {
    AddStaticPickup(1274, 2, SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ]);
    pickups++;
    format(stringb, sizeof(stringb), "==== [sBizz ID: %d] ====\nBesitzer: %s\nPreis: %d$\nEintritt: %d$\nProdukte: %d / %d",sb,SBizzInfo[sb][sbOwner],SBizzInfo[sb][sbBuyPrice],SBizzInfo[sb][sbEntranceCost],SBizzInfo[sb][sbProducts],SBizzInfo[sb][sbMaxProducts]);
    SBizzInfo[sb][sbText] = Create3DTextLabel(stringb,COLOR_YELLOW,SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ],18.0,0,0);
    }
    if(SBizzInfo[sb][sbOwned] == 1)
    {
    AddStaticPickup(1239, 2, SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ]);
    pickups++;
    format(stringb, sizeof(stringb), "==== [sBizz ID: %d] ====\nBesitzer: %s\nPreis: %d$\nEintritt: %d$\nProdukte: %d / %d",sb,SBizzInfo[sb][sbOwner],SBizzInfo[sb][sbBuyPrice],SBizzInfo[sb][sbEntranceCost],SBizzInfo[sb][sbProducts],SBizzInfo[sb][sbMaxProducts]);
    SBizzInfo[sb][sbText] = Create3DTextLabel(stringb,COLOR_YELLOW,SBizzInfo[sb][sbEntranceX], SBizzInfo[sb][sbEntranceY], SBizzInfo[sb][sbEntranceZ],18.0,0,0);
    }
    }


    Das Script kann doch nicht einfach, nicht den ganzen String anzeigen! ;(

  • String erweitern? bzw. Verkürzen? So wie ich es verstanden habe..

  • Sorry ^^.
    Ich habe die ganze Zeit auf den falschen Server connected.
    Auf den der online ist.
    Der der auf meinem PC ist, wo das Script schon geändert ist, gehts ^^.
    Also geht das doch aber eine Sache geht noch nicht:

    if(strcmp(cmdtext, "/buyhouse", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,4.0, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist an keinem Haus!");
    return 1;
    }
    if(HouseInfo[h][hOwned] != 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Dieses Haus gehört bereits jemandem");
    return 1;
    }
    if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
    {
    format(string, sizeof(string), " Du must mindestens Level %d um es zu kaufen !", HouseInfo[h][hLevel]);
    SendClientMessage(playerid, COLOR_GRAD5, string);
    return 1;
    }
    if(PlayerInfo[playerid][pPhousekey] != 999 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, " Dir gehört bereits ein Haus, gib /sellhouse ein um dein altes zu verkaufen !");
    return 1;
    }
    if(GetPlayerMoney(playerid) > HouseInfo[h][hValue])
    {
    new str[100];
    PlayerInfo[playerid][pPhousekey] = h;
    HouseInfo[h][hOwned] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
    GivePlayerMoney(playerid,-HouseInfo[h][hValue]);
    PlayerPlayMusic(playerid);
    SetPlayerInterior(playerid,HouseInfo[h][hInt]);
    SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
    GameTextForPlayer(playerid, "~w~Willkommen zu Hause~n~Du kannst das Haus an deiner Haustür mit /exit verlassen.", 5000, 3);
    PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
    PlayerInfo[playerid][pLocal] = h;
    SendClientMessage(playerid, COLOR_WHITE, "Gratulation zu deinem neuen Kauf !");
    SendClientMessage(playerid, COLOR_WHITE, "Gib /help um Hilfe zu bekommen !");
    format(str, sizeof(str), "==== [HausID: %d] ====\nBesitzer: %s\nPreis: %d$\nMiete: %d$\n Müll: %d",h,HouseInfo[h][hOwner],HouseInfo[h][hValue],HouseInfo[h][hRent],HouseInfo[h][hMuell]);
    Update3DTextLabelText(HouseInfo[h][h_text],COLOR_YELLOW,str);
    DateProp(playerid);
    OnPropUpdate();
    PlayerUpdate(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, " Du hast nicht genug Geld !");
    return 1;
    }
    }
    }
    return 1;
    }


    da kommt immer du bist an keinem Haus.

  • if(!strcmp(cmdtext, "/buyhouse", true))
    {
    if(!IsPlayerConnected(playerid))
    return 1;
    new founded = -1;
    GetPlayerName(playerid, playername, sizeof playername);
    // Checken ob Haus in Nähe
    for(new h = 0; h < sizeof HouseInfo; h++)
    if(IsPlayerInRangeOfPoint(playerid, 4.0, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
    founded = h;
    if(founded == -1)
    return SendClientMessage(playerid, COLOR_RED, "Du bist an keinem Haus!");
    h = founded; // Damit man nicht alle "h" durch "founded" ersetzen muss ;)
    if(HouseInfo[h][hOwned] != 0)
    return SendClientMessage(playerid, COLOR_RED, "Dieses Haus gehört bereits jemandem");
    if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
    {
    format(string, sizeof string, " Du must mindestens Level %d um es zu kaufen !", HouseInfo[h][hLevel]);
    return SendClientMessage(playerid, COLOR_GRAD5, string);
    }
    if(PlayerInfo[playerid][pPhousekey] != 999 && !strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true))
    return SendClientMessage(playerid, COLOR_WHITE, " Dir gehört bereits ein Haus, gib /sellhouse ein um dein altes zu verkaufen !");
    if(GetPlayerMoney(playerid) < HouseInfo[h][hValue])
    return SendClientMessage(playerid, COLOR_WHITE, " Du hast nicht genug Geld !");
    new str[100];
    PlayerInfo[playerid][pPhousekey] = h;
    HouseInfo[h][hOwned] = 1;
    GetPlayerName(playerid, sendername, sizeof sendername);
    strmid(HouseInfo[h][hOwner], sendername, 0, strlen sendername, 255);
    GivePlayerMoney(playerid, -HouseInfo[h][hValue]);
    PlayerPlayMusic(playerid);
    SetPlayerInterior(playerid, HouseInfo[h][hInt]);
    SetPlayerPos(playerid, HouseInfo[h][hExitx], HouseInfo[h][hExity], HouseInfo[h][hExitz]);
    GameTextForPlayer(playerid, "~w~Willkommen zu Hause~n~Du kannst das Haus an deiner Haustür mit /exit verlassen.", 5000, 3);
    PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
    PlayerInfo[playerid][pLocal] = h;
    SendClientMessage(playerid, COLOR_WHITE, "Gratulation zu deinem neuen Kauf !");
    SendClientMessage(playerid, COLOR_WHITE, "Gib /help um Hilfe zu bekommen !");
    format(str, sizeof str, "==== [HausID: %d] ====\nBesitzer: %s\nPreis: %d$\nMiete: %d$\n Müll: %d", h, HouseInfo[h][hOwner], HouseInfo[h][hValue], HouseInfo[h][hRent], HouseInfo[h][hMuell]);
    Update3DTextLabelText(HouseInfo[h][h_text], COLOR_YELLOW, str);
    DateProp(playerid);
    OnPropUpdate();
    PlayerUpdate(playerid);
    return 1;
    }


    Genau so, wie du es brauchst:!:

    Miete mich (nicht) :love: