[C++] Slotların içinden geçmek Normal veya Binek ile - Stop Collision with Mobs or Stop Collision Mount with Mobs

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Günümüzde birçok oyunda bu sistem kullanıldığı için olmayanlarda oyuncuların istediğini çok kez gördüm. 2 farklı şekilde paylaşıyorum istediğiniz şekilde ekleyebilirsiniz.

Kod:
BOOL CActorInstance::TestActorCollision(CActorInstance & rVictim)
Tab ayarlarından dolayı vs. arattığınızda bulamassa eğer sadece TestActorCollision olarak aratıp ihtiyacınız olan satırı bulabilirsiniz.



Eğer karakterler slotların içinden direkt geçsin istiyorsanız;
Kod:
if (rVictim.IsEnemy() || rVictim.IsPoly())         return FALSE;


Eğer karakterler sadece binek üzerindeyken slotların içinden geçsin istiyorsanız;
Kod:
if (m_pkHorse)     {         if (rVictim.IsEnemy() || rVictim.IsPoly())         return FALSE;     }

farklı şekillerde de yapılabilir, fanteziye gerek yok
kg


Bir başka kullanım şekli;

Metin2'de Slotlardan Geçme Sistemi - Normal veya Binek Durumu ile Canavarlarla Çarpışmayı Durdurma


Metin2 özel sunucularında oyun içinde oyuncuların bineklerle veya normal yürüme durumunda canavarlarla çarpışmalarını engellemek isteyebilirsiniz. Bu özellikle PvP sunucularında ya da belirli etkinliklerde avantaj sağlamak veya oyun deneyimini geliştirmek amacıyla tercih edilir. Bu yazıda, C++ tabanlı bir slot sistemi üzerinden nasıl bu durumu kontrol edebileceğinizi anlatıyoruz.

1. Sistem Tanımı

Bu sistem sayesinde oyuncu belli slotlara belirli itemleri yerleştirerek canavarlarla çarpışmama yetkisi kazanabilir. Aynı zamanda binekli iken de bu etkinin çalışması sağlanabilir. Bu işlem için game core üzerinde değişiklikler yapılması gerekir.

2. Gerekli Kodlama Adımları

C++ tabanlı Metin2 server src üzerinde aşağıdaki adımları takip edin:

- Oyuncunun envanterinde belirli slotlara özel itemler konulduğunda carpisma_kapali gibi bir flag tanımlanır.

- Bu flag, CHARACTER::OnClick veya benzeri fonksiyonlarda kontrol edilir.

- Eğer flag aktifse ve karakter binekliyse bile mob ile çarpışma gerçekleşmez.

3. Örnek Kullanım Senaryosu

Bir oyuncu slot 10 ve slot 15'e belirli bir item yerleştirdiğinde, sistem bu slotları kontrol eder. Eğer doğru itemler varsa ve carpisma_kapali aktifse, karakter mob ile çarpışmaz. Bu durum hem yürüme hem de binekli durumda çalışmalıdır.

4. Uygulama Detayları

Sistemi uygularken client src ve server src arasında senkronizasyon önemlidir. martysama gibi örnek yapılar üzerinden test yapılmalı ve compile sırasında hata alınmaması sağlanmalıdır. Ayrıca db core üzerinde de gerekirse veri tutulabilir.

5. Ekstra Güvenlik ve Performans

Sistemi geliştirirken performans kaybı yaşamamak adına slot kontrolleri minimum seviyede olmalı ve sadece gerekli durumlarda çalıştırılmalıdır. Python GUI veya py root gibi sistemlerle entegrasyon da düşünülebilir.

Sonuç

Bu sistem, Metin2 özel sunucularında daha özelleştirilmiş ve stratejik oyun deneyimi sunmak için ideal bir özelliktir. Metin2 development sürecinde dikkatli kodlama ve testler ile bu sistemi başarıyla entegre edebilirsiniz.


Passing Through Slots - Stop Collision with Mobs or Stop Collision Mount with Mobs in Metin2


In Metin2 private servers, you may want to prevent players from colliding with monsters while on mounts or walking normally. This is especially preferred in PvP servers or during certain events to gain advantages or enhance the gaming experience. In this article, we explain how to control this situation through a C++-based slot system.

1. System Description

With this system, players can gain immunity from colliding with monsters by placing specific items into designated slots. Additionally, this effect can also work while mounted. To achieve this, modifications must be made to the game core.

2. Required Coding Steps

On the C++-based Metin2 server src, follow these steps:

- Define a flag like carpisma_kapali when specific items are placed in certain inventory slots.

- This flag is checked within functions such as CHARACTER::OnClick.

- If the flag is active, even if the character is mounted, no collision occurs with mobs.

3. Example Use Case

When a player places specific items into slot 10 and slot 15, the system checks these slots. If the correct items exist and carpisma_kapali is active, the character will not collide with mobs. This should function both when walking and mounted.

4. Implementation Details

When implementing, synchronization between client src and server src is critical. Testing should be done using structures like martysama, and errors during compile should be avoided. Also, data might need to be stored in the db core if required.

5. Extra Security and Performance

While developing the system, avoid performance loss by keeping slot checks minimal and running them only when necessary. Integration with systems like Python GUI or py root can also be considered.

Conclusion

This system is an ideal feature for offering more customized and strategic gameplay in Metin2 private servers. With careful coding and testing during Metin2 development, you can successfully integrate this system.
 

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

Benzer konular

Geri
Üst Alt