RC_RESULT CObject_PlayerOther::OnCommand(const SCommand_Object *pCmd ) { RC_RESULT rcResult = RC_SKIP; switch ( pCmd->m_wID ) { case OC_UPDATE_EQUIPMENT: { UINT dwModifyFlags = pCmd->m_adwParam[0]; UINT *pData = (UINT*)(pCmd->m_apParam[1]); UINT i, dwIndex; dwIndex = 0; for ( i = 0; i < HEQUIP_NUMBER; i++ ) { if ( dwModifyFlags & (1<<i) ) { GetCharacterData()->Set_Equip((HUMAN_EQUIP)i, pData[dwIndex]); dwIndex++; } } rcResult = RC_OK; } break; case OC_UPDATE_TEAM_FLAG: { if(this != CObjectManager::GetMe()->GetMySelf()) { CCharacterData* pData = GetCharacterData(); pData->Set_HaveTeamFlag( pCmd->m_abParam[0] ); pData->Set_TeamLeaderFlag( pCmd->m_abParam[1] ); pData->Set_TeamFullFlag( pCmd->m_abParam[2] ); } rcResult = RC_OK; } break; case OC_TEAM_FOLLOW_MEMBER: { CCharacterData* pData = GetCharacterData(); pData->Set_TeamFollowListCount( pCmd->m_adwParam[0] ); for( INT i=0; i<(INT)(pCmd->m_adwParam[0]); ++i ) { pData->Set_TeamFollowedMember(i, pCmd->m_adwParam[i+1]); } rcResult = RC_OK; } break; case OC_UPDATE_TEAM_FOLLOW_FLAG: { CCharacterData* pData = GetCharacterData(); pData->Set_TeamFollowFlag( pCmd->m_abParam[0] ); CharacterLogic_GetAI()->OnAIStopped(); rcResult = RC_OK; } break; default: return CObject_PlayerNPC::OnCommand(pCmd); } return rcResult; }