Çö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ı.

Quaftar

Moderatör
Site yetkilisi
Moderatör
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
735
Çözümler
55
Beğeni
1.409
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:
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        return 0;
    }
#endif
main.cpp:
#ifdef ENABLE_LIMIT_TIME
        if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
        {
            sys_err("Server life time expired.");
            g_bShutdown = true;
        }
#endif
desc.cpp:
#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:
#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ı?

Linkleri görebilmek için giriş yap veya kayıt ol.
 
Bu konudan bakarak esinlendim. Fakat o konuda build etmeyi göstermiyor, veya editlediği yeri.
 
main.cpp:
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:
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.
 
Olmadı öyle yapacağım, main.cpp build ediyim ilk.
 
main.cpp:
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        return 0;
    }
#endif
main.cpp:
#ifdef ENABLE_LIMIT_TIME
        if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
        {
            sys_err("Server life time expired.");
            g_bShutdown = true;
        }
#endif
desc.cpp:
#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:
#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:
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