コード例 #1
0
ファイル: AIUser.cpp プロジェクト: Brandon1115/snoxd-koserver
void CUser::HealMagic()
{
    int region_x = (int)(m_curx / VIEW_DIST);
    int region_z = (int)(m_curz / VIEW_DIST);

    MAP* pMap = GetMap();
    if (pMap == nullptr) return;
    int min_x = region_x - 1;
    if(min_x < 0) min_x = 0;
    int min_z = region_z - 1;
    if(min_z < 0) min_z = 0;
    int max_x = region_x + 1;
    if(max_x > pMap->GetXRegionMax()) max_x = pMap->GetXRegionMax();
    int max_z = region_z + 1;
    if(min_z > pMap->GetZRegionMax()) min_z = pMap->GetZRegionMax();

    int search_x = max_x - min_x + 1;
    int search_z = max_z - min_z + 1;

    int i, j;

    for(i = 0; i < search_x; i++)	{
        for(j = 0; j < search_z; j++)	{
            HealAreaCheck( min_x+i, min_z+j );
        }
    }
}
コード例 #2
0
ファイル: User.cpp プロジェクト: Kageyoshi/snoxd-koserver
void CUser::HealMagic()
{
	int region_x = (int)(m_curx / VIEW_DIST);
	int region_z = (int)(m_curz / VIEW_DIST);

	MAP* pMap = GetMap();
	if (pMap == NULL) return;
	int max_xx = pMap->m_sizeRegion.cx;
	int max_zz = pMap->m_sizeRegion.cy;

	int min_x = region_x - 1;	if(min_x < 0) min_x = 0;
	int min_z = region_z - 1;	if(min_z < 0) min_z = 0;
	int max_x = region_x + 1;	if(max_x >= max_xx) max_x = max_xx - 1;
	int max_z = region_z + 1;	if(min_z >= max_zz) min_z = max_zz - 1;

	int search_x = max_x - min_x + 1;		
	int search_z = max_z - min_z + 1;	
	
	int i, j;

	for(i = 0; i < search_x; i++)	{
		for(j = 0; j < search_z; j++)	{
			HealAreaCheck( min_x+i, min_z+j );
		}
	}
}