亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sector.h

?? 奇跡世界 部分源代碼奇跡世界 部分源代碼奇跡世界 部分源代碼
?? H
字號:
//=============================================================================================================================
/// Sector class
/**
	@author	Kim Min Wook < taiyo@webzen.com >
	@since	2004. 12. 14
	@remark
		- 鞘靛甫 備己竅綽 扁夯 竄困 冀磐
	@note
		- 
	@history 
		- 2006/1/11 : 敲飯撈絹啊 冀磐俊 甸絹 吭闌 錠 辨靛 瀝焊 焊郴林檔廢 眠啊, 
					扁糧狼 m_ResultMsg甫 葷儈竅帶 何盒闌 昏力, 葷儈竅瘤 臼酒檔 凳.
					SetFirst(), GetNext() -> iterator肺 官廁
*/
//=============================================================================================================================
#ifndef __SECTOR_H__
#define __SECTOR_H__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <ResultCode.h>
#include <CriticalSection.h>
#include <map>
#include <PacketStruct.h>
#include <SolarHashTable.h>
#include "VarMsg.h"

using namespace util;
using namespace std;

class Sector;
class Object;
class Character;
class Player;
class Item;
class NPC;
struct AI_MSG;

typedef util::SolarHashTable<Player *>				SECTOR_PLAYER_HASH;
typedef util::SolarHashTable<Player *>::iterator	SECTOR_PLAYER_HASH_ITR;
typedef util::SolarHashTable<NPC *>					SECTOR_NPC_HASH;
typedef util::SolarHashTable<NPC *>::iterator		SECTOR_NPC_HASH_ITR;
typedef util::SolarHashTable<Item *>				SECTOR_ITEM_HASH;
typedef util::SolarHashTable<Item *>::iterator		SECTOR_ITEM_HASH_ITR;

class Sector  
{
	/// 拋膠飄 搬苞俊 蝶扼 彌利拳啊 夸備凳!
	enum { MAX_BROADCAST_AT_ONCE_SIZE = 50 };
	enum { DEFAULT_OBJECT_POOL_SIZE = 30 };
	enum { MAX_DEFAULT_RENDERINFO_COUNT = 50 };

public:

	Sector();
	virtual ~Sector();
	VOID					Init( DWORD dwSectorIndex, WORD wGroupIndex );
	VOID					Release();
	VOID					Update( DWORD dwDeltaTick );
	DWORD					GetPlayerNum() { return m_pPlayerHashTable->GetDataNum(); }

	// 按眉 火澇, 昏力
	RC::eSECTOR_REULT		AddObject( Object * pObject, BOOL bEnterField );
	RC::eSECTOR_REULT		RemoveObject( Object * pObject );

	// 按眉 火澇, 昏力甫 林函俊 舅覆
	RC::ePACKET_SEND_RESULT SendAddObject( Object * pObject, BOOL bVillage=FALSE );
	RC::ePACKET_SEND_RESULT SendAddObject_Dir( Object * pObject, WORD wAngle );
	RC::ePACKET_SEND_RESULT SendRemoveObject( Object * pObject );

	// 腳痹 冀磐 瀝焊 眠啊, 昏力(敲飯撈絹俊霸 舅覆)
	VOID					SendAddSectorInfo( Object *pObject, BOOL bVillage=FALSE );
	VOID					SendDelSectorInfo( Object *pObject );


	RC::ePACKET_SEND_RESULT SendPacketToSector( MSG_BASE_FORWARD * pMsg, WORD wSize );								// Sector俊 菩哦闌 焊晨
	RC::ePACKET_SEND_RESULT SendPacketToSectorExceptMe( MSG_BASE_FORWARD * pMsg, WORD wSize, DWORD dwMyObjKey=0 );	// Sector俊 磊腳闌 力寇竅絆 菩哦闌 焊晨

	RC::ePACKET_SEND_RESULT SendExPacketToSector( DWORD dwNumberOfMessages, BYTE **pMsg, WORD *pwSize );
	RC::ePACKET_SEND_RESULT SendExPacketToSectorExceptMe( DWORD dwNumberOfMessages, BYTE **pMsg, WORD *pwSize, DWORD dwMyObjKey=0 );


	Object*					FindObject( eOBJECT_TYPE eObjecType, DWORD dwObjectKey );

	VOID					SendAIMessageToSectorExceptMe( Object *pObject, AI_MSG *pMsg, WORD wSize );

	// 皋牢鷗百闌 吝繳欄肺 老瀝康開俊 加竅綽 某腐磐甸闌 茫綽促.
	BYTE					FindTargetsByAttacker( eSKILL_TARGET_TYPE eTargetType, Character* pAttacker, Character** pTargetArray, WzVector &vMainTargetPos, 
													float fRange, unsigned int uiRangeForm, float fArea, 
													BYTE byCountLimit, DWORD dwExceptTargetKey );

	// 老瀝 康開俊 加竅綽 某腐磐甸闌 茫綽促.
	BYTE					FindTargetsByPosition( Character** pTargetArray, WzVector &vMainPos, float fRange, BYTE byCountLimit );
    
	template <class PlayerFinder>
	Character *				SearchPlayer( PlayerFinder& finder );

	template <class NPCFinder>
	Character *				SearchNPC( NPCFinder& finder );

	template <class ItemFinder>
	BOOL					SearchFieldItem( ItemFinder& finder );

	// 敲飯撈絹 府膠飄 iterating
	template< class ObjectOperator >
	VOID					ForeachPlayer( ObjectOperator & Operator );

	// 酒撈袍 府膠飄 iterating
	template< class ObjectOperator >
		VOID				ForeachItem( ObjectOperator & Operator );

	// NPC 府膠飄 iterating
	template< class ObjectOperator >
	VOID					ForeachNPC( ObjectOperator & Operator );

	// 轟器飄 貿府 包訪(弊縫, 冀磐 盒且)
	VOID					IncreaseReferencePlayer( Object *pObject );
	VOID					DecreaseReferencePlayer( Object *pObject );
	inline WORD				GetGroupIndex()		{ return m_wGroupIndex; }
	inline DWORD			GetSectorIndex()	{ return m_dwSectorIndex; }

protected:
	VOID					OnSendAddPlayer(Player *pPlayer, BOOL bVillage=FALSE);	// Player狼 眠啊 菩哦 焊晨
	VOID					OnSendRemovePlayer(Player *pPlayer);	// Player狼 力芭 菩哦 焊晨

	VOID					OnSendAddFieldItem(Item *pItem);		// FieldItem狼 眠啊 菩哦 焊晨
	VOID					OnSendRemoveFieldItem(Item *pItem);		// FieldItem狼 力芭 菩哦 焊晨

	VOID					OnSendAddNPC(NPC *pNPC);				// NPC狼 眠啊 菩哦 焊晨
	VOID					OnSendAddNPC_Dir(NPC *pNPC, WORD wAngle);	// NPC狼 眠啊 菩哦 焊晨 - 規氫 愛絆 積己登綽 版快
	VOID					OnSendRemoveNPC(NPC *pNPC);				// NPC狼 力芭 菩哦 焊晨

	VOID					OnSendAllPlayersInfo( Player *pPlayer, BOOL bVillage );

private:
	VOID					OnSendSummonedInfo( Player *pPlayer, NPC *pNearNPC );

private:
	int						m_iPlayerReferenceCount;		// 撈 冀磐狼 瀝焊甫 曼煉竅綽 敲飯撈絹狼 薦

	WORD					m_wGroupIndex;		// 冀磐甸狼 弓瀾(弊縫) 牢鄲膠
	DWORD					m_dwSectorIndex;	// 冀磐 牢鄲膠

	SECTOR_PLAYER_HASH *	m_pPlayerHashTable;
	SECTOR_NPC_HASH *		m_pNPCHashTable;
	SECTOR_ITEM_HASH *		m_pFieldItemHashTable;

	static VarMsg			m_VarMsg;
};


template <class PlayerFinder>
Character* Sector::SearchPlayer( PlayerFinder& finder )
{
	// 利(敲飯撈絹) 府膠飄吝俊輯 矯具郴俊 甸絹坷綽 利撈 樂綽瘤 八葷
	for( SECTOR_PLAYER_HASH_ITR it = m_pPlayerHashTable->begin() ; it != m_pPlayerHashTable->end() ; ++it )
	{
		if( finder((*it)) )
		{
			break;
		}
	}
	return finder.GetTarget();
}

template <class NPCFinder>
Character* Sector::SearchNPC( NPCFinder& finder )
{
	// 利(敲飯撈絹) 府膠飄吝俊輯 矯具郴俊 甸絹坷綽 利撈 樂綽瘤 八葷
	for( SECTOR_NPC_HASH_ITR it = m_pNPCHashTable->begin() ; it != m_pNPCHashTable->end() ; ++it )
	{
		if( finder((*it)) )
		{
			break;
		}
	}

	return finder.GetTarget();
}

template <class ItemFinder>
BOOL Sector::SearchFieldItem( ItemFinder& finder )
{
	// 利(敲飯撈絹) 府膠飄吝俊輯 矯具郴俊 甸絹坷綽 利撈 樂綽瘤 八葷
	for( SECTOR_ITEM_HASH_ITR it = m_pFieldItemHashTable->begin() ; it != m_pFieldItemHashTable->end() ; ++it )
	{
		if( finder((*it)) )
		{
			return TRUE;
		}
	}

	return FALSE;
}


template< class ObjectOperator >
VOID Sector::ForeachPlayer( ObjectOperator & Operator )
{
	for( SECTOR_PLAYER_HASH_ITR it = m_pPlayerHashTable->begin() ; it != m_pPlayerHashTable->end() ; ++it )
	{
		Operator((*it));
	}
}

template< class ObjectOperator >
VOID Sector::ForeachItem( ObjectOperator & Operator )
{
	for( SECTOR_ITEM_HASH_ITR it = m_pFieldItemHashTable->begin() ; it != m_pFieldItemHashTable->end() ; ++it )
	{
		Operator((*it));
	}
}

template< class ObjectOperator >
VOID Sector::ForeachNPC( ObjectOperator & Operator )
{
	for( SECTOR_NPC_HASH_ITR it = m_pNPCHashTable->begin() ; it != m_pNPCHashTable->end() ; ++it )
	{
		Operator((*it));
	}
}


#endif // __SECTOR_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利视频一区二区| 99精品黄色片免费大全| 国产精一品亚洲二区在线视频| 国产精品一区二区三区四区| 国产成人午夜99999| 欧美日韩免费一区二区三区| www欧美成人18+| 亚洲第四色夜色| 成人免费观看视频| 欧美一区二区三区视频免费播放 | 91成人免费在线| 国产亚洲欧美日韩俺去了| 水野朝阳av一区二区三区| 99久久精品免费| 国产清纯白嫩初高生在线观看91 | 中文字幕亚洲视频| 精品一区二区三区免费观看| 在线观看视频一区| 一区二区三区小说| 99re这里只有精品视频首页| 337p粉嫩大胆噜噜噜噜噜91av | 国产精品久久毛片av大全日韩| 久久精品国产一区二区三 | 不卡在线观看av| 精品乱人伦小说| 琪琪久久久久日韩精品| 欧美日韩亚洲国产综合| 一区二区久久久久| 99r国产精品| 国产精品电影院| 成人h精品动漫一区二区三区| 久久精品视频一区| 国产原创一区二区| 日本一区二区电影| 国产福利一区在线| 久久亚洲影视婷婷| 成人av片在线观看| 国产精品麻豆视频| 99久久精品国产麻豆演员表| 中文字幕一区av| 一本大道av一区二区在线播放| 亚洲婷婷综合色高清在线| 成人h动漫精品一区二| 国产精品网友自拍| 成人激情文学综合网| 亚洲情趣在线观看| 五月天一区二区| 欧美亚男人的天堂| 亚洲午夜电影在线观看| 欧美一区二区女人| 国产乱理伦片在线观看夜一区| av午夜一区麻豆| av在线综合网| 欧美大片在线观看一区二区| 亚洲综合激情小说| 日韩一级高清毛片| 国产成人免费在线观看| 中文字幕日本不卡| 欧美日韩色综合| 久久av中文字幕片| 国产精品另类一区| 欧美区视频在线观看| 国模无码大尺度一区二区三区| 日韩一区欧美一区| 欧美乱熟臀69xxxxxx| 国产精品一区二区免费不卡| 亚洲精品欧美在线| 精品国产伦一区二区三区观看方式| 国产成a人亚洲| 亚洲小说欧美激情另类| 精品少妇一区二区三区在线播放| 暴力调教一区二区三区| 亚洲成人激情社区| 国产日韩亚洲欧美综合| 在线观看精品一区| 91视频在线观看| 日韩中文字幕一区二区三区| 日韩欧美视频在线| 99国产精品久久久久久久久久| 亚洲国产成人tv| 国产性天天综合网| 91精品国产综合久久久蜜臀粉嫩 | 91国产精品成人| 欧美日韩在线三级| 亚洲国产激情av| 色成年激情久久综合| 成人av手机在线观看| 欧美中文字幕一二三区视频| 欧美日韩一区中文字幕| 蜜桃视频在线观看一区| 夜夜揉揉日日人人青青一国产精品| 99久久精品免费观看| 国产欧美视频一区二区| 极品少妇xxxx偷拍精品少妇| 精品国产伦理网| 国产一区二区精品久久| 亚洲欧美日韩中文播放| 亚洲综合999| 777久久久精品| 国产成人亚洲综合a∨婷婷| 爽爽淫人综合网网站| 一区二区三区四区视频精品免费| 久久久久久久久97黄色工厂| 6080亚洲精品一区二区| 在线免费观看不卡av| 99国产精品久久久久久久久久久| 国产九九视频一区二区三区| 看电影不卡的网站| 亚洲国产精品久久人人爱蜜臀| 一区二区三区免费| 1区2区3区精品视频| 中文子幕无线码一区tr| 日本一区二区电影| 日本一区二区三区在线观看| 国产午夜精品久久久久久免费视| 欧美一区永久视频免费观看| 欧美理论在线播放| 欧美一区二区三区视频免费播放| 91精品午夜视频| 日韩欧美电影在线| 欧美本精品男人aⅴ天堂| 日韩欧美成人一区| 欧美一级午夜免费电影| 日韩亚洲欧美综合| 日韩免费电影一区| 久久一留热品黄| 国产蜜臀av在线一区二区三区| 国产欧美综合在线观看第十页| 国产午夜亚洲精品理论片色戒| 国产午夜久久久久| 日韩美女啊v在线免费观看| 亚洲欧美日韩国产综合在线 | xf在线a精品一区二区视频网站| 精品免费国产一区二区三区四区| 精品精品国产高清a毛片牛牛| 久久久蜜臀国产一区二区| 中文字幕一区在线| 亚洲国产综合91精品麻豆| 欧美aaaaa成人免费观看视频| 国产精品亚洲综合一区在线观看| 成人美女视频在线看| 在线看不卡av| 欧美大片顶级少妇| 国产精品视频线看| 午夜视频在线观看一区| 国产精品一区免费视频| 色综合色综合色综合| 欧美精品久久天天躁| 国产婷婷精品av在线| 一区二区三区高清在线| 美女视频黄频大全不卡视频在线播放| 国产精品一区二区久久精品爱涩| 91在线视频观看| 91精品国产综合久久婷婷香蕉| 中文字幕在线视频一区| 午夜欧美电影在线观看| 精品无人区卡一卡二卡三乱码免费卡| 成人免费高清视频在线观看| 欧美日韩国产成人在线91| 久久九九99视频| 亚洲国产视频直播| 国产一区二区精品在线观看| 欧美性一级生活| 国产日韩欧美高清| 婷婷成人激情在线网| 成人aa视频在线观看| 精品少妇一区二区三区免费观看| 国产精品网站在线| 精品一区二区三区久久| 欧美日韩黄色影视| 亚洲视频电影在线| 国产精品亚洲专一区二区三区 | 99久久99久久精品国产片果冻| 日韩视频免费直播| 亚洲成人免费电影| 色综合天天综合网国产成人综合天| 日韩欧美成人一区| 亚洲福利视频导航| 99久久免费国产| 国产女同互慰高潮91漫画| 久久电影网电视剧免费观看| 欧美日韩在线播放三区四区| 国产精品九色蝌蚪自拍| 国产91色综合久久免费分享| 欧美一区二区免费| 日本在线观看不卡视频| 欧美专区亚洲专区| 亚洲日本中文字幕区| 成人性生交大片免费看中文网站| 精品国产网站在线观看| 日本亚洲天堂网| 在线不卡免费欧美| 五月激情综合色| 制服丝袜中文字幕亚洲| 一区二区三区免费| 欧美网站大全在线观看| 午夜视频一区二区三区| 欧美日韩综合一区| 亚洲风情在线资源站| 欧美挠脚心视频网站|