1.Max Lonca Skor Sayısı Configli
2.Max Drop Ayarı Configli
3.Yere Atılan Item Kaç Saniyede Kaybolsun Configli
4.Yere Düşen Item Kaç Saniyede Kalbolsun Configli
5.Başlangıç Parasını Ayarlama Configli
1.Max Lonca Skor Sayısı Ayarlama
Ilk Önce arkadaşlar Config.cpp Açalım;
Aratalım ve Altına Bunu Ekliyelim
Bunun Gibi
2.Max Drop Ayarı Configli
3.Yere Atılan Item Kaç Saniyede Kaybolsun Configli
4.Yere Düşen Item Kaç Saniyede Kalbolsun Configli
5.Başlangıç Parasını Ayarlama Configli
1.Max Lonca Skor Sayısı Ayarlama
Ilk Önce arkadaşlar Config.cpp Açalım;
Kod:
int gPlayerMaxLevel = 99;
Aratalım ve Altına Bunu Ekliyelim
Kod:
int MaxLoncaSkor = 100;
Bunun Gibi
Daha Sonra Bunu aynı cpp dosyasında aratalım
Kod:
[COLOR=#0000cd]TOKEN("max_level")[/COLOR]
kod blogunun altına gelin bir boşluk bırakıp aşagıdaki kodu yapıştırın.
Kod:
TOKEN("LONCA_SKOR") [COLOR=#0000cd] { str_to_number(MaxLoncaSkor, value_string); continue; }[/COLOR]
Bunun Gibi
Config.h Açılır Aratılır;
Kod:
extern int gPlayerMaxLevel;
Altına Eklenir:
Kod:
extern int MaxLoncaSkor;
Bunun Gibi
Constans.cpp açılır Aratılır;
Kod:
int iEndScore;
Altındaki Yer Burası
silinip yerine burası yapıştırılır
Kod:
{ { 0, 0, 0, 0, 0, 0 }, { 110, 0, 100, 50, 0, MaxLoncaSkor }, { 111, 0, 100, 50, 0, 10 }, };
bunun gibi
CH1,CH2,CH3,CH4,...,GAME99 Açılır En Alta Eklenir İstenilen Skor Yazılır Örnek
Kod:
LONCA_SKOR: 200
2.Max Drop Açma Configli Resim Eklemiyecegim dikkatli bakarsanız anlayabilirsiniz;
Config.cpp Açılır
Kod:
int gPlayerMaxLevel = 99;
Aratılır Altına Eklenir.
Kod:
int DropOrani = 200;
daha sonra aratılır
Kod:
TOKEN("max_level")
Kod satırının altına inilir bir boşluk bırakılır;
Kod:
TOKEN("MAX_DROP_ORANI") { str_to_number(DropOrani, value_string); continue; }
Config.h Açılır
Kod:
extern int gPlayerMaxLevel;
Aratılır ve altına eklenir.
Kod:
[COLOR=#0000cd]extern int DropOrani;[/COLOR]
priv_manager.cpp Açılır;
Kod:
sys_err("PRIV_MANAGER: RequestGiveGuildPriv: wrong guild priv type(%u)", type);
Arat
Kod:
value = MINMAX(0, value, 50);
burayı bununla değiştir.
Kod:
value = MINMAX(0, value, DropOrani);
tamamdır devam edelim
Kod:
sys_err("PRIV_MANAGER: RequestGiveEmpirePriv: wrong empire priv type(%u)", type);
aratılır alttaki bulunur.
Kod:
value = MINMAX(0, value, 200);
bunun ile değiştirilir;
Kod:
value = MINMAX(0, value, DropOrani);
Devam edelim.
Kod:
sys_err("PRIV_MANAGER: RequestGiveCharacterPriv: wrong char priv type(%u)", type);
Arat aldındaki burayı bul
Kod:
value = MINMAX(0, value, 100);
bunun ile değiştir.
Kod:
value = MINMAX(0, value, DropOrani)
Devam Edelim
Kod:
sys_log(0,"Set Guild Priv: guild_id(%u) type(%d) value(%d) duration_sec(%d)", guild_id, type, value, end_time_sec - get_global_time());
Aratalım burayı bulalım
Kod:
value = MINMAX(0, value, 50);
Altındaki ile değiştirelim
Kod:
value = MINMAX(0, value, DropOrani);
devam edelim
Kod:
sys_log(0,"Set Character Priv %u %d %d", pid, type, value);
aratalım ve burayı bulalım
Kod:
value = MINMAX(0, value, 100);
bununla değiştirelim
Kod:
value = MINMAX(0, value, DropOrani);
Son kez
Kod:
sys_log(0, "Set Empire Priv: empire(%d) type(%d) value(%d) duration_sec(%d)", empire, type, value, end_time_sec-get_global_time());
aratalım bunu bulalım
Kod:
value = MINMAX(0, value, 200);
Alttaki ile değiştirelim
Kod:
value = MINMAX(0, value, DropOrani);
CH1,CH2,CH3,CH4,...,GAME99 Açılır En Alta Eklenir İstenilen Drop Yazılır Örnek
Kod:
MAX_DROP_ORANI: 200
3.Yere Atılan İtem Kaç Saniyede Kaybolsun Configli Resimsiz Anlatıcam Dikkatli Bakarsanız Anlarsınız.
Config.cpp açalım aratalım
Kod:
int gPlayerMaxLevel = 99;
Altına Ekliyelim
Kod:
int yereatilanitemkacsaniyedekaybolsun = 180;
Kod:
TOKEN("max_level")
Aratalım kod blogunun altına boşluk bırakalım ve bunu yapıştıralım;
Kod:
TOKEN("ITEM_KAYBOLMA_SURESI") { str_to_number(yereatilanitemkacsaniyedekaybolsun, value_string); continue; }
Config.h Açılır Aratılır
Kod:
int gPlayerMaxLevel = 99;
Altına Eklenir
Kod:
extern int yereatilanitemkacsaniyedekaybolsun;
item.h Açılır Aratılır
Kod:
SetDestroyEvent(LPEVENT pkEvent);
Altındaki Bununla Değiştirilir.
Kod:
void StartDestroyEvent(int iSec=yereatilanitemkacsaniyedekaybolsun);
CH1,CH2,CH3,CH4,...,GAME99 Açılır En Alta Eklenir İstenilen kaybolma süresi Yazılır Örnek
Kod:
ITEM_KAYBOLMA_SURESI: 200
4.Yere Atılan Itemin Kaybolma Süresi
Config.cpp Açılır
Kod:
int gPlayerMaxLevel = 99;
Bulunur ve Altına Eklenir.
Kod:
int YereDusenitemkaybolmasaniyesi = 180;
Kod:
TOKEN("max_level")
Aratılır Kod blogunun altına Eklenir.
Kod:
[COLOR=#0000cd] TOKEN("YERE_ATILAN_ITEM_KAYBOLMA_SANIYESI")[/COLOR] { str_to_number(YereDusenitemkaybolmasaniyesi, value_string); continue; }
Config.h Açılır Aratılır
Kod:
extern int gPlayerMaxLevel;
Altına Ekle
Kod:
extern int YereDusenitemkaybolmasaniyesi;
Char_item.cpp açılır
Aratılır
Kod:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ???? 3? ? ?????."));
Altındaki ile değiştirilir.
Kod:
pkItemToDrop->StartDestroyEvent(YereDusenitemkaybolmasaniyesi);
CH1,CH2,CH3,CH4,...,GAME99 Açılır En Alta Eklenir İstenilen kaybolma süresi Yazılır Örnek
Kod:
YERE_ATILAN_ITEM_KAYBOLMA_SANIYESI: 200
5.Başlıngıc Parasını Sourceden Ayarlama
Config.cpp Aç
Kod:
int gPlayerMaxLevel = 99;
Kod:
long int start_gold = 0;
Kod:
TOKEN("max_level")
Aran Kod blogunun Altına Ekle
Kod:
TOKEN("start_gold") { str_to_number(start_gold, value_string); start_gold = MINMAX(0, start_gold, sizeof(long int)); fprintf(stderr, "START_GOLD: %ld\n", start_gold); }
Config.cpp işimiz bitti Config.h Açalım
Kod:
extern int gPlayerMaxLevel;
Kod:
extern long int start_gold;
input_login.cpp Açılır
#include
Altına
Kod:
extern long int start_gold;
Ekliyelim
Kod:
table->gold = 0;
Aratalım bununla değiştirelim
Kod:
table->gold = start_gold;
CH1,CH2,CH3,CH4,..,GAME99 Başlangıçta Kaç Para vermek İstiyorsan ona göre ayarlıyalım Örnegin
Kod:
start_gold: 1000000
Source Ile Bazı Yapılabilecekler
Metin2 özel sunucuları geliştirme sürecinde source (kaynak kodu) düzenlemek, oyuncular için daha zengin ve özelleştirilmiş deneyimler yaratmak açısından kritik öneme sahiptir.
Source üzerinde yapılan değişiklikler sayesinde hem oyun içindeki sistemler hem de sunucu altyapısı optimize edilebilir.
Bu yazıda, Metin2 source (C++, Python) ile yapılabilecek bazı gelişmiş işlemlerden bahsedeceğiz.
1. Yeni Sistemler Eklemek
Source üzerinde çalışarak oyuna yeni sistemler entegre edebilirsiniz.
Örneğin, özel PvP turnuvaları, guild savaşları, event sistemleri veya özel quest sistemleri gibi.
Bu sistemler genellikle C++ tarafında backend olarak geliştirilirken, Python tarafında UIScript ile arayüzleri tasarlanabilir.
2. PvP Sistemlerini Geliştirmek
PvP odaklı sunucularda, source kod üzerinde değişiklik yaparak mevcut sistemleri daha adil ve dengeli hale getirebilirsiniz.
Özel skorlama sistemleri, death match modları, team fight sistemleri gibi gelişmiş PvP özellikleri implement edilebilir.
3. Client Tarafında Görsel Değişiklikler
Client src üzerinde yapılan düzenlemeler ile karakter görünümü, efektler, arayüz bileşenleri gibi görsel öğeler değiştirilebilir.
Bu sayede kullanıcı dostu ve özgün bir oyun arayüzü oluşturulabilir.
4. Database Entegrasyonları
Game ve Auth DB üzerinde yapılan düzenlemelerle kullanıcı verileri, eşyalar, seviye sistemleri gibi alanlar özelleştirilebilir.
Yeni tablolar ekleyerek, özel rank sistemleri veya ödüllendirme mekanizmaları kurulabilir.
5. Anti-Hile ve Güvenlik Geliştirmeleri
Source üzerinde güvenlik katmanları ekleyerek sunucunuzun hilelere karşı dayanıklılığını artırabilirsiniz.
Client-server arası iletişim kontrolleri, checksum doğrulamaları gibi teknik çözümler geliştirilebilir.
6. Performans Optimizasyonu
Oyun motorunun performansını artırmak için source üzerinde optimizasyon işlemleri yapılabilir.
Gereksiz fonksiyonların kaldırılması, bellek yönetimi gibi alanlarda iyileştirmeler yapılabilir.
7. Script Tabanlı Sistemler
Python kaynak kodları sayesinde oyun içi eylemleri tetikleyen scriptler yazılabilir.
Bu scriptler ile NPC davranışları, özel eventler, otomatik görevler gibi işlevler sağlanabilir.
Sonuç
Metin2 source ile yapılan geliştirmeler, sunucunuzu diğerlerinden ayıran önemli unsurlardan biridir.
Hem oyun içi deneyimi zenginleştiren hem de teknik altyapıyı güçlendiren bu çalışmalar, Metin2 geliştiricileri için oldukça değerlidir.
Dilerseniz daha fazla teknik destek ve örnek sistemler için Metin2Lobby üzerinden ilgili kaynaklara ulaşabilirsiniz.
Some Things You Can Do With Source Code
In the process of developing Metin2 private servers, editing the source code is critical for creating richer and more customized experiences for players.
Changes made to the source can optimize both in-game systems and the server infrastructure.
In this article, we will discuss some advanced operations that can be performed with Metin2 source code (C++, Python).
1. Adding New Systems
By working on the source, you can integrate new systems into the game.
For example, custom PvP tournaments, guild wars, event systems, or special quest systems.
These systems are generally developed on the C++ side as backend, while their interfaces are designed via UIScript on the Python side.
2. Enhancing PvP Systems
In PvP-focused servers, you can make the existing systems fairer and more balanced by modifying the source code.
Features such as custom scoring systems, deathmatch modes, and team fight systems can be implemented.
3. Visual Changes on the Client Side
Modifications made to the client source allow changing visual elements like character appearances, effects, and interface components.
This way, a user-friendly and unique game interface can be created.
4. Database Integrations
Changes made to the Game and Auth DB can customize areas such as player data, items, and leveling systems.
New tables can be added to create custom ranking systems or reward mechanisms.
5. Anti-Cheat and Security Improvements
By adding security layers to the source, you can enhance your server's resistance to cheats.
Technical solutions like client-server communication checks and checksum validations can be developed.
6. Performance Optimization
Optimization processes can be performed on the source to improve the performance of the game engine.
Unnecessary functions can be removed and improvements can be made in areas such as memory management.
7. Script-Based Systems
With Python source code, scripts can be written to trigger in-game actions.
These scripts can provide functionalities such as NPC behaviors, special events, and automated tasks.
Conclusion
Developments done with Metin2 source code are one of the key factors that distinguish your server from others.
These efforts enrich the in-game experience and strengthen the technical infrastructure, making them highly valuable for Metin2 developers.
For further technical support and example systems, you can visit Metin2Lobby.
