mt2009 wsl build

  • Konuyu açan Konuyu açan isthambul1453
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 1
  • Gösterim Gösterim 366

isthambul1453

Yasaklanmış Üye
Cezalı
Mesaj
357
Çözümler
3
Beğeni
249
Puan
764
Ticaret Puanı
0
TXT-only, revize mimari

  • Yeni katmanlar eklendi: C:\mt2009 - FULL SOURCE\Server Source\Server\db\src\ProtoSource.cpp, C:\mt2009 - FULL SOURCE\Server Source\Server\db\src\ProtoMirror.cpp, C:\mt2009 - FULL SOURCE\Server Source\Server\db\src\ProtoPolicy.h
  • TXT proto yükleme tek “source of truth” olacak şekilde ClientManagerBoot akışı toparlandı: C:\mt2009 - FULL SOURCE\Server Source\Server\db\src\ClientManagerBoot.cpp
  • PROTO_FROM_DB config’i “ignored/unsupported (TXT-only)” mantığıyla log’lanacak şekilde ele alındı (DB’den proto okuma yolu prod’da kapalı/işlevsiz bırakıldı).
  • MIRROR2DB davranışı korunup “policy” ile tek noktadan kontrol edilir hale getirildi (TXT kaynaksa config’e göre mirror; DB kaynak olsaydı mirror zorla kapalı).
Shard/Multi-server (4 server: Alesta/Tramola/Yakamoz/Hammurabi) + admin onayı + kapasite
1773838007421.webp


  • Feature flag eklendi: C:\mt2009 - FULL SOURCE\Server Source\Server\common\CommonDefines.h (ENABLE_SHARD_POLICY)
  • Game→DB login paketine shard bilgisi eklendi:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\common\tables.h içinde TPacketGDAuthLogin → dwShardID
  • Yeni DB protocol mesajları eklendi (session takip):
    • C:\mt2009 - FULL SOURCE\Server Source\Server\common\tables.h:
      • HEADER_GD_SHARD_SESSION_PING = 200
      • HEADER_GD_SHARD_SESSION_END = 201
      • TPacketGDShardSessionPing, TPacketGDShardSessionEnd
  • Game config’e shard ayarları eklendi:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\config.cpp
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\config.h
    • Tokenlar: shard_id, shard_name (shard_id yoksa/0 ise fail)
  • Game login isteğinde shard_id DB’ye gönderiliyor:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\db.cpp
  • Online session “ping” ve disconnect “end” eklendi:
    • Ping (30sn): C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\main.cpp
    • Disconnect cleanup: C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\desc.cpp
  • “Hoşgeldin + server adı” mesajı eklendi:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\input_login.cpp
  • DB tarafında login gate eklendi (zorunlu şartlar):
    • Admin approval zorunlu (shard_access.approved=1)
    • Kapasite kontrolü (shard_servers.max_online vs shard_sessions aktif sayım)
    • Session upsert/update + ping/end handler’ları
    • Kod: C:\mt2009 - FULL SOURCE\Server Source\Server\db\src\ClientManager.cpp (+ header deklarasyonları ilgili dosyada)
  • SQL migration eklendi:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\db\sql\shards_mvp.sql
    • Tablolar: shard_servers, shard_access, shard_sessions
WSL (Ubuntu) build alınabilir hale getirildi

  • db ve game Makefile Linux/WSL uyumuna çekildi:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\db\src\Makefile
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\Makefile
    • Notlar: path’te boşluk için __PWD__ escape, sed -i Linux uyumu, OpenSSL dynamic link.
  • Game MySQL link düzeltildi (FreeBSD static Extern/lib/libmysqlclient.a yerine -lmysqlclient -lz).
  • DevIL (guild mark) WSL’de ABI uyumsuz olduğu için opsiyonel yapıldı:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\Makefile (ENABLE_DEVIL=0 default)
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\MarkImage.h
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\MarkImage.cpp (DevIL kapalıysa no-op fallback)
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\src\main.cpp (ilInit() guard)
  • WSL build dokümanı eklendi:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\WSL_BUILD.md
  • WSL’de derleme sonucu oluşan binary’ler:
    • C:\mt2009 - FULL SOURCE\Server Source\Server\db\db_r41023
    • C:\mt2009 - FULL SOURCE\Server Source\Server\game\game_r41023

1773837676617.webp




süürce sevenlere
 
Docker içinde build komutları

# DB
docker exec mt2009 bash -lc "cd /usr/local/src/Server/db/src && make clean && make -j2 CXX=g++ CC=gcc"

# GAME
docker exec mt2009 bash -lc "cd /usr/local/src/Server/game/src && make clean && make -j2 CXX=g++ CC=gcc"


Libler gerekiyorsa:

docker exec mt2009 bash -lc "cd /usr/local/src/Server/libthecore/src && make clean && make -j2 CXX=g++ CC=gcc"
docker exec mt2009 bash -lc "cd /usr/local/src/Server/libpoly && make clean && make -j2 CXX=g++ CC=gcc"
docker exec mt2009 bash -lc "cd /usr/local/src/Server/libsql && make clean && make -j2 CXX=g++ CC=gcc"
docker exec mt2009 bash -lc "cd /usr/local/src/Server/libgame/src && make clean && make -j2 CXX=g++ CC=gcc"

Deploy + restart:

docker stop mt2009
docker cp mt2009:/usr/local/src/Server/db/db_rr41023 /tmp/db_rr41023
docker cp mt2009:/usr/local/src/Server/game/game_rr41023 /tmp/game_rr41023
docker cp /tmp/db_rr41023 mt2009:/usr/home/mt2/db/db
docker cp /tmp/game_rr41023 mt2009:/usr/home/mt2/share/game
docker start mt2009

Çalışması için
mt2009_working.tar

docker load -i mt2009_working.tar
docker run -d --name mt2009 mt2009_working

2) Çalışan veriler/runtime

mt2_runtime_20260321_215821.tar.gz
Gerekirse container içine açmak için:

docker cp mt2_runtime_20260321_215821.tar.gz mt2009:/tmp/
docker exec mt2009 bash -lc "tar -xzf /tmp/mt2_runtime_20260321_215821.tar.gz -C /usr/home/mt2"

oyunda eskisi gibi pong ve ping olayı aktif edildi ve eski yıllardaki gibi yavaşlık olayları (officialdeki gibi) bundada artık var ve oyuna giriş yapmadan önce beklerken basur olacaksınız ve oyuna girmeden önce disable_miles_rsx_provider.bat çalıştırın

1774125078872.webp

1774125209495.webp

1774125229475.webp

1774125289167.webp

1774125358461.webp

1774125504099.webp


dosyalar uplanıyor





%100
 

Dosya Eklentileri

Son düzenleme:
Geri
Üst