Basitçe şöyle olur üye giriş yaptığı zaman en son giriş zamanına bakarsın misal saat
15:30 da çıkış yapmış ve sende bunu db'ye kaydetmişsin üye offline
Üyenin offline olduğu süre zarfında bişey çalıştırmana filan gerek yok.Üye giriş yaptığında şimdiki zamandan son giriş zamanını çıkarırsın ne kadar süre geçmiş misal üye 14:30'da giriş yaptı 1 saat geçmiş hesaplarsın 1 saat'te ne kadar mağden geliyor diye onu eklersin mağdenine sonra son giriş zamanını 14:30 yaparsın üye her mağden sayfasına baktığında aynı şeyi tekrarlarsın şimdiki zamandan son giriş zamanı yada işte upgrade zamanı diyelim ondan çıkarırsın süre ne kadarsa mağdeni arttırırsın üyeye gösterirsin.
Bu zamanlanmış görevler içinde aynı mantığı kullanırsın misal mağden binası diye bir tablo olur
id uyeno bitis_suresi
üye mağden seviyesini bir yükseltti misal yükseltme 1 saat sürecek
şimdiki zaman + 1 saat'i hesaplarsın ve bitis_suresi olarak eklersin db ye üye mağden yükseltme sayfasına baktığında bitis_suresinden şimdiki zamanı çıkarırsın bakarsın işte kaç dakika kalmış onu yazarsın oraya javascript ile timer eklemek zor değil.Eğer zaman süre - ise mağden banası tablosundan veriyi silersin mağden binasının seviyesini bir arttırırsın.
Yani sonuç olarak verileri üyeye göstereceksin son upgrade zamanını alacaksın.
Ogame'de mesela 5 dakikada bir sıralamalar değişiyor sende cron ile 5 dakikamı 1 saattemi ne kadar sürede istersen o kadar sürede bir kod çalıştırırsın bu kod işte şimdiki zamandan son upgrade zamanını çıkarırsın tüm üyeler'in mağdenini arttırırsın.
Üye 2 gün oyuna girmemişse ve bu süre zarfında biri saldırmışsa alacağı maden sayısı normalden az olacak. Ama dediğin gibi cronjob ile bir kod çalıştırırsak bu kayıp en aza indirilir.