Proje Hakkında
METİN2 ZOMBİ ETKİNLİĞİ SİSTEMİ
Hayatta Kal – Enfekte Et – İyileştir
AMAÇ:
Sunucudaki oyuncuların rastgele roller aldığı bir hayatta kalma mücadelesi.
Oyuncular zombiye dönüşmemek, zombi olanlar ise herkesi enfekte etmek için savaşır. Doktorlar ise bu kaosu iyileştirmeye çalışır.
SİSTEMİN GENEL YAPISI:
GM KOMUTLARI:
Komut Açıklama
/zombie_event_start Etkinliği başlatır. 3 rastgele oyuncu zombi olur.
/zombie_event_end Etkinliği sonlandırır, tüm oyuncular iyileştirilir.
/zombie_event_cure Etkinlik devam ederken herkesi temizler.
/zombiliste Zombi, doktor ve insan listesini; kill sayılarıyla birlikte gösterir.
ZOMBİ MEKANİĞİ
Etkinlik başladığında sistem rasgele 3 oyuncuyu zombiye dönüştürür.
Zombi olan oyuncular, diğer oyuncuları keserse onlar da zombiye dönüşür.
Her başarılı enfekte:
Zombi olan oyuncuya +1 kill sayısı verir.
Hareket ve saldırı hızında artış sağlar (progressive buff).
Zombiler sonsuza dek ölümsüz değildir, doktorlar tarafından iyileştirilebilir.
DOKTOR MEKANİĞİ
GM tarafından özel olarak atanabilir ya da rastgele seçilir.
Zombilerden etkilenmez, bağışıktır.
Yakınındaki oyunculara etkileşimle iyileştirme yapabilir.
Her iyileştirme:
Heal sayısına +1 ekler.
Etkinlik sonunda en çok iyileştiren doktor ödüllendirilebilir.
İNSANLAR
Etkinliğe normal oyuncu olarak başlarlar.
Zombilerden kaçmalı veya doktorlardan yardım almalıdırlar.
En uzun süre hayatta kalan "insan", etkinliğin hayatta kalma şampiyonu olabilir.
F10 ZOMBİ PANELİ – TAKİP PANELİ
Tuş: F10
Kullanımı: Aç/Kapat yapar
Panel, 3 sütuna ayrılmıştır:
Zombiler Doktorlar İnsanlar
Kill sayılarıyla listelenir Heal sayıları ile gösterilir Enfekte olmayan oyuncular görünür
Üst Bilgi Alanı:
Kalan Süre: (dakika/saniye)
Lider Zombi: En çok kişiyi enfekte eden zombi
Hayatta Kalan: İnsan sayısı
Panel Özellikleri:
Panel sade ui.TextLine altyapısı ile hazırlanmıştır
.mse / .dds gibi dış dosya gerekmez
Dinamik olarak 5 saniyede bir güncellenir
Scroll desteği ile uzun listeleri destekler
PAKET İLETİŞİMİ (220 / 221)
HEADER_GC_ZOMBIE_HUD (220):
Süre, lider zombi, hayatta kalan sayısI
HEADER_GC_ZOMBIE_PANEL (221):
Tüm oyuncuların:
Adı Rolü (zombi / doktor / insan)
Kill/heal sayısı
Client tarafında bu paketler net.RegisterGamePacketHandler() ile doğrudan interfaceModule.py içinde karşılanır.
GÖRSEL DETAYLAR
Zombi olan karakterler yeşil vücut rengine bürünür (shader veya renk efekti)
Doktor karakterlere özel efekt (isteğe bağlı)
Oyuncu rütbeleri (örneğin: İlk Zombi, Baş Doktor) etiket olarak gösterilebilir
Herkes tarafından kolayca takip edilebilecek sade UI
ETKİNLİK SONU SIRALAMALARI
Etkinlik sona erdiğinde aşağıdaki bilgiler /zombiliste komutuyla GM tarafından görülebilir:
En çok kill alan zombi
En çok iyileştirme yapan doktor
En uzun süre hayatta kalan insan
Bu bilgilere göre ödüller dağıtılabilir.
TEKNİK ÖZELLİKLER
Özellik Açıklama
Server-side C++ ile yazılmış, char.h, cmd.cpp, char_battle.cpp, event.cpp entegreli
Client-side Python tabanlı, game.py, interfacemodule.py, networkmodule.py, uiZombieEvent.py
Performans Optimize edilmiş, düşük yük
Dosya Gereksinimi Harici .mse, .dds, .tga dosyası gerektirmez
UI Genişletilebilir Kolayca efekt, ikon, scroll bar eklenebilir
TEST/DEBUG DESTEKLERİ
Komutla test edilebilir yapı
Loglama, traceback desteği
Panel, oyun açıldığında yüklenir ve hata vermez
Exception korumaları sayesinde client çökmez
AVANTAJLAR
✔ Tamamen özelleştirilebilir
✔Çok oyunculu PvE/PvP etkinliği
✔ Rol sistemli yapısı ile RPG atmosferi
✔ GUI paneliyle herkes takip edebilir
✔ Sunucu logları ile GM kontrolü yüksek
✔ Hiçbir dış bağımlılık gerekmez (.mse, icon, simge)
🔚SONUÇ
Bu sistem sayesinde Metin2 sunucunuzda:
Sürekli kullanılabilecek eğlenceli bir etkinlik kazanırsınız
Topluluk etkileşimi artar
Zombi temalı sezon etkinlikleri yapılabilir
Farklı sınıflar (doktor vs zombi) ile PvE dengesi güçlenir
RP sunucular için bile kullanılabilecek özgün bir oyun mekaniği oluşur
Hayatta Kal – Enfekte Et – İyileştir
AMAÇ:
Sunucudaki oyuncuların rastgele roller aldığı bir hayatta kalma mücadelesi.
Oyuncular zombiye dönüşmemek, zombi olanlar ise herkesi enfekte etmek için savaşır. Doktorlar ise bu kaosu iyileştirmeye çalışır.
SİSTEMİN GENEL YAPISI:
GM KOMUTLARI:
Komut Açıklama
/zombie_event_start Etkinliği başlatır. 3 rastgele oyuncu zombi olur.
/zombie_event_end Etkinliği sonlandırır, tüm oyuncular iyileştirilir.
/zombie_event_cure Etkinlik devam ederken herkesi temizler.
/zombiliste Zombi, doktor ve insan listesini; kill sayılarıyla birlikte gösterir.
ZOMBİ MEKANİĞİ
Etkinlik başladığında sistem rasgele 3 oyuncuyu zombiye dönüştürür.
Zombi olan oyuncular, diğer oyuncuları keserse onlar da zombiye dönüşür.
Her başarılı enfekte:
Zombi olan oyuncuya +1 kill sayısı verir.
Hareket ve saldırı hızında artış sağlar (progressive buff).
Zombiler sonsuza dek ölümsüz değildir, doktorlar tarafından iyileştirilebilir.
DOKTOR MEKANİĞİ
GM tarafından özel olarak atanabilir ya da rastgele seçilir.
Zombilerden etkilenmez, bağışıktır.
Yakınındaki oyunculara etkileşimle iyileştirme yapabilir.
Her iyileştirme:
Heal sayısına +1 ekler.
Etkinlik sonunda en çok iyileştiren doktor ödüllendirilebilir.
İNSANLAR
Etkinliğe normal oyuncu olarak başlarlar.
Zombilerden kaçmalı veya doktorlardan yardım almalıdırlar.
En uzun süre hayatta kalan "insan", etkinliğin hayatta kalma şampiyonu olabilir.
F10 ZOMBİ PANELİ – TAKİP PANELİ
Tuş: F10
Kullanımı: Aç/Kapat yapar
Panel, 3 sütuna ayrılmıştır:
Zombiler Doktorlar İnsanlar
Kill sayılarıyla listelenir Heal sayıları ile gösterilir Enfekte olmayan oyuncular görünür
Üst Bilgi Alanı:
Kalan Süre: (dakika/saniye)
Lider Zombi: En çok kişiyi enfekte eden zombi
Hayatta Kalan: İnsan sayısı
Panel Özellikleri:
Panel sade ui.TextLine altyapısı ile hazırlanmıştır
.mse / .dds gibi dış dosya gerekmez
Dinamik olarak 5 saniyede bir güncellenir
Scroll desteği ile uzun listeleri destekler
PAKET İLETİŞİMİ (220 / 221)
HEADER_GC_ZOMBIE_HUD (220):
Süre, lider zombi, hayatta kalan sayısI
HEADER_GC_ZOMBIE_PANEL (221):
Tüm oyuncuların:
Adı Rolü (zombi / doktor / insan)
Kill/heal sayısı
Client tarafında bu paketler net.RegisterGamePacketHandler() ile doğrudan interfaceModule.py içinde karşılanır.
GÖRSEL DETAYLAR
Zombi olan karakterler yeşil vücut rengine bürünür (shader veya renk efekti)
Doktor karakterlere özel efekt (isteğe bağlı)
Oyuncu rütbeleri (örneğin: İlk Zombi, Baş Doktor) etiket olarak gösterilebilir
Herkes tarafından kolayca takip edilebilecek sade UI
ETKİNLİK SONU SIRALAMALARI
Etkinlik sona erdiğinde aşağıdaki bilgiler /zombiliste komutuyla GM tarafından görülebilir:
En çok kill alan zombi
En çok iyileştirme yapan doktor
En uzun süre hayatta kalan insan
Bu bilgilere göre ödüller dağıtılabilir.
TEKNİK ÖZELLİKLER
Özellik Açıklama
Server-side C++ ile yazılmış, char.h, cmd.cpp, char_battle.cpp, event.cpp entegreli
Client-side Python tabanlı, game.py, interfacemodule.py, networkmodule.py, uiZombieEvent.py
Performans Optimize edilmiş, düşük yük
Dosya Gereksinimi Harici .mse, .dds, .tga dosyası gerektirmez
UI Genişletilebilir Kolayca efekt, ikon, scroll bar eklenebilir
TEST/DEBUG DESTEKLERİ
Komutla test edilebilir yapı
Loglama, traceback desteği
Panel, oyun açıldığında yüklenir ve hata vermez
Exception korumaları sayesinde client çökmez
AVANTAJLAR
✔ Tamamen özelleştirilebilir
✔Çok oyunculu PvE/PvP etkinliği
✔ Rol sistemli yapısı ile RPG atmosferi
✔ GUI paneliyle herkes takip edebilir
✔ Sunucu logları ile GM kontrolü yüksek
✔ Hiçbir dış bağımlılık gerekmez (.mse, icon, simge)
🔚SONUÇ
Bu sistem sayesinde Metin2 sunucunuzda:
Sürekli kullanılabilecek eğlenceli bir etkinlik kazanırsınız
Topluluk etkileşimi artar
Zombi temalı sezon etkinlikleri yapılabilir
Farklı sınıflar (doktor vs zombi) ile PvE dengesi güçlenir
RP sunucular için bile kullanılabilecek özgün bir oyun mekaniği oluşur
Proje Detayları
Teknolojiler
["C++"
"C#"
"PYTHON"]
Kategori
Backend
Tarih
28.03.2026