Çözüldü Metin2 limit_time.h

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Doğukan Taydaş

Geliştirici
Geliştirici
Yardımsever Üye
Emekli Üye
Usta Üye
Mesaj
738
Çözümler
55
Beğeni
1.864
Puan
1.179
Ticaret Puanı
0
Metin2 limit_time.h python sayesiyle paketliyorum sıkıntı yok buraya kadar ve build ederkende sıkıntı yaşamıyorum.
Belilediğin tarihe kadar oyun açık olması , tarihi geçtiğin zaman kapanması gerekiyor, fakat kapatmıyor, syserr hatası almıyorum. Aslında tarihi geçtiği zaman syserr'de
43379_23e96b68dbae7e27923f7ec94e099a9a.png
 
Çözüm
main.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        return 0;
    }
#endif
main.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
        if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
        {
            sys_err("Server life time expired.");
            g_bShutdown = true;
        }
#endif
desc.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        extern void ClearAdminPages();
        ClearAdminPages();
        exit(1);
    }
#endif
ClientManagerLogin.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
    static int s_updateCount = 0;
    static int s_curTime = time(0);
    if (s_updateCount > 100)
    {...
Bildiğim kadarıyla süre bittikten sonra oyunu kapatıp açmaya çalışınca açılmıyor.
 
Bak şöyle anlatayım oyun açılıyor sıkıntı yok Şükür. Build ettiğimde de oyun açılıyor sorun yok. Ama limit_time ile oyunun açık kalıcak süreyi ayarladım ve süre dolduğu zaman oyun açılmasını istemiyorum. Limit_time bu işe yarıyor. Server filede lisans gibi bişey oluyor, farzetki serveri sana kiraladım, süren dolunca oyunu açamıyacaksın, bu işe yarıyor yani.
 
Bak şöyle anlatayım oyun açılıyor sıkıntı yok Şükür. Build ettiğimde de oyun açılıyor sorun yok. Ama limit_time ile oyunun açık kalıcak süreyi ayarladım ve süre dolduğu zaman oyun açılmasını istemiyorum. Limit_time bu işe yarıyor. Server filede lisans gibi bişey oluyor, farzetki serveri sana kiraladım, süren dolunca oyunu açamıyacaksın, bu işe yarıyor yani.
Tamam onu biliyorum. Çalışma mantığını şöyle biliyorum ben. Süreyi belirler derlersin derlenen game db yi müşteriye verirsin süresi bittiğinde ve müşteri oyunu kapatırsa ve tekrar açmaya çalışırsa senin üstte verdiğin syserri verir oyun açılmaz. Yada süre bittiğinde oyun shutdown çeker kapanır açmaya çalışınca açılmaz yine üstteki syserri verir mantığı bu şekilde. Fakat sende bu iki dediğimden hiçbirisi olmuyorsa tam yapamamışsın demektir ama verdiği syserr e bakacak olursak doğru çalışıyor gibi.
 
Knk o syserr örnek olarak koydum, bende syserr vermiyor, 2 kere build ettim normalde hata vermesi gerekirken vermiyor, bunun başka çözümü varmı veya ben yanlış yapıyorum. Bunu ilk kez deniyorum belki diğer dosyaları editlemem gerekiyor ama bilmiyorum, o yüzden sizlere soruyorum.
 
Knk o syserr örnek olarak koydum, bende syserr vermiyor, 2 kere build ettim normalde hata vermesi gerekirken vermiyor, bunun başka çözümü varmı veya ben yanlış yapıyorum. Bunu ilk kez deniyorum belki diğer dosyaları editlemem gerekiyor ama bilmiyorum, o yüzden sizlere soruyorum.
Buna baktın mı?

 
Bu konudan bakarak esinlendim. Fakat o konuda build etmeyi göstermiyor, veya editlediği yeri.
 
Bu konudan bakarak esinlendim. Fakat o konuda build etmeyi göstermiyor, veya editlediği yeri.
Buillde göstereceği bişey yokki zaten çıkan limit_time.h dosyasını game içine atıp normal sourceyi game all ile derleyeceksin ekstra bişey yok.
 
main.cpp:
Genişlet Daralt Kopyala
if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)

        {

           // g_bShutdown = true;

        }
// işareti koyarak kapatmış, işareti kaldırıp ben bunu build edip deneyim.
 
main.cpp:
Genişlet Daralt Kopyala
if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)

        {

           // g_bShutdown = true;

        }
// işareti koyarak kapatmış, işareti kaldırıp ben bunu build edip deneyim.
Sorun büyük ihtimal source içindeki limit time kodlarından kaynaklıdır kraizy.tgz içindeki mainline içinden bak limit time kodlarına.
 
main.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        return 0;
    }
#endif
main.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
        if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
        {
            sys_err("Server life time expired.");
            g_bShutdown = true;
        }
#endif
desc.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        extern void ClearAdminPages();
        ClearAdminPages();
        exit(1);
    }
#endif
ClientManagerLogin.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_LIMIT_TIME
    static int s_updateCount = 0;
    static int s_curTime = time(0);
    if (s_updateCount > 100)
    {
        s_curTime = time(0);
        s_updateCount = 0;
    }
    ++s_updateCount;

    if (s_curTime >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        exit(0);
        return;
    }
#endif
syserr:
Genişlet Daralt Kopyala
Sistem: Dec  8 00:04:37 :: heartbeat: server life time expired.
kodları değiştirerek build ettim, ve başarılı bir şekilde çalıştı, @melihalbayrak yardımları için teşekkür ederim.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst