Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
ScriptSystem.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
DatabaseEnv.h
"
7
#include "
ObjectMgr.h
"
8
#include "
ScriptMgr.h
"
9
#include "
ScriptSystem.h
"
10
11
ScriptPointVector
const
SystemMgr::_empty
;
12
13
void
SystemMgr::LoadScriptWaypoints
()
14
{
15
uint32
oldMSTime =
getMSTime
();
16
17
// Drop Existing Waypoint list
18
m_mPointMoveMap
.clear();
19
20
uint64
uiCreatureCount = 0;
21
22
// Load Waypoints
23
QueryResult
result =
WorldDatabase
.Query(
"SELECT COUNT(entry) FROM script_waypoint GROUP BY entry"
);
24
if
(result)
25
uiCreatureCount = result->GetRowCount();
26
27
SF_LOG_INFO
(
"server.loading"
,
"Loading Script Waypoints for "
UI64FMTD
" creature(s)..."
, uiCreatureCount);
28
29
// 0 1 2 3 4 5
30
result =
WorldDatabase
.Query(
"SELECT entry, pointid, location_x, location_y, location_z, waittime FROM script_waypoint ORDER BY pointid"
);
31
32
if
(!result)
33
{
34
SF_LOG_INFO
(
"server.loading"
,
">> Loaded 0 Script Waypoints. DB table `script_waypoint` is empty."
);
35
return
;
36
}
37
38
uint32
count = 0;
39
40
do
41
{
42
Field
* pFields = result->Fetch();
43
ScriptPointMove
temp;
44
45
temp.
uiCreatureEntry
= pFields[0].
GetUInt32
();
46
uint32
uiEntry = temp.
uiCreatureEntry
;
47
temp.
uiPointId
= pFields[1].
GetUInt32
();
48
temp.
fX
= pFields[2].
GetFloat
();
49
temp.
fY
= pFields[3].
GetFloat
();
50
temp.
fZ
= pFields[4].
GetFloat
();
51
temp.
uiWaitTime
= pFields[5].
GetUInt32
();
52
53
CreatureTemplate
const
* pCInfo =
sObjectMgr
->GetCreatureTemplate(temp.
uiCreatureEntry
);
54
55
if
(!pCInfo)
56
{
57
SF_LOG_ERROR
(
"sql.sql"
,
"TSCR: DB table script_waypoint has waypoint for non-existant creature entry %u"
, temp.
uiCreatureEntry
);
58
continue
;
59
}
60
61
if
(!pCInfo->
ScriptID
)
62
SF_LOG_ERROR
(
"sql.sql"
,
"TSCR: DB table script_waypoint has waypoint for creature entry %u, but creature does not have ScriptName defined and then useless."
, temp.
uiCreatureEntry
);
63
64
m_mPointMoveMap
[uiEntry].push_back(temp);
65
++count;
66
}
while
(result->NextRow());
67
68
SF_LOG_INFO
(
"server.loading"
,
">> Loaded %u Script Waypoint nodes in %u ms"
, count,
GetMSTimeDiffToNow
(oldMSTime));
69
}
DatabaseEnv.h
UI64FMTD
#define UI64FMTD
Definition
Define.h:64
uint32
std::uint32_t uint32
Definition
Define.h:77
uint64
std::uint64_t uint64
Definition
Define.h:76
SF_LOG_ERROR
#define SF_LOG_ERROR(filterType__,...)
Definition
Log.h:143
SF_LOG_INFO
#define SF_LOG_INFO(filterType__,...)
Definition
Log.h:137
ObjectMgr.h
sObjectMgr
#define sObjectMgr
Definition
ObjectMgr.h:1617
QueryResult
Skyfire::AutoPtr< ResultSet, Skyfire::Mutex > QueryResult
Definition
QueryResult.h:48
ScriptMgr.h
ScriptSystem.h
ScriptPointVector
std::vector< ScriptPointMove > ScriptPointVector
Definition
ScriptSystem.h:48
GetMSTimeDiffToNow
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition
Timer.h:22
getMSTime
uint32 getMSTime()
Definition
Timer.h:12
Field
Definition
Field.h:16
Field::GetFloat
float GetFloat() const
Definition
Field.h:177
Field::GetUInt32
uint32 GetUInt32() const
Definition
Field.h:105
SystemMgr::m_mPointMoveMap
PointMoveMap m_mPointMoveMap
Definition
ScriptSystem.h:73
SystemMgr::_empty
static ScriptPointVector const _empty
Definition
ScriptSystem.h:76
SystemMgr::LoadScriptWaypoints
void LoadScriptWaypoints()
Definition
ScriptSystem.cpp:13
WorldDatabase
WorldDatabaseWorkerPool WorldDatabase
Accessor to the world database.
Definition
Main.cpp:40
CreatureTemplate
Definition
Creature.h:63
CreatureTemplate::ScriptID
uint32 ScriptID
Definition
Creature.h:130
ScriptPointMove
Definition
ScriptSystem.h:39
ScriptPointMove::fZ
float fZ
Definition
ScriptSystem.h:44
ScriptPointMove::uiWaitTime
uint32 uiWaitTime
Definition
ScriptSystem.h:45
ScriptPointMove::fX
float fX
Definition
ScriptSystem.h:42
ScriptPointMove::fY
float fY
Definition
ScriptSystem.h:43
ScriptPointMove::uiCreatureEntry
uint32 uiCreatureEntry
Definition
ScriptSystem.h:40
ScriptPointMove::uiPointId
uint32 uiPointId
Definition
ScriptSystem.h:41
src
server
game
Scripting
ScriptSystem.cpp
Generated on
for Project SkyFire Core by
1.17.0