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

Wysłany: 2012-06-07, 23:05


Lukasbank







Wiek: 30
Na forum: 5329 dni
Posty: 249
Nick w MP: [USD]LuXoR[X]

Piwa: 404

Respekt: 136,5
Respekt: 136,5

Dzi? chcia?em dokonczyc swoj pasek informacji ale niestety nieuda?o mi sie to
stana?em w jednym momecie ,
chcem texdraw , w ktorym pokarze sie
Czas online gracza i niewiem jak ten texdraw zdefiniowac a oto screen


za pomoc z g?ry dzi?kuje ;d
i stawiam piwko

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 09:19


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

Tworzysz dwie zmienne dla ka?dego gracza osobno. Nast?pnie dajesz timer co minut?, w timerze dajesz:

Kod:

minuty[playerid]++;
if(minuty[playerid]==60)godziny++;


P??niej ju? tylko u?ywasz tego do TextDrawu

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 10:51


optimus

PawnoMen






Wiek: 27
Na forum: 5614 dni
Posty: 453
Nick w MP: [PMS]ReveresPL

Piwa: 159

Respekt: 59

Ostrzeżeń: 80%
Ja kiedy? robi?em ale inaczej a mianowicie tak:
Kod:


W OnGamemodeInit()
daj timer od?wie?aj?cy
SetTimer(CzasGry, 1000, 1) /B?dzie si? od?wie?a? co 1 sek
=================================================
new g, m, s; //na pocz?tku mapki
new godz, min, sek;
=================================================
//W OnPlayerConnect(playerid)
//dajesz:
gettime(godz, min, sek);
=================================================
//I teraz:
forward CzasGry(playerid);
public CzasGry(playerid)
{
pobieramy tera?niejszy czas
gettime(g, m, s); //sk?d tera?niejszy czas musi by? wi?kszy dlatego odejmujesz tera?niejsz? godzin? od godziny w kt?rej wbi? gracz
new czasgodz = godz - g;
new czasmin = min - m;
new czassek = sek - s;
new czas[264];
format(czas, sizeof(czas), "%02d:%02d:%02d", czasgodz, czasmin, czassek);
TextDrawSetString(nazwa textdrawu, czas);
========================KONIEC====================

Om?wienie:
Gdy gracz wbije to pobiera mu czas np.: 16:24:11
Gdy pobierzemy mu czas gdy gra np.: jest to czas 16:30:11
To w callbacku obliczamy czas jego grania czyli:
tam gdzie:
new czasgodz = 16- 16 //Wyjdzie nam zero po odj?ciu czyli 0 godz. gra?
new czasmin = 30 - 24 //Wyjdzie nam 6 min. Wi?c w textdrawie napisze ?e gra ju? 6 min
new czassek = 11 - 11 //Wyjdzie zero.
Wi?c wynik jest ?e gracz gra ju? 00:06:00 (GG:MM:SS) i taki wynik czasu przenosimy za pomoc? tablicy czas do textdrawu.



My?l? ?e pomog?em. Postaw piwko za trud :P .

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 12:51


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

optimus, A jak gracz wejdzie o 23 i bedzie gra? do 01 ? Zadzia?a? :)

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 13:46


Effx03







Wiek: 28
Na forum: 5318 dni
Posty: 4
Nick w MP: Effx03

Piwa: 9

Respekt: 50

Omg, zb?dny kod..

Lepiej da? tak:
Kod:



new godzina,minuta,sekunda;


public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "PlayerTime", GetTickCount());
return 1;
}


I teraz tam gdzie masz TextDraw'a z Czasem dajesz:
Kod:


ConvertMS(GetTickCount()-GetPVarInt(playerid, "PlayerTime"), godzina, minuta, sekunda);

I formatujesz tekst np:
Kod:


new str[256];
format(str,sizeof(str),"%02d:%02d:%02d",godzina,minuta,sekunda);
TextDrawSetString(Nazwa TextDraw'a,str);



stock
Kod:


stock ConvertMS(Miliseconds, &hours, &minutes, &seconds)
{
hours = Miliseconds / 3600000;
Miliseconds -= hours * 3600000;
minutes = Miliseconds / 60000;
Miliseconds -= minutes * 60000;
seconds = Miliseconds / 1000;
Miliseconds -= seconds * 1000;
}



Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 15:17


Lukasbank







Wiek: 30
Na forum: 5329 dni
Posty: 249
Nick w MP: [USD]LuXoR[X]

Piwa: 404

Respekt: 136,5
Respekt: 136,5

optimus, wyswielta mi sie czas normalny jaki jest w realu a ja chcem miec texdraw ilosc przegranego czasu sam zobacz

hmmm moze cos z
Kod:

GetPlayerOnlineTime
??


Effx03, twoja metoda tez pr?bowa?em ale mi niewychodzi [/code]

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 19:43


optimus

PawnoMen






Wiek: 27
Na forum: 5614 dni
Posty: 453
Nick w MP: [PMS]ReveresPL

Piwa: 159

Respekt: 59

Ostrzeżeń: 80%
Ty na pewno wszystko zrobi?e? jak trzeba mo?e nie zrobi?e? tego new czas... = tablica - tablica

Albo zr?b tak:
Kod:


Na pocz?tku mapki:
new min[MAX_PLAYERS] = 0;
new hour[MAX_PLAYERS] = 0;
i daj gdzie? najlepiej w OnGameModeInit
SetTimer("CzasGry()", 1000, 1);

-------------

forward CzasGry(playerid);
public CzasGry(playerid)
{
min[playerid]++;
if(min[playerid] == 60)
{
hour[playerid]++;
min[playerid] = 0;
}
new czas[264];
format(czas, sizeof(czas), "%02d:%02d", hour, min);
TextDrawSetString(Nazwa lub ID textdrawu, czas);
return 1;
}



To mo?e b?dzie dzia?a?o

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 20:04


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

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

Ty na pewno wszystko zrobi?e? jak trzeba mo?e nie zrobi?e? tego new czas... = tablica - tablica

Albo zr?b tak:
Kod:


Na pocz?tku mapki:
new sek[MAX_PLAYERS] = 0;
new min[MAX_PLAYERS] = 0;
i daj gdzie? najlepiej w OnGameModeInit
SetTimer("CzasGry()", 1000, 1);

-------------

forward CzasGry(playerid);
public CzasGry(playerid)
{
sek[playerid]++;
if(min[playerid] == 60)
{
min[playerid]++;
sek[playerid] = 0;
}
new czas[16];
format(czas, sizeof(czas), "%02d:%02d", hour, min);
TextDrawSetString(Nazwa lub ID textdrawu, czas);
return 1;
}



To mo?e b?dzie dzia?a?o


Zrobi?e? minuty i godziny i minut? b?dzie dodawa?o co sekund?.

Kod:


Na pocz?tku mapki:
new sek[MAX_PLAYERS] = 0;
new min[MAX_PLAYERS] = 0;
i daj gdzie? najlepiej w OnGameModeInit
SetTimer("CzasGry()", 1000, 1);

-------------

forward CzasGry(playerid);
public CzasGry(playerid)
{
if(IsPlayerConnected(playerid))
{
sek[playerid]++;
if(min[playerid] == 60)
{
min[playerid]++;
sek[playerid] = 0;
}
}
new czas[16];
format(czas, sizeof(czas), "%02d:%02d", min, sek);
TextDrawSetString(Nazwa lub ID textdrawu, czas);
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-08, 20:39


Lukasbank







Wiek: 30
Na forum: 5329 dni
Posty: 249
Nick w MP: [USD]LuXoR[X]

Piwa: 404

Respekt: 136,5
Respekt: 136,5

panowie temat do zamkniecia , zrobi?em tak
Kod:


new pSession[MAX_PLAYERS];
pSession[playerid] = GetTickCount(); // --- w OnPlayerConnect
//-------------------
stock GetCurrentPlayerSession(player) return (GetTickCount() - pSession[player]) / 1000;
//-------------------
forward Pasek(playerid);
public Pasek(playerid)

{
new pppSession = GetCurrentPlayerSession(playerid) / 60;
format(buf_UPSD, 10, "%2dh %2dm", pppSession/60, pppSession%60);
TextDrawSetString(playerDraw[playerid][PLAYER_TD_TIMEPLAY], buf_UPSD);//moj texdraw
}

jeszcze timer sobie doda?em do od?wierzania
i wszystko elegancko dzia?a
kombinowa?em ca?y dzien ale op?aci?o sie , dzieki zapomoc ch?opaki

Postaw piwo autorowi tego posta
 

 
Tagi: pasek :: informacjii
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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