kristapuciits Posted February 18, 2010 Report Share Posted February 18, 2010 kā to panākt, lai bez pārtraukuma katram lietotājam, piem., "dzīvības" krātos neatkarīgi no tā, vai lietotājs ir online vai nav? Paldies jau iepriekš! :) Quote Link to comment Share on other sites More sharing options...
briedis Posted February 18, 2010 Report Share Posted February 18, 2010 (edited) kā to panākt, lai bez pārtraukuma katram lietotājam, piem., "dzīvības" krātos neatkarīgi no tā, vai lietotājs ir online vai nav? Paldies jau iepriekš! :) Nu kā, glabā laiku kad lietotājs pēdējo reizi bijis. Kad ienāk atkārtoti, paskaties cik laiks ir pagājis un pieskaiti klāt dzīvībām tos punktus. Piemēram, lietotājs ienāca lapā, kad laika atzīme bija 10 sekundes, viņam bija 100 punkti dzīvības. Lietotājs ienāk atkal. Paskatiamies, ka tagad laiks ir 30 sekundes. Izrēķinam pagājušo laiku: 30 - 10 = 20 sekundes. Mēs zinam, ka, teiksim, 5 sekundēs pienāk 1 punkts pie dzīvībām. Izrēkinam, cik 20 sekundēs pienāk punkti: 20 / 5 = 4 Pieskaitam vacjiem punktiem: 100 + 4 = 104. Saglabājam datubāzē punktus (104) un saglabājam pēdējo pašreizējās sekundes (30) Ar sekundēm domāju unix timestampu... Lapā izmanto JS kaunterīti, kas itkā smuki skaita tās dzīvības reālā laikā, bet patiesībā nekas neskaitās :) EDIT: protams, ja kādam citam lietotājam arī interesē tie punkti, tad viņi būtu jāpārrēķina. (Nevis tikai tad, kad konkrētais lietotājs dara kaut ko) EDIT2: neesmu neko tādu taisījis, bet es iztēlojos, ka tā tas varētu notikt... Edited February 18, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
codez Posted February 18, 2010 Report Share Posted February 18, 2010 (edited) glabā vērtību x un laiku t, kad x ir aprēķināts. Kad kāds pieprasa šos datus, nolasi x un t un aprēķini jauno x, kā x2=x+C*dt, kur C - cik dzīvības piaug vienā sekundē. Teiksim, ja tev vajag 30 sekundēs vienu dzīvību, tad šis skaitlis būs 0.033333 dt - starpība unix_timestamp()-t. briedis, jau uzrakstīja. Tik gribu palabot viņu, ka ja dati tiek tikai lasīti, tie nav jāpārglabā no jauna db. Tikai tad, kad notiek x atņemšana vai pieskaitīšana ārpus parastajai laika izmaiņai, tikai tad ir jāpārglabā dati. Tas tā performaces dēļ, jo galu galā rakstīt datus ir 10x lēnāk kā lasīt. Edited February 18, 2010 by codez Quote Link to comment Share on other sites More sharing options...
2easy Posted February 18, 2010 Report Share Posted February 18, 2010 hehe, codezam jau ir laba pieredze ar šo ^^ Quote Link to comment Share on other sites More sharing options...
briedis Posted February 18, 2010 Report Share Posted February 18, 2010 +codez, es ar padomāju, ka principā nav īsti jēgas glabāt no jauna katru reizi, kad pārrēķina... Tik tad kad atņem... Quote Link to comment Share on other sites More sharing options...
2easy Posted February 18, 2010 Report Share Posted February 18, 2010 nu ja, matemātiska saskaitīšana ir 100x ātrāka nekā hdd write Quote Link to comment Share on other sites More sharing options...
Kavacky Posted February 18, 2010 Report Share Posted February 18, 2010 nu ja, matemātiska saskaitīšana ir 100x ātrāka nekā hdd write Šī komentāra ieguldījums bija vienkārši THE W.T.F. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 18, 2010 Report Share Posted February 18, 2010 tavs arī ^^ Quote Link to comment Share on other sites More sharing options...
cipcaps Posted February 19, 2010 Report Share Posted February 19, 2010 Ja tas vēl ir aktuāli uzraksti man PM, padalīšos kodā. Quote Link to comment Share on other sites More sharing options...
kristapuciits Posted February 23, 2010 Author Report Share Posted February 23, 2010 varbūt kāds pierakstiet to kodu, kurš izpilda tās darbības? Quote Link to comment Share on other sites More sharing options...
mickys Posted February 23, 2010 Report Share Posted February 23, 2010 <?php while(true){ //pieskaitam tās vērtības sleep(30); } ?> Quote Link to comment Share on other sites More sharing options...
Kemito Posted February 23, 2010 Report Share Posted February 23, 2010 Var jau rūcīnāt šito būdu ar JS arī, bet lieks čakars manšķiet! bet reāli mickys, ja lietotājs iziet OFFLINE, viņš nespiež nevienu pogu, kā viņš var iedarbināt tā teikt to ciklu? :P Quote Link to comment Share on other sites More sharing options...
mounkuls Posted February 23, 2010 Report Share Posted February 23, 2010 (edited) #7, vispār jau ir gan, nu ne 100X varbūt, bet kādas 50 ātrāk būs stabili. Lai gan tīri matemātiska saskaitīšana ASMā būs pat reizes 200 ātrāka. Procesoram tikai pliki reģistri faktiski kopā jāsamet, bet lai ko ierakstītu HDD, zini cik visādu procdūru ir? P.S. A pa ķeksi, briedis manuprāt uzrakstija labi kas un kā. Edited February 23, 2010 by mounkuls Quote Link to comment Share on other sites More sharing options...
mickys Posted February 24, 2010 Report Share Posted February 24, 2010 Var jau rūcīnāt šito būdu ar JS arī, bet lieks čakars manšķiet! bet reāli mickys, ja lietotājs iziet OFFLINE, viņš nespiež nevienu pogu, kā viņš var iedarbināt tā teikt to ciklu? :P 1.kārt - cikls ir mūžīgs. 2.kārt - palaižam skriptu caur komandrindu, lai viņš tur tup un visu laiku apdeito dzīvības. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 24, 2010 Report Share Posted February 24, 2010 1.kārt - cikls ir mūžīgs. 2.kārt - palaižam skriptu caur komandrindu, lai viņš tur tup un visu laiku apdeito dzīvības. tiešām labs joks! dod pieci :D Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.