⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 map.h

📁 韩国英雄王座倒闭后流出来部分源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
								int pMaxY, 
								CBeing *pProperty, 
								char *pMapTitle, 
								_POINT pPoint, 
								_POINT* pPvpPoint);
	
	int GetMapType( BYTE pLayer ) { return 	MapConfig[ pLayer ].nMapType; 	}



	//	--------------------------------------------------------------------------------
	//	甘捞 加己 沥焊甫 馆券 矫糯 
	//	--------------------------------------------------------------------------------
	CBeing * GetGlobalMapProperty( BYTE pLayer )	{	return &MapConfig[ pLayer].GlobalMapProperty; }
	
	//	--------------------------------------------------------------------------------
	//	秦寸 Layer狼 Map 捞抚阑 馆券 矫糯
	//	--------------------------------------------------------------------------------
	char* GetMapTitle( BYTE pLayer )	{	return	MapConfig[ pLayer ].strMapTitle;	}
	
	void SetFightZoneProperty(_FIGHTZONE *,int iLayer = 0) ;
	void SetLobby(int nLayer, int nX, int nY) ;

	//	Account ID肺 Socket Handle 茫扁
	_LPSOCKET_FD Find_Account( char *pAccountID )
	{
		return (_LPSOCKET_FD)m_MapAccountID.Find( pAccountID );
	}
	
	void	Delete_Account(char *pAccountID )
	{
		m_MapAccountID.Delete(pAccountID);
	}

	//	Handle肺 Socket Handle 茫扁
	_LPSOCKET_FD Find_Player( DWORD pHandle )
	{
		return (_LPSOCKET_FD)m_MapPlayerHandle.Find( pHandle );
	}


	//	--------------------------------------------------------------------------------
	//	救傈 瘤开 魄沥
	//	2003-11-3 加档甫 困秦 牢扼牢栏肺 函版 
	//	--------------------------------------------------------------------------------
	bool IsSafeZone( int pMapLayer, _POINT_TILE pTile )
	{

		if(  pMapLayer >= m_nMaxLayer	) return false;
		
		if (pTile.x < 0 || pTile.x >	MapConfig[pMapLayer].nMaxX	) return false;
		if (pTile.y < 0 || pTile.y >	MapConfig[pMapLayer].nMaxY	) return false;

		//	2004.05.10 坷幅肺 Duke Kim眠啊
		if( pMapLayer >= MAX_MAPLAYER )	return false;
		

		if(_MAP[pMapLayer][pTile.x][pTile.y].nCheckBit & CHK_SAFEZONE) return true ;
		

		else return false;	//	救傈瘤开 咯何
	}

	//	--------------------------------------------------------------------------------
	//	框流烙 啊瓷 瘤开 
	//	2003-11-3 加档甫 困秦 牢扼牢栏肺 函版 
	//	--------------------------------------------------------------------------------
	bool IsMoveable( int pMapLayer, int pX, int pY )
	{
		if(  pMapLayer >= m_nMaxLayer	) return false;
		
		if ( pX >	MapConfig[pMapLayer].nMaxX	) return false;
		if ( pY >	MapConfig[pMapLayer].nMaxY	) return false;

		return 	(_MAP[pMapLayer][pX][pY].nCheckBit & CHK_MOVE) ;
	}
	
	bool IsFightZone( int pMapLayer, int pX, int pY )
	{

		if(  pMapLayer >= m_nMaxLayer	) return false;
		
		if ( ( pX < 0 ) || pX > MapConfig[pMapLayer].nMaxX	) return false;
		if ( ( pY < 0 ) || pY > MapConfig[pMapLayer].nMaxY	) return false;
		
		if(_MAP[pMapLayer][pX][pY].nCheckBit & CHK_FIGHTZONE) return true;
		else return false ;
	}

	//	--------------------------------------------------------------------------------
	//	PK 瘤开 魄沥
	//	2003-11-3 加档甫 困秦 牢扼牢栏肺 函版 
	//	--------------------------------------------------------------------------------
	bool IsPKZone( BYTE pMapLayer, _POINT_TILE pTile) 	
	{
		if(  pMapLayer >= m_nMaxLayer	) return false;
		
		if ( ( pTile.x < 0 ) || pTile.x > MapConfig[pMapLayer].nMaxX	) return false;
		if ( ( pTile.y < 0 ) || pTile.y > MapConfig[pMapLayer].nMaxY	) return false;

		if(_MAP[pMapLayer][pTile.x][pTile.y].nCheckBit & CHK_PKZONE) return true;
		else return false ;
	}


	NPC * Find_NPC( BYTE & nMapLayer,DWORD & pHandle )	
	{
		if(nMapLayer >= m_nMaxLayer ) 
			return NULL ;

		return ((NPC *)m_MapNPC[nMapLayer]->Find( pHandle )); 	
	}

	int Count_Player()              {   return m_MapPlayerHandle.m_SafeMap.size();	}

	_LPSOCKET_FD Find_Player( char * pPlayerID );

	
	void MAP_PlayerClear( DWORD pHandle );

	bool CheckNPCMoveable(	BYTE pMapIndex,	int x, int y,	BYTE nNPC = MAP_MONSTER);


	void Monster_Create( NPC *pNPC, _POINT_TILE pTile, BYTE nNPC = MAP_MONSTER );
	void NPC_Create( NPC *pNPC, _POINT_TILE pTile );

	int CreateTempHandle();							//	Temp	Handle 积己

	//	--------------------------------------------------------------------------------
	//	Memory Pool包访 Functions
	//	--------------------------------------------------------------------------------
	bool CreateMemory();

	void*	Pool_Socket_Pop();						//	Sokcet Pool
	void	Pool_Socket_Push( void *pPlayer );			

	CItem*	Pool_Item_Pop();						//	Item Pool
	void	Pool_Item_Push( void *pItem, int pDebugCode=0 );
	
	void* Pool_Skill_Pop();								//	Skill	Pool
	void  Pool_Skill_Push( void *pSkill ,int i = 0 );	//	Skill	Push
	
	void* Pool_Guild_Pop();								//	Guild	Pool
	void  Pool_Guild_Push( void *pGuild  )
	{
		m_PoolGuild.Insert( (_LPGUILD)pGuild );	
	}
	


	//	--------------------------------------------------------------------------------
	//	Party包访 Functions
	//	--------------------------------------------------------------------------------
	void Party_Create( _LPZW_PARTYCREATE_REP pPacket );		//	颇萍 积己
	void Party_Create( _LPZW_PARTYLIST_REP	pPacket );
	CParty * Find_Party( DWORD pHandle )	{	return (CParty *)m_MapParty.Find( pHandle );	}
	void Party_Delete( DWORD pHandle, bool bForce );


	//	--------------------------------------------------------------------------------
	//	Guild包访 Functions
	//	--------------------------------------------------------------------------------
	_LPGUILD Find_Guild(char * lpGuildName)	{	return (_LPGUILD) m_MapGuild.Find(lpGuildName); }
	void	Guild_Delete(char * lpGuildName);

	//	--------------------------------------------------------------------------------
	//	Map俊 IN/OUT
	//	--------------------------------------------------------------------------------
	bool MAP_PlayerIn( _LPSOCKET_FD pSocketFD, _POINT &pPoint );
	bool MAP_PlayerOut( PlayerInfo *pPlayer );

	//	--------------------------------------------------------------------------------
	//	AOI郴 PC & NPC Control
	//	--------------------------------------------------------------------------------
	int  AOI_PlayerMove( _LPSOCKET_FD pSocketFD, _POINT &pPoint );	//	AOI郴 PC 涝仿 		
	int  AOI_NPCMove( NPC* pNpcHandle, _POINT pMoveTile , BYTE nNPC = MAP_MONSTER );		//	AOI郴 NPC 涝仿
	
	bool AOI_PlayerDelete( CPlayer *pPlayer );

	//	--------------------------------------------------------------------------------
	//	NOTENOTE: 2003-10-30 badajoa CriticalSection甫 临捞扁 困茄 累诀阑 茄促. 
	//	--------------------------------------------------------------------------------
	void AOI_PlayerFastDelete( CPlayer *pPlayer ) ;

	bool AOI_PlayerDelete( DWORD pHandle, BYTE pMapLayer, BYTE pX, BYTE pY );

	//	--------------------------------------------------------------------------------
	//	AOI Functions
	//	--------------------------------------------------------------------------------
	int  MapView( BYTE pMapLayer, DWORD pX, DWORD pY );
	
	void AOI_NPCPut(NPC *pNpcHandle, _POINT_TILE pMoveTile,BYTE nNPC =  MAP_MONSTER);
	void AOI_NPCPoint( NPC* pNpcHandle , _POINT_TILE pTile );
	int  AOI_MovePoint(	BYTE pMapLayer,	_POINT_TILE pTile );

	//	--------------------------------------------------------------------------------
	//	AOI郴 Item Control
	//	--------------------------------------------------------------------------------
	int	 AOI_ItemCreate( CItem *pItem, _POINT_TILE pTile );
	void AOI_ItemDelete(CItem *pItem );

	void AOI_BatchItemDelete(CItem *pItem );

	//	--------------------------------------------------------------------------------
	//	涝仿 X,Y Map俊 困摹茄 PC Object甫 掘澜 
	//
	//	-	付阑捞 酒囱 版快父 茫澜
	//	--------------------------------------------------------------------------------
	void * GetPCObject( BYTE pMapLayer, WORD pX, WORD pY)
	{
		if( _MAP[pMapLayer][pX][pY].nType	== MAP_PC &&	//	PC捞绊 

		  !(_MAP[pMapLayer][pX][pY].nCheckBit & CHK_SAFEZONE)
		)
		{
			return _MAP[pMapLayer][pX][pY].pObject;
		}
		

		return NULL;
	}

	//	--------------------------------------------------------------------------------
	//	涝仿 X,Y Map俊 困摹茄 PC Object甫 掘澜 
	//
	//	-	付阑捞 酒囱 版快父 茫澜
	//	--------------------------------------------------------------------------------
	void * GetNPCObject( BYTE pMapLayer, WORD pX, WORD pY)
	{
		if( _MAP[pMapLayer][pX][pY].nType	== MAP_MONSTER &&	//	NPC捞绊 

		  !(_MAP[pMapLayer][pX][pY].nCheckBit & CHK_SAFEZONE)
		)
		{
			return _MAP[pMapLayer][pX][pY].pObject;
		}
		
		return NULL;
	}
	

	
	//	--------------------------------------------------------------------------------
	//	涝仿 X,Y Map俊 困摹茄 PC Object甫 掘澜 
	//
	//	-	付阑捞 酒囱 版快父 茫澜
	//	--------------------------------------------------------------------------------
	void * GetTargetObject( BYTE pMapLayer, WORD pX, WORD pY,bool & IsNPC) ;

	void * GetAllTargetObject( BYTE pMapLayer, WORD pX, WORD pY,bool & IsNPC) ;

	

};


#endif //#if !defined(_MAP_H_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -