Örneğin çöle bir boss sabitlerken tek kanal olması için çölü game99 a taşıyorduk. Ben bunu yapmak istemiyordum bu yüzden regen.cpp de birkaç değişiklik yaptım. Başlığa tek kanal yazdım ama istediğiniz kanala ayarlayabiliyorsunuz. Yani mobun sadece ch1 ve ch3 de çıkmasını kolaylıkla ayarlayabiliyorsunuz. Baştan söyleyeyim anlatması kod yazmasından daha zor.
Kullanımı:
Anlatım:
Not: Anlatımda yanlışlık yapmam ihtimaline karşılık regen.cpp ve regen.h dosyasını aşağıya ekliyorum.
Common/ service.h
Game/regen.h
Game/regen.cpp
MaviAyGames | Tek Kanala Mob Sabitleme C++ Sistemi
Metin2 özel sunucularında gelişmiş oyun mekanikleri geliştirmek, oyuncu deneyimini ciddi anlamda artırabilir. Bu yazıda MaviAyGames tarafından geliştirilen 'Tek Kanala Mob Sabitleme' C++ sistemini detaylıca inceleyeceğiz.
Metin2 Geliştirme Ortamı ve C++ Kullanımı
Metin2 özel sunucuları geliştirirken, oyunun temel bileşenlerinden biri olan game server tarafında yapılan değişiklikler büyük önem taşır. Özellikle PVP odaklı sunucularda, mobların davranışları, spawn noktaları ve kanal sabitliği gibi konular stratejik hale gelir. C++ dili, bu tür sistemleri optimize etmek ve özelleştirmek için ideal bir araçtır.
Mob Sabitleme Nedir?
Mob sabitleme, belirli bir kanalda spawn eden canavarların diğer kanallarda görünmemesini sağlar. Bu sayede her kanalda farklı bir oyun dengesi sağlanabilir. Özellikle PVP sunucularında, kanal bazlı rekabetler daha adil ve dengeli hale getirilebilir. MaviAyGames tarafından geliştirilen bu sistem, C++ dilinde yazılmış ve Metin2 sunucu kaynak koduna entegre edilebilir şekilde tasarlanmıştır.
Sistem Özellikleri
- Oyun içindeki tüm kanallarda mob spawnlarını izole eder.
- Performans kaybı olmadan çalışır.
- Kolay entegrasyon için açık kaynak kodlu yapıya sahiptir.
- Martysama ve diğer popüler sunucu yapılarıyla uyumlu çalışır.
C++ ile Geliştirilmiş Kaynak Kod Yapısı
Bu sistem, C++ tabanlı bir algoritma kullanarak her kanal için bağımsız spawn yönetimi sağlar. Sistemdeki temel mantık, her kanalın kendi mob listesini barındırmasıdır. Bu sayede bir kanalda düşman öldürülse bile diğer kanallar etkilenmez. Bu yapı, Metin2'nin game server tarafında çalışan core seviyesinde değişikliklerle sağlanır.
Entegrasyon ve Kurulum
Sistemin kurulumu oldukça basittir. Sunucu kaynak koduna entegre edildiğinde, her kanal için sabit mob spawnları aktif hale gelir. Bu işlem sırasında db core ve auth server yapıları da güncellenmelidir. Geliştiriciler, bu sistemi kolayca özelleştirebilir ve sunucularına özel kurallar ekleyebilirler.
Sunucu Performansı ve Stabilite
MaviAyGames tarafından geliştirilen bu sistem, performans üzerinde minimum etki bırakacak şekilde optimize edilmiştir. Sistem, Metin2 sunucularında yaşanan gecikmeleri azaltarak daha stabil bir oyun deneyimi sunar. Ayrıca, source edit işlemleri sırasında dikkat edilmesi gereken önemli noktalara odaklanılarak, hata payı en aza indirgenmiştir.
Neden Bu Sistemi Seçmelisiniz?
- PVP sunucuları için ideal denge sunar.
- C++ tabanlı olduğu için yüksek performans sağlar.
- Açık kaynak kodlu ve özelleştirilebilir yapıdadır.
- Metin2 geliştirme ortamına tam uyumludur.
Sonuç
Metin2 özel sunucularında PVP deneyimini artırmak istiyorsanız, MaviAyGames'ın geliştirdiği bu 'Tek Kanala Mob Sabitleme' sistemi, hem teknik hem de oyun dengesi açısından harika bir tercih olacaktır. Sistem, C++ bilgisi olan geliştiriciler için anlaşılır ve kolay entegrasyon sunar. Bu tür gelişmiş sistemlerle, Metin2 özel sunucularınızın kalitesini yükseltmek mümkündür.
Not: Bu sistem Metin2 Lobby'de sunulan gelişmiş sistemlerden biridir. Daha fazla bilgi ve destek için sitemizi ziyaret edin.
MaviAyGames | Single Channel Mob Locking C++ System
Developing advanced game mechanics for Metin2 private servers can significantly enhance the player experience. In this article, we will examine the 'Single Channel Mob Locking' C++ system developed by MaviAyGames in detail.
Metin2 Development Environment and C++ Usage
When developing Metin2 private servers, modifications on the game server side are crucial. Especially in PVP-focused servers, factors such as monster behaviors, spawn points, and channel stability become strategic. C++ is an ideal tool for optimizing and customizing such systems.
What Is Mob Locking?
Mob locking ensures that monsters spawned in a specific channel do not appear in other channels. This allows for different game balances across each channel. Particularly in PVP servers, channel-based competitions can be made more fair and balanced. The system developed by MaviAyGames is written in C++ and designed to be integrated into Metin2 server source codes.
System Features
- Isolates mob spawns across all channels in-game.
- Operates without performance loss.
- Open-source structure for easy integration.
- Compatible with popular server structures like Martysama.
Enhanced Source Code Structure with C++
This system uses a C++ based algorithm to provide independent spawn management per channel. The main logic involves each channel having its own mob list. Thus, even if a monster is killed in one channel, it does not affect others. This structure is achieved through core level changes within the Metin2 game server.
Integration and Installation
Installation of the system is straightforward. Once integrated into the server source code, fixed mob spawns for each channel become active. During this process, db core and auth server structures must also be updated. Developers can easily customize this system and add rules specific to their servers.
Server Performance and Stability
The system developed by MaviAyGames is optimized to have minimal impact on performance. It enhances game stability by reducing delays often experienced in Metin2 servers. Additionally, focusing on critical points during source edit processes minimizes error margins.
Why Choose This System?
- Provides ideal balance for PVP servers.
- Offers high performance due to C++ base.
- Open-source and customizable structure.
- Fully compatible with Metin2 development environment.
Conclusion
If you aim to enhance the PVP experience on your Metin2 private servers, MaviAyGames' 'Single Channel Mob Locking' system is an excellent choice both technically and in terms of game balance. The system is clear and offers easy integration for developers familiar with C++. With such advanced systems, it is possible to elevate the quality of your Metin2 private servers.
Note: This system is one of the advanced systems offered at Metin2 Lobby. Visit our site for more information and support.
Kullanımı:
Kod:
regen.txt dosyasında ki z kısmını sistem kullanmıyordu bende orayı ch ye çevirdim. Bu kısmı; Hiç değiştirmezseniz (0) bütün kanallarda çıkar. 1 yaparsanız sadece ch1 2 yaparsanız sadece ch2 4 yaparsanız sadece ch3 8 yaparsanız sadece ch4 16 yaparsanız sadece ch5 32 yaparsanız sadece ch6 1+2 yani 3 yaparsanız ch1 ve ch2 1+2+4 yani 7 yaparsanız ch1 ve ch2 ve ch3 1+4 yani 5 yaparsanız ch1 ve ch3 2+8 yani 10 yaparsanız ch2 ve ch4 Antiflag hesaplamayla aynı.
Anlatım:
Not: Anlatımda yanlışlık yapmam ihtimaline karşılık regen.cpp ve regen.h dosyasını aşağıya ekliyorum.
Common/ service.h
Kod:
#define ELISIA_REGEN_CHANNEL_SECTION // Bir ve ya birden fazla ch ye mob sabitleme
Game/regen.h
Kod:
enum { REGEN_TYPE_MOB, REGEN_TYPE_GROUP, REGEN_TYPE_EXCEPTION, REGEN_TYPE_GROUP_GROUP, REGEN_TYPE_ANYWHERE, REGEN_TYPE_MAX_NUM }; // ALTINA EKLE #ifdef ELISIA_REGEN_CHANNEL_SECTION enum REGEN_CHANNEL { REGEN_CHANNEL_CH1 = (1 << 0), // 1 REGEN_CHANNEL_CH2 = (1 << 1), // 2 REGEN_CHANNEL_CH3 = (1 << 2), // 4 REGEN_CHANNEL_CH4 = (1 << 3), // 8 REGEN_CHANNEL_CH5 = (1 << 4), // 16 REGEN_CHANNEL_CH6 = (1 << 5), // 32 }; #endif // typedef struct regen içerisinde ARAT bool is_aggressive; // ALTINA EKLE #ifdef ELISIA_REGEN_CHANNEL_SECTION DWORD channelFlag; #endif // typedef struct regen içerisinde ARAT is_aggressive(0), // ALTINA EKLE #ifdef ELISIA_REGEN_CHANNEL_SECTION channelFlag(0), #endif
Game/regen.cpp
Kod:
// static bool read_line(FILE *fp, LPREGEN regen) İÇİNDE ARAT str_to_number(regen->z_section, szTmp); // DEĞİŞTİR #ifdef ELISIA_REGEN_CHANNEL_SECTION str_to_number(regen->z_section, 0); str_to_number(regen->channelFlag, szTmp); #else str_to_number(regen->z_section, szTmp); #endif // ARAT static void regen_spawn(LPREGEN regen, bool bOnce) // KOMPLE DEĞİŞTİR static void regen_spawn(LPREGEN regen, bool bOnce) { DWORD num; DWORD i; num = (regen->max_count - regen->count); if (!num) return; for (i = 0; i < num; ++i) { LPCHARACTER ch = NULL; if (regen->type == REGEN_TYPE_ANYWHERE) { ch = CHARACTER_MANAGER::instance().SpawnMobRandomPosition(regen->vnum, regen->lMapIndex); if (ch) ++regen->count; } else if (regen->sx == regen->ex && regen->sy == regen->ey) { #ifdef ELISIA_REGEN_CHANNEL_SECTION if (regen->channelFlag > 0) { if ((g_bChannel == 1 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH1)) || (g_bChannel == 2 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH2)) || (g_bChannel == 3 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH3)) || (g_bChannel == 4 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH4)) || (g_bChannel == 5 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH5)) || (g_bChannel == 6 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH6))) { ch = CHARACTER_MANAGER::instance().SpawnMob(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->z_section, false, regen->direction == 0 ? number(0, 7) * 45 : (regen->direction - 1) * 45); if (ch) ++regen->count; } } else { ch = CHARACTER_MANAGER::instance().SpawnMob(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->z_section, false, regen->direction == 0 ? number(0, 7) * 45 : (regen->direction - 1) * 45); if (ch) ++regen->count; } #else ch = CHARACTER_MANAGER::instance().SpawnMob(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->z_section, false, regen->direction == 0 ? number(0, 7) * 45 : (regen->direction - 1) * 45); if (ch) ++regen->count; #endif } else { if (regen->type == REGEN_TYPE_MOB) { #ifdef ELISIA_REGEN_CHANNEL_SECTION if (regen->channelFlag > 0) { if ((g_bChannel == 1 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH1)) || (g_bChannel == 2 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH2)) || (g_bChannel == 3 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH3)) || (g_bChannel == 4 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH4)) || (g_bChannel == 5 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH5)) || (g_bChannel == 6 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH6))) { ch = CHARACTER_MANAGER::Instance().SpawnMobRange(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, true, regen->is_aggressive, regen->is_aggressive); if (ch) ++regen->count; } } else { ch = CHARACTER_MANAGER::Instance().SpawnMobRange(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, true, regen->is_aggressive, regen->is_aggressive); if (ch) ++regen->count; } #else ch = CHARACTER_MANAGER::Instance().SpawnMobRange(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, true, regen->is_aggressive, regen->is_aggressive ); if (ch) ++regen->count; #endif } else if (regen->type == REGEN_TYPE_GROUP) { #ifdef ELISIA_REGEN_CHANNEL_SECTION if (regen->channelFlag > 0) { if ((g_bChannel == 1 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH1)) || (g_bChannel == 2 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH2)) || (g_bChannel == 3 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH3)) || (g_bChannel == 4 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH4)) || (g_bChannel == 5 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH5)) || (g_bChannel == 6 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH6))) { if (CHARACTER_MANAGER::Instance().SpawnGroup(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, bOnce ? NULL : regen, regen->is_aggressive)) ++regen->count; } } else { if (CHARACTER_MANAGER::Instance().SpawnGroup(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, bOnce ? NULL : regen, regen->is_aggressive)) ++regen->count; } #else if (CHARACTER_MANAGER::Instance().SpawnGroup(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, bOnce ? NULL : regen, regen->is_aggressive)) ++regen->count; #endif } else if (regen->type == REGEN_TYPE_GROUP_GROUP) { #ifdef ELISIA_REGEN_CHANNEL_SECTION if (regen->channelFlag > 0) { if ((g_bChannel == 1 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH1)) || (g_bChannel == 2 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH2)) || (g_bChannel == 3 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH3)) || (g_bChannel == 4 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH4)) || (g_bChannel == 5 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH5)) || (g_bChannel == 6 && IS_SET(regen->channelFlag, REGEN_CHANNEL_CH6))) { if (CHARACTER_MANAGER::Instance().SpawnGroupGroup(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, bOnce ? NULL : regen, regen->is_aggressive)) ++regen->count; } } else { if (CHARACTER_MANAGER::Instance().SpawnGroupGroup(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, bOnce ? NULL : regen, regen->is_aggressive)) ++regen->count; } #else if (CHARACTER_MANAGER::Instance().SpawnGroupGroup(regen->vnum, regen->lMapIndex, regen->sx, regen->sy, regen->ex, regen->ey, bOnce ? NULL : regen, regen->is_aggressive)) ++regen->count; #endif } } if (ch && !bOnce) ch->SetRegen(regen); } }
MaviAyGames | Tek Kanala Mob Sabitleme C++ Sistemi
Metin2 özel sunucularında gelişmiş oyun mekanikleri geliştirmek, oyuncu deneyimini ciddi anlamda artırabilir. Bu yazıda MaviAyGames tarafından geliştirilen 'Tek Kanala Mob Sabitleme' C++ sistemini detaylıca inceleyeceğiz.
Metin2 Geliştirme Ortamı ve C++ Kullanımı
Metin2 özel sunucuları geliştirirken, oyunun temel bileşenlerinden biri olan game server tarafında yapılan değişiklikler büyük önem taşır. Özellikle PVP odaklı sunucularda, mobların davranışları, spawn noktaları ve kanal sabitliği gibi konular stratejik hale gelir. C++ dili, bu tür sistemleri optimize etmek ve özelleştirmek için ideal bir araçtır.
Mob Sabitleme Nedir?
Mob sabitleme, belirli bir kanalda spawn eden canavarların diğer kanallarda görünmemesini sağlar. Bu sayede her kanalda farklı bir oyun dengesi sağlanabilir. Özellikle PVP sunucularında, kanal bazlı rekabetler daha adil ve dengeli hale getirilebilir. MaviAyGames tarafından geliştirilen bu sistem, C++ dilinde yazılmış ve Metin2 sunucu kaynak koduna entegre edilebilir şekilde tasarlanmıştır.
Sistem Özellikleri
- Oyun içindeki tüm kanallarda mob spawnlarını izole eder.
- Performans kaybı olmadan çalışır.
- Kolay entegrasyon için açık kaynak kodlu yapıya sahiptir.
- Martysama ve diğer popüler sunucu yapılarıyla uyumlu çalışır.
C++ ile Geliştirilmiş Kaynak Kod Yapısı
Bu sistem, C++ tabanlı bir algoritma kullanarak her kanal için bağımsız spawn yönetimi sağlar. Sistemdeki temel mantık, her kanalın kendi mob listesini barındırmasıdır. Bu sayede bir kanalda düşman öldürülse bile diğer kanallar etkilenmez. Bu yapı, Metin2'nin game server tarafında çalışan core seviyesinde değişikliklerle sağlanır.
Entegrasyon ve Kurulum
Sistemin kurulumu oldukça basittir. Sunucu kaynak koduna entegre edildiğinde, her kanal için sabit mob spawnları aktif hale gelir. Bu işlem sırasında db core ve auth server yapıları da güncellenmelidir. Geliştiriciler, bu sistemi kolayca özelleştirebilir ve sunucularına özel kurallar ekleyebilirler.
Sunucu Performansı ve Stabilite
MaviAyGames tarafından geliştirilen bu sistem, performans üzerinde minimum etki bırakacak şekilde optimize edilmiştir. Sistem, Metin2 sunucularında yaşanan gecikmeleri azaltarak daha stabil bir oyun deneyimi sunar. Ayrıca, source edit işlemleri sırasında dikkat edilmesi gereken önemli noktalara odaklanılarak, hata payı en aza indirgenmiştir.
Neden Bu Sistemi Seçmelisiniz?
- PVP sunucuları için ideal denge sunar.
- C++ tabanlı olduğu için yüksek performans sağlar.
- Açık kaynak kodlu ve özelleştirilebilir yapıdadır.
- Metin2 geliştirme ortamına tam uyumludur.
Sonuç
Metin2 özel sunucularında PVP deneyimini artırmak istiyorsanız, MaviAyGames'ın geliştirdiği bu 'Tek Kanala Mob Sabitleme' sistemi, hem teknik hem de oyun dengesi açısından harika bir tercih olacaktır. Sistem, C++ bilgisi olan geliştiriciler için anlaşılır ve kolay entegrasyon sunar. Bu tür gelişmiş sistemlerle, Metin2 özel sunucularınızın kalitesini yükseltmek mümkündür.
Not: Bu sistem Metin2 Lobby'de sunulan gelişmiş sistemlerden biridir. Daha fazla bilgi ve destek için sitemizi ziyaret edin.
MaviAyGames | Single Channel Mob Locking C++ System
Developing advanced game mechanics for Metin2 private servers can significantly enhance the player experience. In this article, we will examine the 'Single Channel Mob Locking' C++ system developed by MaviAyGames in detail.
Metin2 Development Environment and C++ Usage
When developing Metin2 private servers, modifications on the game server side are crucial. Especially in PVP-focused servers, factors such as monster behaviors, spawn points, and channel stability become strategic. C++ is an ideal tool for optimizing and customizing such systems.
What Is Mob Locking?
Mob locking ensures that monsters spawned in a specific channel do not appear in other channels. This allows for different game balances across each channel. Particularly in PVP servers, channel-based competitions can be made more fair and balanced. The system developed by MaviAyGames is written in C++ and designed to be integrated into Metin2 server source codes.
System Features
- Isolates mob spawns across all channels in-game.
- Operates without performance loss.
- Open-source structure for easy integration.
- Compatible with popular server structures like Martysama.
Enhanced Source Code Structure with C++
This system uses a C++ based algorithm to provide independent spawn management per channel. The main logic involves each channel having its own mob list. Thus, even if a monster is killed in one channel, it does not affect others. This structure is achieved through core level changes within the Metin2 game server.
Integration and Installation
Installation of the system is straightforward. Once integrated into the server source code, fixed mob spawns for each channel become active. During this process, db core and auth server structures must also be updated. Developers can easily customize this system and add rules specific to their servers.
Server Performance and Stability
The system developed by MaviAyGames is optimized to have minimal impact on performance. It enhances game stability by reducing delays often experienced in Metin2 servers. Additionally, focusing on critical points during source edit processes minimizes error margins.
Why Choose This System?
- Provides ideal balance for PVP servers.
- Offers high performance due to C++ base.
- Open-source and customizable structure.
- Fully compatible with Metin2 development environment.
Conclusion
If you aim to enhance the PVP experience on your Metin2 private servers, MaviAyGames' 'Single Channel Mob Locking' system is an excellent choice both technically and in terms of game balance. The system is clear and offers easy integration for developers familiar with C++. With such advanced systems, it is possible to elevate the quality of your Metin2 private servers.
Note: This system is one of the advanced systems offered at Metin2 Lobby. Visit our site for more information and support.
