Cevap: 18xx ALLY KODLARI
void CKnightsManager::KnightsAllianceRemove(CUser* pUser, Packet & pkt)
{
if (pUser == nullptr
|| pUser->isDead())
return;
Packet result(WIZ_KNIGHTS_PROCESS, uint8(KNIGHTS_ALLY_REMOVE)); // ally disband
CKnights * pKnights = g_pMain->GetClanPtr(pUser->m_bKnights) , *pTargetKnights = g_pMain->GetClanPtr(pKnights->m_sAlliance);
_KNIGHTS_ALLIANCE * pAlliance = g_pMain->GetAlliancePtr(pKnights->m_sAlliance);
if( pAlliance == nullptr)
{
KnightsAllianceCreate(pUser,pkt);
//->ReloadKnightAndUserRanks();
pAlliance = g_pMain->GetAlliancePtr(pUser->m_bKnights);
}
if(pAlliance != nullptr)
{
CKnights * pKnights1 = g_pMain->GetClanPtr(pAlliance->sMercenaryClan_1),
* pKnights2 = g_pMain->GetClanPtr(pAlliance->sMercenaryClan_2),
* pKnights3 = g_pMain->GetClanPtr(pAlliance->sSubAllianceKnights);
if( pKnights->m_strChief == pUser->GetName() ||
pTargetKnights->m_strChief == pUser->GetName() &&
!pTargetKnights->isInAlliance() &&
pAlliance != nullptr &&
pAlliance->sMainAllianceKnights == pKnights->GetAllianceID() ||
pAlliance->sMercenaryClan_1 == pKnights->m_sIndex ||
pAlliance->sMercenaryClan_2 == pKnights->m_sIndex ||
pAlliance->sSubAllianceKnights == pKnights->m_sIndex)
{
result << uint8(1) << pKnights->m_sAlliance << pUser->m_bKnights << uint16(-1);
pUser->Send(&result);
pTargetKnights->m_sCape = -1;//yanlış !! pTargetKnights->m_sCape//Doğru alt clanın pelerini olsa bile -1 değere düşürüp pelerinini siler relogda geri gelir ama orj de gitmemesi gerek zaten o yüzden -1 değer yanlıştır sadece scape olması gerek karakterin pelerini yoksa zaten siler varsa kendi pelerinini verir
g_pMain->AddDatabaseRequest(result, pUser);
std::string noticeText;
g_pMain->GetServerResource(IDS_REMOVE_KNIGHTS_ALLIANCE, ¬iceText, pKnights->GetName().c_str());
pTargetKnights->SendChatAlliance("%s", noticeText.c_str());
if(pKnights1 != nullptr)
pKnights1->SendChatAlliance("%s", noticeText.c_str());
if(pKnights2 != nullptr)
pKnights2->SendChatAlliance("%s", noticeText.c_str());
if(pKnights3 != nullptr)
pKnights3->SendChatAlliance("%s", noticeText.c_str());
}
}
}