Portföye Dön
Backend

ZOMBİ EVENT SİSTEMİ

ZOMBİ EVENT SİSTEMİ

ZOMBİ EVENT SİSTEMİ

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

Proje Detayları

Teknolojiler
["C++" "C#" "PYTHON"]
Kategori
Backend
Tarih
28.03.2026

Paylaş