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

Wysłany: 2013-02-05, 20:17


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

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 ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-05, 20:48


optimus

PawnoMen






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

Piwa: 159

Respekt: 59

Ostrzeżeń: 80%
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;
}


Podpis
Prpgramujesz w Unity i potrzebujesz pomocy?
|?Zapraszamy na forum Unity?|
http://www.unity3d.ugu.pl
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-05, 20:49


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Kod:

stock GetPlayerOnlineTime(i, &m, &s)
{
m = PlayerSeconds[i] / 60;
s = PlayerSeconds[i] - m * 60;
}


Zmienna m - minuty, zmienna s - sekundy.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-05, 20:51


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

I teraz jak bym chcia? tego u?y? w td ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-05, 21:02


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Normalnie podstawiasz, zmienne s? ju? przekonwertowane pod minuty i sekundy

Kod:

format(string, 16, "%02d m %02d s", m, s);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-05, 22:58


optimus

PawnoMen






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

Piwa: 159

Respekt: 59

Ostrzeżeń: 80%
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.

Podpis
Prpgramujesz w Unity i potrzebujesz pomocy?
|?Zapraszamy na forum Unity?|
http://www.unity3d.ugu.pl
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-05, 23:58


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 00:03


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Dodaj? wszystko i wyskakuje mi "undefined symbol s oraz m"
To mam to zdefiniowa? tak ?
new s;
new m;

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 00:20


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
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 ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 00:34


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

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? ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 08:19


optimus

PawnoMen






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

Piwa: 159

Respekt: 59

Ostrzeżeń: 80%
a ten timer gdzie wstawiles (on powinien byc w ongamemodeinit)

Podpis
Prpgramujesz w Unity i potrzebujesz pomocy?
|?Zapraszamy na forum Unity?|
http://www.unity3d.ugu.pl
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 10:57


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 12:29


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

"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 ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 12:59


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
Ja bym zrobi? najpro?ciej jak to tylko mo?liwe.

Pawn
public Twojtimer(playerid)
{
    if (pData[playerid][MaTowar]
    {
        ++pData[playerid][Time];
        
        ShowPlayerTextDraw(playeridtextdraw);
        
        new buf 32 ];
        format (bufsizeof (buf), "Pozostalo: %d sekund"pData[playerid][Time]);
        TextDrawSetString(nazwatdczas);
        
        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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-06, 15:38


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
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:

PlayerSeconds[i]++;


Postaw piwo autorowi tego posta
 

 
Tagi: odliczanie
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