GameServer
PlayerCharacter.h
[詳解]
1 
6 #ifndef __PLAYERCHARACTER_H__
7 #define __PLAYERCHARACTER_H__
8 
10 #include "PlayerExp.h"
12 #include "WeakPtrDefine.h"
13 #include "Packet/CharacterType.h"
14 #include "Item/ItemList.h"
15 
16 class Client;
17 class ItemData;
18 
24 {
25 
26 public:
27 
40  PlayerCharacter(Client *pInClient, u32 InCharacterId, u8 InJob, u32 Level, u32 InExp, u32 InGold, bool bInIsGM, u32 RightEquipId, u32 LeftEquipId);
41 
45  virtual ~PlayerCharacter();
46 
52  Client *GetClient() const { return pClient; }
53 
59  void AddExp(int Value) { Exp.Add(Value); }
60 
66  int GetExp() const { return Exp.Get(); }
67 
73  void SetName(const std::string &InName) { Name = InName; }
74 
80  const std::string &GetName() const { return Name; }
81 
87  u32 GetCharacterId() const { return CharacterId; }
88 
94  u8 GetJob() const { return Job; }
95 
101  virtual u8 GetCharacterType() const { return CharacterType::Player; }
102 
108  void SetParty(const PartyPtr &pInParty) { pParty = pInParty; }
109 
115  PartyPtr GetParty() const { return pParty; }
116 
121  void OnMoved();
122 
127  void OnAreaChange();
128 
134  u32 GetGold() const { return Gold; }
135 
141  void AddGold(u32 Value);
142 
148  void SubtractGold(u32 Value);
149 
155  void InitializeSkillTree(const FlexArray<u32> &OpenedNodes);
156 
162  const SkillTree &GetSkillTree() const { return Tree; }
163 
170  u8 OpenSkillTree(u32 NodeId);
171 
177  void OnRecvItemList(const FlexArray<ItemData> &List);
178 
185  void UseItem(u32 ItemId, CharacterPtr pTarget);
186 
193  void AddItem(u32 ItemId, u32 Count);
194 
201  void SubtractItem(u32 ItemId, u32 Count);
202 
208  const ItemList &GetItemList() const { return Items; }
209 
216  void ChangeEquip(u32 RightEqiupId, u32 LeftEquipId);
217 
223  virtual void OnBuffAdded(u32 BuffId);
224 
230  virtual void OnBuffRemoved(u8 BuffType);
231 
237  bool IsGM() const { return bIsGM; }
238 
239 private:
240 
241  // クライアント
242  Client *pClient;
243 
244  // 経験値.
245  PlayerExp Exp;
246 
247  // キャラクタID
248  u32 CharacterId;
249 
250  // 名前.
251  std::string Name;
252 
253  // ジョブ
254  u8 Job;
255 
256  // ゴールド
257  u32 Gold;
258 
259  // パーティ
260  PartyPtr pParty;
261 
262  // スキルツリー
263  SkillTree Tree;
264 
265  // アイテムリスト
266  ItemList Items;
267 
268  // GMか?
269  bool bIsGM;
270 
271  // セーブするエリアID
272  u32 SaveAreaId;
273 
274  // セーブする座標.
275  Vector3D SavePosition;
276 
277 
278  // レベルアップコールバック
279  void OnLevelUp();
280 
281  // パラメータを保存.
282  void SaveParameter();
283 
284  // スキルがキャンセルされた。
285  void OnSkillCanceled(u8 Reason);
286 
287  // リキャストが完了した。
288  void OnSkillRecastFinished(u32 SkillId);
289 
290  // アイテムを使用した。
291  void OnUsedItem(u32 ItemId);
292 
293  // 殺害した。
294  void OnKilled(CharacterBase *pKilledCharacter);
295 
296  // ドロップアイテムを取得。
297  void GetDrop(u32 DropId);
298 
299 };
300 
301 #endif // #ifndef __PLAYERCHARACTER_H__
const std::string & GetName() const
名前を取得
Definition: PlayerCharacter.h:80
void SetParty(const PartyPtr &pInParty)
パーティを設定
Definition: PlayerCharacter.h:108
void OnAreaChange()
エリアが切り替わった
Definition: PlayerCharacter.cpp:67
unsigned char u8
Definition: TypeDefs.h:6
アイテムデータパケット
Definition: ItemData.h:17
void UseItem(u32 ItemId, CharacterPtr pTarget)
アイテム使用
Definition: PlayerCharacter.cpp:176
void AddExp(int Value)
経験値増加
Definition: PlayerCharacter.h:59
プレイヤー
Definition: CharacterType.h:32
void AddItem(u32 ItemId, u32 Count)
アイテム増加
Definition: PlayerCharacter.cpp:183
PlayerCharacter(Client *pInClient, u32 InCharacterId, u8 InJob, u32 Level, u32 InExp, u32 InGold, bool bInIsGM, u32 RightEquipId, u32 LeftEquipId)
コンストラクタ
Definition: PlayerCharacter.cpp:31
u8 OpenSkillTree(u32 NodeId)
スキルツリーのノードを開く
Definition: PlayerCharacter.cpp:116
u8 GetJob() const
ジョブを取得
Definition: PlayerCharacter.h:94
キャラクタ基底クラス
Definition: CharacterBase.h:24
weak_ptr< CharacterBase > CharacterPtr
Definition: WeakPtrDefine.h:10
void OnRecvItemList(const FlexArray< ItemData > &List)
アイテムリストを受信した
Definition: PlayerCharacter.cpp:167
virtual ~PlayerCharacter()
デストラクタ
Definition: PlayerCharacter.cpp:54
virtual void OnBuffAdded(u32 BuffId)
バフが追加された。
Definition: PlayerCharacter.cpp:238
Client * GetClient() const
クライアント取得
Definition: PlayerCharacter.h:52
void AddGold(u32 Value)
ゴールドを増加
Definition: PlayerCharacter.cpp:75
プレイヤーの経験値管理.
Definition: PlayerExp.h:15
void SubtractGold(u32 Value)
ゴールドを消費
Definition: PlayerCharacter.cpp:87
void OnMoved()
移動した
Definition: PlayerCharacter.cpp:60
const SkillTree & GetSkillTree() const
スキルツリー取得
Definition: PlayerCharacter.h:162
キャラクタータイプパケット
virtual void OnBuffRemoved(u8 BuffType)
バフが消滅した。
Definition: PlayerCharacter.cpp:245
u32 GetGold() const
ゴールドを取得
Definition: PlayerCharacter.h:134
Definition: Vector3D.h:8
virtual u8 GetCharacterType() const
キャラクタタイプを取得
Definition: PlayerCharacter.h:101
Definition: SkillTree.h:13
unsigned int u32
Definition: TypeDefs.h:10
プレイヤー経験値クラス
u32 GetCharacterId() const
キャラクタID取得
Definition: PlayerCharacter.h:87
クライアントクラス
Definition: Client.h:26
void SetName(const std::string &InName)
名前を設定
Definition: PlayerCharacter.h:73
weak_ptr< Party > PartyPtr
Definition: WeakPtrDefine.h:19
void ChangeEquip(u32 RightEqiupId, u32 LeftEquipId)
装備切り替え
Definition: PlayerCharacter.cpp:209
void Add(u32 Value)
増加
Definition: PlayerExp.cpp:17
キャラクタ基底クラス
const ItemList & GetItemList() const
アイテムリスト取得
Definition: PlayerCharacter.h:208
プレイヤーキャラクタ
Definition: PlayerCharacter.h:23
Definition: ItemList.h:9
void InitializeSkillTree(const FlexArray< u32 > &OpenedNodes)
スキルツリー初期化
Definition: PlayerCharacter.cpp:107
bool IsGM() const
GMか?
Definition: PlayerCharacter.h:237
PartyPtr GetParty() const
パーティを取得
Definition: PlayerCharacter.h:115
void SubtractItem(u32 ItemId, u32 Count)
アイテム消費
Definition: PlayerCharacter.cpp:196
u32 Get() const
取得
Definition: PlayerExp.h:43
int GetExp() const
経験値取得
Definition: PlayerCharacter.h:66