Quest.h
上传用户:jxpjxmjjw
上传日期:2009-12-07
资源大小:5877k
文件大小:3k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. // Copyright (C) 2004 Team Python
  2. //  
  3. // This program is free software; you can redistribute it and/or modify
  4. // it under the terms of the GNU General Public License as published by
  5. // the Free Software Foundation; either version 2 of the License, or
  6. // (at your option) any later version.
  7. // 
  8. // This program is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. // GNU General Public License for more details.
  12. // 
  13. // You should have received a copy of the GNU General Public License
  14. // along with this program; if not, write to the Free Software 
  15. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  16. #ifndef WOWPYTHONSERVER_QUEST_H
  17. #define WOWPYTHONSERVER_QUEST_H
  18. #include "Common.h"
  19. enum QuestStatus{
  20.     QUEST_STATUS_COMPLETE       = 1,
  21.     QUEST_STATUS_UNAVAILABLE    = 2,    // need to be higher level
  22.     QUEST_STATUS_INCOMPLETE     = 3,
  23.     QUEST_STATUS_AVAILABLE      = 4,
  24. };
  25. class Quest
  26. {
  27. public:
  28.     Quest()
  29.     {
  30.         m_targetGuid = 0;
  31.         m_originalGuid = 0;
  32.         m_zone = 0;
  33.         memset(m_questItemId, 0, 16);
  34.         memset(m_questItemCount, 0, 16);
  35.         memset(m_questMobId, 0, 16);
  36.         memset(m_questMobCount, 0, 16);
  37.         memset(m_choiceItemId, 0, 20);
  38.         memset(m_choiceItemCount, 0, 20);
  39.         memset(m_rewardItemId, 0, 20);
  40.         memset(m_rewardItemCount, 0, 20);
  41.     
  42.         m_choiceRewards = 0;
  43.         m_itemRewards = 0;
  44.         m_rewardGold = 0;
  45.         m_questXp = 0;
  46.         m_requiredLevel = 0;
  47.         m_previousQuest = 0;
  48.     }
  49.     uint32 m_questId;
  50.     uint32 m_zone;
  51.     // String descriptions sent to Client
  52.     std::string m_title;
  53.     std::string m_details;
  54.     std::string m_objectives;
  55.     std::string m_completedText;
  56.     std::string m_incompleteText;
  57.     // Quest pre-requisites
  58.     uint32 m_requiredLevel;     // level you are required to be to do this quest
  59.     uint32 m_previousQuest;     // id of a previous quest that much be completed first
  60.     // Quest Requirements
  61.     uint32 m_originalGuid;      // GUID of the original questgiving creature // only needed when m_targetGuid is filled out
  62.     uint32 m_targetGuid;        // GUID of a creature to speak with to complete the quest
  63.     uint32 m_questItemId[4];    // entry ID of the item type to find
  64.     uint32 m_questItemCount[4]; // number of items to find
  65.     uint32 m_questMobId[4];     // entry ID of the mob to be slain for this quest
  66.     uint32 m_questMobCount[4];  // number of mobs to slay
  67.     // Rewards
  68.     uint16 m_choiceRewards;   // number of items to choose from, max 5?
  69.     uint32 m_choiceItemId[5];    // entry ID of the items to choose for a reward
  70.     uint32 m_choiceItemCount[5]; // number of each item to be awarded
  71.     uint16 m_itemRewards;       // number of items always rewarded
  72.     uint32 m_rewardItemId[5];   // entry ID of the items to be awarded
  73.     uint32 m_rewardItemCount[5];// count of each item to be awarded
  74.     uint32 m_rewardGold;        // gold reward
  75.     uint32 m_questXp;           // XP gained from completing this quest
  76. };
  77. #endif