Feign Oyun Sistemi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0

Feign Sistemi Nedir?​

[TANITIM PRONT İÇİN Google Veo Yardım Alındı]​


Feign, maksimum 12 oyuncunun katılabildiği, Masumlar, Hainler ve Tarafsızlar rollerine dayalı bir mini oyundur.
Bu sistemde her oyuncu gizli bir rol alır ve bu rol doğrultusunda oyun boyunca hareket eder.




Oynanış Özeti​

Masumlar:​


  • <li data-xf-list-type="ul">Hedefleri: Hainleri bulup oylamayla elenmesini sağlamak. <li data-xf-list-type="ul">Belirli aralıklarla yapılan oylamalarda hainleri seçmeye çalışırlar. <li data-xf-list-type="ul">Doktor gibi yardımcı rolleri olabilir.

Hainler:​


  • <li data-xf-list-type="ul">Hedefleri: Masumları gizlice öldürmek, dikkat çekmeden kalmak. <li data-xf-list-type="ul">Gece aşamasında hedeflerini seçerek onları etkisiz hale getirirler. <li data-xf-list-type="ul">Kimliklerini gizlemek ana stratejidir.

Tarafsızlar (Örnek: Deli):​


  • <li data-xf-list-type="ul">Hedefleri: Genellikle karmaşık, bazen kendi hayal dünyasında. <li data-xf-list-type="ul">Deli rolü, kendini Doktor sanabilir, ancak öyle değildir. <li data-xf-list-type="ul">Oyunun dengesini değiştirebilir.



Aşamalar​


1. Hazırlık Aşaması​


  • <li data-xf-list-type="ul">Roller dağıtılır. Her oyuncu panelde kendi rolünü görür. <li data-xf-list-type="ul">Oyun başlar.

2. Gece Aşaması​


  • <li data-xf-list-type="ul">Hainler gizlice bir oyuncuyu öldürmek için hedef seçer. <li data-xf-list-type="ul">Diğer roller pasif kalır.

3. Oylama Aşaması​


  • <li data-xf-list-type="ul">Herkesin panelinde "Oy Ver" butonu çıkar. <li data-xf-list-type="ul">Hangi oyuncunun şüpheli olduğunu düşünüyorsa ona oy verir. <li data-xf-list-type="ul">Oylar sistemde toplanır, çoğunluk kimdeyse o oyuncu elenir.

4. Sonuç Aşaması​


  • <li data-xf-list-type="ul">Oy sayımı yapılır. <li data-xf-list-type="ul">Elenen varsa, sonucu herkese gönderilir. <li data-xf-list-type="ul">Beraberlik varsa kimse elenmez.



Teknik Yapı (Sunucu - Client)​

Server (Game - C++)​


  • <li data-xf-list-type="ul">Roller dağıtılır (SendFeignRolePacket). <li data-xf-list-type="ul">Aşamalar başlatılır (SendFeignPhasePacket). <li data-xf-list-type="ul">Oylar alınır (HEADER_CG_FEIGN_VOTE). <li data-xf-list-type="ul">Sonuçlar hesaplanır ve gönderilir (SendFeignVoteResultPacket). <li data-xf-list-type="ul">Sunucu tarafında event.h, char.cpp, input_main.cpp gibi dosyalarla yönetilir.



Client (Python Pack)​


  • <li data-xf-list-type="ul">game.py üzerinden F10 tuşuyla Feign Paneli açılır. <li data-xf-list-type="ul">uifeign.py panelde:
    • <li data-xf-list-type="ul">Rolünüz görüntülenir <li data-xf-list-type="ul">Oylama yapılabilir <li data-xf-list-type="ul">Sonuçlar takip edilir
    <li data-xf-list-type="ul">RecvGamePacket fonksiyonu gelen HEADER_GC_FEIGN_* paketlerini karşılar:
    • <li data-xf-list-type="ul">220: Rol bilgisi <li data-xf-list-type="ul">221: Aşama bilgisi <li data-xf-list-type="ul">222: Oylama sonucu <li data-xf-list-type="ul">223: Kim tarafından öldürüldüğün bilgisi



Ek Özellikler​


  • <li data-xf-list-type="ul">Deli Rolü: Kendini doktor sanan ama gerçekte faydasız olan özel bir karakter. <li data-xf-list-type="ul">Panel Üzerinden Canlı Görüntüleme: Rol, aşama ve sonuçlar gerçek zamanlı olarak Feign paneline gelir. <li data-xf-list-type="ul">Oyuncu Etkileşimi: Her şey oyuncuların kararlarına ve dedikodularına bağlıdır. Sistem pasif değil, aktif bir mini eventtir.



Hangi Tuşla Açılır?​


  • <li data-xf-list-type="ul">F10 tuşu → game.py içerisinde onPressKeyDict ile ToggleFeignPanel() fonksiyonunu çağırır. <li data-xf-list-type="ul">Bu fonksiyon interfaceModule.py'de tanımlanır ve uifeign.FeignPanel() objesini kontrol eder.



Paket Tanımlamaları​


// packet.h
#define HEADER_GC_FEIGN_ROLE 220
#define HEADER_GC_FEIGN_PHASE 221
#define HEADER_GC_FEIGN_VOTE_RESULT 222
#define HEADER_GC_FEIGN_KILL #define 223
#define HEADER_CG_FEIGN_VOTE #define 224
#define HEADER_CG_FEIGN_REPORT#define 225


Bunlar game -&gt; client veya c#define&gt; game yönlü veri trafiğini yönlendiri#defineR]

Komutlar (GM)[/HE#define
  • <li data-xf-list-type="ul">/feign_start → Oyunu başlatır, roller atanır. <li data-xf-list-type="ul">/feign_end → Oyunu sonlandırır. <li data-xf-list-type="ul">/feign_vote 12345 → GM tarafından test için oyuncuya oy verme.




Test Senaryosu​


  1. <li data-xf-list-type="ol">6 oyuncu oyuna katılır. <li data-xf-list-type="ol">GM /feign_start komutunu yazar. <li data-xf-list-type="ol">Her oyuncunun ekranında kendi rolü belirir. <li data-xf-list-type="ol">Gece aşaması başlar → hain oyuncular hedef seçer. <li data-xf-list-type="ol">Gündüz aşaması başlar → herkes oy verir. <li data-xf-list-type="ol">Sonuçlar panelde ve chat'te görünür. <li data-xf-list-type="ol">Döngü tekrarlanır.


Sistem:

game c++ tarafına sorunsuz olarak entegre edilmiştir.




iyi kullanımlar. kanıt videosu vs resim yarın öğleye doğru videolu şekilde gelecektir. 14 kişi ile oynandığı için adam bulmak gerekli.
Feign Oyun Sistemi Nedir?

Metin2 özel sunucularında geliştirilen sistemlerden biri olan Feign Oyun Sistemi, oyuncuların daha stratejik ve dikkatli bir şekilde savaşmalarını sağlayan önemli bir özelliktir. Bu sistem sayesinde, oyuncular rakiplerini kandırmak, onları yanıltmak veya taktiksel avantaj sağlamak amacıyla ölü gibi davranabilirler. Özellikle PvP (Player versus Player) ortamlarında büyük etki yaratır. Bu sistem genellikle C++ veya Python tabanlı olarak geliştirilir ve Metin2 server src dosyalarına entegre edilir.

Feign Sisteminin Özellikleri

Feign sistemi, oyuncu karakterinin ani bir şekilde hareket etmeyi bırakıp yere uzanmasını sağlar. Bu durumda karakterin can çubuğu görünür kalır ama hareket etmez. Bazı sunucularda, karakterin can veya mana değerlerinin belli bir seviyeye düşmesiyle otomatik olarak aktif olabilir. Bu, özellikle zorlu PvP anlarında hayatta kalmak için kritik bir yöntemdir. Sistem, uiscript ile kullanıcı arayüzüne entegre edilip, py gui ile buton şeklinde eklenebilir. Ayrıca game server programming süreçleriyle birlikte, karakterin gerçek ölümü ile sahte ölümü ayırt edecek şekilde yapılandırılır.

Feign Sistemi Nasıl Çalışır?

Sistem, genellikle bir Python komut dosyası üzerinden çalışır. Py root klasöründe yer alır ve Metin2 client src tarafında bir animasyon tetiklenmesiyle aktive edilir. Karakter, belirli bir süre hareketsiz kalır. Bu süre zarfında auth sunucusuna bilgi gönderilerek, karakterin sahte öldüğü diğer oyunculara bildirilir. Martysama ve benzeri geliştirici kaynakları üzerinden, bu sistem için gerekli source edit işlemleri kolayca yapılabilir. Ayrıca db core ile karakterin durumu veritabanında güncellenir. Channel sunucularında test edildiğinde, sistemin PvP dengelerini ciddi anlamda etkilediği görülür.

Feign Sisteminin Avantajları

Bu tür sistemler, Metin2 development sürecinde stratejik bir artı sağlar. Oyuncular, rakip grupların saldırılarını atlatmak, geri plana çekilmek ya da beklenmedik bir anda saldırıya geçmek için feign sisteminden faydalanabilir. Aynı zamanda game core üzerinde yapılan değişikliklerle, sistem başka özelliklerle de birleştirilebilir. Örneğin, karakterin mana tüketimi veya buff süresi gibi durumlarla birlikte çalışması sağlanabilir. Bu sayede Metin2dev toplulukları tarafından daha fazla takdir görebilir. Core dosyalarında yapılan küçük değişikliklerle büyük etkiler elde edilebilir. Db tarafında da karakterin feign modundayken farklı bir durum olarak tanımlanması sağlanmalıdır.

Feign Sistemi Geliştirme Süreci

Feign sistemi geliştirmek isteyen geliştiriciler, önce Metin2 server src dosyalarını analiz etmelidir. Game server programming bilgisi olmadan bu işlem zordur. Ancak doğru C++ kaynak kod örnekleri ve Python sistem bilgisi ile oldukça verimli bir şekilde geliştirilebilir. Pack dosyaları üzerinden istemciye aktarılan animasyonlar ile sistem tamamlanabilir. Metin2 compile işlemi sırasında herhangi bir hata alınmaması için, tüm sistem uyumlu şekilde yapılandırılmalıdır. Martysama gibi forumlardan destek almak da süreci hızlandırabilir.


What is the Feign Game System?

The Feign Game System, one of the systems developed in Metin2 private servers, allows players to fight more strategically and carefully. This system enables players to act dead in order to deceive their opponents, mislead them, or gain tactical advantages. It has a significant impact especially in PvP (Player versus Player) environments. The system is typically developed based on C++ or Python and integrated into Metin2 server src files.

Features of the Feign System

The Feign system causes the player character to suddenly stop moving and lie down on the ground. In this state, the character's health bar remains visible but they do not move. On some servers, the system activates automatically when the character's HP or MP drops below a certain level. This is a critical method for survival during challenging PvP moments. The system can be integrated into the user interface through uiscript and added as a button via py gui. Together with game server programming, it is configured so that other players can distinguish between the character's real death and fake death.

How Does the Feign System Work?

The system generally operates through a Python script file. It resides in the py root folder and is activated by triggering an animation on the Metin2 client src side. The character remains motionless for a specific duration. During this period, information indicating the character is in a fake death state is sent to other players via the auth server. With resources like Martysama, necessary source edits can be easily made. Additionally, the character’s status is updated in the database via the db core. When tested on channel servers, it is observed that the system significantly impacts PvP balance.

Advantages of the Feign System

Such systems provide strategic benefits during Metin2 development. Players can use the Feign system to evade enemy attacks, retreat to the background, or launch unexpected attacks. Moreover, combined with modifications on the game core, the system can integrate additional features. For example, it can be made to function alongside MP consumption or buff durations. This can earn appreciation from Metin2dev communities. Significant effects can be achieved with minor modifications to core files. In the db side, the character must be defined as in a special state while in Feign mode.

Development Process of the Feign System

Developers looking to create a Feign system should first analyze the Metin2 server src files. This process is difficult without knowledge of game server programming. However, with proper C++ source code examples and Python system knowledge, it can be developed quite efficiently. Animations transmitted to the client via pack files complete the system. During the Metin2 compile process, all components must be configured compatibly to avoid any errors. Getting support from forums like Martysama can also speed up the process.
 

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

Geri
Üst Alt