- Katılım
- 6 Mayıs 2022
- Konular
- 48,270
- Mesajlar
- 48,580
- Tepkime puanı
- 74
- M2 Yaşı
- 3 yıl 11 ay 10 gün
- Trophy Puan
- 48
- M2 Yang
- 488,669
Herkese selamlar,
Başımı ağrıtan ve beni rahatsız eden herhangi bir forumdada paylaşıldığını görmediğim bir sorunun çözümünü paylaşmak istiyorum. Şaman karakterin Şimşek Çağırma (vnum 107) skilli bazen hasar vermiyor, özellikle kalabalık mob gruplarında bu sorun daha sık yaşanıyordu. Skill efekti görünüyor ama hasar işlemiyordu.
Aşağıdaki şekilde ekleme yaparsanız sorun çözülecektir:
Bu sorun muhtemelen orijinal kaynak kodunda bir unutma/eksiklik sonucu oluşmuş. Diğer şaman skilleri (SKILL_NOEJEON = 106, SKILL_CHAIN = 108) düzgün tanımlanmışken, aradaki SKILL_BYEURAK = 107 atlanmış.
Metin2 Lobby
Metin2 özel sunucularında geliştirilen sistemlerden biri olan Şaman sınıfının 'Şimşek Çağırma' yeteneği, SKILL_BYEURAK - 107 olarak tanımlanmaktadır. Bu yetenek, oyuncular tarafından yüksek hasar potansiyeli sunması nedeniyle tercih edilmektedir. Ancak bazı durumlarda Şimşek Çağırma yeteneği hasar vermemekte veya beklenen gibi çalışmadığı görülmektedir. Bu durum özellikle PvP sistemlerinde ciddi bir performans düşüşüne yol açabilmektedir.
Sorunun Nedenleri
Bu tür hatalar genellikle kaynak kod seviyesinde meydana gelen eksikliklerden veya yanlış yapılandırmalardan kaynaklanabilir. Öncelikle yetenek sistemine entegre edilmiş olan skill.lua dosyasında gerekli tanımın doğru yapıldığından emin olunmalıdır. Ayrıca skill_proto.db veya client_skill.tab gibi dosyalarda eksik ya da yanlış tanımlamalar soruna neden olabilir.
Hasar Hesaplama Formülü
Metin2 özel sunucularında hasar hesaplaması genellikle C++ tabanlı sistemlerde tanımlıdır. Şimşek Çağırma yeteneği için özel olarak tanımlanmış hasar formülü, client_src veya game_src klasörlerindeki kaynak kodlarda yer almalıdır. Eğer bu formül eksikse ya da eksik parametrelerle çalışıyorsa, yetenek hasar vermeyebilir. Özellikle C++ script geliştirme bilgisi gerektiren bu alanlarda dikkatli çalışılması gerekir.
Çözüm Adımları
1. Skill Dosyası Kontrolü: skill.lua dosyasında SKILL_BYEURAK - 107 numarası için gerekli tanımların yapıldığından emin olun. Özellikle attack_range, hit_type, damage_type gibi parametreler doğrulanmalıdır.
2. Veritabanı Eşleşmesi: skill_proto.db veya client_skill.tab dosyalarında bu numara için doğru veri girişlerinin sağlandığından emin olun.
3. Paket ve Sunucu Uyumluğunu Kontrol Etme: client_src ile game_src arasında versiyon uyumu yoksa, yetenek çalışmayabilir. Her iki tarafın da aynı yapıya sahip olduğundan emin olun.
4. Python GUI ve Py Root Ayarları: Eğer sunucu tarafında Python tabanlı sistemler kullanılıyorsa, yetenek aktif edildiğinde py_root üzerinden doğru veri akışı sağlanmalıdır.
Metin2 Lobby olarak, bu tür özel sistem hatalarını çözmek için Martysama kaynak kodlarını ve gelişmiş C++ system çözümlerini kullanmanızı öneririz. Yetenek sistemlerinin doğru entegrasyonu için hem client hem de server tarafında detaylı testler yapmanız önemlidir. Ayrıca, game core ve db core yapılarını düzenli olarak güncel tutmak, benzer hataların önlenmesine yardımcı olacaktır.
Not: Eğer tüm kontroller yapıldıktan sonra hala sorun devam ediyorsa, yeteneğin client tarafında doğru render edilip edilmediği kontrol edilmelidir. Bazen yetenek görünüyor gibi gözükse de hasar vermiyor olabilir. Bu gibi durumlarda UIScript üzerinde değişiklik yapılması gerekebilir.
Metin2 Lobby
One of the systems developed in Metin2 private servers is the Shaman class's 'Lightning Call' ability, defined as SKILL_BYEURAK - 107. This skill is preferred by players due to its high damage potential. However, in some cases, the Lightning Call ability fails to deal damage or does not function as expected. This issue can lead to significant performance drops especially in PvP systems.
Causes of the Issue
Such errors usually arise from missing elements or misconfigurations at the source code level. First, ensure that the necessary definition for this ability is correctly implemented in the skill.lua file. Additionally, missing or incorrect definitions in files such as skill_proto.db or client_skill.tab may also cause the problem.
Damage Calculation Formula
In Metin2 private servers, damage calculation is typically defined in C++ based systems. The special damage formula for Lightning Call should be located within source codes in the client_src or game_src folders. If this formula is incomplete or runs with incorrect parameters, the skill may fail to deal damage. These areas require careful work, especially since they involve C++ script development knowledge.
Solution Steps
1. Check Skill File: Ensure the required definitions for SKILL_BYEURAK - 107 are properly set in the skill.lua file. Particularly verify parameters like attack_range, hit_type, and damage_type.
2. Database Match: Ensure correct data entries exist for this number in skill_proto.db or client_skill.tab files.
3. Verify Package and Server Compatibility: If there is no version compatibility between client_src and game_src, the skill might not function. Make sure both sides are aligned structurally.
4. Python GUI and Py Root Settings: If Python-based systems are used on the server side, ensure proper data flow through py_root when the skill is activated.
Metin2 Lobby recommends using Martysama source codes and advanced C++ system solutions to resolve such specific system errors. For proper integration of skill systems, thorough testing on both client and server sides is crucial. Additionally, regularly updating game core and db core structures helps prevent similar issues.
Note: If the problem persists even after all checks, verify whether the skill is correctly rendered on the client side. Sometimes the skill may appear active but fail to deal damage. In such cases, modifications to UIScript may be necessary.
Başımı ağrıtan ve beni rahatsız eden herhangi bir forumdada paylaşıldığını görmediğim bir sorunun çözümünü paylaşmak istiyorum. Şaman karakterin Şimşek Çağırma (vnum 107) skilli bazen hasar vermiyor, özellikle kalabalık mob gruplarında bu sorun daha sık yaşanıyordu. Skill efekti görünüyor ama hasar işlemiyordu.
Sorunun Teknik sebebi:
Metin2 sunucusunda uzak menzilli skiller (ranged skills) iki farklı mekanizma ile tetiklenebilir:- <li data-xf-list-type="ol">USE_SKILL paketi → Doğrudan UseSkill() fonksiyonu çağrılır <li data-xf-list-type="ol">SHOOT paketi → Shoot() → CFuncShoot sınıfı üzerinden işlenir
Aşağıdaki şekilde ekleme yaparsanız sorun çözülecektir:
Kod:
// CFuncShoot struct'ı içindeki operator() fonksiyonunda switch-case bloğunu bul case SKILL_NOEJEON: // altına ekle case SKILL_BYEURAK:
Kod:
// CInputMain::Attack fonksiyonu içindeki switch-case bloğunu bul case SKILL_NOEJEON: // altına ekle case SKILL_BYEURAK:
Kod:
// FuncSplashDamage struct'ı içindeki operator() fonksiyonunda if (!m_bDisableCooltime && m_pInfo && !m_pInfo->HitOnce(m_pkSk->dwVnum) && m_pkSk->dwVnum != SKILL_MUYEONG) // değiştir if (!m_bDisableCooltime && m_pInfo && !m_pInfo->HitOnce(m_pkSk->dwVnum) && m_pkSk->dwVnum != SKILL_MUYEONG && m_pkSk->dwVnum != SKILL_BYEURAK) // CHARACTER::ComputeSkillAtPosition fonksiyonu içinde if (!m_bDisableCooltime && !m_SkillUseInfo[dwVnum].HitOnce(dwVnum) && dwVnum != SKILL_MUYEONG) // değiştir if (!m_bDisableCooltime && !m_SkillUseInfo[dwVnum].HitOnce(dwVnum) && dwVnum != SKILL_MUYEONG && dwVnum != SKILL_BYEURAK) // CHARACTER::ComputeSkill fonksiyonu içinde if (!m_bDisableCooltime && !m_SkillUseInfo[dwVnum].HitOnce(dwVnum) && dwVnum != SKILL_MUYEONG) // değiştir if (!m_bDisableCooltime && !m_SkillUseInfo[dwVnum].HitOnce(dwVnum) && dwVnum != SKILL_MUYEONG && dwVnum != SKILL_BYEURAK)
Kod:
// arat: bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster) // içinde arat: else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK)) // satırı sil: else if (dwVnum == SKILL_BYEURAK) ComputeSkill(dwVnum, pkVictim);
Bu sorun muhtemelen orijinal kaynak kodunda bir unutma/eksiklik sonucu oluşmuş. Diğer şaman skilleri (SKILL_NOEJEON = 106, SKILL_CHAIN = 108) düzgün tanımlanmışken, aradaki SKILL_BYEURAK = 107 atlanmış.
Metin2 Lobby
Metin2 özel sunucularında geliştirilen sistemlerden biri olan Şaman sınıfının 'Şimşek Çağırma' yeteneği, SKILL_BYEURAK - 107 olarak tanımlanmaktadır. Bu yetenek, oyuncular tarafından yüksek hasar potansiyeli sunması nedeniyle tercih edilmektedir. Ancak bazı durumlarda Şimşek Çağırma yeteneği hasar vermemekte veya beklenen gibi çalışmadığı görülmektedir. Bu durum özellikle PvP sistemlerinde ciddi bir performans düşüşüne yol açabilmektedir.
Sorunun Nedenleri
Bu tür hatalar genellikle kaynak kod seviyesinde meydana gelen eksikliklerden veya yanlış yapılandırmalardan kaynaklanabilir. Öncelikle yetenek sistemine entegre edilmiş olan skill.lua dosyasında gerekli tanımın doğru yapıldığından emin olunmalıdır. Ayrıca skill_proto.db veya client_skill.tab gibi dosyalarda eksik ya da yanlış tanımlamalar soruna neden olabilir.
Hasar Hesaplama Formülü
Metin2 özel sunucularında hasar hesaplaması genellikle C++ tabanlı sistemlerde tanımlıdır. Şimşek Çağırma yeteneği için özel olarak tanımlanmış hasar formülü, client_src veya game_src klasörlerindeki kaynak kodlarda yer almalıdır. Eğer bu formül eksikse ya da eksik parametrelerle çalışıyorsa, yetenek hasar vermeyebilir. Özellikle C++ script geliştirme bilgisi gerektiren bu alanlarda dikkatli çalışılması gerekir.
Çözüm Adımları
1. Skill Dosyası Kontrolü: skill.lua dosyasında SKILL_BYEURAK - 107 numarası için gerekli tanımların yapıldığından emin olun. Özellikle attack_range, hit_type, damage_type gibi parametreler doğrulanmalıdır.
2. Veritabanı Eşleşmesi: skill_proto.db veya client_skill.tab dosyalarında bu numara için doğru veri girişlerinin sağlandığından emin olun.
3. Paket ve Sunucu Uyumluğunu Kontrol Etme: client_src ile game_src arasında versiyon uyumu yoksa, yetenek çalışmayabilir. Her iki tarafın da aynı yapıya sahip olduğundan emin olun.
4. Python GUI ve Py Root Ayarları: Eğer sunucu tarafında Python tabanlı sistemler kullanılıyorsa, yetenek aktif edildiğinde py_root üzerinden doğru veri akışı sağlanmalıdır.
Metin2 Lobby olarak, bu tür özel sistem hatalarını çözmek için Martysama kaynak kodlarını ve gelişmiş C++ system çözümlerini kullanmanızı öneririz. Yetenek sistemlerinin doğru entegrasyonu için hem client hem de server tarafında detaylı testler yapmanız önemlidir. Ayrıca, game core ve db core yapılarını düzenli olarak güncel tutmak, benzer hataların önlenmesine yardımcı olacaktır.
Not: Eğer tüm kontroller yapıldıktan sonra hala sorun devam ediyorsa, yeteneğin client tarafında doğru render edilip edilmediği kontrol edilmelidir. Bazen yetenek görünüyor gibi gözükse de hasar vermiyor olabilir. Bu gibi durumlarda UIScript üzerinde değişiklik yapılması gerekebilir.
Metin2 Lobby
One of the systems developed in Metin2 private servers is the Shaman class's 'Lightning Call' ability, defined as SKILL_BYEURAK - 107. This skill is preferred by players due to its high damage potential. However, in some cases, the Lightning Call ability fails to deal damage or does not function as expected. This issue can lead to significant performance drops especially in PvP systems.
Causes of the Issue
Such errors usually arise from missing elements or misconfigurations at the source code level. First, ensure that the necessary definition for this ability is correctly implemented in the skill.lua file. Additionally, missing or incorrect definitions in files such as skill_proto.db or client_skill.tab may also cause the problem.
Damage Calculation Formula
In Metin2 private servers, damage calculation is typically defined in C++ based systems. The special damage formula for Lightning Call should be located within source codes in the client_src or game_src folders. If this formula is incomplete or runs with incorrect parameters, the skill may fail to deal damage. These areas require careful work, especially since they involve C++ script development knowledge.
Solution Steps
1. Check Skill File: Ensure the required definitions for SKILL_BYEURAK - 107 are properly set in the skill.lua file. Particularly verify parameters like attack_range, hit_type, and damage_type.
2. Database Match: Ensure correct data entries exist for this number in skill_proto.db or client_skill.tab files.
3. Verify Package and Server Compatibility: If there is no version compatibility between client_src and game_src, the skill might not function. Make sure both sides are aligned structurally.
4. Python GUI and Py Root Settings: If Python-based systems are used on the server side, ensure proper data flow through py_root when the skill is activated.
Metin2 Lobby recommends using Martysama source codes and advanced C++ system solutions to resolve such specific system errors. For proper integration of skill systems, thorough testing on both client and server sides is crucial. Additionally, regularly updating game core and db core structures helps prevent similar issues.
Note: If the problem persists even after all checks, verify whether the skill is correctly rendered on the client side. Sometimes the skill may appear active but fail to deal damage. In such cases, modifications to UIScript may be necessary.
