Forumda bu sistemin benzeri şekilde 2 tane paylaşım yapılmış iki konuda sorunlu ve çalışmamaktadır gerek yorumlarda gerekte forumda bu sistem ile ilgili konular açılmış ve herhangi bir sonuca ulaşılmamış o yüzden paylaşma gereğinde bulundum. Sorunsuz çalışmaktadır ve paylaşılanlardan farklıdır. Kanıtta görüldüğü gibi max oyuncu, max skor , min level olmak üzere 3 tane opsiyonu bulunmaktadır işi bilen rahatlıkla opsiyonları arttırabilir.
İNDİR
VT
## MAX PLAYER ÇALIŞMAMA SORUNU ÇÖZÜMÜ ##
input_login.cpp içinde bul
değiştir
war_map.cpp bul
kod bloğu altına ekle
war_map.h bul
altına ekle
## KENDİ SUNUCUMDAN KANIT ##
Ekli dosyayı görüntüle 20391
İNDİR
VT
## MAX PLAYER ÇALIŞMAMA SORUNU ÇÖZÜMÜ ##
input_login.cpp içinde bul
Kod:
if (ch->GetMapIndex() >= 10000)
{
if (CWarMapManager::instance().IsWarMap(ch->GetMapIndex()))
ch->SetWarMap(CWarMapManager::instance().Find(ch->GetMapIndex()));
else if (marriage::WeddingManager::instance().IsWeddingMap(ch->GetMapIndex()))
ch->SetWeddingMap(marriage::WeddingManager::instance().Find(ch->GetMapIndex()));
else {
ch->SetDungeon(CDungeonManager::instance().FindByMapIndex(ch->GetMapIndex()));
}
}
değiştir
Kod:
if (ch->GetMapIndex() >= 10000)
{
if (CWarMapManager::instance().IsWarMap(ch->GetMapIndex()))
{
CWarMap * pMap = CWarMapManager::instance().Find(ch->GetMapIndex());
if (pMap)
{
BYTE bIdx;
if (ch->GetGuild() && pMap->GetTeamIndex(ch->GetGuild()->GetID(), bIdx))
{
// sys_err("[TEST]Current: %d Max: %d", pMap->GetCurrentPlayer(bIdx), pMap->GetMaxPlayer(bIdx));
if (pMap->GetCurrentPlayer(bIdx) + 1 > quest::CQuestManager::instance().GetEventFlagBR("maxplayer", ch->GetGuild()->GetName())) {
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, "oyuncu limiti dolu!");
ch->GoHome();
return;
}
}
}
ch->SetWarMap(pMap);
}
else if (marriage::WeddingManager::instance().IsWeddingMap(ch->GetMapIndex())) {
ch->SetWeddingMap(marriage::WeddingManager::instance().Find(ch->GetMapIndex()));
}
else {
ch->SetDungeon(CDungeonManager::instance().FindByMapIndex(ch->GetMapIndex()));
}
}
war_map.cpp bul
Kod:
DWORD CWarMap::GetGuildID(BYTE bIdx)
kod bloğu altına ekle
Kod:
int CWarMap::GetCurrentPlayer(BYTE bIdx)
{
assert(bIdx < 2);
return m_TeamData[bIdx].iMemberCount;
}
war_map.h bul
Kod:
DWORD GetGuildID(BYTE bIdx);
altına ekle
Kod:
int GetCurrentPlayer(BYTE bIdx);
## KENDİ SUNUCUMDAN KANIT ##
Ekli dosyayı görüntüle 20391