[1 - limit_time + libserverkey] Novaline altyapı kullanılmayan kodları kaldırma serisi.

Kaptan Yosun

Discord: kaptanyosun
Site yetkilisi
Acemi Moderatör
Premium Üye
Mesaj
574
Çözümler
19
Beğeni
398
Puan
839
Ticaret Puanı
0
Pek çok sitede paylaşılmış olsa da hepsi mainline için. Novaline'da fazla / eksik kodlar olabiliyor. Kendim sıfırdan altyapı hazırlarken bu kodları kaldıracağım ve kaldırırken de Novaline için bu kılavuzu yazacağım. O yüzden konuyu takip ederseniz zamanla yeni kod kaldırma kılavuzları eklediğimi görebilirsiniz. Kılavuz bittiğinde altyapınızı pek çok ölü kod ve sistemden arındırabilirsiniz. Başlayalım...

(!!) = novaline'da bu dosya/kod yok ama yine de emin olmak için aratın

1- Limit_time + Libserverkey: Ymir'in server lisans kontrolü.

Server/db/src

Server/db/src/clientmanagerlogin.cpp içinde
aratın ve silin:
#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

Server/game/src klasöründen check_server.cpp(!!) + check_server.h + limit_time.h + update_limit_time.py silin.

Server/Makefile içinde
aratın ve silin:
    $(MAKE) -C $@/src limit_time
aratın ve silin:
    $(MAKE) -C game/src limit_time
aratın ve silin:
 libserverkey
aratın ve silin:
libserverkey: .
    @touch $@/Depend
    $(MAKE) -C $@ dep
    $(MAKE) -C $@ clean
    $(MAKE) -C $@
aratın ve silin:
libserverkey: .
    @touch $@/Depend
    $(MAKE) -C $@ dep
    $(MAKE) -C $@ clean
    $(MAKE) -C $@
aratın ve silin:
    $(MAKE) -C libserverkey clean

Server/game/src/Makefile içinde
aratın ve silin:
limit_time:
    @echo update limit time
    @python update_limit_time.py
aratın ve silin:
INCDIR += -I../../libserverkey
aratın ve silin:
 -L../../libserverkey
aratın ve silin:
 -lserverkey
aratın ve silin(!!):
 check_server.cpp

Server/game/src/desc.cpp içinde
aratın ve silin:
#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

Server/game/src/config.cpp içinde
aratın ve silin:
#include "check_server.h"
aratın ve silin:
        TOKEN("server_key")
        {
            CCheckServer::Instance().AddServerKey(value_string);
            continue;
        }

Server/game/src/input.cpp içinde
aratın ve silin:
#include "check_server.h"
aratın ve silin:
#ifndef __WIN32__
    #include "limit_time.h"
#endif
aratın ve silin:
#ifdef ENABLE_LIMIT_TIME
    //if (!CCheckServer::Instance().IsValid())
    //{
    //    ClearAdminPages();
    //    return;
    //}
#endif

aratın ve silin(!!):
    extern bool Metin2Server_IsInvalid();

aratın ve silin(!!):
    if (Metin2Server_IsInvalid())
    {
        extern bool g_bShutdown;
        g_bShutdown = true;
        ClearAdminPages();
    }

Server/game/src/input_auth.cpp içinde
aratın ve silin:
#include "check_server.h"
aratın ve silin:
#ifndef __WIN32__
    #include "limit_time.h"
#endif
aratın ve silin:
#ifdef ENABLE_LIMIT_TIME
    //if (!CCheckServer::Instance().IsValid())
    //{
    //    extern void ClearAdminPages();
    //    ClearAdminPages();
    //    exit(1);
    //    return;
    //}
#endif
aratın ve silin:
#ifdef ENABLE_LIMIT_TIME
    //if (!CCheckServer::Instance().IsValid())
    //{
    //    extern void ClearAdminPages();
    //    ClearAdminPages();
    //    exit(1);
    //    return;
    //}
#endif
aratın ve silin(!!):
    Metin2Server_IsInvalid();
    extern bool Metin2Server_IsInvalid();
aratın ve silin(!!):
    if (Metin2Server_IsInvalid())
    {
        extern void ClearAdminPages();
        ClearAdminPages();
        exit(1);
        return;
    }

Server/game/src/main.cpp içinde
aratın ve silin:
#ifndef __WIN32__
    #include "limit_time.h"
#endif
aratın ve silin:
#ifdef ENABLE_LIMIT_TIME
        if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
        {
            sys_err("Server life time expired.");
            g_bShutdown = true;
        }
#endif
aratın ve silin:
#ifdef ENABLE_LIMIT_TIME
    if ((unsigned)get_global_time() >= GLOBAL_LIMIT_TIME)
    {
        sys_err("Server life time expired.");
        return 0;
    }
#endif
aratın ve silin:
//// 윈도우에서 테스트할 때는 항상 서버키 체크
//#ifdef _WIN32
    #define _USE_SERVER_KEY_
//#endif
#include "check_server.h"
aratın ve silin:
    CCheckServer checkServer;
aratın ve silin(!!):
Metin2Server_IsInvalid
static bool g_isInvalidServer = false;
aratın ve silin(!!):
    bool Metin2Server_IsInvalid()
    {
        return g_isInvalidServer;
    }
aratın ve silin:
//void Metin2Server_Check()
//{
// 더 이상 사용안하는 서버 유효 체크 by chrislee
//
//    if (LC_IsEurope() || test_server)
//        return;
//    static const size_t CheckServerListSize = 1;
//    static const char* CheckServerList[] = { "202.31.178.251"};
//    static const int CheckServerPort = 7120;
//
//    socket_t sockConnector = INVALID_SOCKET;
//
//    for (size_t i = 0 ; i < CheckServerListSize ; i++)
//    {
//        sockConnector = socket_connect( CheckServerList[i], CheckServerPort );
//
//        if (0 < sockConnector)
//            break;
//    }
//
//    if (0 > sockConnector)
//    {
//        if (true != LC_IsEurope()) // 유럽은 접속을 하지 못하면 인증된 것으로 간주
//            g_isInvalidServer = true;
//
//        return;
//    }
//
//    char buf[256] = { 0, };
//
//    socket_read(sockConnector, buf, sizeof(buf) - 1);
//
//    sys_log(0, "recv[%s]", buf);
//   
//    if (strncmp(buf, "OK", 2) == 0)
//        g_isInvalidServer = false;
//    else if (strncmp(buf, "CK", 2) == 0)
//        g_isInvalidServer = true;
//
//    socket_close(sockConnector);
//}
aratın ve silin:
        if (!CCheckServer::Instance().CheckIP(g_szPublicIP)) {
            char pszRevision[128] = "I don't care";   
#ifdef _WIN32
            fprintf(stderr, "[main] Check IP failed\n");
#else
            strncpy (pszRevision,  __SVN_VERSION__, sizeof(pszRevision));
#endif
            LogManager::Instance().InvalidServerLog(LC_GetLocalType(), g_szPublicIP, pszRevision);
        }
aratın ve silin(!!):
Metin2Server_Check();

Ve son olarak Server ana dizininden "libserverkey" klasörünü tamamen silebilirsiniz.
 
Son düzenleme:
Öncelikle emeğin için teşekkürler, fikir olarak gayet faydalı bir rehber konusu. Ancak günümüzde novaline kullanıcısı yok denecek kadar az. Belki de yoktur bile.
Sebebi ise biraz da tarihe dayanıyor. Yıllardır insanlar tamamen saf olması sebebiyle mainline ile başlayıp ilerledi, paylaşımların çoğu mainline için yapıldı. Novaline ise hem ufak tefek farklılıkları ile, hem de az tercih edilmesi sebebiyle mainline'ın gerisinde kaldı. Yani mainline, istisnalar dışında(marty vb.) bütün metin2 geliştiricilerinin anlaşabildiği ortak bir dil oldu diyebiliriz.

Geçmişte de novaline kullanmış biri olarak; bu güzel emeği novaline için harcama derim. Gereksiz kodların kaldırılması konusundaki paylaşımların hepsi mainline üzerine evet, ancak piyasada paylaşılmayan ve gereksiz olan daha bir çok kod var mainline da. Bunları tespit etmek çok daha iyi olur bence.
 
Öncelikle emeğin için teşekkürler, fikir olarak gayet faydalı bir rehber konusu. Ancak günümüzde novaline kullanıcısı yok denecek kadar az. Belki de yoktur bile.
Sebebi ise biraz da tarihe dayanıyor. Yıllardır insanlar tamamen saf olması sebebiyle mainline ile başlayıp ilerledi, paylaşımların çoğu mainline için yapıldı. Novaline ise hem ufak tefek farklılıkları ile, hem de az tercih edilmesi sebebiyle mainline'ın gerisinde kaldı. Yani mainline, istisnalar dışında(marty vb.) bütün metin2 geliştiricilerinin anlaşabildiği ortak bir dil oldu diyebiliriz.

Geçmişte de novaline kullanmış biri olarak; bu güzel emeği novaline için harcama derim. Gereksiz kodların kaldırılması konusundaki paylaşımların hepsi mainline üzerine evet, ancak piyasada paylaşılmayan ve gereksiz olan daha bir çok kod var mainline da. Bunları tespit etmek çok daha iyi olur bence.
Ben de bir düşünmedim değil aslında bu konuyu. Novaline'a sistem eklemek de biraz problem. Kod ayarlamaları gerekiyor çoğu zaman. Teşekkür ederim. Haklısınız sanırım mainline ile devam edebilirim.
 
Son düzenleme:
dediginiz herşeyi yaptim ama puttyden game src ye gmake -j6 yaptığımda

root@Altyapiserver:/home/novaline/Srcs/Server/game/src # gmake -j6
gmake: *** No rule to make target 'check_server.h', needed by 'OBJDIR/config.o'. Stop.
bu hatayı veriyor nasil cözebilirim
 
ve o objdir klasöürünü sildikten sonra

1706420046256.png

gmake clean ve sonrası gmake -j20 yaptım ve olan bu hata ne olabilir
 
dediginiz herşeyi yaptim ama puttyden game src ye gmake -j6 yaptığımda

root@Altyapiserver:/home/novaline/Srcs/Server/game/src # gmake -j6
gmake: *** No rule to make target 'check_server.h', needed by 'OBJDIR/config.o'. Stop.
bu hatayı veriyor nasil cözebilirim
Önce gmake clean yapın sonra gmake dep ve ardından gmake -j6 yapın.
 
Geri
Üst