Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2018-02-15, 18:57


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Hej,
jak zrobi? w p?tli gui tablist headers tak, ?eby header wy?wietli? si? tylko raz?


Pawn
stock DealerMenu(playerid)
{
    new s[500];
    new s2[50];
    s2 "{FFFFFF}KOSZT\tMAX PR?DKO??\tPOJAZD\n";
    for(new 0i<MAX_VEHICLES_DEALERMENUi++)
    {
        format(s,sizeof(s),"%s%s{FFFFFF}%d$\t%dkm/h\t{E6C800}%s\n",s2sVehicleDealer[i][Koszt],VehicleDealer[i][MaxPredkosc], VehicleDealer[i][Nazwa]);
    }
        ShowPlayerDialog(playeridVehicleDealerDialogDIALOG_STYLE_TABLIST_HEADERS"Salon"s"KUP""Anuluj");
    return 1;
}


Teraz wy?wietla si? 3x, bo MAX_VEHICLES_DEALERMENU wynosi 3.


//EDIT:
Dla tych, kt?rzy szukaj? rozwi?zania:
U?y?em funkcji: strins.

Pawn
stock DealerMenu(playerid)
{
    new s[500];
    new s2[50];
    s2 "{FFFFFF}KOSZT\tMAX PR?DKO??\tPOJAZD\n";
    for(new 0i<MAX_VEHICLES_DEALERMENUi++)
    {
        format(s,sizeof(s),"%s{FFFFFF}%d$\t%dkm/h\t{E6C800}%s\n"sVehicleDealer[i][Koszt],VehicleDealer[i][MaxPredkosc], VehicleDealer[i][Nazwa]);
    }
    strins(ss20);
    ShowPlayerDialog(playeridVehicleDealerDialogDIALOG_STYLE_TABLIST_HEADERS"Salon"s"KUP""Anuluj");
    return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-02-15, 19:29


U123
[Usunięty]









Bez strins: https://pastebin.com/9xgjhvqh
Bierz ten kod, bo ten od "Programisty" PAWN ni?ej b?dzie si? bugowa?.

Ostatnio zmieniony przez U123 2018-02-15, 19:40, w całości zmieniany 3 razy  
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MG303
Wysłany: 2018-02-15, 19:30


Zamek







Wiek: 26
Na forum: 3788 dni
Posty: 168
Nick w MP: Zamek

Piwa: 276

Respekt: 295,8
Respekt: 295,8Respekt: 295,8Respekt: 295,8

Tutaj masz bez funkcji strins.

Pawn

stock DealerMenu(playerid)
{
    new s[500];
    "{FFFFFF}KOSZT\tMAX PR?DKO??\tPOJAZD\n";
    for(new 0i<MAX_VEHICLES_DEALERMENUi++)
    {
        format(s,sizeof(s),"%s%s{FFFFFF}%d$\t%dkm/h\t{E6C800}%s\n",sVehicleDealer[i][Koszt],VehicleDealer[i][MaxPredkosc], VehicleDealer[i][Nazwa]);
    }
        ShowPlayerDialog(playeridVehicleDealerDialogDIALOG_STYLE_TABLIST_HEADERS"Salon"s"KUP""Anuluj");
    return 1;
}


Nie musisz tworzy? dw?ch zmiennych po to aby stworzy? nag??wek, mo?esz stworzy? jedn? tak jak wy?ej.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-02-17, 14:14


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
"Zamek" napisał/a:

Nie musisz tworzy? dw?ch zmiennych po to aby stworzy? nag??wek, mo?esz stworzy? jedn? tak jak wy?ej.


U?ywaj?c tego tak

Kod:

format(s, sizeof s, "%s...", s, ...);


Podczas ka?dego nast?pnego u?ycia funkcji, formatowane jest to, co zosta?o sformatowane ju? wcze?niej. Spos?b z jedn? zmienn? jest dobry dla niewielu linijek (do ok. 20). Maj?c wi?cej linijek (np. dost?pne towary do spedycji), lepsze b?dzie u?ycie dw?ch tablic + strins/strcat.

Benchmark dla 17 linijek: (5000 powt?rze?)

Kod:

[17.02.2018 13] 2 zmienne: 206ms
[17.02.2018 13] 1 zmienna: 191ms
[17.02.2018 13] 2 zmienne: 196ms
[17.02.2018 13] 1 zmienna: 186ms


Benchmark dla 41 linijek: (5000 powt?rze?)

Kod:

[17.02.2018 13] 2 zmienne: 825ms
[17.02.2018 13] 1 zmienna: 1563ms

[17.02.2018 13] 2 zmienne: 722ms
[17.02.2018 13] 1 zmienna: 1482ms

[17.02.2018 13] 2 zmienne: 813ms
[17.02.2018 13] 1 zmienna: 1635ms

[17.02.2018 13] 2 zmienne: 789ms
[17.02.2018 13] 1 zmienna: 1593ms


Maj?c 40 linijek, ci?g znak?w (string) staje si? coraz wi?kszy i funkcja format zajmuje wi?cej czasu. Podaj? tak?e kod u?yty do test?w

Pawn
        new lString[1200], lSmallString[19 MAX_ARTICLE_NAME], t1t2;
        t2 GetTickCount();

        for(new i5000i++)
        {
            lString "Numer towaru\tNazwa\tRespekt\tGot?wka";

            for(lArticleID 0lArticleID MAX_ARTICLE_IDlArticleID += 1)
            {
                if(!gArticleUsed[lArticleID] && gArticleType[lArticleID] == lShippingType)
                {
                    format(lSmallStringsizeof lSmallString"\n%d\t%s\t%d\t$%d"lArticleIDgShippingData[lArticleID][gArticleName], gArticleScore[lArticleID], gArticleScore[lArticleID] * 100);
                    strcat(lStringlSmallString);
                }
            }
        }
        t1 GetTickCount();
        printf("2 zmienne: %dms"t1 t2);

        t2 GetTickCount();

        for(new i5000i++)
        {
            lString "Numer towaru\tNazwa\tRespekt\tGot?wka\n";

            for(lArticleID 0lArticleID MAX_ARTICLE_IDlArticleID += 1)
            {
                if(!gArticleUsed[lArticleID] && gArticleType[lArticleID] == lShippingType)
                {
                    format(lStringsizeof lString"%s%d\t%s\t%d\t$%d\n"lStringlArticleIDgShippingData[lArticleID][gArticleName], gArticleScore[lArticleID], gArticleScore[lArticleID] * 100);
                }
            }
        }
        t1 GetTickCount();
        printf("1 zmienna: %dms"t1 t2);


Postaw piwo autorowi tego posta
 

 
Tagi: gui :: tablist :: headers
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » gui tablist headers Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku