mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 00:46:46 +00:00
[Feature] Zone Scripting (#4908)
* [Feature] Add Zone Scripting Capabilities * Push * Update zone.cpp * Fix crashes * Lua * Add other events, finish Lua * Add EVENT_ENTER_ZONE * Final * Push * Push * [Feature] Add Zone Scripting Capabilities * Push * Update zone.cpp * Fix crashes * Add EVENT_ENTER_ZONE * Remove duplicates * Update embparser.cpp
This commit is contained in:
+14
-11
@@ -33,15 +33,17 @@ namespace EQ
|
||||
class ItemInstance;
|
||||
}
|
||||
|
||||
struct RunningQuest {
|
||||
Mob* owner = nullptr;
|
||||
Client* initiator = nullptr;
|
||||
EQ::ItemInstance* questitem = nullptr;
|
||||
const SPDat_Spell_Struct* questspell = nullptr;
|
||||
bool depop_npc = false;
|
||||
std::string encounter = "";
|
||||
Zone* zone = nullptr;
|
||||
};
|
||||
|
||||
class QuestManager {
|
||||
struct running_quest {
|
||||
Mob *owner;
|
||||
Client *initiator;
|
||||
EQ::ItemInstance* questitem;
|
||||
const SPDat_Spell_Struct* questspell;
|
||||
bool depop_npc;
|
||||
std::string encounter;
|
||||
};
|
||||
|
||||
struct PausedTimer {
|
||||
Mob* owner;
|
||||
@@ -49,12 +51,13 @@ class QuestManager {
|
||||
uint32 time;
|
||||
};
|
||||
public:
|
||||
|
||||
QuestManager();
|
||||
virtual ~QuestManager();
|
||||
|
||||
void StartQuest(Mob *_owner, Client *_initiator = nullptr, EQ::ItemInstance* _questitem = nullptr, const SPDat_Spell_Struct* _questspell = nullptr, std::string encounter = "");
|
||||
void StartQuest(const RunningQuest& q);
|
||||
void EndQuest();
|
||||
bool QuestsRunning() { return !quests_running_.empty(); }
|
||||
bool QuestsRunning() { return !m_running_quests.empty(); }
|
||||
|
||||
void Process();
|
||||
|
||||
@@ -381,7 +384,7 @@ public:
|
||||
bool handin(std::map<std::string, uint32> required);
|
||||
|
||||
private:
|
||||
std::stack<running_quest> quests_running_;
|
||||
std::stack<RunningQuest> m_running_quests;
|
||||
|
||||
bool HaveProximitySays;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user