FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
scriptdev2/ScriptMgr.h at master · mangosR2/scriptdev2 · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
mangosR2
/
scriptdev2
Public
forked from
insider42/scriptdev2
Notifications
You must be signed in to change notification settings
Fork
46
Star
81
Code
Issues
54
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
scriptdev2
/
ScriptMgr.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
162 lines (131 loc) · 6.47 KB
Breadcrumbs
scriptdev2
/
ScriptMgr.h
Copy path
File metadata and controls
162 lines (131 loc) · 6.47 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/*
Copyright (C) 2006 - 2012 ScriptDev2 <http://www.scriptdev2.com/>
* This program is free software licensed under GPL version 2
* Please see the included DOCS/LICENSE.TXT for more information
*/
#
ifndef
SC_SCRIPTMGR_H
#
define
SC_SCRIPTMGR_H
#
include
"
Common.h
"
#
include
"
DBCStructure.h
"
#
include
"
Database/DatabaseEnv.h
"
class
Player
;
class
Creature
;
class
CreatureAI
;
class
InstanceData
;
class
Quest
;
class
Item
;
class
GameObject
;
class
SpellCastTargets
;
class
Map
;
class
Unit
;
class
WorldObject
;
class
Aura
;
class
Object
;
class
ObjectGuid
;
//
*********************************************************
//
************** Some defines used globally ***************
//
Basic defines
#
define
VISIBLE_RANGE
(
166
.
0f
)
//
MAX visible range (size of grid)
#
define
DEFAULT_TEXT
"
<ScriptDev2 Text Entry Missing!>
"
/*
Escort Factions
* TODO: find better namings and definitions.
* N=Neutral, A=Alliance, H=Horde.
* NEUTRAL or FRIEND = Hostility to player surroundings (not a good definition)
* ACTIVE or PASSIVE = Hostility to environment surroundings.
*/
enum
EscortFaction
{
FACTION_ESCORT_A_NEUTRAL_PASSIVE
=
10
,
FACTION_ESCORT_H_NEUTRAL_PASSIVE
=
33
,
FACTION_ESCORT_N_NEUTRAL_PASSIVE
=
113
,
FACTION_ESCORT_A_NEUTRAL_ACTIVE
=
231
,
FACTION_ESCORT_H_NEUTRAL_ACTIVE
=
232
,
FACTION_ESCORT_N_NEUTRAL_ACTIVE
=
250
,
FACTION_ESCORT_N_FRIEND_PASSIVE
=
290
,
FACTION_ESCORT_N_FRIEND_ACTIVE
=
495
,
FACTION_ESCORT_A_PASSIVE
=
774
,
FACTION_ESCORT_H_PASSIVE
=
775
,
FACTION_ESCORT_N_ACTIVE
=
1986
,
FACTION_ESCORT_H_ACTIVE
=
2046
};
//
*********************************************************
//
************* Some structures used globally *************
struct
Script
{
Script
(
char
const
* scriptName =
NULL
) : Name(scriptName),
pGossipHello
(
NULL
), pGossipHelloGO(
NULL
), pGossipSelect(
NULL
), pGossipSelectGO(
NULL
),
pGossipSelectWithCode(
NULL
), pGossipSelectGOWithCode(
NULL
),
pDialogStatusNPC(
NULL
), pDialogStatusGO(
NULL
),
pQuestAcceptNPC(
NULL
), pQuestAcceptGO(
NULL
), pQuestAcceptItem(
NULL
),
pQuestRewardedNPC(
NULL
), pQuestRewardedGO(
NULL
),
pGOUse(
NULL
), pItemUse(
NULL
), pAreaTrigger(
NULL
), pNpcSpellClick(
NULL
), pProcessEventId(
NULL
),
pEffectDummyNPC(
NULL
), pEffectDummyGO(
NULL
), pEffectDummyItem(
NULL
), pEffectScriptEffectNPC(
NULL
),
pEffectAuraDummy(
NULL
), GetAI(
NULL
), GetInstanceData(
NULL
)
{}
char
const
* Name;
bool
(*pGossipHello )(Player*, Creature*);
bool
(*pGossipHelloGO )(Player*, GameObject*);
bool
(*pGossipSelect )(Player*, Creature*, uint32, uint32);
bool
(*pGossipSelectGO )(Player*, GameObject*, uint32, uint32);
bool
(*pGossipSelectWithCode )(Player*, Creature*, uint32, uint32,
const
char
*);
bool
(*pGossipSelectGOWithCode )(Player*, GameObject*, uint32, uint32,
const
char
*);
uint32
(*pDialogStatusNPC )(Player*, Creature*);
uint32
(*pDialogStatusGO )(Player*, GameObject*);
bool
(*pQuestAcceptNPC )(Player*, Creature*, Quest
const
*);
bool
(*pQuestAcceptGO )(Player*, GameObject*, Quest
const
*);
bool
(*pQuestAcceptItem )(Player*, Item*, Quest
const
*);
bool
(*pQuestRewardedNPC )(Player*, Creature*, Quest
const
*);
bool
(*pQuestRewardedGO )(Player*, GameObject*, Quest
const
*);
bool
(*pGOUse )(Player*, GameObject*);
bool
(*pItemUse )(Player*, Item*, SpellCastTargets
const
&);
bool
(*pAreaTrigger )(Player*, AreaTriggerEntry
const
*);
bool
(*pNpcSpellClick )(Player*, Creature*, uint32);
bool
(*pProcessEventId )(uint32, Object*, Object*,
bool
);
bool
(*pEffectDummyNPC )(Unit*, uint32, SpellEffectIndex, Creature*, ObjectGuid);
bool
(*pEffectDummyGO )(Unit*, uint32, SpellEffectIndex, GameObject*, ObjectGuid);
bool
(*pEffectDummyItem )(Unit*, uint32, SpellEffectIndex, Item*, ObjectGuid);
bool
(*pEffectScriptEffectNPC )(Unit*, uint32, SpellEffectIndex, Creature*, ObjectGuid);
bool
(*pEffectAuraDummy )(
const
Aura*,
bool
);
CreatureAI* (*GetAI )(Creature*);
InstanceData* (*GetInstanceData )(Map*);
void
RegisterSelf
(
bool
bReportError =
true
);
};
//
*********************************************************
//
******************* AutoScript **************************
typedef
CreatureAI* (*TGetAI)(Creature*);
typedef
InstanceData* (*TGetInstanceData)(Map*);
class
AutoScript
{
private:
Script* m_script;
bool
m_reportError;
void
Register
();
public:
AutoScript
() : m_script(
NULL
), m_reportError(
true
) {}
AutoScript
(
char
const
* scriptName,
bool
reportError =
true
) : m_script(
NULL
) {
newScript
(scriptName, reportError); }
AutoScript
(
char
const
* scriptName, TGetAI getAIPtr,
bool
reportError =
true
) : m_script(
NULL
) {
newScript
(scriptName, reportError); m_script->
GetAI
= getAIPtr; }
AutoScript
(
char
const
* scriptName, TGetInstanceData getIDPtr,
bool
reportError =
true
) : m_script(
NULL
) {
newScript
(scriptName, reportError); m_script->
GetInstanceData
= getIDPtr; }
~AutoScript
() {
Register
(); }
Script*
newScript
(
char
const
* scriptName,
bool
reportError =
true
);
Script*
newScript
(
char
const
* scriptName, TGetAI getAIPtr,
bool
reportError =
true
);
Script*
operator
-> ()
{
MANGOS_ASSERT
(m_script !=
NULL
&&
"
AutoScript: use newScript() before!
"
);
return
m_script;
}
};
//
*********************************************************
//
************* Some functions used globally **************
//
Generic scripting text function
void
DoScriptText
(int32 iTextEntry, WorldObject* pSource, Unit* pTarget =
NULL
);
void
DoOrSimulateScriptTextForMap
(int32 iTextEntry, uint32 uiCreatureEntry, Map* pMap, Creature* pCreatureSource =
NULL
, Unit* pTarget =
NULL
);
//
DB query
QueryResult*
strSD2Pquery
(
char
*);
//
Not registered scripts storage
Script*
GetScriptByName
(std::string scriptName);
//
*********************************************************
//
**************** Internal hook mechanics ****************
#
if
COMPILER == COMPILER_GNU
#
define
FUNC_PTR
(
name,callconvention,returntype,parameters
)
typedef
returntype
(*name)parameters __attribute__ ((callconvention));
#
else
#
define
FUNC_PTR
(
name, callconvention, returntype, parameters
)
typedef
returntype
(callconvention *name)parameters;
#
endif
#endif
Back
|
FazBrowse Home
|
New Git URL