• 03-03-2015, 02:37:51
    #1
    Konuya verecek bir başlık bulamadım aslında Bir oyun yazıyorum ve oyunumda enerji alanı var. Oyunda hamleler yapıldıkça enerjimden düşüyor ve en son 0 kaldıktan sonra bir daha işlem yapılamıyor.

    Enerjimi her 5 dakikada bir belli bir oranda artırmam gerekiyor. Peki bunu nasıl yapabilirim? Yani ben her oyuncunun 5 dakikada bir enerjisinin artmasını istiyorum.Bunu sistem otomatik yapmak zorunda. Cronjob kullanarak her 5 dakikada bir dosya çalıştırmak istemiyorum açıkçası.

    Kafam ciddi anlamda karıştı. Fikirlerinize ihtiyacım var. Ne önerirsiniz?
  • 03-03-2015, 04:08:24
    #2
    ajax ile her 5 dakika enerji yüklemesi yapacak dosyayı çağırabilirsin get yada post ile.
  • 03-03-2015, 04:19:11
    #3
    Ceu adlı üyeden alıntı: mesajı görüntüle
    ajax ile her 5 dakika enerji yüklemesi yapacak dosyayı çağırabilirsin get yada post ile.
    Paylaşabileceğin örnek bir kod varmı hocam?
  • 03-03-2015, 04:52:27
    #4
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script>
    $(document).ready(function() { //Sayfamız Yüklendiğinde
    $("#veriler").load("veriler.php");
    //Veriler.php dosyasını veriler id'li div'e yüklüyoruz
    });
    setInterval(function() {$("#veriler").load('veriler.php');}, 1000);
    //Her saniye (1000) veriler.php dosyasını tekrar dive çeker.
    </script>
    <div id="veriler"></div>
  • 03-03-2015, 10:38:51
    #5
    en son enerji güncelleme zamanını databesine yazarsın kullanıcın girdiğinde bir fonksiyonla 5 ve 5in katı dakika geçip geçmediğini kontrol edersin geçmişse enerjiyi geçen süreye göre arttırırsın geçmemişse bir işlem yapmaz
  • 03-03-2015, 11:41:27
    #6
    asimavi50 adlı üyeden alıntı: mesajı görüntüle
    en son enerji güncelleme zamanını databesine yazarsın kullanıcın girdiğinde bir fonksiyonla 5 ve 5in katı dakika geçip geçmediğini kontrol edersin geçmişse enerjiyi geçen süreye göre arttırırsın geçmemişse bir işlem yapmaz
    Bu şekilde de yapılabilir, üyenin son online olduğu saat ile şimdili saat arasındaki fark bulunup her 5 dakika için X kadar enerji miktarı ekleyebilirsin. Ziyaretçi sayısı çok ise en mantıklı çözüm bu olacaktır.

    CronJob ile de yapabilirsin, kendi serverına eklemen için 5 dakikada 1 çalışacak cronjob sunucuyu gereksiz yorar, google böyle bir hizmeti var diyebiliriz. Buradan bakabilirsin. Ancak aradaki süreyi 5'e bölmek bence en mantıklısı.
    • MaxidaTa
    MaxidaTa bunu beğendi.
    1 kişi bunu beğendi.
  • 03-03-2015, 12:25:42
    #7
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde de yapılabilir, üyenin son online olduğu saat ile şimdili saat arasındaki fark bulunup her 5 dakika için X kadar enerji miktarı ekleyebilirsin. Ziyaretçi sayısı çok ise en mantıklı çözüm bu olacaktır.

    CronJob ile de yapabilirsin, kendi serverına eklemen için 5 dakikada 1 çalışacak cronjob sunucuyu gereksiz yorar, google böyle bir hizmeti var diyebiliriz. Buradan bakabilirsin. Ancak aradaki süreyi 5'e bölmek bence en mantıklısı.
    cron yine mantıksız 2 üye ile bunu örnek veriyim ben 13. dakikada güncelledim en sonra 2. üye 15. dakikada son güncelleme çekti şimdi bana göre mi cron çalıştıracaksın yoksa 2. üyeye göre mi bunu birde çok kişi olduğunu düşünün

    daha saniyeye hiç girmedim... saniye hesabınıda işin içine katarsak siz düşünün...
  • 03-03-2015, 13:13:41
    #8
    jquery post + mysql ile en mantıklısı olur. php dışına çıkacak olursan da server ile yapıp mysqli hic yormayabilirsin aktif portun aktiflik süresini hesaplayip belirli aralıklarda toplu sql e yazarak. ozaman web tarafında ajax load yeterli olacaktir
  • 03-03-2015, 13:35:46
    #9
    asimavi50 adlı üyeden alıntı: mesajı görüntüle
    cron yine mantıksız 2 üye ile bunu örnek veriyim ben 13. dakikada güncelledim en sonra 2. üye 15. dakikada son güncelleme çekti şimdi bana göre mi cron çalıştıracaksın yoksa 2. üyeye göre mi bunu birde çok kişi olduğunu düşünün

    daha saniyeye hiç girmedim... saniye hesabınıda işin içine katarsak siz düşünün...
    Yok zaten cron olursa ya her dakika çalışacak, saniye 00 olduğunda ya da 5 dakikada 1 yine saniye 00 olduğunda çalışacak tüm üyeler için yenilenecek. Başka türkü olmaz yani. Zaten dediğim gibi iki saat arasındaki farkı almak daha mantıklı. ajax çekilirse daha görsel olur ancak çok da elzem değil yani
    • MaxidaTa
    MaxidaTa bunu beğendi.
    1 kişi bunu beğendi.