Doğru Cevap
-
Ona benzer bir sey bende dusunmustum. Benim tablo yapim ornegin su sekildeydi.
kullaniciId odunmiktari odunsaniyelikartismiktari mermer mermersaniyelikartismiktari lastupdatedate
1 500 1 800 2 2011-12-05 13:00
gibi. daha sonra dediginiz gibi 15 dk da bi job ile stok miktarini guncellleyip , kullanici da siteye her girdiginde stok mikktarini artim miktari ile carpip tekrar hesaplayip veriyordum. kullanici taraifinda yine js ile arttiriyordum ama sql tarafidnda bir sey yok ama tutarli oluyordu. ben bu yontemi kullanmistim-
Supervisor
bu sekilde oyuncunun odunu gelistirme seviyesine gore saniyelik artim miktarini da ayarlaryip ona gore yukseltiyordum.11 yıl önce yazılmış -
Supervisor
Mesela , Ikariam dan ornek vereyim .
kaynaklar :
tip
1 odun
2 mermer
3 sarap
4 sulfur
5 kristal
tablo oyuncular
id adi
1 supervisor
2 ali
3 cengaver
tablo mevcutKaynaklar tablo alanlari
oyuncuid
odunmiktari
odunsaniyelikartismiktari
mermermiktari
mermersaniyelikartismiktari
kristalmiktari
kristalsaniyelikartismiktari
sarapmiktari
sarapsaniyelikartismiktari
sulfurmiktari
sulfursaniyelikartismiktari
songuncellemetarihi
ornek kayit
tablomevcutkaynaklar
oyuncuid 1
odunmiktari 600
odunsaniyelikartismiktari 1
mermermiktari 800
mermersaniyelikartismiktari 2
kristalmiktari 900
kristalsaniyelikartismiktari 1
sarapmiktari 700
sarapsaniyelikartismiktari -1
sulfurmiktari 900
sulfursaniyelikartismiktari 2
songuncelleme 2011.12.14 12:00
yukaridaki mesela mevcutkaynaklar tablosundaki bir kayit olsun. oyuncu oyuna girdigi anda
ilk islem kaynaklari guncellemek.
@sure = DateTime.Now - SonGuncelleme Tarihi = mesela 8000 sn
update mevcutkaynaklar set odun=odunsaatlikartismiktari*@sure ,.... songuncellemetarihi=DateTime.Now
select * from kaynaklar seklinde de browsera gondermek .
sayfada da artis miktari kadar javascript ile kaynagi duzenlersin .
mesela , sehirde odunu gelistirip seviye arttirirsa odunsaniyelikartis miktari alanini arttirirsin.
Tabi is akisina gore ara ara bunlari sql job ile update de edebilirsin
gibi11 yıl önce yazılmış -
Supervisor
Ve mesela isciler tablonda da
oyuncuid
oduniscisi
mermeriscisi
sulfuriscisi
olur. burdan hesaplamani yaparsin . mevcutkaynaklar tablondaki saatlikartismiktarini guncellersin .
yada arastirma seviyeleri
oyuncuid
odunarastirmasiseviye
onlan carpip buna bolersin vs
tabi bunlarin hepsi is akisi ile alakali , saniyelik artisi hesaplayip , mevcut kaynaklar alanini guncellersin11 yıl önce yazılmış -
gungnir89
teşekkür ederim. oyuncu online olduğu an dediğin gibi , son güncelden o ana kadar geçen saniyeyi bulup sql üzerinde sorgu atıp, 15dakika başlatma zamanını başa alabilirim. 10 numara.11 yıl önce yazılmış
-
Cevaplar
-
Kullanıcı oturum açtığında saatlik kazanç tablosunda stoklara aktarılmamış veri var mı diye kontrol ettirip ona göre 500 değerini de ekrana artmış haliyle yazdırmayı deneyebilirsin.
-
@supervisor biraz daha açar mısın kafam kaldırmadı:D
@mystic :durum tam o şekilde değil.
stok tablosunda
kulllanici id-odun-demir-tas
saatlikkazanctablosunda
kullaniciid-saatlikodunartis-saatlikdemirartis-saatliktasartis.
saatlik kazanç tablosundaki veriler, kullanıcının odun-demir-tas madenlerinde ne kadar koylu çalıştırdığına göre değişiyor. misal 20 kişi odun madeninde çalışsın emri verdiğinde saatlikodunartisi 200 diye update atiliyor. sql üzerinde event ile 15dakikada bir sorgu çalıştırarak stok tablosundaki oduna saatlikodunartisi/4(15dakikalık kazanc) ekliyoruz. kullanici siteye girdiğinde ise stoklarını ve saatlik_kazançlarını javascripte gönderiyoruz. orada her saniye, çalışan sorgu ile saniyedekazandığı miktarıhesaplayıp, stoğuna ekleyip kullanıcıya gösteriyoruz.kullanıcı sayfada odunu artmış olarak görüyor. ancak sql üzerinde henüz 15dakika dolmadı ve update atmadı. siteden çıkıp tekrar girdiğinde, stok tablosundan tekrar artmamış halini başlatmış oluyoruz. sorun da biraz karışık.-
siyahbeyaz
dostum sorunun cok basit. bildigin gibi sitedeki online sayısı sistemini görmüsündür...
kullanıcı sayfada bulundugu surece giris_tarih alanı guncellenior. sql ile giris_tarihi ile suanki tarih arasindaki 15 dk farkı kontrol ettiribilirsiniz...11 yıl önce yazılmış
-