PHP Code:
SSHandler.cpp
PHP Code:
DWORD CTMapSvrModule::OnDM_CHECKCHANGENAME_ACK(LPPACKETBUF pBUF)
PHP Code:
{
BYTE bRet;
DWORD dwCharID;
DWORD dwKey;
BYTE bInven;
BYTE bItem;
CString strName;
pBUF->m_packet
>> bRet
>> dwCharID
>> dwKey
>> bInven
>> bItem
>> strName;
CTPlayer * pPlayer = FindPlayer(dwCharID, dwKey);
if(!pPlayer || !pPlayer->m_pMAP || !pPlayer->m_bMain)
return EC_NOERROR;
if(pPlayer->m_bStore || pPlayer->m_dealItem.m_bStatus >= DEAL_START)
return EC_NOERROR;
if(bRet)
{
pPlayer->SendCS_CHANGECHARBASE_ACK(
bRet,
dwCharID,
IK_NAME,
0,
strName);
return EC_NOERROR;
}
CTInven * pInven = pPlayer->FindTInven(bInven);
if(!pInven)
{
pPlayer->SendCS_CHANGECHARBASE_ACK(
CCB_NOITEM,
dwCharID,
IK_NAME,
0,
strName);
return EC_NOERROR;
}
CTItem * pItem = pInven->FindTItem(bItem);
if(!pItem)
{
pPlayer->SendCS_CHANGECHARBASE_ACK(
CCB_NOITEM,
dwCharID,
IK_NAME,
0,
strName);
return EC_NOERROR;
}
pPlayer->ChangeCharBase(IK_NAME, strName);
UseItem(pPlayer, pInven, pItem, 1);
pPlayer->SendCS_MOVEITEM_ACK(MI_SUCCESS);
return EC_NOERROR;
}
PHP Code:
{
BYTE bRet;
DWORD dwCharID;
DWORD dwKey;
BYTE bInven;
BYTE bItem;
CString strName;
pBUF->m_packet
>> bRet
>> dwCharID
>> dwKey
>> bInven
>> bItem
>> strName;
CTPlayer * pPlayer = FindPlayer(dwCharID, dwKey);
if(!pPlayer || !pPlayer->m_pMAP || !pPlayer->m_bMain)
return EC_NOERROR;
if(pPlayer->m_bStore || pPlayer->m_dealItem.m_bStatus >= DEAL_START)
return EC_NOERROR;
if(bRet)
{
pPlayer->SendCS_CHANGECHARBASE_ACK(
bRet,
dwCharID,
IK_NAME,
0,
strName);
return EC_NOERROR;
}
CTInven * pInven = pPlayer->FindTInven(bInven);
if(!pInven)
{
pPlayer->SendCS_CHANGECHARBASE_ACK(
CCB_NOITEM,
dwCharID,
IK_NAME,
0,
strName);
return EC_NOERROR;
}
CTItem * pItem = pInven->FindTItem(bItem);
if(!pItem)
{
pPlayer->SendCS_CHANGECHARBASE_ACK(
CCB_NOITEM,
dwCharID,
IK_NAME,
0,
strName);
return EC_NOERROR;
}
CString strOriName = pPlayer->m_strNAME;
pPlayer->ChangeCharBase(IK_NAME, strName);
UseItem(pPlayer, pInven, pItem, 1);
pPlayer->SendCS_MOVEITEM_ACK(MI_SUCCESS);
MAPPLAYER::iterator it;
CString strAnnounce;
//You can change the message with your own message.
strAnnounce = strOriName+" changed name to "+strName;
for( it = m_mapPLAYER.begin(); it != m_mapPLAYER.end(); it++)
{
if((*it).second->m_bMain)
(*it).second->SendCS_CHAT_ACK( CHAT_WORLD, 0, GetSvrMsg(NAME_OPERATOR), BuildNetString(NAME_NULL, strAnnounce));
}
return EC_NOERROR;
}
If this tutorial was helpful do not forget to press thanks






