[C++ / Lua] Metin2 – Gökyüzünden Yang ve Eşya Yağmuru Sistemi (Item Rain System)
admin
Katılım
23 Eki 2022
Mesajlar
8,917
Çözümler
13
Tepkime puanı
6,556
Puanları
113
Yaş
28
Bu sistem, Metin2'de yang ve itemların gökyüzünden düşüyormuş gibi görünmesini sağlar. Oyuncunun etrafına belirli aralıklarla item spawn edilerek görsel bir "yağmur efekti" oluşturulur.

Sistem iki parçadan oluşur:

  • Server (Lua Quest): Drop noktalarını ve vnum üretimini kontrol eder
  • Client (C++ / PythonItem.cpp): Düşen itemların fiziksel davranışını (yükseklik, hız, düşüş animasyonu) yönetir


⚙️ Çalışma Mantığı

Sistem temel olarak şu şekilde çalışır:


Lua Quest

Belirlenen radius içinde vnum (yang/item) spawn eder

Server bu itemları yere düşecek şekilde oluşturur

Client (PythonItem.cpp)

Item'a yükseklik + düşüş hızı uygulanır

Gökyüzünden düşen item efekti oluşur



🧠 Sistem Detayı

🔹 Server tarafı (Lua Quest)

  • range fonksiyonu genişletilerek radius destekli hale getirilir
  • Oyuncunun etrafında belirli bir alan içinde spawn yapılır
  • Hardcoded veya range vnum kullanılabilir (örnek: yang vnum = 2)


🔹 Client tarafı (C++ / PythonItem.cpp)

  • Item düşüş animasyonu kontrol edilir
  • Şu değerler ayarlanabilir:
    • Düşme yüksekliği
    • Düşme hızı
    • Fiziksel animasyon süresi


🔧 Özelleştirme Alanları

Sistem tamamen modifiye edilebilir:

✔ Düşme hızı
✔ Spawn sayısı
✔ Etki süresi
✔ Radius (alan genişliği)
✔ Item türü (yang / item / taş / vb.)


⚠️ Geliştirici Notları

  • Vnum hardcode edilmiştir (örnek amaçlı)
  • Birden fazla item için range veya item_type sistemi önerilir
  • En iyi yöntem:
    👉 Direct vnum yerine "item mapping system" kullanmak


💡 Önerilen Geliştirme (Best Practice)

Hardcode yerine:

✔ Item Type sistemi oluştur
✔ Vnum → logical ID mapping yap
✔ Drop logic'i genişletilebilir hale getir


🧾 Örnek Kullanım Senaryosu

  • Event zamanı "Yang Rain"
  • Boss öldüğünde loot yağmuru
  • GM event drop sistemi
  • Görsel effect + reward system
 
Üst
Reklam Ver
R10dev.net'i ana ekrana ekle!