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

Wysłany: 2015-02-22, 13:06


Pimpek2







Wiek: 29
Na forum: 4134 dni
Posty: 82
Nick w MP: ElPablo

Piwa: 1

Respekt: 60

Witam i? mam problem z oskryptowaniem daty w textdrawie czy kto? by mi pom?g? to zrobic?:
TCzas6 = TextDrawCreate(550.555480, 38.888832, "02.03.2015");
TextDrawLetterSize(TCzas6, 0.241666, 1.563704);
TextDrawAlignment(TCzas6, 1);
TextDrawColor(TCzas6, -1);
TextDrawSetShadow(TCzas6, 0);
TextDrawSetOutline(TCzas6, 1);
TextDrawBackgroundColor(TCzas6, 51);
TextDrawFont(TCzas6, 1);
TextDrawSetProportional(TCzas6, 1);

Nie wiem czy dawa? to w timerze co sekunde czy jak prosz? o szybk? pomoc.
Prosz? te? o podanie skryptu do oskryptowania tego.

I mam pytanie Jakie textdrawy dawac globalnie a jakie Players??
Bo nie rozumiem r?znicy.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-22, 13:57


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Wiadomo, ?e je?eli dla ka?dego gracza ma pokazywa? inaczej, np jego id to robisz w p?tli, a je?eli to ma by? np nazwa serwera, czy tam data to ona dla ka?dego gracza b?dzie taka sama - wi?c nie robisz tego w p?tli.

Oczywi?cie optymalizacja wchodzi w gre. Zamiast textdrawy tworzy? w OnGameModeInit w p?tli (ju? dla wszystkich graczy), to mo?esz ka?demu stworzy? osobno przy wej?ciu na serwer, czyli b?dziesz mia? 5 graczy na serwerze to tylko b?dzie stworzonych textdraw?w dla tych pi?ciu graczy. Wtedy u?ywasz http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw

Hm.. tego raczej w p?tli nie r?b, bo po co?
Najlepiej jak pokazujesz textdraw to po prostu pobierz aktualn? dat?. Czyli pokazujesz pewnie w public OnPlayerSpawn:

Kod:



new newtext[41];
new Year, Month, Day;
getdate(Year, Month, Day);
format(newtext, sizeof(newtext), "%02d/%02d/%d", Day, Month, Year);
TextDrawSetString(TCzas6, newtext);
TextDrawShowForPlayer(playerid, TCzas6);


PS: Kod dodawaj w tagu [pawn] [/pawn.] lub [code] [/code.] bez kropek.

Ostatnio zmieniony przez ToxiC. 2015-02-22, 14:02, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-22, 14:02


Intern







Wiek: 30
Na forum: 4184 dni
Posty: 40
Nick w MP: Intern

Piwa: 15

Respekt: 80

1.update zegarka
na pocz?tku
Kod:

new day, month, year;


w OnGameModeInit()
Kod:

SetTimer("ZegarekUpdate", 1000, true);


a na ko?cu dodaj:
Kod:

forward ZegarekUpdate();
public ZegarekUpdate()
{
static mstr[1000];
getdate(year, month, day);

format(mstr, 130, "%02d.%02d.%d", day, month, year);
TextDrawSetString(TCzas6, mstr);
return 1;
}


2.textdrawy

Textdrawy Players s? tylko i wy??cznie dla jednego gracza a zwyk?y TextDraw(uniwersalny) mo?na go u?y? za r?wno dla wszystkich jak i dla jednego.

da wszystkich:
Kod:


TextDrawSetString(TCzas6, mstr);


dla jednego(zakualizuje sie tylko u ID)
Kod:


TextDrawSetString(TCzas6[playerid], mstr);


@edit
Widz? ?e znowu mnie kto? ubieg? :(

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-22, 18:29


Pimpek2







Wiek: 29
Na forum: 4134 dni
Posty: 82
Nick w MP: ElPablo

Piwa: 1

Respekt: 60

dobra dzi?ki a teraz mam pytanie czemu gdy chce zrobic pokazanie textdrawu w Filescripcie to mi go nie pokaze??

Jak wam pokazuje to prosz? podajcie kod fsa

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-22, 19:07


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Pokaz kod tego skryptu :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-23, 18:05


Pimpek2







Wiek: 29
Na forum: 4134 dni
Posty: 82
Nick w MP: ElPablo

Piwa: 1

Respekt: 60

http://pastebin.com/H6c20JYD

+ Mam pytania:
1) ile mozna miec ??cznie textdraw?w na serwerze? (w gamemodzie i w filescrypcie)
2) Czy w fileskrypcie s? oddzielne liczenia a w gamemodzie oddzielne czy w obu si? sumuj?? (Bo jak si? sumuj? to fs nie jest potrzebny wtedy)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-23, 18:33


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Sumuj? sie. Wszystkie limity masz tutaj - http://wiki.sa-mp.com/wiki/Limits

czyli 2048 mo?esz stworzy? globalnie, a 255 dla gracza. Czyli te globalne to s? wszystkie z OnGameModeInit

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-23, 18:36


Pimpek2







Wiek: 29
Na forum: 4134 dni
Posty: 82
Nick w MP: ElPablo

Piwa: 1

Respekt: 60

czyli nie op?aca sie robi? oddzielnych fileskrypt?w na te textdrawy? tak?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-23, 19:35


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Nie op?aca sie. Najlepiej wszystko w mapce trzyma?, a nie tak roz?o?one po cz??ci na skrypty.. Po za tym jak masz zrobiony np. system leveli w mapce nie na Score z samp, to w skrypcie trzeba b?dzie kombinowa? z kolejnymi funkcjami, a w mapce masz wszystko pod r?k?. ;>

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-23, 21:37


Pimpek2







Wiek: 29
Na forum: 4134 dni
Posty: 82
Nick w MP: ElPablo

Piwa: 1

Respekt: 60

no ok dzk: a czy oskryptowa? bys mi to zeby pokazywa?o stan ile mam aktualnie w zmiennnej:
new Level[MAX_PLAYERS];

Kod:

Textdraw8 = TextDrawCreate(499.222290, 113.481391, "0");
TextDrawLetterSize(Textdraw8, 0.288333, 1.475556);
TextDrawAlignment(Textdraw8, 1);
TextDrawColor(Textdraw8, -1);
TextDrawSetShadow(Textdraw8, 0);
TextDrawSetOutline(Textdraw8, 1);
TextDrawBackgroundColor(Textdraw8, 51);
TextDrawFont(Textdraw8, 1);
TextDrawSetProportional(Textdraw8, 1);


z g?ry dzi?ki chodzi mi ze to jest jeden z 10 takich ale jak jeden mi oskryptujesz to reszte dam rade sam :P

a mo?e je trzeba zrobi? w Textdrawach dla gracza a nie globalnych?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-23, 23:09


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Pimpek2, tak. Textdraw musisz zrobi? w p?tli, ale to nadal b?dzie globalny bo stworzony w OnGameModeinit.

czyli Text:Textdraw8 zmieniasz na Text:Textdraw8[MAX_PLAYERS]; tam na g?rze gdzie masz new (...)

p??niej to w p?tli:

Kod:


Textdraw8 = TextDrawCreate(499.222290, 113.481391, "0");
TextDrawLetterSize(Textdraw8, 0.288333, 1.475556);
TextDrawAlignment(Textdraw8, 1);
TextDrawColor(Textdraw8, -1);
TextDrawSetShadow(Textdraw8, 0);
TextDrawSetOutline(Textdraw8, 1);
TextDrawBackgroundColor(Textdraw8, 51);
TextDrawFont(Textdraw8, 1);
TextDrawSetProportional(Textdraw8, 1);


czyli:

Kod:


for(new i, g = GetMaxPlayers(); i != g; i++)
{
Textdraw8[i] = TextDrawCreate(499.222290, 113.481391, "0"); //
TextDrawLetterSize(Textdraw8[i], 0.288333, 1.475556);
TextDrawAlignment(Textdraw8[i], 1);
TextDrawColor(Textdraw8[i], -1);
TextDrawSetShadow(Textdraw8[i], 0);
TextDrawSetOutline(Textdraw8[i], 1);
TextDrawBackgroundColor(Textdraw8[i], 51);
TextDrawFont(Textdraw8[i], 1);
TextDrawSetProportional(Textdraw8[i], 1);
}


p??niej robisz od?wie?anie (teraz pytanie, jak cz?sto chcesz to od?wie?a? i czy w og?le chcesz od?wie?a??) Je?eli chcesz tylko na spawnie to wklej to w OnPlayerSpawn.

Kod:


new newtext[7];
format(newtext, sizeof(newtext), "%d", Level[playerid]);
TextDrawSetString(Textdraw8[playerid], newtext);


w OnPlayerSpawn pokazujesz ten TD
Kod:

TextDrawShowForPlayer(playerid, Textdraw8[playerid]);


Je?eli chcesz od?wie?y? textdraw za???my co sekund? (b?dziesz m?g? to zmieni?), to:

Kod:


SetTimer("OdswiezanieTD", 1000, false);


Wklejasz w OnGameModeInit. 1000 to jest czas w milisekundach (1 sekunda to 1000ms, czyli chcesz co 5 sec, to 5*1000 = 5000 itd.)

nast?pnie gdzie? w mapce nowy public:

Kod:


forward OdswiezanieTD();
public OdswiezanieTD()
{
for(new i, g = GetMaxPlayers(); i != g; i++)
{
new newtext[7];
format(newtext, sizeof(newtext), "%d", Level[i]);
TextDrawSetString(Textdraw8[i], newtext);
//
//tutaj mo?esz od?wie?a? kolejne textdrawy, nie tworz?c kolejnych p?tli i timer?w
//
}
return 1;
}


Postaw piwo autorowi tego posta
 

 
Tagi: oskryptowanie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN 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