Szerző Téma: Float kiírása.  (Megtekintve 2531 alkalommal)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Dátum: 2014. március 28. - 20:49:47 »
0 Show voters
Sziasztok!
Az alábbi kódnál valamiért a százalékoknál 0.00 % százalék van,és az óránál pedigcsak az egész részét írja ki.Például: 3113 perc ->51 óra + valamennyi perc -# 51.00 órát ír ki.Vagyis lehagyja a tizedest.És szerintem ez a baj a százalékoknál is.Olyan 0.01 %-ot kéne kiírnia,és helyette 0.00-át.
 
CMD:statisztika(playerid)
{
if (Belepve[playerid] == 0) return SendClientMessage(playerid, HIBA, \"Be kell jelentkezned!\");
new string[256];
new Float:bortonsz = (JatekosInfo[playerid][bortonIdo]/JatekosInfo[playerid][JatszottIdo])*100;
new Float:ajsz = (JatekosInfo[playerid][AJIdo]/JatekosInfo[playerid][JatszottIdo])*100;
new Float:ora = JatekosInfo[playerid][JatszottIdo]/60;
SendClientMessage(playerid, NARANCS, \"------------------------------------STATISZTIKA------------------------------------\");
format(string,sizeof(string), \"| Játszott Idõ: %d perc (%.2f óra)|\",JatekosInfo[playerid][JatszottIdo],ora);
SendClientMessage(playerid, SZURKE, string);
format(string,sizeof(string), \"| Ebbõl Börtönben: %d perc (%.2f százalék) |\",JatekosInfo[playerid][bortonIdo],bortonsz);
SendClientMessage(playerid, SZURKE, string);
format(string,sizeof(string), \"| Ebbõl Adminjailben: %d perc (%.2f százalék) |\",JatekosInfo[playerid][AJIdo],ajsz);
SendClientMessage(playerid, SZURKE, string);
format(string,sizeof(string), \"| Halálok: %d | Gyilkosságok: %d |\",JatekosInfo[playerid][Halal],JatekosInfo[playerid][Oles]);
SendClientMessage(playerid, SZURKE, string);
printf(\"%s megnézte a statisztikáját.\",GetPlayerNameEx(playerid));
return 1;
}

 

Dupla hozzászólás automatikusan összefûzve. ( 2014. március 30. - 10:53:31 )

valaki?
« Utoljára szerkesztve: 2014. március 30. - 10:53:31 írta tudvari »

Float kiírása.
« Válasz #1 Dátum: 2014. március 30. - 12:27:47 »
0 Show voters
A \"JatszottIdo\"-t Floatként hoztad létre enumba?Ha nem akkor abba csináld!
Nemtom hogy van nálad a játszott idõ, de szerintem csinálhatnád pl úgy hogy a \"JatszottIdo\" 1percenként kap +0.01(óra.perc) és amikor a játszott idõ egyenlõ 0.60-al akkor rakja át neki 1.00-ra(ez így 1óra neki) és akkor csak szerintem csak ennyi kiírni:
 

format(string,sizeof(string), \"| Játszott Idõ: %f óra |\",JatekosInfo[playerid][JatszottIdo]);

 
Hát nekem most ennyi jut eszembe, remélem segítettem és érhetõ voltam!(Ha meg nem segít akkor bocsesz)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Float kiírása.
« Válasz #2 Dátum: 2014. március 30. - 12:35:18 »
0 Show voters
Szerintem csak perceket, vagy másodperceket ments, melybõl könnyedén kimatekozható a játszott óra, nap, stb. is.

Float kiírása.
« Válasz #3 Dátum: 2014. március 30. - 13:41:55 »
0 Show voters
Szerintem csak perceket, vagy másodperceket ments, melybõl könnyedén kimatekozható a játszott óra, nap, stb. is.[/quote]
És így még csak nem is kell Float-ot használni, elég ha enumba csinálsz mp-nek,percek,és órának(vagy akár napnak is) egy-egy változót, és ha az mp 60 akkor átrakjuk 0-ra és a perck kap +1-et, ha a perc 60 akkor átrakjuk 0-ra és az óra kap +1-et (ha van nap is akkor: ha ar óra 24 akkor átrakjuk 0-ra és a nap kap +1-et).
(De szerintem elég az óra és a perc, de úgy csinálja ahogy akarja)
Persze biztos van ennél egyszerûbb megoldás is csak ki kell gondolni :)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Válasz #4 Dátum: 2014. március 30. - 15:38:59 »
0 Show voters
Játszott Idõ perceket ment...Ezért osztom el hatvannal,hogy megkapjam az órát.De az a bak,hogy a százaléknál is/óránál is mindig csak az egész részet írja ki,a tizedeseket 00-nak hagyja.

Float kiírása.
« Válasz #5 Dátum: 2014. március 30. - 16:08:54 »
0 Show voters
Próbáld így:
 
format(string,sizeof(string), \"| Játszott Idõ: %d perc (%f óra)|\",JatekosInfo[playerid][JatszottIdo],ora);

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Válasz #6 Dátum: 2014. március 30. - 16:19:01 »
0 Show voters
Nem ez a hiba,mert ez csak annyit tesz,hogy nincs korlátozva atizedesjegyek száma,szóval alapból megjelenik 5-6 jegy az egész után.Semmivel se lenne jobb.

Float kiírása.
« Válasz #7 Dátum: 2014. március 30. - 16:41:35 »
0 Show voters
Nemtudom csomószor átnéztem mi lehet a hiba, de nem tudom.....
Szerintem csináld másképpen, mondjuk úgy hogy perceket, és órákat mentessz:
enumba egy Orak,Percek változót raksz
Percenként növeled a Percek-et 1-el
Ha a Percek elérte a 60-at akkor lenullászod és az Orak kap +1-et
és akkor a kiírás annyi hogy:
 
format(string,sizeof(string), \"| Játszott Idõ: %i óra ,%i perc |\",JatekosInfo[playerid][Orak],JatekosInfo[playerid][Percek]); 

 
szerintem ezzel akkor megkönnyíted a dolgodat és haladhatsz tovább a mododdal :)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Válasz #8 Dátum: 2014. március 30. - 16:54:51 »
0 Show voters
Nem könnyítené meg,mert mindenkinek percben van mentve,és a statisztika miatt és percben kell menteni.És nem lehetséges az,hogy nem lehet megoldani ezt.Ez nem megoldás,hogy kikerüljük a problémát.Meg kell oldani.
Ui.: mellette is ugyan úgy lehet haladni a modommal.

Float kiírása.
« Válasz #9 Dátum: 2014. március 30. - 17:11:49 »
0 Show voters
Biztosan meg lehet oldani a problémádat úgy ahogy akarod, de lehet hogy nem vagyunk hozzá elég okosak hogy megtaláljuk a hibát.Ezért írtam neked hogy lehetne még megoldani a játszott idõ mentését.
UI:Énse úgy gondoltam hogy ott megállsz a modban :) hanem hogy így most ha fejlesztessz benne akkor mondig vissza kell térj ehhez, ami egy idõ után idegesítõ lehet

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Válasz #10 Dátum: 2014. április 02. - 19:06:57 »
0 Show voters
3400 össze perc,80 perc börtönben.Szóval 1 %-nál több,mégis 0.00%-ot ír ki. :(

Float kiírása.
« Válasz #11 Dátum: 2014. április 02. - 20:29:31 »
0 Show voters
Nem vágom mi lehet a probléma  :(
Pedig nincs semmi hiba a scriptedbe, és jól is írtad a játszot idõ/60-t.
Szerintem csináld másfélre megoldással(lehet bugol valami azt annyi).
Én úgy csináltam hogy egy percek és órák változót csináltam és percenknt lekérdeztem ha percek == 60 akk óra kap +1-t és percek = 0, és nekem így tökéletsen mûködik  8)
Ez csak egy 5let hogy lehetne megoldani a játszott idõ rendszert.
Tudom ragaszkodsz a te verziódhoz, de ha nagyon nem akar megoldódni..... akkor meg kéne nézni egy másik megoldást(pl. amit íram :) mert az tuti fix)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Válasz #12 Dátum: 2014. április 02. - 22:08:05 »
0 Show voters
De mondom,hogy az nem megoldás.Rendben,hogyha átírom az egész rendszert,akkor kiírja a játszott órát rendesen.De a többi százalékszámítást még mindig nem fogja rendesen kiírni.

Float kiírása.
« Válasz #13 Dátum: 2014. április 02. - 22:40:07 »
0 Show voters
Ha jól értem te megakarod határozni, hogy 80 az hány százaléka 3400-nak.
Ez egyszerû százalékszámítás, osztod a 80-at 3400-al, és megkapod a kívánt százalékot.
[mod]Legközelebb figyelj a valós problémára és arra írj megoldást, ha tudsz![/mod]
« Utoljára szerkesztve: 2014. április 03. - 07:39:19 írta Dfoglalo »

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Float kiírása.
« Válasz #14 Dátum: 2014. április 03. - 06:11:56 »
0 Show voters
Nem hiszem el...
Nézd már mág azt a forráskódot...Ugyan ezt csináltam.(Vagyis nem,mert én százalékot számoltam,te pedig arányt.(Én szoroztam 100-al is.))
Az a baj,hogy nem megy.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal