Client / Pack Marty sama 5.9 files

  • Konuyu açan Konuyu açan Proffesorr
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 207

Proffesorr

Yeni Üye
Üye
Mesaj
3
Beğeni
2
Puan
3
Ticaret Puanı
0
Martysama 5.9 — Türkçe / DX11 / Kaynak Kodlu

Merhaba arkadaşlar,

Forumda bulduğum Martysama 5.9 files ilk hâliyle Macarcaydı. Türkçeye çevirdim ve geliştirmeye devam ediyorum. Türkçe karakterler, giriş ekranı ve envanter açılışındaki bazı sorunları düzelttim.

Pakete Efsun Botu, Rank, Ikarus Pazar, Fırsatı Yakala, ahşap arena ve F8’den açılan Toplu Sil / Sat sistemini dahil ettim. Tespit ettiğim ölü kodları, tekrarlanan fonksiyonları ve paketlerdeki eski dosya kopyalarını kaldırıp yeniden derledim.

Önceki ana oyun paketi yaklaşık 5,2 GB’tı. Burada paylaştığım, yukarıdaki sistemleri içeren sürümün ZIP boyutu yaklaşık 2,4 GB.

İstemci x64 / DirectX 11. Hazır sunucu dosyalarını FreeBSD 15 ve MariaDB 10.11 ortamında denedim. Kaynaklar ve kurulum açıklamaları paketin içinde. Özgün yazar ve lisans bilgilerini korudum.

Deneyip hata görürseniz konuya yazabilirsiniz. Desteğe ihtiyacı olanlar Discord üzerinden bana ulaşabilir: s1de_0

Eklediğim sistemlerin oyun içi görsellerini de konuya ekledim.

Simya sistemini bu sürümde oyuncu kullanımına kapattım. İlgili kaynak kodları pakette duruyor; tamamen silinmiş değil.

İndir:

İsteğe bağlı: ' tuşuyla tek seferde eşya toplama

Ana sunucumda kullandığım toplu toplama düzenlemesini eklemek isteyenler için kodları aşağıya bırakıyorum. Bu düzenleme indirme paketine dahil değildir.

Tek basışta mevcut toplama mesafesindeki, toplama hakkınız olan eşyaları toplar. Aynı işlem Z tuşunda da çalışır. Düzenlemeden önce üç dosyayı yedekleyin.



Dosyalar ZIP içindeki Sources/Native/Client/UserInterface klasöründedir.

1. PythonItem.h
PythonItem.h:
Genişlet Daralt Kopyala
// Include bölümüne yoksa ekle:
#include <vector>

// Aranır:
bool GetCloseItem(const TPixelPosition & c_rPixelPosition,
                 DWORD* pdwItemID, DWORD dwDistance=300);

// Hemen altına eklenir:
void GetCloseItemVector(const TPixelPosition& position,
                       std::vector<DWORD>& itemIDs,
                       DWORD distance = 300);

2. PythonItem.cpp
PythonItem.cpp:
Genişlet Daralt Kopyala
// Include bölümüne olmayanları ekle:
#include "PythonPlayer.h"
#include <algorithm>
#include <utility>
#include <vector>

// Aranır:
// BOOL CPythonItem::GetGroundItemPosition
// Bu fonksiyonun hemen ÜSTÜNE aşağıdaki yeni fonksiyon eklenir.
// Mevcut GetCloseItem fonksiyonu silinmez.

void CPythonItem::GetCloseItemVector(
    const TPixelPosition& position,
    std::vector<DWORD>& itemIDs,
    DWORD distance)
{
    itemIDs.clear();
    std::vector<std::pair<double, DWORD>> closeItems;
    const double radiusSquared = double(distance) * double(distance);
    CPythonPlayer& player = CPythonPlayer::Instance();
    const char* playerName = player.GetName();

    for (TGroundItemInstanceMap::const_iterator it =
             m_GroundItemInstanceMap.begin();
         it != m_GroundItemInstanceMap.end(); ++it)
    {
        const TGroundItemInstance* item = it->second;
        if (!item)
            continue;

        const double dx =
            double(position.x) - double(item->v3EndPosition.x);
        const double dy =
            double(position.y) + double(item->v3EndPosition.y);
        const double distanceSquared = dx * dx + dy * dy;

        if (distanceSquared <= radiusSquared &&
            (item->stOwnership.empty() ||
             item->stOwnership == playerName ||
             player.IsPartyMemberByName(item->stOwnership.c_str())))
        {
            closeItems.emplace_back(distanceSquared, it->first);
        }
    }

    std::sort(closeItems.begin(), closeItems.end());
    itemIDs.reserve(closeItems.size());
    for (const auto& item : closeItems)
        itemIDs.push_back(item.second);
}

3. PythonPlayerInput.cpp
PythonPlayerInput.cpp:
Genişlet Daralt Kopyala
// Include bölümüne yoksa ekle:
#include "PythonItem.h"

// Aranır:
// void CPythonPlayer::PickCloseItem()
// Mevcut fonksiyon, süslü parantezleriyle birlikte aşağıdakiyle değiştirilir.

void CPythonPlayer::PickCloseItem()
{
    CInstanceBase* mainActor = NEW_GetMainActorPtr();
    if (!mainActor)
        return;

    TPixelPosition position;
    mainActor->NEW_GetPixelPosition(&position);

    std::vector<DWORD> itemIDs;
    CPythonItem& items = CPythonItem::Instance();
    items.GetCloseItemVector(
        position, itemIDs, __GetPickableDistance());

    for (DWORD itemID : itemIDs)
        SendClickItemPacket(itemID);
}

Derleme
Üç dosyayı kaydettikten sonra istemciyi Release / x64 olarak yeniden derleyin. Oyun kapalıyken eski Client/metin2client.exe dosyasını yedekleyip yeni derlenen EXE ile değiştirin.

Paylaştığım paketin game.py dosyasında ' (DIK_GRAVE) ve Z tuşları zaten PickUpItem işlevine bağlıdır; tuş kodu eklemeniz gerekmez. Bu paket için sunucu, SQL veya ağ paketi değişikliği gerekmez. Mevcut toplama mesafesi ve sunucunun sahiplik/envanter kontrolleri korunur.
 

Dosya Eklentileri

  • Ekran görüntüsü 2026-11-03 221940.webp
    Ekran görüntüsü 2026-11-03 221940.webp
    195,3 KB · Gösterim: 89
  • Ekran görüntüsü 2026-11-03 221951.webp
    Ekran görüntüsü 2026-11-03 221951.webp
    162,1 KB · Gösterim: 89
  • Ekran görüntüsü 2026-11-03 222011.webp
    Ekran görüntüsü 2026-11-03 222011.webp
    185,3 KB · Gösterim: 90
  • Ekran görüntüsü 2026-11-03 222025.webp
    Ekran görüntüsü 2026-11-03 222025.webp
    186,6 KB · Gösterim: 89
  • Ekran görüntüsü 2026-11-03 222045.webp
    Ekran görüntüsü 2026-11-03 222045.webp
    200,2 KB · Gösterim: 85
  • Ekran görüntüsü 2026-11-03 222127.webp
    Ekran görüntüsü 2026-11-03 222127.webp
    182,2 KB · Gösterim: 86
Son düzenleme:
Paylaşım için teşekürler fakat konuyu lekelemek gibi algılamayın yanlış düşüncelere sahip olmanızı istemem dosyaları ben baya inceledim ve baya sorunlu gıbı duruyor artı olarak yapay zeka duzenlemesı olarak her bir klasor farklı yerde olmak üzere tasarlanmıs kurmak istiyen arkadaşlara nasıl bir yol izliyeceksiniz onuda bilmiyorum fakat kurulum wideosu atmanız en dogrusu olacak diye düşünüyorum ilk paylaşın hali ile karşılaştırma yapacak olursak ilk halini zaten kurmak için düzenleme saglanmış paylaşmış oldugunuz martysama 5. 9 bana kurulmuyacak gıbı geliyor beni geçin çünkü bu işe yeni başlıyacak arkadaşlar için veya gelişime hefesi olan insanlar için zor oalcagını düşünüyorum buda her ınsana yardım edeceksınız sureklı anlamına gelmez musaıtlık açısında hazır bsd veya klasörleri tek tamamlıyıp paylaşım yapmış olsaydınız iyi olurdu indiren arkadaşlar bunuda fark edeceklerini düşünüyorum çünkü klasorler baya dagıtılmış tmm kurulum için gerekli anlatımlar var ve bilmiyenleride hesaba koyup düzenleme yapsaydınız çok güzel olacaktı diye düşünüyorum
 
Paylaşım için teşekürler fakat konuyu lekelemek gibi algılamayın yanlış düşüncelere sahip olmanızı istemem dosyaları ben baya inceledim ve baya sorunlu gıbı duruyor artı olarak yapay zeka duzenlemesı olarak her bir klasor farklı yerde olmak üzere tasarlanmıs kurmak istiyen arkadaşlara nasıl bir yol izliyeceksiniz onuda bilmiyorum fakat kurulum wideosu atmanız en dogrusu olacak diye düşünüyorum ilk paylaşın hali ile karşılaştırma yapacak olursak ilk halini zaten kurmak için düzenleme saglanmış paylaşmış oldugunuz martysama 5. 9 bana kurulmuyacak gıbı geliyor beni geçin çünkü bu işe yeni başlıyacak arkadaşlar için veya gelişime hefesi olan insanlar için zor oalcagını düşünüyorum.
ai ile kurulum halledilir de bu files dx11 in üzerinden gidilmiş o fileste zaten sorunlar vardı hadi dx9ex dx11e geçirilip dense daha iyide. bilemedm kullanan kullanır gibi
 
ai ile kurulum halledilir de bu files dx11 in üzerinden gidilmiş o fileste zaten sorunlar vardı hadi dx9ex dx11e geçirilip dense daha iyide. bilemedm kullanan kullanır gibi
bilmiyorum yani ben ilk dosya halini inceledim ve suankı halinin inceledim ilk dosya hali daha mantıklı gıbıme geliyor bizler hakında gelirizde bilmiyenleride hesaba katacak olursak suan ındırenlerin kafası almıyacagını düşünüyorum çünkü klasorler öyle dagılmışki toparlamak benim için zor olduysa diger arkadaşları dusunemıyorum ilk paylaşılan dosyaları kurmaları tavsıye ederım çünkü yapay zeka ile klasor olusturulmuş baya dagıtılmıs ve sadece türkçe dil destegi eklenilmiş gibime geldi çünkü karşılastırma yaptım ilk paylaşılan dosyayı tercı ederım
 
Geri
Üst