forked from mindsear/TemplateNPC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate_npc.patch
95 lines (88 loc) · 3.9 KB
/
template_npc.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 2fa94f57ca..fee438d1b1 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -85,6 +85,7 @@
#include "WeatherMgr.h"
#include "WhoListStorage.h"
#include "WorldSession.h"
+#include "../../../src/server/scripts/Custom/TemplateNPC.h"
#include <boost/asio/ip/address.hpp>
@@ -2124,6 +2125,26 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Calculate guild limitation(s) reset time...");
InitGuildResetTime();
+ // Load templates for Template NPC #1
+ TC_LOG_INFO("server.loading", "Loading Template Talents...");
+ sTemplateNpcMgr->LoadTalentsContainer();
+
+ // Load templates for Template NPC #2
+ TC_LOG_INFO("server.loading", "Loading Template Glyphs...");
+ sTemplateNpcMgr->LoadGlyphsContainer();
+
+ // Load templates for Template NPC #3
+ TC_LOG_INFO("server.loading", "Loading Template Gear for Humans...");
+ sTemplateNpcMgr->LoadHumanGearContainer();
+
+ // Load templates for Template NPC #4
+ TC_LOG_INFO("server.loading", "Loading Template Gear for Alliances...");
+ sTemplateNpcMgr->LoadAllianceGearContainer();
+
+ // Load templates for Template NPC #5
+ TC_LOG_INFO("server.loading", "Loading Template Gear for Hordes...");
+ sTemplateNpcMgr->LoadHordeGearContainer();
+
// Preload all cells, if required for the base maps
if (sWorld->getBoolConfig(CONFIG_BASEMAP_LOAD_GRIDS))
{
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 660af91ed6..cc63701347 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -46,6 +46,7 @@ EndScriptData */
#include "WardenCheckMgr.h"
#include "WaypointManager.h"
#include "World.h"
+#include "../../../src/server/scripts/Custom/TemplateNPC.h"
class reload_commandscript : public CommandScript
{
@@ -163,6 +164,7 @@ public:
{ "waypoint_data", rbac::RBAC_PERM_COMMAND_RELOAD_WAYPOINT_DATA, true, &HandleReloadWpCommand, "" },
{ "vehicle_accessory", rbac::RBAC_PERM_COMMAND_RELOAD_VEHICLE_ACCESORY, true, &HandleReloadVehicleAccessoryCommand, "" },
{ "vehicle_template_accessory", rbac::RBAC_PERM_COMMAND_RELOAD_VEHICLE_TEMPLATE_ACCESSORY, true, &HandleReloadVehicleTemplateAccessoryCommand, "" },
+ { "template_npc", rbac::RBAC_PERM_COMMAND_RELOAD_TEMPLATE_NPC, true, &HandleReloadTemplateNPCCommand, "" },
};
static std::vector<ChatCommand> commandTable =
{
@@ -1186,6 +1188,18 @@ public:
handler->SendGlobalGMSysMessage("RBAC data reloaded.");
return true;
}
+
+ static bool HandleReloadTemplateNPCCommand(ChatHandler * handler, const char* /*args*/)
+ {
+ TC_LOG_INFO("misc", "Reloading templates for Template NPC table...");
+ sTemplateNpcMgr->LoadTalentsContainer();
+ sTemplateNpcMgr->LoadGlyphsContainer();
+ sTemplateNpcMgr->LoadHumanGearContainer();
+ sTemplateNpcMgr->LoadAllianceGearContainer();
+ sTemplateNpcMgr->LoadHordeGearContainer();
+ handler->SendGlobalGMSysMessage("Template NPC templates reloaded.");
+ return true;
+ }
};
void AddSC_reload_commandscript()
diff --git a/src/server/scripts/Custom/custom_script_loader.cpp b/src/server/scripts/Custom/custom_script_loader.cpp
index 87e53ae554..9c686aa649 100644
--- a/src/server/scripts/Custom/custom_script_loader.cpp
+++ b/src/server/scripts/Custom/custom_script_loader.cpp
@@ -16,10 +16,11 @@
*/
// This is where scripts' loading functions should be declared:
-
+void AddSC_TemplateNPC();
// The name of this function should match:
// void Add${NameOfDirectory}Scripts()
void AddCustomScripts()
{
+ AddSC_TemplateNPC();
}