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,280
Mesajlar
48,590
Tepkime puanı
75
M2 Yaşı
3 yıl 11 ay 10 gün
Trophy Puan
48
Konum
Web sitesi
M2 Yang
488,769
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 sunulan Bayrak Lisanları sistemi, PvP alanlarında oyuncuların kendi aralarında savaşmalarını kolaylaştırmak ve stratejik bir deneyim sunmak için tasarlanmıştır. Ancak bazı geliştiriciler bu sistemi kaldırma ihtiyacı hissedebilir. Bu rehberde, Metin2Lobby olarak C++ tabanlı sunucu kaynak kodları üzerinden Bayrak Lisanları sistemini nasıl tamamen kaldıracağınızı adım adım anlatacağız.

Sistem Hakkında Bilgi
Bayrak Lisanları, oyuncuların belirli alanlarda PvP yapabilmeleri için özel bayraklar kullanmalarını sağlayan bir özelliktir. Oyuncular bu bayrakları kullanarak PvP'yi aktif edebilirler. Ancak bu sistem, bazı özel sunucularda istenmeyen durumlara yol açabilir. Bu nedenle geliştiriciler, bu sistemi sunucudan tamamen kaldırmayı tercih edebilir.

Kaldırma İşlemine Başlamadan Önce
Öncelikle sunucu dosyalarınızın yedeklerini almanız önemlidir. Sunucu çalışırken değişiklik yapmamalısınız. Geliştirme ortamınızda tüm işlemleri test ettikten sonra canlıya almanız önerilir. Bu işlemde game core üzerinde değişiklik yapılması gerekecektir.

Adım Adım Bayrak Sistemi Kaldırma
1. Game Kaynak Kodunda Gerekli Dosyaları Bulma: Bayrak sistemi genellikle char.cpp, char.h, battle.cpp, input_main.cpp gibi dosyalarda tanımlanır. Bu dosyaları açarak bayrak ile ilgili fonksiyonları aramalısınız. Örneğin SetFlag(), ToggleFlag(), RemoveFlag() gibi.

2. Flag İlgili Fonksiyonları Devre Dışı Bırakma veya Silme: Bayrakla ilişkili fonksiyonları bulup içeriğini boşaltabilir veya doğrudan silerek sistemi devre dışı bırakabilirsiniz. Bu işlem sırasında PvP mekaniklerini etkilememeye dikkat etmelisiniz.

3. Client Tarafında UI Ayarlarını Güncelleme: Eğer bayrağa ait butonlar veya görseller varsa, uiscript dosyalarında ilgili butonları kaldırarak kullanıcı arayüzünden de sistemi temizlemelisiniz. Bu genellikle root klasöründe yer alır.

4. DB Tarafında Gerekli Alanları Temizleme: Eğer bayrak sistemi veritabanında kayıt tutuyorsa, DB Core üzerinde gerekli sorguları güncellemelisiniz. Bu alanlar genellikle player tablosunda yer alabilir.

Dikkat Edilmesi Gerekenler
Bayrak sistemini kaldırırken PvP mekaniklerine zarar vermemeye dikkat etmelisiniz. Bazı alanlarda PvP'nin açık kalması gerekiyorsa, bunu başka yöntemlerle ayarlamanız gerekebilir. Ayrıca sistem silindiğinde hata mesajları alınıyorsa, bu fonksiyonların çağrıldığı diğer yerleri kontrol etmeniz gerekir.

Sonuç
Bayrak Lisanları sistemi, Metin2 özel sunucularında kullanışlı bir özellik olsa da, bazı sunucu yapılandırmalarında istenmeyen etkilere neden olabilir. Bu rehber sayesinde, C++ tabanlı server src üzerinde sistematik bir şekilde bu özelliği kaldırabilirsiniz. Metin2Lobby olarak, tüm Metin2 geliştiricilerine destek vermeye devam ediyoruz.


Detailed Guide on Removing the Flag Language System
The Flag Languages system in Metin2 private servers is designed to facilitate player-versus-player combat in specific areas and provide a strategic gameplay experience. However, some developers may feel the need to remove this system entirely. In this guide, we will explain step-by-step how to completely remove the Flag Languages system from your server by working with C++ based server source codes at Metin2Lobby.

Information About the System
The Flag Languages system allows players to activate PvP in certain areas using special flags. Players can use these flags to initiate combat. However, this system may lead to unwanted situations in some private servers. Therefore, developers may prefer to fully remove this system from their servers.

Before Starting the Removal Process[/BR]Firstly, you should take backups of your server files. Do not make changes while the server is running. It is recommended to test all operations in a development environment before applying them to the live server. This process will require modifications to the game core.

Step-by-Step Removal of the Flag System
1. Locate Relevant Files in the Game Source Code: The flag system is typically defined in files such as char.cpp, char.h, battle.cpp, input_main.cpp. You should open these files and search for functions related to flags, such as SetFlag(), ToggleFlag(), RemoveFlag().

2. Disable or Remove Flag-Related Functions: You can disable the system by either clearing the contents of the flag-related functions or deleting them entirely. Be careful not to affect PvP mechanics during this process.

3. Update UI Settings on the Client Side: If there are buttons or visuals related to flags, you must remove them from the user interface by editing the uiscript files. These are usually located in the root folder.

4. Clean Up Database Fields if Needed: If the flag system stores records in the database, you must update the relevant queries in the DB Core. These fields are often located in the player table.

Things to Pay Attention To
While removing the flag system, be careful not to harm PvP mechanics. If PvP needs to remain active in certain areas, you might need to adjust this through other methods. Additionally, if error messages occur after the system is deleted, check other locations where these functions are called.

Conclusion
Although the Flag Languages system is a useful feature in Metin2 private servers, it may cause unwanted effects in certain server configurations. With this guide, you can systematically remove this feature on C++ based server src. At Metin2Lobby, we continue to support all Metin2 developers.
 

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