Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1.  
  2. #define OXEVENT_MAP_INDEX 113
  3.  
  4. #ifdef ENABLE_FEATURES_OXEVENT
  5.  
  6. #define PASSWORD_MANAGER "metin2team" // Change here password for login in event manager.
  7.  
  8. enum TypeInfo
  9. {
  10.     OXEVENT_TOP_LIMIT = 5,
  11.     OXEVENT_FIRST_ANSWER = 1,
  12.     OXEVENT_NO_DATA = 999,
  13.     OXEVENT_OPEN_LOGIN = 0,
  14.     OXEVENT_OPEN_EVENT = 1,
  15.     OXEVENT_CLOSE_GATES = 2,
  16.     OXEVENT_CLOSE_EVENT = 3,
  17.     OXEVENT_REWARD_PLAYERS = 4,
  18.     OXEVENT_ASK_QUESTION = 5,
  19.     OXEVENT_FORCE_CLOSE_EVENT = 6,
  20. };
  21. #endif
  22.  
  23. struct tag_Quiz
  24. {
  25.     char level;
  26.     char Quiz[256];
  27.     bool answer;
  28. };
  29.  
  30. enum OXEventStatus
  31. {
  32.     OXEVENT_FINISH = 0, // OXŔĚşĄĆ®°ˇ żĎŔüČ÷ łˇł­ »óĹÂ
  33.     OXEVENT_OPEN = 1,   // OXŔĚşĄĆ®°ˇ ˝ĂŔ۵Ę. Ŕ»µÎÁö(20012)¸¦ ĹëÇŘĽ­ ŔÔŔĺ°ˇ´É
  34.     OXEVENT_CLOSE = 2// OXŔĚşĄĆ®ŔÇ Âü°ˇ°ˇ łˇł˛. Ŕ»µÎÁö(20012)¸¦ ĹëÇŃ ŔÔŔĺŔĚ Â÷´ÜµĘ
  35.     OXEVENT_QUIZ = 3,   // ÄűÁ ĂâÁ¦ÇÔ.
  36.  
  37.     OXEVENT_ERR = 0xff
  38. };
  39.  
  40. class COXEventManager : public singleton<COXEventManager>
  41. {
  42.     private :
  43.         std::map<DWORD, DWORD> m_map_char;
  44.         std::map<DWORD, DWORD> m_map_attender;
  45.         std::map<DWORD, DWORD> m_map_miss;
  46.  
  47. #ifdef ENABLE_FEATURES_OXEVENT
  48.         std::map<DWORD, DWORD> m_map_answers;
  49. #endif
  50.  
  51.         std::vector<std::vector<tag_Quiz> > m_vec_quiz;
  52.  
  53.         LPEVENT m_timedEvent;
  54.  
  55. #ifdef ENABLE_FEATURES_OXEVENT
  56.         LPEVENT m_counterEvent;
  57. #endif
  58.  
  59.     protected :
  60.         bool CheckAnswer();
  61.  
  62.         bool EnterAudience(LPCHARACTER pChar);
  63.         bool EnterAttender(LPCHARACTER pChar);
  64.  
  65.     public :
  66.         bool Initialize();
  67.         void Destroy();
  68.  
  69.         OXEventStatus GetStatus();
  70.         void SetStatus(OXEventStatus status);
  71.  
  72.         bool LoadQuizScript(const char* szFileName);
  73.  
  74.         bool Enter(LPCHARACTER pChar);
  75.        
  76.         bool CloseEvent();
  77.  
  78.         void ClearQuiz();
  79.         bool AddQuiz(unsigned char level, const char* pszQuestion, bool answer);
  80.         bool ShowQuizList(LPCHARACTER pChar);
  81.  
  82. #ifdef ENABLE_FEATURES_OXEVENT
  83.         DWORD GetObserverCount() { return (m_map_char.size() - m_map_attender.size() > 0) ? m_map_char.size() - m_map_attender.size() : 0; }
  84.         std::string GetGuildWinner(LPCHARACTER pkChar);
  85.  
  86.         bool IsExistVnum(DWORD dwItemVnum);
  87.         bool IsExistCount(BYTE count);
  88.         bool IsExistKeyAnswers(LPCHARACTER pChar, int * keyAnswers);
  89.         //bool CheckPassword(LPCHARACTER pChar, const char* c_szPassword);
  90.  
  91.         bool IsLastManStanding();
  92.         void InsertAnswers(LPCHARACTER pChar);
  93.         void TruncateAnswers(LPCHARACTER pChar);
  94.         void RegisterWinner();
  95.         void InitializePacket(LPCHARACTER pChar);
  96.  
  97.         void RefreshWinners();
  98.         void OpenGui(LPCHARACTER pChar);
  99.         void Disconnect(LPCHARACTER pChar);
  100.  
  101.         void GetErrByStatus(LPCHARACTER pChar, int key);
  102.  
  103.         void NoticeAll(std::string msg);
  104.         void Manager(LPCHARACTER ch, const char* c_pData);
  105. #endif
  106.  
  107.         bool Quiz(unsigned char level, int timelimit);
  108.         bool GiveItemToAttender(DWORD dwItemVnum, BYTE count);
  109.  
  110.         bool CheckAnswer(bool answer);
  111.         void WarpToAudience();
  112.  
  113.         bool LogWinner();
  114.  
  115.         DWORD GetAttenderCount() { return m_map_attender.size(); }
  116.  
  117.         // IP-Checker (protection against multi-account)
  118.     public:
  119.         bool CheckIpAddress(LPCHARACTER ch);
  120.         void RemoveFromAttenderList(DWORD dwPID);
  121. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement