| 6.Skileri Client'ten ve Files'tan Kaldırma |

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar yeni çıkan çoğu fileslarda 6.skiller ekli ve biliyorum ki benim gibi 6.skilleri sevmeyen arkadaşlar var. Bu yüzden internette araştırma yaptım çok düzgün bir konu bulamadım bu yüzden yeni konu açmaya karar verdim umarım işinize yarar.

Öncelikle Client'i Açmak İçin UnEpk Programına İhtiyacımız Var..


Önce Skilleri Tanıyalım:


Skill Adları:
Bedensel Savaşçı: Zeus Darbesi -> Zeus Şimşeği -> Zeus Yıldırımı (6)
Zihinsel Savaşçı: Kutsal Kılıç Vuruşu -> Muazzam Kılıç Darbesi -> Presn Kılıcı Darbesi (21)
Yakın Dövüş Ninja: Apollo Alevi -> Hades Öfkesi -> Ölümcül Saldırı (36)
Uzak Dövüş Ninja: Ani Atak -> Ani Vuruş -> Ani Darbe (51)
Yukarıda parantez içinde yazan rakamlar Client'teki karşılıklarıdır.

Şimdi UnEpk Yardımıyla Root.epk'yı açıyoruz.
Source klasörüne giriyoruz.
" playersettingmodule.py " adlı bir dosyayı açıyoruz
65. Satırda 66.satırda 70.satırda ve 71.satırda skillerin yukarıdaki karşılık gelen numaralarını siliyoruz.
Bunu Yaptıktan Sonra UnEpk Yardımıyla Root.epk'yı kapatıyoruz.

adsziei.png


Şimdi Locale_tr.epk Açıyoruz
Source klasörüne ve Ardından tr klasörüne giriyoruz.
" skilldesc.txt " ve " skilltable.txt " isimli 2 dosyadan yukarıda skillerin numaraları yardımıyla kaldırıyoruz.


adszeue.png


Artık Client ile işimiz kalmadı packleri kapatabilirsiniz.
Şimdi Filezilla veya başka program yardımıyla serverimize bağlanıyoruz

/usr/game/share/locale/turkey dizinine geliyoruz.
sizde farklı olabilir.
" skill_power.txt " isimli dosyayı açıyoruz
Aynı şekilde 6 21 36 51 numaralarıyla başlayan satırları siliyoruz.

/usr/game/share/locale/turkey/quest dizinine geliyoruz.
" locale.lua " dosyasını açıyoruz.
2720. satıra yani locale.GM_SKILL_NAME_DICT = { şeklinde başlayan yerden skilleri kaldırıyoruz.

Bukadar arkadaşlar yapamayan olursa mesaj atabilir.
Lütfen yorum yapmayı unutmayın.
Eğer yapamayanlar olursa özel mesaj atmaları yeterli.
Yorum yapan herkese teşekkür ederim.



Metin2 Lobby olarak, Metin2 özel sunucu geliştirme konusunda uzmanlaşmış bir platformsunuz. Bu yazıda, Skileri Client'ten ve Files'tan Kaldırma işlemi detaylıca ele alınacaktır. Bu işlem, C++ sistem ve Python GUI gibi teknik yapılarla doğrudan ilişkilidir. Özellikle PvP sistemlerinde yeteneklerin kontrolü ve özelleştirilmesi büyük önem taşır. Bu nedenle, skileri kaldırma işlemi, sunucuların özelleştirilmesi için kritik bir adımdır.

Client Tarafında Skileri Kaldırma

Client tarafında skileri kaldırmak, oyuncunun arayüzden erişemeyeceği yetenekleri ortadan kaldırmak anlamına gelir. Bu işlem genellikle uiscript dosyaları üzerinden yapılır. py root dizininde yer alan skillwnd.py gibi dosyalarda yeteneklerin listelendiği ve gösterildiği yerler vardır. Bu dosyalarda, silmek istediğiniz yeteneğe ait kod satırlarını silerek veya yorum satırına alarak yeteneği görünmez kılabilirsiniz.

Örneğin:

def RefreshSkill(self):
for i in range(128):
if i == 50: # Bu satır 50 numaralı skilli atlar
continue

Bu örnek, belirli bir yeteneğin arayüzde görünmemesi için kullanılır.

Files Tarafında Skileri Kaldırma

Files tarafında skileri kaldırmak, yeteneğin tamamen oyun motorundan çıkarılması anlamına gelir. Bu işlem genellikle game core dosyalarında, özellikle skill_proto.cpp veya skill_manager.cpp gibi dosyalarda gerçekleştirilir. Burada ilgili yeteneğe ait tüm referansları silmeniz gerekir. Yetenek ID'sini silmek, yeteneğin sunucuda tanımlanmamasına neden olur.

Ayrıca db core[/BR] üzerinde, yetenekle ilgili veritabanı tablolarında da değişiklik yapılmalıdır. DB tarafında yetenekle ilgili kayıt varsa, bu da silinmelidir. Aksi takdirde, yetenek veritabanında yer almaya devam eder ve istemciyle senkronizasyon sorunları oluşabilir.

Python GUI ile Otomasyon

Python GUI kullanarak, bu işlemleri otomatikleştirebilirsiniz. Örneğin, PyQt veya Tkinter gibi kütüphanelerle bir arayüz oluşturabilir, dosya düzenlemelerini kullanıcı dostu bir şekilde yapabilirsiniz. Bu sayede, hem client hem de files tarafındaki işlemleri hızlıca gerçekleştirebilirsiniz.

Olası Sorunlar ve Çözümler

Yetenek kaldırma işlemleri sırasında bazı sorunlarla karşılaşabilirsiniz. Bunlardan biri, client ile server arasında senkronizasyon eksikliğidir. Eğer bir yetenek client tarafında görünmüyor ama server tarafında hala aktifse, bu durum hata mesajlarına veya oyuncularda beklemede kalınmasına yol açabilir. Bu nedenle, her iki tarafı da aynı anda güncellemeniz önerilir.

Sunucu Compile aşamasında hatalarla karşılaşmamak için, silinen yetenekle ilgili tüm kod referanslarını temizlediğinizden emin olmalısınız. Martysama gibi kaynaklardan yardım alabilirsiniz. Ayrıca, source edit işlemlerinden sonra test sunucusu üzerinde mutlaka deneme yapmalısınız.

Sonuç

Metin2 özel sunucularında skileri kaldırma işlemi, hem client hem de files tarafında dikkatli müdahale gerektirir. Bu işlem, PvP sistemlerinde dengeyi korumak veya belirli özelliklerin devre dışı bırakılması için yapılır. Metin2dev süreçlerinde bu tür özelleştirmeler, sunucu sahiplerinin daha fazla esneklik kazanmasını sağlar. Metin2 Lobby olarak, bu tür teknik içeriklerle topluluğa destek vermeye devam ediyoruz.


Metin2 Lobby as a platform specialized in Metin2 private server development. In this article, we will detail how to remove skills from Client and Files. This process is directly related to technical structures such as C++ system and Python GUI. Especially in PvP systems, controlling and customizing skills is highly important. Therefore, the process of removing skills is a critical step for customizing servers.

Removing Skills on the Client Side[/BR]

Client side skill removal means making certain abilities unavailable through the user interface. This is usually done via uiscript files. Within the py root directory, files like skillwnd.py list and display skills. By deleting or commenting out the lines related to the skill you wish to remove, you can hide that skill from the UI.

For example:

def RefreshSkill(self):
for i in range(128):
if i == 50: # This skips skill number 50
continue

This example hides a specific skill from the UI.

Removing Skills on the Files Side

Files side skill removal means completely removing the skill from the game engine. This is typically performed in game core files, particularly in skill_proto.cpp or skill_manager.cpp. Here, all references to the desired skill must be deleted. Removing the skill ID prevents the skill from being defined on the server.

Additionally, changes should also be made in the database tables related to skills on the db core side. If there are database entries related to the skill, these must also be deleted. Otherwise, the skill will remain in the database and could cause synchronization issues with the client.

Automation with Python GUI

Python GUI can be used to automate these processes. For instance, by creating an interface using libraries like PyQt or Tkinter, you can perform file modifications in a user-friendly way. This allows you to quickly handle both client and files side operations.

Potential Issues and Solutions

Skill removal may lead to some issues. One common issue is desynchronization between client and server. If a skill is not visible on the client side but still active on the server, it can result in error messages or unexpected player behavior. Therefore, it is recommended to update both sides simultaneously.

To avoid errors during server compile, ensure that all code references related to the removed skill are cleared. You can get help from sources like Martysama. Moreover, after source edit operations, always test on a dedicated test server.

Conclusion

In Metin2 private servers, removing skills requires careful intervention on both client and files sides. This process is performed to maintain balance in PvP systems or to disable certain features. Such customizations in Metin2dev processes provide more flexibility for server owners. As Metin2 Lobby, we continue to support the community with such technical content.
 

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

Benzer konular

Geri
Üst Alt