GameServer
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
AreaBase クラスabstract

エリア基底クラス [詳解]

#include <AreaBase.h>

AreaBase の継承関係図
Inheritance graph
[凡例]
AreaBase 連携図
Collaboration graph
[凡例]

公開メンバ関数

 AreaBase (const AreaItem *pItem)
 コンストラクタ [詳解]
 
virtual ~AreaBase ()
 デストラクタ [詳解]
 
virtual void Initialize ()
 初期化 [詳解]
 
void Poll (int DeltaTime)
 毎フレームの処理 [詳解]
 
void AddPlayerCharacter (const PlayerCharacterPtr &pPlayer)
 プレイヤーキャラ追加 [詳解]
 
void RemovePlayerCharacter (u32 Uuid)
 プレイヤーキャラ削除 [詳解]
 
void OnRecvMove (u32 Uuid, float X, float Y, float Z, float Rotation)
 移動を受信した [詳解]
 
void OnRecvSkillUse (u32 Uuid, u32 SkillId, u8 TargetType, u32 TargetUuid)
 スキル使用を受信した。 [詳解]
 
void OnRecvItemUse (u32 Uuid, u32 ItemId, u8 TargetType, u32 TargetUuid)
 
void BroadcastPacket (PacketBase *pPacket, Client *pIgnoreClient=NULL)
 パケットのブロードキャスト [詳解]
 
void BroadcastPacketWithRange (PacketBase *pPacket, const Vector3D &Center, float Range, Client *pIgnoreClient=NULL)
 範囲を指定したパケットのブロードキャスト [詳解]
 
float GetHeight (float X, float Y) const
 高さを取得 [詳解]
 
bool CheckMovable (const Vector3D &Start, const Vector3D &End, float ClimbableHeight, Vector3D &OutHit) const
 移動できるかどうかをチェック [詳解]
 
virtual u32 GetId () const =0
 IDを取得 [詳解]
 
u32 GetMasterId () const
 マスタIDを取得 [詳解]
 
virtual bool IsAbleDelete () const =0
 消去可能か? [詳解]
 
virtual bool IsInstance () const
 インスタンスエリアか? [詳解]
 
void CollectCircle (const Vector3D &Center, float Radius, u8 TargetType, std::vector< CharacterBase *> &OutTargets)
 円形でターゲットを取得 [詳解]
 
void CollectBox (const Vector3D &Center, float Width, float Height, u8 TargetType, std::vector< CharacterBase *> &OutTargets)
 矩形でターゲットを取得 [詳解]
 

限定公開メンバ関数

virtual void Update ()
 更新処理 [詳解]
 

限定公開変数類

PlayerManager PlayerMgr
 プレイヤー管理. [詳解]
 
AnpanManager AnpanMgr
 アンパン管理. [詳解]
 

詳解

エリア基底クラス

構築子と解体子

◆ AreaBase()

AreaBase::AreaBase ( const AreaItem pItem)

コンストラクタ

引数
[in]pItemエリアマスタアイテム
呼び出し関係図:

◆ ~AreaBase()

virtual AreaBase::~AreaBase ( )
inlinevirtual

デストラクタ

関数詳解

◆ AddPlayerCharacter()

void AreaBase::AddPlayerCharacter ( const PlayerCharacterPtr pPlayer)

プレイヤーキャラ追加

引数
[in]pPlayerプレイヤーキャラへのweak_ptr
呼び出し関係図:

◆ BroadcastPacket()

void AreaBase::BroadcastPacket ( PacketBase pPacket,
Client pIgnoreClient = NULL 
)

パケットのブロードキャスト

エリア内にいるプレイヤー全員にパケットをバラ撒く。

引数
[in]pPacketパケット
[in]pIgnoreClient除外するクライアント
呼び出し関係図:
被呼び出し関係図:

◆ BroadcastPacketWithRange()

void AreaBase::BroadcastPacketWithRange ( PacketBase pPacket,
const Vector3D Center,
float  Range,
Client pIgnoreClient = NULL 
)

範囲を指定したパケットのブロードキャスト

範囲内にいるプレイヤー全員にパケットをバラ撒く。

引数
[in]pPacketパケット
[in]Center中心座標
[in]Range半径
[in]pIgnoreClient除外するクライアント
呼び出し関係図:

◆ CheckMovable()

bool AreaBase::CheckMovable ( const Vector3D Start,
const Vector3D End,
float  ClimbableHeight,
Vector3D OutHit 
) const

移動できるかどうかをチェック

レイキャストによるチェック

引数
[in]Startチェック開始地点
[in]Endチェック終了地点
[in]floatClimbableHeight 登ることができる高さ
[out]OutHitレイが当たった地点
戻り値
移動可能ならtrueを返す
呼び出し関係図:

◆ CollectBox()

void AreaBase::CollectBox ( const Vector3D Center,
float  Width,
float  Height,
u8  TargetType,
std::vector< CharacterBase *> &  OutTargets 
)

矩形でターゲットを取得

引数
[in]Center中心座標
[in]Width
[in]Height高さ
[in]TargetTypeターゲットタイプ
[out]OutTargetsターゲットリスト
呼び出し関係図:

◆ CollectCircle()

void AreaBase::CollectCircle ( const Vector3D Center,
float  Radius,
u8  TargetType,
std::vector< CharacterBase *> &  OutTargets 
)

円形でターゲットを取得

引数
[in]Center中心座標
[in]Radius半径
[in]TargetTypeターゲットタイプ
[out]OutTargetsターゲットリスト
呼び出し関係図:

◆ GetHeight()

float AreaBase::GetHeight ( float  X,
float  Y 
) const

高さを取得

ハイトマップを参照して高さを返す

引数
[in]XX座標
[in]YY座標
戻り値
高さ
呼び出し関係図:

◆ GetId()

u32 AreaBase::GetId ( ) const
pure virtual

IDを取得

マスタのIDとは異なる可能性がある。マスタIDを取得したい場合はGetMasterId関数を使用する。

戻り値
ID

InstanceArea, Areaで実装されています。

◆ GetMasterId()

u32 AreaBase::GetMasterId ( ) const
inline

マスタIDを取得

戻り値
マスタID

◆ Initialize()

void AreaBase::Initialize ( )
inlinevirtual

初期化

InstanceAreaで再実装されています。

被呼び出し関係図:

◆ IsAbleDelete()

bool AreaBase::IsAbleDelete ( ) const
pure virtual

消去可能か?

戻り値
消去可能ならtrueを返す。

InstanceArea, Areaで実装されています。

◆ IsInstance()

bool AreaBase::IsInstance ( ) const
inlinevirtual

インスタンスエリアか?

戻り値
インスタンスエリアならtrueを返す。

InstanceAreaで再実装されています。

◆ OnRecvItemUse()

void AreaBase::OnRecvItemUse ( u32  Uuid,
u32  ItemId,
u8  TargetType,
u32  TargetUuid 
)
呼び出し関係図:

◆ OnRecvMove()

void AreaBase::OnRecvMove ( u32  Uuid,
float  X,
float  Y,
float  Z,
float  Rotation 
)

移動を受信した

引数
[in]UuidプレイヤーキャラのUUID
[in]XX座標
[in]YY座標
[in]ZZ座標
[in]Rotation回転
呼び出し関係図:

◆ OnRecvSkillUse()

void AreaBase::OnRecvSkillUse ( u32  Uuid,
u32  SkillId,
u8  TargetType,
u32  TargetUuid 
)

スキル使用を受信した。

引数
[in]UuidプレイヤーキャラのUUID
[in]SkillIdスキルID
[in]TargetTypeターゲットタイプ
[in]TargetUuidターゲットのUUID
呼び出し関係図:

◆ Poll()

void AreaBase::Poll ( int  DeltaTime)

毎フレームの処理

引数
[in]前フレームからの経過時間
呼び出し関係図:

◆ RemovePlayerCharacter()

void AreaBase::RemovePlayerCharacter ( u32  Uuid)

プレイヤーキャラ削除

引数
[in]UuidプレイヤーキャラのUUID
呼び出し関係図:

◆ Update()

void AreaBase::Update ( )
inlineprotectedvirtual

更新処理

InstanceAreaで再実装されています。

被呼び出し関係図:

メンバ詳解

◆ AnpanMgr

AnpanManager AreaBase::AnpanMgr
protected

アンパン管理.

◆ PlayerMgr

PlayerManager AreaBase::PlayerMgr
protected

プレイヤー管理.


このクラス詳解は次のファイルから抽出されました: