Karakter damage işlememe sorunu fixi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Aktif olan sunucumda yaşadığım problemin fixini vermek istiyorum,
Kendi sunucunuzdada deneyebilirsiniz,
Karakter savunma bonusları (Ninjalara & Savaşçılara & Suralara & Lycanlara & Şamanlara karşı savunma şansı vs.) 95/100 üzerine çıktığında ninjalardan vs diger karakterlerden düz vuruş harici hasar yememesinin fixidir,

Ek olarak kılıç vs savunmaların 100 üzerine çıktığında düz vuruş vs hasar işlememesini bu cpp'den gerekli yerleri değiştirerek düzeltebilirsiniz.

#Edit:
Kendilerini geliştirici sanan bir takım insanların yapmış olduğu yorumlara cevaben bu konuyu düzenliyorum,

Bu işlemde oyun içerisindeki savunmaları düşürmüş olursunuz,
buda demek oluyorki diğer sunuculardaki 60 karakter savunması sizde ortalama 40 karakter savunmasına eşdeğer olur,
Aktif olarak yüksek online barındıran ve videodaki problemi yaşayan bir çok serverin kullandığı bir düzenlemedir.
Aktif sunucusu olmayan hayatında hiç birşey başaramamış insanların yorumlarını postta görüyorsunuz polemiğe dahi giremiycem xd

Basit bir örnek:



<3

Çözüm :

Metin2 Karakter Damage İşlememe Sorunu Fixi

Metin2 özel sunucularında karşılaşılan yaygın problemlerden birisi de karakterin hasar alması durumunda damage işleminin işlememesi veya eksik işlemesi problemidir. Bu durum hem oyuncu deneyimini ciddi anlamda olumsuz etkiler hem de sunucu sahipleri için büyük bir teknik sorun teşkil eder. Bu makalede, Metin2 özel sunucularda karakterlerin hasar alamaması ya da hasar almasına rağmen can değerinin düşmemesi gibi durumların nedenlerini ve çözüm yollarını detaylı şekilde inceleyeceğiz.

Sorun Nedir?

Metin2 özel sunucularında geliştirme yapılırken ya da mevcut bir game server üzerinde değişiklik yapıldığında, bazen karakterlerin hasar alması sırasında bir aksama oluşabilir. Oyuncuların saldırıya uğramasına rağmen can değerinde bir azalma gözlenmeyebilir. Bu durum genellikle C++ tabanlı server-side kodlamada yapılan yanlışlıklar, db ile game sunucusu arasındaki veri akışındaki aksaklıklardan ya da client tarafında yapılan modifikasyonlardan kaynaklanabilir.

Sorunun Kökeni[/CHARACTER]

Bu sorunun temelinde genellikle game core içindeki damage algoritmasının doğru şekilde tetiklenememesi yatmaktadır. Hasar algoritması, character.cpp dosyasında tanımlanan fonksiyonlar aracılığıyla çalışır. Eğer bu dosya içindeki OnAttack, Damage, PointChange gibi fonksiyonlarda bir değişiklik yapılmışsa veya bu fonksiyonlara müdahale edilmişse, hasar işleme süreci aksamaya başlayabilir. Ayrıca, db core ile game sunucusu arasında veri senkronizasyonu eksikse, character nesnesinin HP değeri doğru şekilde güncellenemeyebilir.

Fix Adımları

1. Game Core dosyalarında damage fonksiyonuna müdahale edildiyse, bu fonksiyonun orijinal haline döndürülmesi gerekir. Özellikle PointChange metodunun doğru şekilde POINT_HP parametresiyle çağrıldığından emin olunmalıdır.

2. Client tarafında uiscript veya Python GUI ile yapılan değişiklikler kontrol edilmeli. Oyuncunun HP çubuğunun güncellenip güncellenmediği incelenmelidir. PyRoot üzerinden UI sistemine veri aktarımı eksikse, kullanıcı arayüzünde hasar yansıması olmaz ancak sunucuda gerçek hasar alınmış olabilir.

3. Auth ve Game sunucuları arasındaki packet trafiği incelenmelidir. Hasar alınca sunucudan gelen damage packet'ler doğru şekilde işleniyor mu diye kontrol edilmelidir. Eğer packet gelmiyorsa, core seviyesinde bir engel vardır.

4. Martysama veya diğer Metin2Dev kaynak kodları kullanılıyorsa, bu kaynaklardaki damage sistemleri özelleştirilmiş olabilir. Bu durumda, damage sistemini özgün Metin2 yapısına uygun hale getirmek gerekir.

Önerilen Test Yöntemi

Sunucu üzerinde damage işlemini test etmek için admin komutları kullanılabilir. Örneğin, /damage komutu ile manuel olarak hasar verilebilir ve bu hasarın doğru şekilde işlenip işlenmediği izlenebilir. Ayrıca, loglama sistemleri sayesinde damage olaylarının sunucu tarafında kaydedilip kaydedilmediği takip edilebilir.

Sonuç

Metin2 özel sunucularda character hasar alma sisteminin doğru işlemesi, oyuncu deneyimi ve sunucu stabilitesi açısından kritik öneme sahiptir. Bu sorunun çözümü için server-side ve client-side yapılar detaylı şekilde incelenmeli, C++ kaynak kodlarında gerekli düzeltmeler yapılmalı ve db ile game sunucuları arasında veri bütünlüğü sağlanmalıdır.


Metin2 Character Damage Not Working Fix

In Metin2 private servers, one of the common issues encountered is the problem where character damage is not being processed properly. This issue negatively affects the player experience and causes significant technical problems for server administrators. In this article, we will examine in detail the reasons behind why characters do not take damage or their HP does not decrease even after taking damage in Metin2 private servers, along with solutions.

What Is The Problem?

When developing Metin2 private servers or making modifications to an existing game server, sometimes an issue occurs where the damage process fails during combat. Players might be attacked but their HP value does not decrease. This usually stems from incorrect modifications in the C++ based server-side code, data flow disruptions between the db and game server, or modifications made on the client side.

Root Of The Issue

The core of this issue often lies in the failure of the damage algorithm within the game core. The damage algorithm works through functions defined in the character.cpp file. If any changes have been made to functions like OnAttack, Damage, PointChange, or they were modified incorrectly, the damage processing may fail. Additionally, if synchronization between the db core and game server is broken, the character's HP value may not update correctly.

Fix Steps

1. If modifications were made to the damage function in the Game Core files, revert them to their original state. Ensure that the PointChange method is correctly called with the POINT_HP parameter.

2. Check modifications made on the client side via uiscript or Python GUI. Verify whether the player's HP bar updates properly. If the UI data transfer from PyRoot is incomplete, the user interface may not reflect damage visually, even though actual damage is dealt on the server.

3. Examine packet traffic between the auth and game servers. Ensure that damage packets are correctly processed when damage occurs. If no packet is received, there is likely an obstacle at the core level.

4. If Martysama or other Metin2Dev source codes are used, the damage system might be customized. In such cases, the damage system must be aligned with the original Metin2 structure.

Suggested Testing Method

To test damage processing on the server, admin commands can be used. For example, the /damage command can manually apply damage to check if it is processed correctly. Additionally, logging systems can track whether damage events are recorded server-side.

Conclusion

Ensuring that the character damage system works properly in Metin2 private servers is critical for player experience and server stability. To resolve this issue, server-side and client-side structures should be examined thoroughly, necessary fixes should be applied to the C++ source code, and data integrity between the db and game servers must be ensured.
 

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

Geri
Üst Alt