1534 Level & Stat & Skill & NP & Clan Bug Fix!
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Gameserver / User.cpp & SendMyInfo'yu Bulun tamamen silin verdiğimle değiştirin...
İçeriğiniz Açıldı!
Kod:
Gameserver / User.cpp & SendMyInfo'yu Bulun tamamen silin verdiğimle değiştirin... İçeriğiniz Açıldı!
Kod:
void CUser::SendMyInfo(){
C3DMap* pMap = GetMap();
CKnights* pKnights = nullptr;
if (!pMap->IsValidPosition(GetX(), GetZ(), 0.0f))
{
short x = 0, z = 0;
GetStartPosition(x, z);
m_curx = (float)x;
m_curz = (float)z;
}
QuestDataRequest();
Packet result(WIZ_MYINFO);
// Load up our user rankings (for our NP symbols).
g_pMain->GetUserRank(this);
// Are we the King? Let's see, shall we?
CKingSystem * pData = g_pMain->m_KingSystemArray.GetData(GetNation());
if (pData != nullptr
&& STRCASECMP(pData->m_strKingName.c_str(), m_strUserID.c_str()) == 0)
m_bRank = 1; // We're da King, man.
else
m_bRank = 0; // totally not da King.
result.SByte(); // character name has a single byte length
result << GetSocketID()
<< GetName()
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< GetNation()
<< m_bRace << m_sClass << m_bFace
<< m_nHair
<< m_bRank << m_bTitle
<< GetLevel()
<< m_sPoints
<< uint32(m_iMaxExp) << uint32(m_iExp)
<< GetLoyalty() << GetMonthlyLoyalty()
<< GetFame() << GetClanID();
if (isInClan())
pKnights = g_pMain->GetClanPtr(GetClanID());
if (pKnights == nullptr)
{
result << uint64(0) << uint16(-1) << uint32(0);
}
else
{
if (pKnights->m_sAlliance != 0) {
pKnights->OnLoginAlliance(this);
} else {
pKnights->OnLogin(this);
}
CKnights *aKnights = g_pMain->GetClanPtr(pKnights->GetAllianceID());
result << pKnights->GetAllianceID()
<< pKnights->m_byFlag
<< pKnights->m_strName
<< pKnights->m_byGrade << pKnights->m_byRanking
<< uint16(pKnights->m_sMarkVersion)
<< uint16(pKnights->m_sCape)
<< pKnights->m_bCapeR << pKnights->m_bCapeG << pKnights->m_bCapeB << uint8(0);
}
result << uint8(2) << uint8(3) << uint8(4) << uint8(5)
<< m_iMaxHp << m_sHp << m_iMaxMp << m_sMp
<< m_sMaxWeight << m_sItemWeight
<< GetStat(STAT_STR) << uint8(GetStatItemBonus(STAT_STR))
<< GetStat(STAT_STA) << uint8(GetStatItemBonus(STAT_STA))
<< GetStat(STAT_DEX) << uint8(GetStatItemBonus(STAT_DEX))
<< GetStat(STAT_INT) << uint8(GetStatItemBonus(STAT_INT))
<< GetStat(STAT_CHA) << uint8(GetStatItemBonus(STAT_CHA))
<< m_sTotalHit << m_sTotalAc
<< uint8(m_sFireR) << uint8(m_sColdR) << uint8(m_sLightningR)
<< uint8(m_sMagicR) << uint8(m_sDiseaseR) << uint8(m_sPoisonR)
<< m_iGold
<< m_bAuthority
<< m_bKnightsRank << m_bPersonalRank; // national rank, leader rank
result.append(m_bstrSkill, 9);
for (int i = 0; i < INVENTORY_TOTAL; i++)
{
_ITEM_DATA *pItem = GetItem(i);
if((pItem->nExpirationTime - UNIXTIME < 0 && pItem->nExpirationTime != 0) || pItem->sCount < 1)
{
result << uint32(0) << uint16(0) << uint16(0) << uint8(0)<< uint16(0) << uint32(0) << uint32(0);
pItem->nNum= 0;
}
else
{
result << pItem->nNum
<< pItem->sDuration << pItem->sCount
<< pItem->bFlag // item type flag (e.g. rented)
<< pItem->sRemainingRentalTime // remaining time
<< uint32(0) // unknown
<< pItem->nExpirationTime; // expiration date in unix time
}
}
m_bIsChicken = CheckExistEvent(50, 1);
result << m_bAccountStatus // account status (0 = none, 1 = normal prem with expiry in hours, 2 = pc room)
<< m_bPremiumType // premium type (7 = platinum premium)
<< m_sPremiumTime // premium time
<< m_bIsChicken // chicken/beginner flag
<< m_iMannerPoint;
Send(&result);
g_pMain->AddCharacterName(this);
SetZoneAbilityChange(GetZoneID());
Send2AI_UserUpdateInfo(true);
}- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Yorumlar
Yorum Gönder