Neler yeni

Foruma hoş geldin, Ziyaretçi

Metin2Lobby.com Metin2 Private Server Tanıtım Advertising Ve Geliştirme Forumudur.Metin2 pvp serverler,1-99,1-105,1-120,55-120 global serverları paylaş yada ara.
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Bayrak Lisanları Sistemi Detaylı Kaldırma Rehberi

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Konular
48,269
Mesajlar
48,579
Tepkime puanı
74
M2 Yaşı
3 yıl 11 ay 10 gün
Trophy Puan
48
Konum
Web sitesi
M2 Yang
488,659
Ticaret : 1 / 0 / 0
Ticaret Oranı : 100%
Oyuncu İletişimini Özgürleştirin: İmparatorluk Dilleri ve Lisan Sistemi Kaldırma
Eski hard-rp öğelerinden kurtulun, global iletişimin önünü açın.



Nedir ve Neden Kaldırıyoruz?

Metin2'nin ilk yıllarında, her ülkenin (bayrağın) ayrı sunucularda olduğu veya rol yapma (RP) öğelerinin baskın olduğu dönemlerde, Lisan Sistemi mantıklıydı. Farklı krallıklardan oyuncuların birbirini "???" şeklinde görmesi düşmanlığı pekiştiriyordu.



Ancak günümüzde:
  • <li data-xf-list-type="ul">Çok dilli (Multi-language) sunucularda zaten gerçek dil bariyerleri var. <li data-xf-list-type="ul">Oyuncular iletişim kurmak için gereksiz yere "Lisan Yüzüğü" veya "Lisan Kitabı" aramak zorunda kalıyor. <li data-xf-list-type="ul">Sohbet akışı yapay bir şekilde kesiliyor.

Bu rehber ile; Lisan becerilerini (Skill), Lisan yüzüklerini, kitaplarını ve arka planda çalışan metin şifreleme (garble) sistemini tamamen kaldırıyoruz.



⚠️ DİKKAT ⚠️
İşlemlere başlamadan önce Client, Server Source ve Veritabanı yedeğinizi mutlaka alınız!



BÖLÜM 1: Client Pack (Arayüz ve Tanımlar)

Dosya: locale/xx/skilltable.txt
İşlem: 126, 127 ve 128 numaralı (Shinsoo, Chunjo, Jinno dilleri) satırlarını tamamen silin.

Dosya: locale/xx/itemdesc.txt
İşlem: Aşağıdaki kodlara sahip eşyaların açıklamalarını silin:
Kod:
50311, 50312, 50313 (Lisan Kitapları) 70006, 70047, 71005, 71006, 71007 (Lisan Yüzükleri)

Dosya: root/consolemodule.py
İşlem: `SetEmpireLanguageMode` fonksiyonunu ve `trans` komutunu silin.

Dosya: root/constinfo.py
İşlem: `CONVERT_EMPIRE_LANGUAGE_ENABLE` değişkenini ve `SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE` fonksiyonunu silin.

Dosya: root/game.py
İşlem: `constInfo.SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE()` çağrısını silin.

Dosya: root/playersettingmodule.py
İşlem: `## Language Skill` altındaki döngü ve tanımlamaları silin.

Dosya: root/uicharacter.py
İşlem: `SHOW_LIMIT_SUPPORT_SKILL_LIST` listelerinin içinden 126, 127 ve 128 numaralarını silin.





BÖLÜM 2: Client Source (İstemci Kaynak)

Dosya: UserInterface/PythonApplication.cpp
İşlem: `LocaleService_IsYMIR()` kontrolü içindeki `.cvt` (convert table) yükleme döngüsünü silin.

Dosya: UserInterface/PythonNetworkStream.h
İşlem: Şu tanımları silin:
Kod:
bool LoadConvertTable... void __ConvertEmpireText... struct STextConvertTable... m_aTextConvTable[3];

Dosya: UserInterface/PythonNetworkStreamModule.cpp
İşlem: `gs_bEmpireLanuageEnable` değişkenini, `netSetEmpireLanguageMode` fonksiyonunu ve modül tablosundaki `SetEmpireLanguageMode` kaydını silin.

Dosya: UserInterface/PythonNetworkStreamPhaseGame.cpp
İşlem:
  • <li data-xf-list-type="ul">Sil: `BOOL gs_bEmpireLanuageEnable = TRUE;` <li data-xf-list-type="ul">Sil: `__ConvertEmpireText` fonksiyonunun tamamı. <li data-xf-list-type="ul">Sil: `gs_bEmpireLanuageEnable` kontrol bloğu ve içindeki `__ConvertEmpireText` çağrısı.

Dosya: UserInterface/PythonNetworkStreamPhaseLoading.cpp
İşlem: `LoadConvertTable` fonksiyonunu tamamen silin.

Dosya: UserInterface/PythonPlayerModule.cpp &amp; PythonPlayerSkill.cpp
İşlem: `c_iSkillIndex_Language1`, `Language2`, `Language3` sabitlerini ve Python tanımlamalarını silin.



BÖLÜM 3: Server &amp; Database

Dosya: Proto/xx/item_names.txt
İşlem: 50311-50313 ve 700xx-710xx aralığındaki Lisan Kitabı/Yüzüğü isimlerini silin.

Dosya: share/locale/xx/common_drop_item.txt
İşlem: 50311, 50312, 50313 (Lisan Kitapları) düşme oranlarını silin.

Dosya: share/locale/xx/special_item_group.txt
İşlem: Sandıklardan veya gruplardan Lisan yüzüklerini ve kitaplarını çıkarın. (Verilen örnekteki gibi sıralamayı kaydırmayı unutmayın).

SQL Sorgusu (Player Veritabanı):
Aşağıdaki eşyaları ve yetenekleri veritabanından temizleyin:

Kod:
DELETE FROM item_proto WHERE vnum IN (50311, 50312, 50313, 70006, 70047, 71005, 71006, 71007); DELETE FROM skill_proto WHERE dwVnum IN (126, 127, 128);



BÖLÜM 4: Server Source (Sunucu Kaynak)

Dosya: game/char_item.cpp
İşlem:
  • <li data-xf-list-type="ul">Sil: Lisan kitapları (50311, 50312, 50313) case bloğu. <li data-xf-list-type="ul">Sil: `UNIQUE_ITEM_RING_OF_LANGUAGE` kontrolü.

Dosya: game/char_skill.cpp
İşlem:
  • <li data-xf-list-type="ul">Sil: `SKILL_LANGUAGE` enumları. <li data-xf-list-type="ul">Sil: `UNIQUE_GROUP_RING_OF_LANGUAGE` kontrolü (Grand Master yapma bloğu). <li data-xf-list-type="ul">Sil: Case 126, 127, 128 blokları.

Dosya: game/config.cpp
İşlem: `LocaleService_LoadEmpireTextConvertTables();` satırını silin.

Dosya: game/input_main.cpp (En Önemli Kısım)
İşlem:
  • <li data-xf-list-type="ul">Sil: `#include "empire_text_convert.h"` <li data-xf-list-type="ul">Düzenle: `CInputMain::Whisper` fonksiyonunda `ConvertEmpireText` ve Lisan yüzüğü kontrollerini kaldırın. <li data-xf-list-type="ul">Düzenle: `FEmpireChatPacket` struct'ını sadeleştirin. `converted_msg`, `bEmpire`, `namelen` değişkenlerini ve `ConvertEmpireText` çağrılarını silin. Sadece orijinal mesajı iletmesini sağlayın. <li data-xf-list-type="ul">Sil: `FYmirChatPacket` struct'ını tamamen silin. <li data-xf-list-type="ul">Düzenle: `CInputMain::Chat` fonksiyonunda `FYmirChatPacket` kullanımını kaldırıp sadece sadeleştirdiğimiz `FEmpireChatPacket`'i kullanın.

Dosya: game/input_p2p.cpp
İşlem: Whisper paketindeki `ConvertEmpireText` dönüşümünü kaldırın. Sadece blok kontrolü kalsın.

Dosya: game/locale_service.cpp &amp; .h
İşlem: `LoadEmpireTextConvertTables` fonksiyonunu ve include dosyasını silin.

Dosya: game/skill.h &amp; unique_item.h
İşlem: İlgili Skill ID'lerini ve Unique Group ID'lerini tanımlardan kaldırın.

Dosya: Server/Source/game/
İşlem: Aşağıdaki dosyaları tamamen silin:
Kod:
empire_text_convert.cpp empire_text_convert.h



Tüm işlemleri tamamladıktan sonra Build almayı unutmayın.
Artık tüm bayraklar birbirini sorunsuz anlayabilir!
İyi forumlar!

Bayrak Lisanları Sistemi Detaylı Kaldırma Rehberi

Metin2 özel sunucularında kullanılan bazı sistemler zamanla eski kalabilir veya daha iyi alternatifler ortaya çıkabilir. Bu durumlarda mevcut sistemleri güvenli ve doğru şekilde kaldırmak, sunucu stabilitesi ve performansı açısından büyük önem taşır. Bu rehberde, Bayrak Lisanları Sistemi'nin nasıl kaldırılacağı detaylı olarak ele alınacaktır. Bu işlem özellikle C++ kaynak kod üzerinde değişiklik yapmayı gerektirir. Sunucunuzda bayrak lisansı sistemi kullanıyorsanız ve artık bu sisteme ihtiyaç duymuyorsanız, bu rehber tam size göre.

Bayrak Lisanları Sistemi Nedir?

Metin2 özel sunucularında bayrak lisansı sistemi, belirli bölgelerde oyuncuların bayrak açarak bir tür kontrol noktası oluşturmasına olanak tanır. Bu sistem genellikle PvP odaklı sunucularda kullanılır. Lisanslar, belirli harita koordinatlarında konumlanır ve bir süreliğine oyuncuların bu alanı kontrol etmesini sağlar. Ancak bu sistemin kaldırılması bazen sunucu yönetimi açısından tercih edilebilir.

Sistem Kaldırma Öncesi Hazırlık

Herhangi bir source edit[/BR]
işlemi yapmadan önce projenizi yedeklemeniz büyük önem taşır. Game server programming sürecinde yapılan küçük hatalar büyük sorunlara yol açabilir. Ayrıca, mevcut sistemle entegre çalışan diğer modüllerin etkilenip etkilenmeyeceği de dikkate alınmalıdır. Özellikle db core ve game core[/BR]
üzerinde yapılacak değişiklikler, doğrudan veritabanı ve oyun mantığını etkileyebilir.

C++ Kaynak Kod Üzerinde Değişiklikler

Bayrak lisansı sisteminin kaldırılması için server src dosyalarında bazı düzenlemeler yapılmalıdır. Öncelikle, lisansla ilgili fonksiyonların tanımlandığı bölümler bulunmalı ve silinmelidir. Bu genellikle battle.cpp, battle.h, char_manager.cpp gibi dosyalarda yer alır. Ayrıca, client src tarafında da bayrağın görsel temsili için yapılan ayarlar kaldırılmalıdır.

Database Ayarlarını Güncelle

Lisans sistemiyle ilişkili olan tabloların veritabanından silinmesi gerekir. Bu genellikle auth veya game veritabanlarında yer alan özel tablolardır. Lisansla ilgili tüm trigger, procedure veya event tanımlamaları da kaldırılmalıdır. Bu adımı eksiksiz yapmazsanız sistemde kalan parçacıklar nedeniyle hata oluşabilir.

Test ve Uygulama

Tüm değişiklikler yapıldıktan sonra, lokal ortamda derleme işlemi gerçekleştirilir. Metin2 compile işlemi sırasında herhangi bir hata alınmaması gerekir. Derleme başarılıysa, test sunucusunda sistemin çalışıp çalışmadığı kontrol edilmelidir. Oyuncuların eski lisans verileriyle ilgili herhangi bir hata yaşamadığından emin olunmalıdır.

Sonuç

Metin2 özel sunucularında bayrak lisansı sistemini kaldırma işlemi, dikkatli planlama ve doğru uygulama ile başarılabilecek bir işlemdir. Bu rehber sayesinde, hem C++ system hem de db tarafında yapılması gereken adımlar hakkında bilgi sahibi oldunuz. Sistemli bir şekilde bu adımları takip ederek, sunucunuzda istenmeyen sistemi güvenli bir şekilde kaldırabilirsiniz.


Detailed Guide to Removing the Flag License System

In Metin2 private servers, some systems may become outdated over time or better alternatives may emerge. In such cases, removing existing systems correctly and safely is crucial for server stability and performance. This guide will detail how to remove the Flag License System. This process requires modifications on C++ source code. If your server uses the flag license system and you no longer need it, this guide is perfect for you.

What is the Flag License System?

The flag license system in Metin2 private servers allows players to set up control points by placing flags in specific areas. This system is typically used in PvP-oriented servers. Licenses are placed at certain map coordinates and allow players to control that area temporarily. However, removing this system might be preferred from a server management perspective.

Preparation Before Removing the System

Before making any source edit[/BR]
changes, backing up your project is critical. Small errors during game server programming can lead to major issues. Additionally, it must be considered whether other modules integrated with the current system will be affected. Particularly, changes made to db core[/BR]
and game core[/BR]
may directly affect database and gameplay logic.

Modifications in C++ Source Code

To remove the flag license system, certain adjustments must be made within the server src files. First, locate and delete sections where functions related to licenses are defined. These are usually found in files like battle.cpp, battle.h, and char_manager.cpp. Also, visual representations of the flag on the client src side must be removed as well.

Update Database Settings

Tables associated with the license system must be removed from the database. These are usually special tables located in auth or game databases. Any triggers, procedures, or events related to licenses should also be deleted. Otherwise, leftover fragments may cause errors in the system.

Testing and Deployment

After all changes are completed, a compilation process is performed in the local environment. No errors should occur during the Metin2 compile process. If the build is successful, verify the functionality on a test server. Ensure players do not encounter errors related to old license data.

Conclusion

Removing the flag license system in Metin2 private servers is an achievable task with careful planning and proper implementation. With this guide, you have gained knowledge on steps required both in C++ system and db sides. By following these steps systematically, you can safely remove unwanted systems from your server.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kaydol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Üye ol
Giriş Yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş Yap

Tema düzenleyici

Tema özelletirmeleri