Wysłany: 2018-02-15, 18:57
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
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 i = 0 ; i < MAX_VEHICLES_DEALERMENU ; i ++)
{
format ( s , sizeof ( s ), "%s%s{FFFFFF}%d $\t %dkm/h\t{E6C800}%s\n" , s2 , s , VehicleDealer [ i ][ Koszt ], VehicleDealer [ i ][ MaxPredkosc ], VehicleDealer [ i ][ Nazwa ]);
}
ShowPlayerDialog ( playerid , VehicleDealerDialog , DIALOG_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 i = 0 ; i < MAX_VEHICLES_DEALERMENU ; i ++)
{
format ( s , sizeof ( s ), "%s{FFFFFF}%d $\t %dkm/h\t{E6C800}%s\n" , s , VehicleDealer [ i ][ Koszt ], VehicleDealer [ i ][ MaxPredkosc ], VehicleDealer [ i ][ Nazwa ]);
}
strins ( s , s2 , 0 );
ShowPlayerDialog ( playerid , VehicleDealerDialog , DIALOG_STYLE_TABLIST_HEADERS , "Salon" , s , "KUP" , "Anuluj" );
return 1 ;
}
Wysłany: 2018-02-15, 19:29
U123 [Usunięty ]
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
Tutaj masz bez funkcji strins.
Pawn
stock DealerMenu ( playerid )
{
new s [ 500 ];
s = "{FFFFFF}KOSZT\tMAX PR?DKO??\tPOJAZD\n" ;
for(new i = 0 ; i < MAX_VEHICLES_DEALERMENU ; i ++)
{
format ( s , sizeof ( s ), "%s%s{FFFFFF}%d $\t %dkm/h\t{E6C800}%s\n" , s , VehicleDealer [ i ][ Koszt ], VehicleDealer [ i ][ MaxPredkosc ], VehicleDealer [ i ][ Nazwa ]);
}
ShowPlayerDialog ( playerid , VehicleDealerDialog , DIALOG_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.
Wysłany: 2018-02-17, 14:14
Combacior
Wiek: 29 Na forum: 5796 dni Posty: 1516
Piwa : 2161
"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 ], t1 , t2 ;
t2 = GetTickCount ();
for(new i ; i < 5000 ; i ++)
{
lString = "Numer towaru\tNazwa\tRespekt\tGot?wka" ;
for( lArticleID = 0 ; lArticleID < MAX_ARTICLE_ID ; lArticleID += 1 )
{
if(! gArticleUsed [ lArticleID ] && gArticleType [ lArticleID ] == lShippingType )
{
format ( lSmallString , sizeof lSmallString , "\n%d\t%s\t%d\t$%d" , lArticleID , gShippingData [ lArticleID ][ gArticleName ], gArticleScore [ lArticleID ], gArticleScore [ lArticleID ] * 100 );
strcat ( lString , lSmallString );
}
}
}
t1 = GetTickCount ();
printf ( "2 zmienne: %dms" , t1 - t2 );
t2 = GetTickCount ();
for(new i ; i < 5000 ; i ++)
{
lString = "Numer towaru\tNazwa\tRespekt\tGot?wka\n" ;
for( lArticleID = 0 ; lArticleID < MAX_ARTICLE_ID ; lArticleID += 1 )
{
if(! gArticleUsed [ lArticleID ] && gArticleType [ lArticleID ] == lShippingType )
{
format ( lString , sizeof lString , "%s%d\t%s\t%d\t$%d\n" , lString , lArticleID , gShippingData [ lArticleID ][ gArticleName ], gArticleScore [ lArticleID ], gArticleScore [ lArticleID ] * 100 );
}
}
}
t1 = GetTickCount ();
printf ( "1 zmienna: %dms" , t1 - t2 );
Tagi: gui :: tablist :: headers
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: