Anlatım Tamamen Bana Aittir.
Belki Birkaç Ay Öncesi Başlangıç İtemlerimi, Becerilerimi vs. JSON Formatına Taşımıştım. Ardından Quest Bölümündeki Başlangıç'da Verilecek İtemler, Beceriler vb. Şeyleri Silmiştim. Fakat Quest İçindeki İlk Login'e Bağlı Olarak setqf, getqf ve Sadece Yeni Oyuncu Girdiğinde Chatte
Yeni Oyuncumuz %s %s Karakteri İle %s İmparatorluğuna Katıldı.
Yazısı Hariç Kalmıştı.
Az Önce Aklıma Geldi ve Dedim, Neden Boşuna Quest.sql'a Fazladan Kayıt Ettireyim. Çünkü Source Tarafındaki Dosya İçerisinde de SetQuestFlag Ekli. Bu Nedenle Hem Quest Tarafında Farklı Bir setqf Var Hem de Source Tarafında.
Ardından Quest'i Komple Dosyalarımdan Temizledim ve Bismillah Diyerek Sourcedeki Dosya Yoluna Koyuldum.
Başlangıç İtemlerimin, Becerilerimin Barındığı Dosyaya Girdim.
Ardından Şu Şekilde Düzenledim.
Arat:
Üstüne Ekle:
Belki Birkaç Ay Öncesi Başlangıç İtemlerimi, Becerilerimi vs. JSON Formatına Taşımıştım. Ardından Quest Bölümündeki Başlangıç'da Verilecek İtemler, Beceriler vb. Şeyleri Silmiştim. Fakat Quest İçindeki İlk Login'e Bağlı Olarak setqf, getqf ve Sadece Yeni Oyuncu Girdiğinde Chatte
Yeni Oyuncumuz %s %s Karakteri İle %s İmparatorluğuna Katıldı.
Yazısı Hariç Kalmıştı.
Az Önce Aklıma Geldi ve Dedim, Neden Boşuna Quest.sql'a Fazladan Kayıt Ettireyim. Çünkü Source Tarafındaki Dosya İçerisinde de SetQuestFlag Ekli. Bu Nedenle Hem Quest Tarafında Farklı Bir setqf Var Hem de Source Tarafında.
Ardından Quest'i Komple Dosyalarımdan Temizledim ve Bismillah Diyerek Sourcedeki Dosya Yoluna Koyuldum.
Başlangıç İtemlerimin, Becerilerimin Barındığı Dosyaya Girdim.
Ardından Şu Şekilde Düzenledim.
Arat:
Kod:
ch->SetQuestFlag("player.basic_items", 1);
Üstüne Ekle:
Ayrıca if (!ch->IsGM()) Diyerek Yani Eğer Karakter GM Değil İse Bu Yazının Yazdırılmasını İstedim. Diğer Türlü Siz [DEV] BENGM gibi Bir Karakter Oluşturduğunuzda Herkes Tarafından Görülecekti. İsteyen Bunu Dilediği Değiştirebilir.
İlk Test Aşamasında;
character_empire_name[ch->GetEmpire() - 1]
Buradaki GetEmpire() - 1 Sadece GetEmpire() Şeklindeydi. Kırmızı Bayrak Seçiyorum Null Geliyor Mavi Seçiyorum Kırmızı Bayrak Diyor.
Ulan Okan Dedim Bayraklar 1'den Başlıyor 3'e Kadar. 0 'dan Başlayan Bayrak Yok Dedim. Hemen GetEmpire() - 1 Yaparak Bu Sorunu Tamamen
Çözmüş Oldum. Çünkü Dizi 0'dan Başlıyor. Ahh Kafam Ah!! Balık Yemek Şart Oldu
Locale_Strings.txt Ekle:
JSON Formatında Eklediğim Başlangıç Sistemi:
KANIT:
C++ AutoGiveItems JSON Formatı Sistemi Düzenlemesi
Metin2 özel sunucularında oyun içi sistemlerin geliştirilmesi büyük önem taşır. Özellikle oyuncu deneyimini artırmak adına sunuculara eklenen otomatik ödüllendirme sistemleri popülerdir. Bu bağlamda AutoGiveItems sistemi, oyunculara belirli eylemler sonrasında otomatik olarak item verilmesini sağlar. Bu sistem genellikle JSON formatında yapılandırılır ve C++ tabanlı sunucularda kolayca entegre edilebilir. Bu yazıda, AutoGiveItems JSON yapısının nasıl düzenleneceği ve C++ ile nasıl çalıştırılacağı detaylı şekilde ele alınacaktır.
AutoGiveItems Nedir?[/CHARACTER]
AutoGiveItems sistemi, oyuncuların belirli olaylara veya koşullara göre sistem tarafından otomatik olarak eşya kazanmasını sağlayan bir özelliktir. Örneğin, oyuncu bir görevi tamamladığında, bir seviyeye ulaştığında ya da bir etkinliğe katıldığında bu sistemi kullanarak ona otomatik olarak ödül verilebilir. Bu sayede sunucu yöneticileri manuel müdahalede bulunmadan, daha etkili ve kullanıcı dostu bir oyun deneyimi sunabilirler.
JSON Formatı ve Yapısı
AutoGiveItems sistemi genellikle JSON formatında tanımlanır. JSON, veri aktarımı ve yapılandırma için ideal bir formattır. Aşağıda tipik bir AutoGiveItems JSON yapısı örneği verilmiştir:
{
'items': [
{
'id': 100001,
'count': 10,
'event': 'level_up'
},
{
'id': 100002,
'count': 5,
'event': 'login_streak_7_days'
}
]
}
Bu yapıda 'items' ana listesi altında her bir item için 'id', 'count' ve 'event' bilgileri yer alır. 'id' itemin sistemdeki numarasını, 'count' miktarını, 'event' ise hangi olayda verileceğini belirtir.
C++ ile Entegrasyon
C++ tabanlı Metin2 sunucularında bu JSON dosyasının okunması için genellikle libjson veya nlohmann/json gibi kütüphaneler kullanılır. JSON dosyası okunduktan sonra, belirtilen olaylar kontrol edilerek gerekli itemler oyuncuya otomatik olarak verilir. Bu işlem genellikle olay tetiklendiğinde çalışan fonksiyonlarla sağlanır.
Örnek Kod Parçası:
void GiveItemOnEvent(const std::string& event_name, int player_id) {
// JSON dosyasını yükle
json config = load_json_config();
for (auto& item : config['items']) {
if (item['event'] == event_name) {
int item_id = item['id'];
int count = item['count'];
AddItemToPlayer(player_id, item_id, count);
}
}
}
Dikkat Edilmesi Gerekenler
JSON dosyasındaki verilerin doğru ve tutarlı olması önemlidir. Hatalı JSON formatı programın çökmesine neden olabilir. Ayrıca, item ID'lerinin oyuncunun sahip olabileceği sınırlar içinde olduğundan emin olunmalıdır. Aksi halde veri tabanında hata oluşabilir. JSON dosyası sunucu başlatıldığında yüklenmeli ve değişiklik yapıldığında yeniden okunabilmelidir.
Sonuç
AutoGiveItems sistemi, Metin2 özel sunucularında kullanıcı sadakati ve oyun içi etkileşimi artırmak için oldukça faydalı bir özelliktir. JSON formatı sayesinde yapılandırma kolaydır ve C++ ile entegrasyonu hızlıca sağlanabilir. Doğru uygulandığında hem teknik hem de oyun dengesi açısından güçlü bir sistem oluşturabilir.
Editing C++ AutoGiveItems JSON Format System
In Metin2 private servers, developing in-game systems holds great importance. Automatic reward systems are especially popular to enhance the player experience. In this context, the AutoGiveItems system allows items to be automatically given to players after specific actions. This system is usually configured in JSON format and can easily be integrated into C++ based servers. In this article, we will examine in detail how to configure the AutoGiveItems JSON structure and how to run it with C++.
What is AutoGiveItems?
The AutoGiveItems system allows players to automatically receive items based on certain events or conditions. For example, players may be rewarded with items upon completing a quest, reaching a level, or participating in an event. This way, server administrators can provide a more effective and user-friendly gaming experience without manual intervention.
JSON Format and Structure
The AutoGiveItems system is typically defined in JSON format. JSON is an ideal format for data transfer and configuration. Below is an example of a typical AutoGiveItems JSON structure:
{
'items': [
{
'id': 100001,
'count': 10,
'event': 'level_up'
},
{
'id': 100002,
'count': 5,
'event': 'login_streak_7_days'
}
]
}
In this structure, under the 'items' main list, each item includes 'id', 'count', and 'event'. 'id' refers to the item's number in the system, 'count' refers to the quantity, and 'event' indicates the trigger event for giving the item.
Integration with C++
In C++ based Metin2 servers, libraries such as libjson or nlohmann/json are commonly used to read the JSON file. After loading the JSON file, the specified events are checked and the necessary items are automatically given to the player. This process is generally handled by functions triggered when an event occurs.
Sample Code:
void GiveItemOnEvent(const std::string& event_name, int player_id) {
// Load JSON file
json config = load_json_config();
for (auto& item : config['items']) {
if (item['event'] == event_name) {
int item_id = item['id'];
int count = item['count'];
AddItemToPlayer(player_id, item_id, count);
}
}
}
Points to Consider
It is important that the data in the JSON file is correct and consistent. Incorrect JSON formatting can cause the program to crash. Additionally, ensure that item IDs are within the limits that the player can hold; otherwise, database errors may occur. The JSON file should be loaded when the server starts and be reloadable whenever changes are made.
Conclusion
The AutoGiveItems system is a highly useful feature for increasing user loyalty and in-game interaction in Metin2 private servers. Thanks to the JSON format, configuration is easy and integration with C++ can be achieved quickly. When applied correctly, it can create a robust system both technically and in terms of game balance.
character_empire_name[ch->GetEmpire() - 1]
Buradaki GetEmpire() - 1 Sadece GetEmpire() Şeklindeydi. Kırmızı Bayrak Seçiyorum Null Geliyor Mavi Seçiyorum Kırmızı Bayrak Diyor.
Ulan Okan Dedim Bayraklar 1'den Başlıyor 3'e Kadar. 0 'dan Başlayan Bayrak Yok Dedim. Hemen GetEmpire() - 1 Yaparak Bu Sorunu Tamamen
Çözmüş Oldum. Çünkü Dizi 0'dan Başlıyor. Ahh Kafam Ah!! Balık Yemek Şart Oldu
Locale_Strings.txt Ekle:
Kod:
"Our new player %s has joined the %s empire with the character %s!"; "Yeni oyuncumuz %s %s karakteri ile %s imparatorluğuna katıldı."; "Wolfman"; "Lycan"; "Shaman"; "Şaman"; "Sura"; "Sura"; "Ninja"; "Ninja"; "Warrior"; "Savaşçı";
JSON Formatında Eklediğim Başlangıç Sistemi:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
KANIT:
C++ AutoGiveItems JSON Formatı Sistemi Düzenlemesi
Metin2 özel sunucularında oyun içi sistemlerin geliştirilmesi büyük önem taşır. Özellikle oyuncu deneyimini artırmak adına sunuculara eklenen otomatik ödüllendirme sistemleri popülerdir. Bu bağlamda AutoGiveItems sistemi, oyunculara belirli eylemler sonrasında otomatik olarak item verilmesini sağlar. Bu sistem genellikle JSON formatında yapılandırılır ve C++ tabanlı sunucularda kolayca entegre edilebilir. Bu yazıda, AutoGiveItems JSON yapısının nasıl düzenleneceği ve C++ ile nasıl çalıştırılacağı detaylı şekilde ele alınacaktır.
AutoGiveItems Nedir?[/CHARACTER]
AutoGiveItems sistemi, oyuncuların belirli olaylara veya koşullara göre sistem tarafından otomatik olarak eşya kazanmasını sağlayan bir özelliktir. Örneğin, oyuncu bir görevi tamamladığında, bir seviyeye ulaştığında ya da bir etkinliğe katıldığında bu sistemi kullanarak ona otomatik olarak ödül verilebilir. Bu sayede sunucu yöneticileri manuel müdahalede bulunmadan, daha etkili ve kullanıcı dostu bir oyun deneyimi sunabilirler.
JSON Formatı ve Yapısı
AutoGiveItems sistemi genellikle JSON formatında tanımlanır. JSON, veri aktarımı ve yapılandırma için ideal bir formattır. Aşağıda tipik bir AutoGiveItems JSON yapısı örneği verilmiştir:
{
'items': [
{
'id': 100001,
'count': 10,
'event': 'level_up'
},
{
'id': 100002,
'count': 5,
'event': 'login_streak_7_days'
}
]
}
Bu yapıda 'items' ana listesi altında her bir item için 'id', 'count' ve 'event' bilgileri yer alır. 'id' itemin sistemdeki numarasını, 'count' miktarını, 'event' ise hangi olayda verileceğini belirtir.
C++ ile Entegrasyon
C++ tabanlı Metin2 sunucularında bu JSON dosyasının okunması için genellikle libjson veya nlohmann/json gibi kütüphaneler kullanılır. JSON dosyası okunduktan sonra, belirtilen olaylar kontrol edilerek gerekli itemler oyuncuya otomatik olarak verilir. Bu işlem genellikle olay tetiklendiğinde çalışan fonksiyonlarla sağlanır.
Örnek Kod Parçası:
void GiveItemOnEvent(const std::string& event_name, int player_id) {
// JSON dosyasını yükle
json config = load_json_config();
for (auto& item : config['items']) {
if (item['event'] == event_name) {
int item_id = item['id'];
int count = item['count'];
AddItemToPlayer(player_id, item_id, count);
}
}
}
Dikkat Edilmesi Gerekenler
JSON dosyasındaki verilerin doğru ve tutarlı olması önemlidir. Hatalı JSON formatı programın çökmesine neden olabilir. Ayrıca, item ID'lerinin oyuncunun sahip olabileceği sınırlar içinde olduğundan emin olunmalıdır. Aksi halde veri tabanında hata oluşabilir. JSON dosyası sunucu başlatıldığında yüklenmeli ve değişiklik yapıldığında yeniden okunabilmelidir.
Sonuç
AutoGiveItems sistemi, Metin2 özel sunucularında kullanıcı sadakati ve oyun içi etkileşimi artırmak için oldukça faydalı bir özelliktir. JSON formatı sayesinde yapılandırma kolaydır ve C++ ile entegrasyonu hızlıca sağlanabilir. Doğru uygulandığında hem teknik hem de oyun dengesi açısından güçlü bir sistem oluşturabilir.
Editing C++ AutoGiveItems JSON Format System
In Metin2 private servers, developing in-game systems holds great importance. Automatic reward systems are especially popular to enhance the player experience. In this context, the AutoGiveItems system allows items to be automatically given to players after specific actions. This system is usually configured in JSON format and can easily be integrated into C++ based servers. In this article, we will examine in detail how to configure the AutoGiveItems JSON structure and how to run it with C++.
What is AutoGiveItems?
The AutoGiveItems system allows players to automatically receive items based on certain events or conditions. For example, players may be rewarded with items upon completing a quest, reaching a level, or participating in an event. This way, server administrators can provide a more effective and user-friendly gaming experience without manual intervention.
JSON Format and Structure
The AutoGiveItems system is typically defined in JSON format. JSON is an ideal format for data transfer and configuration. Below is an example of a typical AutoGiveItems JSON structure:
{
'items': [
{
'id': 100001,
'count': 10,
'event': 'level_up'
},
{
'id': 100002,
'count': 5,
'event': 'login_streak_7_days'
}
]
}
In this structure, under the 'items' main list, each item includes 'id', 'count', and 'event'. 'id' refers to the item's number in the system, 'count' refers to the quantity, and 'event' indicates the trigger event for giving the item.
Integration with C++
In C++ based Metin2 servers, libraries such as libjson or nlohmann/json are commonly used to read the JSON file. After loading the JSON file, the specified events are checked and the necessary items are automatically given to the player. This process is generally handled by functions triggered when an event occurs.
Sample Code:
void GiveItemOnEvent(const std::string& event_name, int player_id) {
// Load JSON file
json config = load_json_config();
for (auto& item : config['items']) {
if (item['event'] == event_name) {
int item_id = item['id'];
int count = item['count'];
AddItemToPlayer(player_id, item_id, count);
}
}
}
Points to Consider
It is important that the data in the JSON file is correct and consistent. Incorrect JSON formatting can cause the program to crash. Additionally, ensure that item IDs are within the limits that the player can hold; otherwise, database errors may occur. The JSON file should be loaded when the server starts and be reloadable whenever changes are made.
Conclusion
The AutoGiveItems system is a highly useful feature for increasing user loyalty and in-game interaction in Metin2 private servers. Thanks to the JSON format, configuration is easy and integration with C++ can be achieved quickly. When applied correctly, it can create a robust system both technically and in terms of game balance.
