#ifndef _BATTLEGROUND_SERVER_MAP_H_ #define _BATTLEGROUND_SERVER_MAP_H_ #pragma once #include #include #include class CCharacter; class CMonster; namespace VirtualArea { // Àü¹æ ÂüÁ¶ struct ProtoType; class CBGServerMap : public CVirtualArea { public: CBGServerMap(const VirtualArea::ProtoType* lpProtoType, unsigned short wMapNumber); ~CBGServerMap(void); void Process(); unsigned short Enter(CCharacter* lpCharacter, unsigned char cMoveType); bool Leave(CCharacter* lpCharacter); bool AllRespawn(); // ¸ðµÎ ´ë±â½Ç·Î À̵¿ // °ÔÀÓ ·ê °ü·Ã bool GameStart(); // °ÔÀÓÀ» ½ÃÀÛÇÑ´Ù. unsigned char RuleCheck(bool bTimeout = false); // ·êÀ» Ã¼Å©ÇØ¼­ À̱äÁ¾Á·À» ¸®ÅÏ void AwardToWinner(); void KillChar(unsigned long dwDeadCID, CCharacter* lpOffencer); void UpdateKillInfo(unsigned long dwDeadCID, unsigned long dwKillerCID); void AddScore(unsigned char cNation, short wScore); void CalculateScore(); // ¼®»ó Á¡·ÉÀüÀ϶§ Á¡¼ö °è»ê void ResetEnteringMin(unsigned char cMin); // Get/Set ÇÔ¼ö unsigned char GetMapType() { return m_MapInfo.m_cMapType; } MapInfo& GetMapInfo() { return m_MapInfo; } ResultInfo& GetResultInfo() { return m_ResultInfo; } unsigned char GetStatus() { return m_cStatus; } void SetStatus(unsigned char cStatus) { m_cStatus = cStatus; } void SetRemainTime(unsigned long dwRemainTime) { m_dwRemainTime = dwRemainTime; } bool IsPlaying() { return (GAME_PLAYING == m_cStatus); } bool IsResting() { return (GAME_RESTING == m_cStatus); } bool IsPlayer(CCharacter* lpCharacter); bool IsSpectator(CCharacter* lpCharacter); // Àڱ⠹æÀÇ Á¤º¸¸¦ º¸³»ÁÖ´Â ÇÔ¼ö bool SendMapInfo(); bool SendResultInfo(); private: bool InitializeGameObject(); void FindWinner(CharacterList& winnerList); unsigned short AddCharacter(CCharacter* lpCharacter); unsigned short AddSpectator(CCharacter* lpSpectator); // ¹Ù´Ú¿¡ ¶³¾îÁø Item ¸ðµÎ Áö¿ì±â void DeleteAllItem(); // °ÔÀÓ ¹æ Á¤º¸ MapInfo m_MapInfo; ResultInfo m_ResultInfo; unsigned char m_cStatus; unsigned long m_dwRemainTime; // ½Ã°£¿¡ °ü·ÃµÈ ¸ðµç ºÎºÐ¿¡¼­ ³²Àº ½Ã°£À¸·Î »ç¿ë }; } #endif // _BATTLEGROUND_SERVER_MAP_H_