İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

php timer(zamanlayıcı)

kardesim

0
İyinet Üyesi
Katılım
6 Ocak 2011
Mesajlar
42
Reaction score
0
Merhaba arkadaşlar
ben online strateji oyunu için belirli zaman kadar zamanlayıcının göstermesi ve o zaman sonunda işlem yapmasını istiyorum.Mesela oyunda bir binanın inşaat süresi 30 saniye olsun.30 saniye dolana kadar sitede offline olsam bile zamanlayıcı çalışacak ve ne kadar zaman geçtiği sitede gösterilecek , 30 saniye dolunca sql fonksiyonu çalışacak.zamanlayıcı duracak o zaman....web bazlı online rpg oyunlarında görülüyor.nasıl yapabilirim bunu?internetten araştırdım bulamadım.Daha önce bu konu açıldıysa da özür dilerim.bunu javascriptle mi yapabiliriz?php ile de yapılacaksa nasıl oluyor?kodlaması nasıl olur?yardımcı olurmusunuz?
 

garrip

0
İyinet Üyesi
Katılım
28 Aralık 2010
Mesajlar
174
Reaction score
0
offline olsam bile çalışacak demişsin. Bunun mümkün olması farklı teknolojilerle olabilir mi bilmiyorum. Ama anladığım kadarıyla çok gelişmiş bir şey yapmayacaksın.

Şöyle bir mantık kuralım:

Bir tablon olsun ve inşaat sürelerin bu tablolarda bulunsun.
İnşaata başla dediğinde buraya time ile birlikte kaydetsın

Kişi giriş yaptıgında inşaat sürelerini gösterirken tabloda bulunan inşaatın time ile işlem yaparsın. Böylece offline olması bir şeyi değiştirmez.zaten time kayıtlı.
 

Lansewebtr

0
İyinet Üyesi
Katılım
30 Aralık 2010
Mesajlar
256
Reaction score
3
Oyunlarla alakalı daha detaylı anlatımlar yapmak isteyip sadece şunu yazacak kadar zaman bulabilmiştim: http://forum.spycoders.com/php/oyun-programlama-oyunculara-saniyede-bir-kaynak-vermek-5587.html

Php de gerçek hayat bizim timer ımızdır. Eğer 30 saniyelik bi iş varsa bu işin biteceği tarih time() + 30 dur.

Php dediğimiz şey zaten kullanıcıya saniye saniye şuan şu kadar kaldı demez. Php sadece hesap kitap yapar. Hesabını yaptıktan sonra işin bitmesine atıyorum 22 saniye kaldıysa Php Html ye. Html de Javascript e 22 saniye kaldı der. Javascript te alır bunu setInterval( "ekrandakisayıyıbiazalt();", 1000); yapar. Yani her saniye ekrandaki sayının bi düşüğünü ekrana yazdırır.

Saniye bittiğinde ne olur ona bakalım:

Php kısmındaki kodlarımız şöyle olmalı: atıyorum biz şuan zaman olarak 102 yi yaşıyoruz. adamın 137 de bitecek bi işi var ( bunu sistem nereden biliyo: veritabanında adam bina yap a tıkladığında ( zaman olarak 93 de tıklamış olsun ( onu da kayıt altına alalım ) ) kayıt altına aldık bu adam bu tuşa bastı, 137 de binası olacak diye ) Dedikya şuan 102 yi yaşıyoruz. Adam sayfaya giriş yaptığında Php gidip veritabanına bakacak. Eğer zaman 137 veya ilerisinde bi zaman olsaydı yapılacak işi yapacaktı. Ama henüz 137 ye gelinmediği için Html e diyecek ki "Bu adam 93 de bina yap a tıklamış. Şuan 102 yi yaşıyoruz. Binası 137 de bitecek." Html de bunu duyunca Javascript yardımıyla hem kalan saniyeyi hesaplayabilecek. Hem isterse % sini hesaplayabilecek. Hem de saniyeler bittiğinde Php kodu şimdi çalıştırsam binayı yapar diyerek sayfayı yenileyecek. Mesela zaman olarak 134 ü yaşıyo olalım. 134 de kalan saniye 3 gösterecek 135 de 2, 136 da 1 ve 137 de 0 ı görünce sayfayı yenileyecek. Sayfayı yenileyince Php kodu tekrar çalışacağı için. Bakacak ki şuanki zaman 137. e o zaman bu adamın binasını yapabilirim.

Adam bittiği saniyede oyuna girmezse yani o sayfayı çalıştırmazsa ne olacak? CPanel den eklediğimiz dakikalık cronjob bitmesi gerek bina görürse veritabanında bitirecek. ( veya zaten başka oyuncular girdiğinde de veritabanı kontrolleri yapılacak. where bitmezamani < "'.time().'" )
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst