Wysłany: 2013-02-05, 20:17
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
Siemka mam pytanie jak zrobi?, aby ta funkcja odlicza?a nam w Minutach i sekundach ?
Kod: stock GetPlayerOnlineTime(playerid, &hours, &minutes, &seconds) {
hours = (PlayerSeconds[playerid]/(60*60))%24;
minutes = (PlayerSeconds[playerid]/60)%60;
seconds = PlayerSeconds[playerid]%60;
}
Piwa + Reputacja +10
Wysłany: 2013-02-05, 20:48
optimus
PawnoMen
Wiek: 27 Na forum: 5613 dni Posty: 453
Nick w MP: [PMS]ReveresPL
Piwa : 159
usun linijke hours .... i z stock ...(&hours) usun
poprawny kod
Kod:
stock GetPlayerOnlineTime(playerid, &minutes, &seconds) {
minutes = (PlayerSeconds[playerid]/60)%60;
seconds = PlayerSeconds[playerid]%60;
}
Wysłany: 2013-02-05, 20:49
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Kod: stock GetPlayerOnlineTime(i, &m, &s)
{
m = PlayerSeconds[i] / 60;
s = PlayerSeconds[i] - m * 60;
}
Zmienna m - minuty, zmienna s - sekundy.
Wysłany: 2013-02-05, 20:51
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
I teraz jak bym chcia? tego u?y? w td ?
Wysłany: 2013-02-05, 21:02
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Normalnie podstawiasz, zmienne s? ju? przekonwertowane pod minuty i sekundy
Kod: format(string, 16, "%02d m %02d s", m, s);
Wysłany: 2013-02-05, 22:58
optimus
PawnoMen
Wiek: 27 Na forum: 5613 dni Posty: 453
Nick w MP: [PMS]ReveresPL
Piwa : 159
Kod pod TD:
Kod:
new czas[256];
format(czas, sizeof(czas), "%02d:%02d", m, s);
TextDrawSetString(nazwatd, czas);
ten kod najlepiej daj do timera od?wie?aj?cego sie co 1 sek. bd sie odswiezal tekst co 1 sek.
Wysłany: 2013-02-05, 23:58
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
Je?eli masz ju? taki timer (tzn. 100*10) to daj tylko warunek, nie musisz robi? nowego To najcz?stszy b??d z tego co widzia?em.
Wysłany: 2013-02-06, 00:03
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
Dodaj? wszystko i wyskakuje mi "undefined symbol s oraz m"
To mam to zdefiniowa? tak ?
new s;
new m;
Wysłany: 2013-02-06, 00:20
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
Kod: #include < a_samp >
#undef MAX_PLAYERS
#define MAX_PLAYERS (20)
forward GlobalTimer(playerid);
new
OnLineTime[MAX_PLAYERS]
;
public OnFilterScriptInit() {
SetTimer("GlobalTimer", 100*10, true);
return 1;
}
public OnPlayerConnect(playerid)
return OnLineTime[playerid] = 0;
public GlobalTimer(playerid)
return ++OnLineTime[playerid];
// to gdzie? w od?wie?aniu textDraw'u
new buf [ 32 ];
format (buf, sizeof (buf), "%02d:%02d", OnLineTime[playerid]/3600, (OnLineTime[playerid]/60)%60); // je?eli dla wszystkich graczy, daj w p?tli
TextDrawSetString(nazwatd, czas);
Jest du?o metod, tutaj masz praktycznie gotowca. Jak jeste? kumaty to poradzisz sobie
Wysłany: 2013-02-06, 00:34
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
Ja robi?em jak koledzy podawali wy?ej ale gdy uruchamiam te odliczanie do 5 minut to pokauzje si? : "00m 00s" i nic dalej si? nie dzieje nawet jak to w timerze wstawi?
Wysłany: 2013-02-06, 08:19
optimus
PawnoMen
Wiek: 27 Na forum: 5613 dni Posty: 453
Nick w MP: [PMS]ReveresPL
Piwa : 159
a ten timer gdzie wstawiles (on powinien byc w ongamemodeinit)
Wysłany: 2013-02-06, 10:57
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
Zapomnia?em doda? ze ten kod pokazuje godziny i minuty, a nie minuty i sekundy mo?e dlatego jest wra?enie ?e nie dzia?a.
Wysłany: 2013-02-06, 12:29
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
"optimus" napisał/a :a ten timer gdzie wstawiles (on powinien byc w ongamemodeinit)
No tak ale mi nie chodzi i czas gry tylko o takie co?. Mam dialog zatwierdzam jakie? zlecenie i zaczyna liczy? mi czas w minutach i sekundach a? do 5 minut. OI ten timer da?em tam gdzie mam kod tego dialogu czyli w case
Wysłany: 2013-02-06, 12:59
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
Ja bym zrobi? najpro?ciej jak to tylko mo?liwe.
Pawn public Twojtimer ( playerid )
{
if ( pData [ playerid ][ MaTowar ]
{
++ pData [ playerid ][ Time ];
ShowPlayerTextDraw ( playerid , textdraw );
new buf [ 32 ];
format ( buf , sizeof ( buf ), "Pozostalo: %d sekund" , pData [ playerid ][ Time ]);
TextDrawSetString ( nazwatd , czas );
if ( pData [ playerid ][ Time ] & 60 * 5 )
{
SendClientMessage ( playerid , - 1 , "Za wolno ! Towar zosta? zniszczony ;)" ) '
HideTextDrawForPlayer(playerid, textdraw);
pData[playerid][MaTowar] = !true;
}
}
return 1;
}
Mo?na ewentualnie dodawa? komunikaty ?e pozosta?o Ci ile? tam minut i odlicza? dopiero ostatni? minute. Po co bawi? sie w zamiany na minuty
Oczywi?cie to tylko fragment kodu.
Wysłany: 2013-02-06, 15:38
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Ca?y kod
Kod: stock GetPlayerOnlineTime(i, &m, &s)
{
m = PlayerSeconds[i] / 60;
s = PlayerSeconds[i] - m * 60;
}
//w timerze
new m, s, string[16];
GetPlayerOnlineTime(i, m, s);
format(string, 16, "%02d m %02d s", m, s);
Zale?y te? jak dodajesz czas do tablicy PlayerSeconds. Je?li chcesz, ?eby by?y dok?adnie sekunda po sekundzie, to musisz u?y? funkcji gettime tam, gdzie ma si? rozpoczyna? te odliczanie. Je?eli sekundy ma liczy? timer (timer liczy niedok?adnie - ustawisz na 1000ms, a uruchomi si? po ok. 1200 ms - zale?y od rozmiaru mapy), to po prostu u?ywasz
Kod:
Tagi: odliczanie
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: