Source Ile Bazı Yapılabilecekler

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
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;

Kod:
int gPlayerMaxLevel = 99;


Aratalım ve Altına Bunu Ekliyelim

Kod:
int MaxLoncaSkor = 100;


Bunun Gibi

p8MEGn.png

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

VX8EDy.png



Config.h Açılır Aratılır;

Kod:
extern int gPlayerMaxLevel;

Altına Eklenir:

Kod:
extern int MaxLoncaSkor;

Bunun Gibi
v8AZ7O.png


Constans.cpp açılır Aratılır;

Kod:
int iEndScore;

Altındaki Yer Burası

3jWLkr.png


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

aM8Xbz.png


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;
Arat Altına Ekle


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;
Aratılır Altına Eklenir


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
Örneğin


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.
 

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

Benzer konular

Geri
Üst Alt