Yerden Nesne , Yang Toplama Süresini Kaldırmak

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 111

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
PythonPlayer.cpp Açılır Ve SendClickItemPacket Fonksiyonu Tamamiyle Değiştirilir :



12312.gif.382e2def97716add84a1544148390e6a.gif

Yerden Nesne , Yang Toplama Süresini Kaldırmak

Metin2 özel sunucularında oyun deneyimini artırmak için birçok küçük değişiklik yapılabilir. Bunlardan birisi de Yerden Nesne ve Yang Toplama Süresi konusudur. Standart Metin2 oyununda, bir karakter öldürüldüğünde veya bir sandık açıldığında çıkan eşya veya yang düşmesinden sonra belirli bir süre geçmeden bu ögeler alınmaz. Bu süre genellikle 10 saniye civarındadır. Ancak bazı özel sunucularda bu sürenin kaldırılması istenebilir. Bu sayede oyuncular daha hızlı hareket edebilir, PvP olaylarında avantaj sağlanabilir.

Neden Bu Süre Kaldırılır?
Özel sunucularda oyun dengesi ve akışı birçok faktöre göre yeniden düzenlenir. Özellikle PvP odaklı sunucularda, hızlı eylemler önemlidir. Bir savaş sonrası düşmanın bıraktığı eşyaları çabuk toplamak, diğer rakiplere göre avantaj sağlar. Bu nedenle toplama süresi gibi bekleme süreçleri kaldırılır ya da azaltılır. Bu ayarlar, genellikle C++ ile yazılmış olan game server source code üzerinde yapılır.

Nasıl Yapılır?
Bu işlem genellikle game core dosyalarında yapılır. Özellikle char_item.cpp ve benzeri dosyalarda nesne toplama mantığı kodlanmıştır. Burada ilgili fonksiyonlarda time check yapan kısımların bypass edilmesi gerekir. Örneğin, bir karakterin item alabilmesi için m_pkillevent veya benzeri kontrol mekanizmaları devreye girer. Bu kontrollerin false dönmesi sağlanırsa, süre geçerli olmaz.

Python Script Tarafında Müdahale
Bazı sunucular, uiscript veya py root üzerinde çalışan sistemlerle de bu süreyi kontrol edebilir. Bu durumda, Python GUI üzerinden item pick-up komutları kontrol edilebilir. Py GUI sistemleri, genellikle istemci tarafında çalışır. Ancak sunucu ile haberleştiği için, sunucudan gelen onaya göre nesne alımı gerçekleşir. Bu yüzden sadece istemcide değil, server-side kodlamada da değişiklik yapılması gerekir.

Dikkat Edilmesi Gerekenler
Süre kaldırıldığında, sunucuda race condition gibi durumlar oluşabilir. Birden fazla oyuncu aynı anda bir eşyayı almaya çalışırsa, sunucu hangisinin önce geldiğini doğru tespit edemeyebilir. Bu tür sorunları önlemek için mutex veya lock mekanizmaları kullanılmalıdır. Ayrıca, süre kaldırıldığında DB tarafında da loglama eksikliği olabilir. Her item alınımı doğru şekilde DB'ye yazılmalıdır.

Sunucu Tercihleri ve Sistemler
Her Metin2 server src dosyasının yapısı farklı olabilir. Martysama veya başka bir sistem kullanıyorsanız, bu süreye özel dosyalar farklı isimler altında olabilir. Metin2Dev veya metin2 development sürecinde bu tür sistemsel farklar önemlidir. Auth ve Game server arasında senkronizasyonun sağlanması da bu süreçte kritiktir.

Sonuç
Yerden nesne ve yang toplama süresi, Metin2 özel sunucularında kullanıcı deneyimini etkileyen küçük ama önemli bir özelliktir. Bu sürenin kaldırılması, PvP ve loot sistemlerini doğrudan etkiler. Ancak bu değişikliğin doğru uygulanması için hem C++ hem de Python seviyesinde bilgi sahibi olmak gerekir. Metin2lobby.com olarak, bu tür gelişmiş sistemleri öğrenmek ve uygulamak isteyen geliştiricilere rehberlik etmeye devam ediyoruz.


Removing Ground Item and Yang Pickup Delay

In Metin2 private servers, several small changes can enhance the gameplay experience. One of these is related to ground item and yang pickup delay. In standard Metin2, after a character dies or a chest is opened, there is usually a short waiting period before items or yang can be collected. This delay is typically around 10 seconds. However, in some private servers, this delay may need to be removed. That way, players can act faster, especially in PvP scenarios.

Why Is This Delay Removed?
The game balance and flow are often adjusted in private servers based on various factors. Particularly in PvP-oriented servers, fast actions are important. Quickly collecting dropped items after a battle provides an advantage over other players. For this reason, delays like the pickup timer are either removed or reduced. These adjustments are generally made within the game server source code written in C++.

How Is It Done?
This process is usually handled in the game core files. Specifically, the logic for item picking is coded in files such as char_item.cpp. In these functions, parts that perform time checks must be bypassed. For example, certain mechanisms like m_pkillevent prevent item collection until a specific time has passed. By ensuring these checks return false, the delay will not apply.

Intervention Through Python Scripts
Some servers control this delay through systems running on uiscript or py root. In such cases, item pick-up commands can be controlled via Python GUI. Such Py GUI systems operate mostly on the client side but still communicate with the server, so changes must also be made on the server-side to fully take effect.

What Should Be Considered?
When the delay is removed, issues like race conditions may occur on the server. If multiple players attempt to collect the same item simultaneously, the server might fail to correctly determine who arrived first. To avoid such problems, mutex or lock mechanisms should be used. Additionally, without the delay, logging in the database (DB) may become incomplete. Every item pickup must be properly recorded in the database.

Server Preferences and Systems
Each Metin2 server src file may have different structures. If you are using systems like Martysama, the relevant files for this delay may have different names. During Metin2Dev or metin2 development, such structural differences are important. Proper synchronization between the auth and game servers is also critical during this process.

Conclusion
Ground item and yang pickup delay is a small but significant feature affecting user experience in Metin2 private servers. Removing this delay directly impacts both PvP and loot systems. However, implementing this change correctly requires knowledge in both C++ and Python. At Metin2lobby.com, we continue to guide developers who wish to learn and implement such advanced systems.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt