barisceviz adlı üyeden alıntı: mesajı görüntüle
Client-Server bazlı bir şey yapıyorsan arada bir köprü kurman gerekir. Beklektirip veri çekme işlemi yapıyorsan ooo. Eventlerin tetiklenmesi portlardan gelecek değerlere bağlı bir iş. Bir listener yazman veya TCP/UDP port üzerinden haberleşmen gerek. Multiplayer real time oyunlardan örnek vermek gerekirse bu oyunlar UDP port kullanır. UDP in TCP ye göre farkı gönderdiği paket geldi mi öldü mü kaldı mı kontrol etmez. TCP de varana kadar bekler. Varmazsa timeout a düşer vs. Oyunlar UDP port üzerine kurulu bir mimari ile haberleşerek en çözüme ulaşırlar. Böylelikle hızlı bir şekilde oyun akışı devam eder.
Bu da bir online oyun zaten o yüzden en az yoracak şekilde yapmam gerekiyor. Şimdi benim düşünceme göre, olayın client ile alakası olmayacak. Clientle herhangi bir veri alışverişine gerek yok, sunucunun saatini baz alarak işlemleri yapacak. Zaten yapılan işlemler oyuncuyu ilgilendirmiyor, server tarafında yapılması gereken şeyler olduğu için tek taraflı yapmak yeterli. Bir fikriniz var mı ?

SexClub adlı üyeden alıntı: mesajı görüntüle
void eventTimer()
{
while(1)//bir değişkenede bağlanabilir
{
int vMinute = getMinute();
int vHour = getHour();
int vDay = getDay();
int foo[5] = {5,15,20,25,30};
for(int i = 0;i<5;i++)
{
	if(foo[i] == vDay)
	{
		if(checkHour(vHour,vMinute) == true)
		{
			//do something
		}
	}
}
Sleep(1000);
}
}

bool checkHour(int vHour,int vMinute)
{
int foo[9] = {3,5,9,12,15,17,20,22,23};
for(int i = 0;i<9;i++){
	if(foo[i] == vHour && vMinute == 0)//isteğe göre değiştirilebilir
		return true;
}
return false;
}


void startTimer()

{
CreateThread(NULL,NULL, (LPTHREAD_START_ROUTINE)&eventTimer, NULL, NULL, NULL) ;

//bu şekilde olabilir veya birden fazla thread çalışacaksa bir sınıf yazıp threadleri ordan nesne oluşturup bir vectore atayıp kontrolde edebilirsin
//linuxta createthread yerine pthread_create olması gerekiyor kendiniz ayarlarsınız get minute,hour ve day fonksiyonlarını örnek olarak yazdım içlerini doldurursunuz
}
Edit:eventTimer fonksiyonundaki while içine Sleep(1000) koymayı unutmuşum koyulmazsa cpu sömürür
Emek harcamışsın teşekkürler. Peki bu şekilde bahsettiğim binlerce kişilik bir oyunda sıkıntı yapar mı ? Oyunun kendi dosyalarında sadece 2 sleep var o yüzden kullanıp kullanmamakta kararsızım bunu