Wysłany: 2012-06-07, 23:05
Lukasbank
Wiek: 30 Na forum: 5329 dni Posty: 249
Nick w MP: [USD]LuXoR[X]
Piwa : 404
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
Wysłany: 2012-06-08, 09:19
kurczak1324
Wiek: 29 Na forum: 5819 dni Posty: 202
Nick w MP: Izzy
Piwa : 671
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
Wysłany: 2012-06-08, 10:51
optimus
PawnoMen
Wiek: 27 Na forum: 5614 dni Posty: 453
Nick w MP: [PMS]ReveresPL
Piwa : 159
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 .
Wysłany: 2012-06-08, 12:51
kurczak1324
Wiek: 29 Na forum: 5819 dni Posty: 202
Nick w MP: Izzy
Piwa : 671
optimus , A jak gracz wejdzie o 23 i bedzie gra? do 01 ? Zadzia?a?
Wysłany: 2012-06-08, 13:46
Effx03
Wiek: 28 Na forum: 5319 dni Posty: 4
Nick w MP: Effx03
Piwa : 9
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;
}
Wysłany: 2012-06-08, 15:17
Lukasbank
Wiek: 30 Na forum: 5329 dni Posty: 249
Nick w MP: [USD]LuXoR[X]
Piwa : 404
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:
Effx03 , twoja metoda tez pr?bowa?em ale mi niewychodzi [/code]
Wysłany: 2012-06-08, 19:43
optimus
PawnoMen
Wiek: 27 Na forum: 5614 dni Posty: 453
Nick w MP: [PMS]ReveresPL
Piwa : 159
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
Wysłany: 2012-06-08, 20:04
Combacior
Wiek: 29 Na forum: 5796 dni Posty: 1516
Piwa : 2161
"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;
}
Wysłany: 2012-06-08, 20:39
Lukasbank
Wiek: 30 Na forum: 5329 dni Posty: 249
Nick w MP: [USD]LuXoR[X]
Piwa : 404
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
Tagi: pasek :: informacjii
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: