- Mesaj
- 3
- Beğeni
- 1
- 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
2. PythonItem.cpp
3. PythonPlayerInput.cpp
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.
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:
Linkleri görebilmek için
giriş yap veya kayıt ol.
İ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:
// 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:
// 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:
// 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.webp195,3 KB · Gösterim: 26 -
Ekran görüntüsü 2026-11-03 221951.webp162,1 KB · Gösterim: 25 -
Ekran görüntüsü 2026-11-03 222011.webp185,3 KB · Gösterim: 25 -
Ekran görüntüsü 2026-11-03 222025.webp186,6 KB · Gösterim: 25 -
Ekran görüntüsü 2026-11-03 222045.webp200,2 KB · Gösterim: 25 -
Ekran görüntüsü 2026-11-03 222127.webp182,2 KB · Gösterim: 25
Son düzenleme: