PvP Mode Almayı Tamamen Engellemek - Hüseyin Urdoğan'dan

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar arkadaşlar birçoğunuz kolay tip vslik serverlerde oynamışsınızdır vs atarken serbest alınıp vslerin bozulması hem oyuncuyu rahatsız ediyor hemde oyundan soğutuyordu ben bir ara kendi serverimi açtığımda bunu kapatmıştım şimdide sizlerin yararlanması istiyorum.

Nasıl Yaparım Hüseyin Bey ?


Öncelikle root packlarımızı eternexus programı ile açalım.

Constinfo.py açılır

Kod:
PVPMODE_PROTECTED_LEVEL

Kodu aratılır bundan 2 adet mevcut "=" yanındaki level sınırını siz belirleyeceksiniz serverinizdeki level sınırından yüksek olmalı açmamaları için.

Daha sonra level sınırı ile kapattık şimdi ise pkmode gibi kodlar ile açabiliyorlar onları kapatmayı göstereyim.

Uichat.py açılır

Kod:
def __SendChatPacket(self, text, type): #        if text[0] == '/': #            if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE: #                pass #            else: #                return         if net.IsChatInsultIn(text):             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING)         else:             net.SendChatPacket(text, type)

Bu kısım

Kod:
def __SendChatPacket(self, text, type): #        if text[0] == '/': #            if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE: #                pass #            else: #                return         if net.IsChatInsultIn(text):             chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)         else:             if text.lower().find('edit') != -1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "Server Editsizdir. Edit Satışı olmayacaktır.")                 return             elif text.lower().find('EDIT') != -1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "Server Editsizdir. Edit Satışı olmayacaktır.")                 return             elif text.lower().find('/pk') != -1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "PvP Komutları Yasaktır Serbest Açamazsın!")                 return             elif text.lower().find('/pk ') != -1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "PvP Komutları Yasaktır Serbest Açamazsın!")                 return             elif text.lower().find('/pkmode') != -1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "PvP Komutları Yasaktır Serbest Açamazsın!")                 return             elif text.lower().find('/pkmode ') != -1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "PvP Komutları Yasaktır Serbest Açamazsın!")                 return             net.SendChatPacket(text, type)


Bu şekilde değiştirilir işlem bu kadar pk kodlarının yanına herhangi bir kelimeyide engelleyebilirsiniz bu size kalmış birşey
Sistem Görüntüsü
0k5DjZ.jpg
Y887fON.jpg


Bir Teşekkür Yeterlidir.

- Hüseyin Urdoğan -
PvP Mode Almayı Tamamen Engellemek - Hüseyin Urdoğan'dan


Metin2 özel sunucularında oyuncuların PvP (Player versus Player) moduna geçiş yapmasını engellemek, hem oyun deneyimini optimize etmek hem de sunucu içi huzuru korumak açısından önemli bir konfigürasyondur. Bu makalede, Hüseyin Urdoğan'un önerdiği yöntemi kullanarak PvP modunu tamamen devre dışı bırakmayı detaylı olarak ele alacağız. Bu yöntem, C++ tabanlı Metin2 sunucu kaynak kodları üzerinde değişiklik yaparak sağlanmaktadır.

Neden PvP Modunu Devre Dışı Bırakmalısınız?
Metin2 özel sunucularında, bazı sunucu sahipleri PvP sistemini tamamen kapatmayı tercih eder. Bunun birkaç sebebi olabilir:

- Oyuncuların daha dengeli bir oyun deneyimi yaşaması,
- Sunucu içi çatışmaların azaltılması,
- Yeni başlayan oyuncuların korunması,
- Sunucu yöneticilerinin olaylara müdahale süresinin azaltılması.

Sunucu Kaynak Kodlarında Değişiklik Yapmak
Metin2 özel sunucularında PvP modunu devre dışı bırakmak için, game server tarafında çalışan C++ kaynak kodları üzerinde değişiklik yapılmalıdır. Bu işlem genellikle char_state.cpp veya benzeri dosyalarda yapılır. Aşağıdaki adımlar Hüseyin Urdoğan'un önerdiği yönteme dayanmaktadır:

1. Game server projesinde char_state.cpp dosyasını açın.
2. PvP modunu kontrol eden fonksiyonu bulun. Genellikle SetPvPMode gibi bir fonksiyonla yapılır.
3. Bu fonksiyonun içeriğini boşaltarak veya return komutu ile fonksiyonun hiçbir şey yapmamasını sağlayın.
4. Alternatif olarak, tüm PvP komutlarını devre dışı bırakacak bir if koşulu ekleyin.

UYARI: Bu değişiklikler sunucu davranışlarını doğrudan etkiler. Backup almayı unutmayın.

Python GUI Kullanarak Otomasyon
Eğer Python tabanlı bir yönetim arayüzü (Py GUI) kullanıyorsanız, bu tür değişiklikleri daha kolay bir şekilde takip edebilir veya otomatikleştirebilirsiniz. Örneğin, uiscript içinde bir buton tanımlayarak, belirli bir komut dosyasının çalıştırılmasını sağlayabilirsiniz. Bu sayede PvP modu devre dışı bırakma işlemi daha hızlı ve güvenli hale gelir.

Client SRC Tarafında Ek Ayarlar
Sunucu tarafında yapılan değişiklikler yeterli olmasa da, client src üzerinde de bazı ayarlar yapılabilir. Örneğin, PvP komutlarının görünmesini veya çalışmasını engellemek için uiscript dosyalarında gerekli düzenlemeler yapılabilir. Bu sayede oyuncular PvP komutlarını göremeyecek veya kullanamayacaktır.

Sunucu Paketi (Pack) ile Dağıtım
Değişikliklerden sonra sunucu paketi yeniden derlenmelidir. Metin2 server src ve client src üzerinde yapılan değişiklikler pack dosyasına aktarılır. Bu sayede oyunculara dağıttığınız sürümde PvP modu tamamen devre dışı kalır.

Sonuç
Metin2 özel sunucularında PvP modunu tamamen engellemek, sunucu yöneticileri için önemli bir güvenlik ve oynanış kontrolü aracıdır. Hüseyin Urdoğan'un önerdiği bu yöntem sayesinde, C++ seviyesinde değişiklikler yapılarak PvP sistemi güvenli ve kalıcı bir şekilde kapatılabilir. Bu tür işlemlerde dikkatli olunmalı ve test ortamında denemeler yapılmalıdır.


How to Completely Disable PvP Mode - From Hüseyin Urdoğan


In Metin2 private servers, preventing players from entering PvP (Player versus Player) mode is an important configuration for optimizing the gaming experience and maintaining peace within the server. In this article, we will examine in detail how to completely disable PvP mode using the method suggested by Hüseyin Urdoğan. This method involves making modifications to Metin2 server source codes based on C++.

Why Should You Disable PvP Mode?
Some Metin2 private server owners prefer to completely turn off the PvP system. There can be several reasons for this:

- Providing a more balanced gameplay experience for players,
- Reducing conflicts within the server,
- Protecting new players,
- Decreasing the response time for server administrators to handle incidents.

Making Changes in Server Source Code
To disable PvP mode in Metin2 private servers, modifications must be made to the C++ source code running on the game server. This process usually occurs in files such as char_state.cpp. The following steps are based on the method recommended by Hüseyin Urdoğan:

1. Open the char_state.cpp file in your game server project.
2. Locate the function that controls PvP mode. It is typically named something like SetPvPMode.
3. Empty the content of this function or make it do nothing by adding a return command.
4. Alternatively, add an if condition to disable all PvP commands.

WARNING: These changes directly affect server behavior. Do not forget to take a backup.

Automation Using Python GUI
If you are using a Python-based management interface (Py GUI), you can track or automate these types of changes more easily. For example, by defining a button in uiscript, you can trigger the execution of a specific script file. This makes disabling PvP mode faster and safer.

Additional Settings on Client SRC Side
Even if changes on the server side are sufficient, some adjustments can also be made on the client src side. For instance, to prevent PvP commands from appearing or functioning, necessary modifications can be applied to uiscript files. This way, players will not see or be able to use PvP commands.

Distribution via Server Pack
After making changes, the server pack must be recompiled. Changes made to Metin2 server src and client src are transferred into the pack file. This ensures that in the version distributed to players, PvP mode remains completely disabled.

Conclusion
Completely disabling PvP mode in Metin2 private servers is an important tool for security and gameplay control for server administrators. Thanks to the method suggested by Hüseyin Urdoğan, PvP systems can be safely and permanently turned off by making changes at the C++ level. Attention should be paid during these operations, and tests should be performed in a test environment.
 

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

Geri
Üst Alt