Selamun aleyküm paylaşımı daha önce yapıldı lakin bazı eksik yerleri ve anlatımda sıkıntısı vardı.
Sistemi tamamen düzelttim sizlere sunuyorum başlıyalım.
Kanıt;
[/CENTER]
Locale_inc.h açılır ve eklenir.
InstanceBase.cpp açılır ve şu satır bulunur.
Altına eklenir;
InstanceBase.h açılır ve şu satır aratılır.
,
Altına eklenir;
Tekrar aratılır;
Altına eklenir;
InstanceBaseEffect.cpp açılır ve şu satır aratılır.
Bu şekilde değiştirilir;
PythonCharacterManagerModule.cpp açılır ve şu satır aratılır.
Altına eklenir;
PythonMiniMap.cpp açılır ve şu satır aratılır.
Altına eklenir;
Aratılır;
Kod bloğunun altına eklenir;
Aratılır;
Kod bloğunun altına eklenir;
Aratılır;
Altına eklenir;
Aratılır;
Altına eklenir;
Aratılır;
Altına eklenir;
PythonMiniMap.h açılır ve şu satır aratılır.
Altına eklenir;
Aratılır;
Altına eklenir;
SRC ile işimiz bitti.
Gelelim phyton kısmına..
Root içerisindeki colorinfo.py açılır ve aratılır.
Altına eklenir.
Ardından introloading.py açılır ve aratılır.
Altına eklenir;
MaviAyGames | Minimapte Boss Önizlemesi Gösterme
Metin2 özel sunucularında kullanıcı deneyimini artırmak, oyuncuların harita üzerinde daha fazla bilgiye ulaşmasını sağlamak oldukça önemlidir. Bu bağlamda, MaviAyGames tarafından geliştirilen minimapte boss önizlemesi sistemi, oyuncuların haritada gezinirken boss konumlarını önceden görebilmelerini sağlar. Bu yazıda, bu sistemin nasıl çalıştığını, nasıl kurulacağını ve Metin2 özel sunucu geliştirme sürecinde ne gibi avantajlar sunduğunu detaylı olarak ele alacağız.
Minimapte Boss Önizlemesi Nedir?[/BR][/BR]Metin2 oyununda, minimap genellikle oyuncunun bulunduğu konumu ve yakındaki diğer karakterleri gösterir. Ancak bazı gelişmiş sistemler sayesinde, bu alana özel NPC'ler, boss karakterler veya önemli objeler de eklenebilir. Boss önizlemesi, bu listede yer alır. Oyuncular, harita üzerinde boss karakterlerin nerede olduğunu görebilir, bu sayede onlara erişim kolaylaşır ve PvP-PvE etkileşimleri daha stratejik hale gelir.
Sistemin Teknik Yapısı[/BR][/BR]Bu sistem genellikle C++ tabanlı sunucu tarafında geliştirilir. Sunucu kodları içinde, belirli NPC'ler için özel işaretlemeler yapılır. Bu işaretlemeler, game server programming süreçlerinde tanımlanır. Ayrıca, client src[/BR] tarafında da minimap üzerine bu bilgilerin yansıtılması için gerekli arayüz değişiklikleri yapılır. Bu işlemde uiscript ve py root dosyaları değiştirilir.
Nasıl Kurulur?[/BR][/BR]Bu sistemin kurulumu, Metin2 özel sunucu geliştirme bilgisi gerektirir. Öncelikle, server src dosyalarında boss NPC'lerin ID'leri belirlenir. Ardından bu ID'ler, minimap üzerinden görüntülenecek şekilde ayarlanır. Bu işlem sırasında martysama tarzı örnek sistemlerden faydalanılabilir. Aynı zamanda, db core üzerinde de boss spawn zamanları ve konumları veritabanında tutulur. Bu sayede sistem, doğru zamanlarda doğru bilgiyi minimapa aktarır.
Avantajları Nelerdir?[/BR][/BR]Oyuncu deneyimi artırılır. Boss hunt等活动ları daha organize ve eğlenceli hale gelir. PvP sistemleri daha stratejikleşir çünkü boss konumları bilindiğinden, onları beklemek isteyen oyuncular daha hazırlıklı olabilir. Ayrıca, bu sistem sayesinde Metin2 development sürecinde daha fazla interaktif yapı oluşturulabilir.
Sonuç[/BR][/BR]MaviAyGames tarafından sunulan minimap boss önizleme sistemi, Metin2 özel sunucularında ciddi bir kullanıcı deneyimi artışı sağlar. Bu tür gelişmiş sistemler, source edit ve game core bilgisiyle birlikte entegre edildiğinde, sunucuların rekabet gücünü ciddi anlamda artırabilir. Eğer Metin2 özel sunucu geliştirmeye ilgi duyuyorsanız, bu tip sistemleri incelemek ve uygulamak, yolculuğunuzda büyük bir fark yaratabilir.
MaviAyGames | Showing Boss Preview on Minimap
In order to enhance the user experience on Metin2 private servers and allow players to access more information on the map, it's quite important. In this context, the boss preview on minimap system developed by MaviAyGames allows players to see where bosses are located on the map in advance. In this article, we will elaborate on how this system works, how it can be installed, and what advantages it offers within the scope of Metin2 private server development.
What Is Boss Preview on Minimap?[/BR][/BR]In the Metin2 game, the minimap usually shows the player's current location and other nearby characters. However, thanks to some advanced systems, special NPCs, boss characters, or important objects can also be added to this area. The boss preview falls into this category. Players can view where boss characters are located on the map, making access easier and PvP-PvE interactions more strategic.
Technical Structure of the System[/BR][/BR]This system is generally developed on the C++-based server side. Within the server codes, special markings are made for certain NPCs. These markings are defined during game server programming processes. Additionally, interface modifications are made on the client src side so that this information can be displayed on the minimap. During this process, uiscript and py root files are modified.
How to Install?[/BR][/BR]Installing this system requires knowledge of Metin2 private server development. First, the IDs of boss NPCs are determined in the server src files. Then these IDs are set to be displayed on the minimap. During this process, examples like martysama systems can be referenced. Meanwhile, boss spawn times and locations are stored in the database within the db core. This ensures that the system transmits accurate information to the minimap at the right times.
Advantages[/BR][/BR]Player experience is enhanced. Boss hunt activities become more organized and fun. PvP systems become more strategic since boss locations are known, allowing players who wish to wait for them to be better prepared. Moreover, with such systems, more interactive structures can be built during the Metin2 development process.
Conclusion[/BR][/BR]The minimap boss preview system offered by MaviAyGames significantly enhances user experience on Metin2 private servers. When integrated with source edit and game core knowledge, such advanced systems can substantially increase the competitive edge of servers. If you're interested in Metin2 private server development, exploring and implementing systems like this can make a significant difference in your journey.
Sistemi tamamen düzelttim sizlere sunuyorum başlıyalım.
Kanıt;
Locale_inc.h açılır ve eklenir.
Kod:
#define BOSS_MARK_SYSTEM // Minimapte boss gösterme
InstanceBase.cpp açılır ve şu satır bulunur.
Kod:
BOOL CInstanceBase::IsStone() { return m_GraphicThingInstance.IsStone(); }
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM BOOL CInstanceBase::IsBoss() { if (GetRace() == 691) return TRUE; if (GetRace() == 692) return TRUE; if (GetRace() == 693) return TRUE; if (GetRace() == 791) return TRUE; if (GetRace() == 991) return TRUE; if (GetRace() == 992) return TRUE; if (GetRace() == 993) return TRUE; if (GetRace() == 1091) return TRUE; if (GetRace() == 1092) return TRUE; if (GetRace() == 1093) return TRUE; if (GetRace() == 1094) return TRUE; if (GetRace() == 1095) return TRUE; if (GetRace() == 2191) return TRUE; if (GetRace() == 1191) return TRUE; if (GetRace() == 1192) return TRUE; if (GetRace() == 1304) return TRUE; if (GetRace() == 1306) return TRUE; if (GetRace() == 1307) return TRUE; if (GetRace() == 1901) return TRUE; if (GetRace() == 1902) return TRUE; if (GetRace() == 1903) return TRUE; if (GetRace() == 2206) return TRUE; if (GetRace() == 2207) return TRUE; if (GetRace() == 2291) return TRUE; if (GetRace() == 2306) return TRUE; if (GetRace() == 2307) return TRUE; if (GetRace() == 2492) return TRUE; if (GetRace() == 2493) return TRUE; if (GetRace() == 2494) return TRUE; if (GetRace() == 2598) return TRUE; if (GetRace() == 3090) return TRUE; if (GetRace() == 3091) return TRUE; if (GetRace() == 3190) return TRUE; if (GetRace() == 3191) return TRUE; if (GetRace() == 3290) return TRUE; if (GetRace() == 3291) return TRUE; if (GetRace() == 3390) return TRUE; if (GetRace() == 3391) return TRUE; if (GetRace() == 3490) return TRUE; if (GetRace() == 3491) return TRUE; if (GetRace() == 3590) return TRUE; if (GetRace() == 3591) return TRUE; if (GetRace() == 3690) return TRUE; if (GetRace() == 3691) return TRUE; if (GetRace() == 3790) return TRUE; if (GetRace() == 3791) return TRUE; if (GetRace() == 3890) return TRUE; if (GetRace() == 3891) return TRUE; if (GetRace() == 5001) return TRUE; if (GetRace() == 5004) return TRUE; if (GetRace() == 5002) return TRUE; if (GetRace() == 5161) return TRUE; if (GetRace() == 5162) return TRUE; if (GetRace() == 5163) return TRUE; if (GetRace() == 6091) return TRUE; if (GetRace() == 6191) return TRUE; return FALSE; } #endif
InstanceBase.h açılır ve şu satır aratılır.
Kod:
NAMECOLOR_WAYPOINT
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM NAMECOLOR_BOSS, #endif
Tekrar aratılır;
Kod:
BOOL IsStone();
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM BOOL IsBoss(); #endif
InstanceBaseEffect.cpp açılır ve şu satır aratılır.
Kod:
else if (IsEnemy()) { return NAMECOLOR_MOB; }
Bu şekilde değiştirilir;
Kod:
else if (IsEnemy()) { #ifdef BOSS_MARK_SYSTEM if (IsBoss()) return NAMECOLOR_BOSS; #endif return NAMECOLOR_MOB; }
PythonCharacterManagerModule.cpp açılır ve şu satır aratılır.
Kod:
PyModule_AddIntConstant(poModule, "NAMECOLOR_WAYPOINT", CInstanceBase::NAMECOLOR_WAYPOINT);
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM PyModule_AddIntConstant(poModule, "NAMECOLOR_BOSS", CInstanceBase::NAMECOLOR_BOSS); #endif
PythonMiniMap.cpp açılır ve şu satır aratılır.
Kod:
m_NPCPositionVector.clear();
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM m_BossPositionVector.clear(); #endif
Aratılır;
Kod:
if (pkInstEach->IsPC() && !pkInstEach->IsInvisibility()) { if (pkInstEach == CPythonCharacterManager::Instance().GetMainInstancePtr()) continue; aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; aMarkPosition.m_eNameColor=pkInstEach->GetNameColorIndex(); if (aMarkPosition.m_eNameColor==CInstanceBase::NAMECOLOR_PARTY) m_PartyPCPositionVector.push_back(aMarkPosition); else m_OtherPCPositionVector.push_back(aMarkPosition); }
Kod bloğunun altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM else if (pkInstEach->IsBoss()) { aMarkPosition.m_fX = (m_fWidth - (float)m_BossMark.GetWidth()) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = (m_fHeight - (float)m_BossMark.GetHeight()) / 2.0f + fDistanceFromCenterY + m_fScreenY; m_BossPositionVector.push_back(aMarkPosition); } #endif
Aratılır;
Kod:
if (m_fScale >= 2.0f) { // Monster STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_MOB));//m_MarkTypeToColorMap[TYPE_MONSTER]); aIterator = m_MonsterPositionVector.begin(); while (aIterator != m_MonsterPositionVector.end()) { TMarkPosition & rPosition = *aIterator; m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY); m_WhiteMark.Render(); ++aIterator; }
Kod bloğunun altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_BOSS)); aIterator = m_BossPositionVector.begin(); while (aIterator != m_BossPositionVector.end()) { TMarkPosition & rPosition = *aIterator; m_BossMark.SetPosition(rPosition.m_fX, rPosition.m_fY); m_BossMark.Render(); ++aIterator; } #endif
Aratılır;
Kod:
const std::string strWhiteMark = strImageRoot + "minimap/whitemark.sub";
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM const std::string strBossMark = strImageRoot + "bossmark.tga"; #endif
Aratılır;
Kod:
m_WhiteMark.SetImagePointer(pSubImage);
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM pSubImage = (CGraphicSubImage *)CResourceManager::Instance().GetResourcePointer(strBossMark.c_str()); m_BossMark.SetImagePointer(pSubImage); #endif
Aratılır;
Kod:
m_PlayerMark.Destroy();
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM m_BossMark.Destroy(); #endif
PythonMiniMap.h açılır ve şu satır aratılır.
Kod:
CGraphicImageInstance m_WhiteMark;
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM CGraphicExpandedImageInstance m_BossMark; #endif
Aratılır;
Kod:
TInstanceMarkPositionVector m_NPCPositionVector;
Altına eklenir;
Kod:
#ifdef BOSS_MARK_SYSTEM TInstanceMarkPositionVector m_BossPositionVector; #endif
SRC ile işimiz bitti.
Gelelim phyton kısmına..
Root içerisindeki colorinfo.py açılır ve aratılır.
Kod:
CHR_NAME_RGB_EMPIRE_PC_C = (23, 30, 138)
Altına eklenir.
Kod:
CHR_NAME_RGB_BOSS = (255, 255, 255)
Ardından introloading.py açılır ve aratılır.
Kod:
chrmgr.NAMECOLOR_WAYPOINT : colorInfo.CHR_NAME_RGB_WAYPOINT,
Altına eklenir;
Kod:
chrmgr.NAMECOLOR_BOSS : colorInfo.CHR_NAME_RGB_BOSS,
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
İndirdiğiniz dosyayı etc packini açın ymirwork/ui kısmına atın packi kapatın.MaviAyGames | Minimapte Boss Önizlemesi Gösterme
Metin2 özel sunucularında kullanıcı deneyimini artırmak, oyuncuların harita üzerinde daha fazla bilgiye ulaşmasını sağlamak oldukça önemlidir. Bu bağlamda, MaviAyGames tarafından geliştirilen minimapte boss önizlemesi sistemi, oyuncuların haritada gezinirken boss konumlarını önceden görebilmelerini sağlar. Bu yazıda, bu sistemin nasıl çalıştığını, nasıl kurulacağını ve Metin2 özel sunucu geliştirme sürecinde ne gibi avantajlar sunduğunu detaylı olarak ele alacağız.
Minimapte Boss Önizlemesi Nedir?[/BR][/BR]Metin2 oyununda, minimap genellikle oyuncunun bulunduğu konumu ve yakındaki diğer karakterleri gösterir. Ancak bazı gelişmiş sistemler sayesinde, bu alana özel NPC'ler, boss karakterler veya önemli objeler de eklenebilir. Boss önizlemesi, bu listede yer alır. Oyuncular, harita üzerinde boss karakterlerin nerede olduğunu görebilir, bu sayede onlara erişim kolaylaşır ve PvP-PvE etkileşimleri daha stratejik hale gelir.
Sistemin Teknik Yapısı[/BR][/BR]Bu sistem genellikle C++ tabanlı sunucu tarafında geliştirilir. Sunucu kodları içinde, belirli NPC'ler için özel işaretlemeler yapılır. Bu işaretlemeler, game server programming süreçlerinde tanımlanır. Ayrıca, client src[/BR] tarafında da minimap üzerine bu bilgilerin yansıtılması için gerekli arayüz değişiklikleri yapılır. Bu işlemde uiscript ve py root dosyaları değiştirilir.
Nasıl Kurulur?[/BR][/BR]Bu sistemin kurulumu, Metin2 özel sunucu geliştirme bilgisi gerektirir. Öncelikle, server src dosyalarında boss NPC'lerin ID'leri belirlenir. Ardından bu ID'ler, minimap üzerinden görüntülenecek şekilde ayarlanır. Bu işlem sırasında martysama tarzı örnek sistemlerden faydalanılabilir. Aynı zamanda, db core üzerinde de boss spawn zamanları ve konumları veritabanında tutulur. Bu sayede sistem, doğru zamanlarda doğru bilgiyi minimapa aktarır.
Avantajları Nelerdir?[/BR][/BR]Oyuncu deneyimi artırılır. Boss hunt等活动ları daha organize ve eğlenceli hale gelir. PvP sistemleri daha stratejikleşir çünkü boss konumları bilindiğinden, onları beklemek isteyen oyuncular daha hazırlıklı olabilir. Ayrıca, bu sistem sayesinde Metin2 development sürecinde daha fazla interaktif yapı oluşturulabilir.
Sonuç[/BR][/BR]MaviAyGames tarafından sunulan minimap boss önizleme sistemi, Metin2 özel sunucularında ciddi bir kullanıcı deneyimi artışı sağlar. Bu tür gelişmiş sistemler, source edit ve game core bilgisiyle birlikte entegre edildiğinde, sunucuların rekabet gücünü ciddi anlamda artırabilir. Eğer Metin2 özel sunucu geliştirmeye ilgi duyuyorsanız, bu tip sistemleri incelemek ve uygulamak, yolculuğunuzda büyük bir fark yaratabilir.
MaviAyGames | Showing Boss Preview on Minimap
In order to enhance the user experience on Metin2 private servers and allow players to access more information on the map, it's quite important. In this context, the boss preview on minimap system developed by MaviAyGames allows players to see where bosses are located on the map in advance. In this article, we will elaborate on how this system works, how it can be installed, and what advantages it offers within the scope of Metin2 private server development.
What Is Boss Preview on Minimap?[/BR][/BR]In the Metin2 game, the minimap usually shows the player's current location and other nearby characters. However, thanks to some advanced systems, special NPCs, boss characters, or important objects can also be added to this area. The boss preview falls into this category. Players can view where boss characters are located on the map, making access easier and PvP-PvE interactions more strategic.
Technical Structure of the System[/BR][/BR]This system is generally developed on the C++-based server side. Within the server codes, special markings are made for certain NPCs. These markings are defined during game server programming processes. Additionally, interface modifications are made on the client src side so that this information can be displayed on the minimap. During this process, uiscript and py root files are modified.
How to Install?[/BR][/BR]Installing this system requires knowledge of Metin2 private server development. First, the IDs of boss NPCs are determined in the server src files. Then these IDs are set to be displayed on the minimap. During this process, examples like martysama systems can be referenced. Meanwhile, boss spawn times and locations are stored in the database within the db core. This ensures that the system transmits accurate information to the minimap at the right times.
Advantages[/BR][/BR]Player experience is enhanced. Boss hunt activities become more organized and fun. PvP systems become more strategic since boss locations are known, allowing players who wish to wait for them to be better prepared. Moreover, with such systems, more interactive structures can be built during the Metin2 development process.
Conclusion[/BR][/BR]The minimap boss preview system offered by MaviAyGames significantly enhances user experience on Metin2 private servers. When integrated with source edit and game core knowledge, such advanced systems can substantially increase the competitive edge of servers. If you're interested in Metin2 private server development, exploring and implementing systems like this can make a significant difference in your journey.
