64 Bit Directx9 Temiz Server Files

  • Konuyu açan Konuyu açan hasanmacit
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 1K

hasanmacit

Geliştirici
Geliştirici
Yardımsever Üye
Emekli Üye
Editör
Mesaj
5.652
Çözümler
235
Beğeni
6.778
Puan
3.850
Ticaret Puanı
7


Konu devden 'tan alıntıdır. Yazısını değiştirmeden paylaşıyorum ingilizcesi olmayan çeviriye koysun. 64 bit için iyi bir başlangıç.
Hello everyone,

I’ve recently decided to start developing a set of clean, modernized files that are:

  • Easy to use
  • Have no external dependencies
  • Work out-of-the-box with CMake
For the base, I used the sources and client originally released by , and I’ve made several adjustments to simplify and modernize the setup.

🔧
What’s Included


  • Fully CMake compatible (no need for pkg or vcpkg).
  • All external dependencies are contained within the project:
    • vendor folder → dependencies built with the project
    • include folder → header-only libraries
  • 64-bit
  • Client build uses DirectX9


🚀
Getting Started

Server


Repo:

  1. Clone the repository.
  2. Run install.py -> it will create the required channel folders automatically
  3. You can configure map indexes per channel inside channels.py
Server Sources

Repo:

cmake -S . -B build
This will generate the solution or makefiles, depending on your setup.

Client Sources

Repo:

cmake -S . -B build
For a compatible client base, you can use this repo:

Main features

  • x64
  • DirectX 9
  • batched text rendering
  • global party
  • effect decorators removed
  • better memory pooling
  • dislay mode detector removed
  • automatic MSAA detection
  • DeVIL -> stb_image
  • no DLLs, all libs are static
  • WebView2 for embedded browser
  • SSE2 mesh deform
 
Client kısmına bakmıştım (şu anda sanırım indirilmiyor ) çok temiz. Belkide en temiz client düzeni olabilir.
 
eğer github desktopla client src ve clienti çekerken veya zip olarak indirirken liblerde, exe dosyalarında veya packlarda hata yaşadıysanız (1 saat önce denemediyseniz kesin yaşadınız) github linklerini tekrar indirmeyi veya desktop uygulaması ile çekmeyi deneyebilirsiniz. paylaşan arkadaş linkleri güncellemiş. bilginiz olsun​
 


Ez egy idézet Dev Distraught című művéből . nélkül osztom meg. Ha nincs angol fordításod, kérlek, mellékeld. Jó kiindulópont a 64 bites rendszerhez.
Sziasztok mindenkinek,

Nemrég úgy döntöttem, hogy elkezdek egy sor letisztult, modernizált fájlt fejleszteni, amelyek a következők:

  • Könnyen használható
  • Nincsenek külső függőségeik
  • Dolgozz azonnal a CMake-kel
Alapnak az eredetileg által kiadott forráskódokat és klienst használtam , és számos módosítást eszközöltem a beállítás egyszerűsítése és modernizálása érdekében .

🔧
Mit tartalmaz?


  • Teljesen CMake kompatibilis (nincs szükség pkg vagy vcpkg fájlokra).
  • Minden külső függőség a projekten belül található:
    • szállítói mappa → a projekttel létrehozott függőségek
    • mappa beillesztése → csak fejlécből álló könyvtárak
  • 64 bites
  • A kliens build DirectX9-et használ.


🚀
Első lépések

Szerver


Repó:

  1. Klónozd a tárházat.
  2. Futtassa az install.py parancsot -> ez automatikusan létrehozza a szükséges csatornamappákat
  3. A channels.py fájlon belül csatornánként konfigurálhatja a map indexeket.
Szerver erőforrások

Repó:

cmake -S.-B build
Ez a beállításoktól függően létrehozza a megoldást vagy a makefile-okat.

Ügyfélforrások

Repó:

cmake -S.-B build
Kompatibilis kliensbázishoz használhatod ezt a repót:

Főbb jellemzők

  • x64
  • DirectX 9
  • kötegelt szövegmegjelenítés
  • globális párt
  • effekt dekorátorok eltávolítva
  • jobb memória-pooling
  • megjelenítési mód érzékelő eltávolítva
  • automatikus MSAA-észlelés
  • DeVIL -> stb_image
  • nincsenek DLL-ek, minden könyvtár statikus
  • WebView2 beágyazott böngészőhöz
  • SSE2 háló deformációja
Tx
 
few fix to eterlib



C++:
Genişlet Daralt Kopyala
#include <string>
#include <sstream>
#include <iomanip>
#include <cstdint>

static std::string dump_hex(const uint8_t* ptr, const std::size_t length)
{
    if (ptr == nullptr || length == 0)
        return {};

    std::stringstream ss;
    ss << std::hex << std::setfill('0');

    for (std::size_t i = 0; i < length; ++i) {
        ss << std::setw(2) << static_cast<int>(ptr[i]);
        if (i != length - 1)
            ss << ", ";
    }

    return ss.str();
}
 
2 aydır üzerinde çalıştım bu files'in pack kısmı çok çorba sadece ayrıca build'i ayrı ayrı alıyorsunuz db içinde game içinde ayrı src tarafında çok fazla fix gerektiren işler var 1-99 yapı için ideal
 
Filesi Kullanacaklar için pack kapatma için düzenlenmiş yeni script :D

script:
Genişlet Daralt Kopyala
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Pack Tool - Game Folder Packer (Rich Deluxe Edition ✨)
=========================Furkan Güçlü=============================

PackMaker.exe ile klasörleri pck formatına dönüştürür.
- Renkli ve kullanıcı dostu arayüz
- Log dosyası (pack.log)
- Progress bar + tablo
"""

import argparse
import os
import subprocess
import datetime
from concurrent.futures import ThreadPoolExecutor
from rich.console import Console
from rich.progress import Progress, SpinnerColumn, BarColumn, TimeElapsedColumn
from rich.table import Table

# Rich console
console = Console()
OUTPUT_FOLDER = "../pack"


def log(message: str):
    """Log dosyasına yaz."""
    timestamp = datetime.datetime.now().strftime("[%Y-%m-%d %H:%M:%S]")
    msg = f"{timestamp} {message}"
    with open("pack.log", "a", encoding="utf-8") as f:
        f.write(msg + "\n")


def run_pack(folder_name: str, output_folder: str):
    """PackMaker.exe ile paketleme yap."""
    try:
        subprocess.run(
            ["PackMaker.exe", "--input", folder_name, "--output", output_folder],
            check=True,
            stdout=subprocess.DEVNULL,
            stderr=subprocess.STDOUT
        )
        console.print(f"✅ [bold green]Packed[/]: {folder_name}")
        log(f"Packed: {folder_name}")
    except subprocess.CalledProcessError as e:
        console.print(f"❌ [bold red]Error[/]: {folder_name} -> {e}")
        log(f"Error packing {folder_name}: {e}")


def pack_folder(folder_path: str, output_folder: str):
    """Tek klasör paketle."""
    folder_name = os.path.basename(folder_path)
    if not os.path.exists(folder_path):
        console.print(f"⚠️ [yellow]Folder not found[/]: {folder_name}")
        log(f"Folder not found: {folder_name}")
        return
    console.print(f"📦 [cyan]Packing[/]: {folder_name}")
    run_pack(folder_name, output_folder)


def print_help():
    """Rich tablo ile özel yardım mesajı göster."""
    table = Table(title="📦 Pack Tool Yardım", show_header=True, header_style="bold cyan")
    table.add_column("Parametre", style="bold")
    table.add_column("Açıklama")
    table.add_row("folder_name", "Paketlenecek klasör adı")
    table.add_row("--all", "Tüm klasörleri paketle")
    table.add_row("--ignore [klasörler]", "Yok sayılacak klasörleri belirt")
    table.add_row("--output [klasör]", "Çıkış klasörü yolu")
    table.add_row("-h, --help", "Yardım mesajını göster")
    console.print(table)


def pack_all_folders(ignore_list, output_folder: str):
    """Tüm klasörleri paketle (progress bar ile)."""
    all_folders = [
        f for f in os.listdir()
        if os.path.isdir(f) and f not in ignore_list
    ]

    if not all_folders:
        console.print("[red]Hiç klasör bulunamadı![/]")
        return

    table = Table(title="📂 Klasör Listesi", show_header=True, header_style="bold magenta")
    table.add_column("No", justify="center")
    table.add_column("Klasör Adı", justify="left")
    for i, f in enumerate(all_folders, 1):
        table.add_row(str(i), f)
    console.print(table)

    with Progress(
        SpinnerColumn(),
        "[progress.description]{task.description}",
        BarColumn(),
        TimeElapsedColumn(),
        console=console,
    ) as progress:
        task = progress.add_task("Packing folders...", total=len(all_folders))
        with ThreadPoolExecutor() as executor:
            for f in all_folders:
                executor.submit(pack_folder, f, output_folder)
                progress.advance(task)


def main():
    parser = argparse.ArgumentParser(add_help=False)
    parser.add_argument("folder_name", nargs="?", help="Paketlenecek klasör adı")
    parser.add_argument("--all", action="store_true", help="Tüm klasörleri paketle")
    parser.add_argument("--ignore", nargs="+", default=[], help="Yok sayılacak klasörler")
    parser.add_argument("--output", default=OUTPUT_FOLDER, help="Çıkış klasörü yolu")
    parser.add_argument("-h", "--help", action="store_true", help="Yardım mesajını göster")
    args = parser.parse_args()

    if args.help:
        print_help()
        return

    if not os.path.exists(args.output):
        os.makedirs(args.output)

    console.print("\n[bold magenta]🚀 Pack Tool Başlıyor![/]\n")

    if args.all:
        pack_all_folders(set(args.ignore), args.output)
    elif args.folder_name:
        folder_path = os.path.abspath(args.folder_name)
        pack_folder(folder_path, args.output)
    else:
        print_help()

    console.print("\n[bold green]🎉 İşlem tamamlandı![/]\n")


if __name__ == "__main__":
    main()
 
Kullanıcak arkadaşlara bilgi mob lag mevcut, forumdaki mob lag fix çalışmıyor bu paylaşılan filese eklenince
 
Geri
Üst