Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
cs_bf.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
/* ScriptData
7
Name: bf_commandscript
8
%Complete: 100
9
Comment: All bf related commands
10
Category: commandscripts
11
EndScriptData */
12
13
#include "
BattlefieldMgr.h
"
14
#include "
Chat.h
"
15
#include "
ScriptMgr.h
"
16
17
class
bf_commandscript
:
public
CommandScript
18
{
19
public
:
20
bf_commandscript
() :
CommandScript
(
"bf_commandscript"
) { }
21
22
std::vector<ChatCommand>
GetCommands
() const
OVERRIDE
23
{
24
static
std::vector<ChatCommand> battlefieldcommandTable =
25
{
26
{
"start"
,
rbac::RBAC_PERM_COMMAND_BF_START
,
false
, &
HandleBattlefieldStart
,
""
, },
27
{
"stop"
,
rbac::RBAC_PERM_COMMAND_BF_STOP
,
false
, &
HandleBattlefieldEnd
,
""
, },
28
{
"switch"
,
rbac::RBAC_PERM_COMMAND_BF_SWITCH
,
false
, &
HandleBattlefieldSwitch
,
""
, },
29
{
"timer"
,
rbac::RBAC_PERM_COMMAND_BF_TIMER
,
false
, &
HandleBattlefieldTimer
,
""
, },
30
{
"enable"
,
rbac::RBAC_PERM_COMMAND_BF_ENABLE
,
false
, &
HandleBattlefieldEnable
,
""
, },
31
};
32
static
std::vector<ChatCommand> commandTable =
33
{
34
{
"bf"
,
rbac::RBAC_PERM_COMMAND_BF
,
false
, NULL,
""
, battlefieldcommandTable },
35
};
36
return
commandTable;
37
}
38
39
static
bool
HandleBattlefieldStart
(
ChatHandler
* handler,
const
char
* args)
40
{
41
uint32
battleid = 0;
42
char
* battleid_str = strtok((
char
*)args,
" "
);
43
if
(!battleid_str)
44
return
false
;
45
46
battleid = atoi(battleid_str);
47
48
Battlefield
* bf =
sBattlefieldMgr
->GetBattlefieldByBattleId(battleid);
49
50
if
(!bf)
51
return
false
;
52
53
bf->
StartBattle
();
54
55
if
(battleid == 1)
56
handler->
SendGlobalGMSysMessage
(
"Wintergrasp (Command start used)"
);
57
58
return
true
;
59
}
60
61
static
bool
HandleBattlefieldEnd
(
ChatHandler
* handler,
const
char
* args)
62
{
63
uint32
battleid = 0;
64
char
* battleid_str = strtok((
char
*)args,
" "
);
65
if
(!battleid_str)
66
return
false
;
67
68
battleid = atoi(battleid_str);
69
70
Battlefield
* bf =
sBattlefieldMgr
->GetBattlefieldByBattleId(battleid);
71
72
if
(!bf)
73
return
false
;
74
75
bf->
EndBattle
(
true
);
76
77
if
(battleid == 1)
78
handler->
SendGlobalGMSysMessage
(
"Wintergrasp (Command stop used)"
);
79
80
return
true
;
81
}
82
83
static
bool
HandleBattlefieldEnable
(
ChatHandler
* handler,
const
char
* args)
84
{
85
uint32
battleid = 0;
86
char
* battleid_str = strtok((
char
*)args,
" "
);
87
if
(!battleid_str)
88
return
false
;
89
90
battleid = atoi(battleid_str);
91
92
Battlefield
* bf =
sBattlefieldMgr
->GetBattlefieldByBattleId(battleid);
93
94
if
(!bf)
95
return
false
;
96
97
if
(bf->
IsEnabled
())
98
{
99
bf->
ToggleBattlefield
(
false
);
100
if
(battleid == 1)
101
handler->
SendGlobalGMSysMessage
(
"Wintergrasp is disabled"
);
102
}
103
else
104
{
105
bf->
ToggleBattlefield
(
true
);
106
if
(battleid == 1)
107
handler->
SendGlobalGMSysMessage
(
"Wintergrasp is enabled"
);
108
}
109
110
return
true
;
111
}
112
113
static
bool
HandleBattlefieldSwitch
(
ChatHandler
* handler,
const
char
* args)
114
{
115
uint32
battleid = 0;
116
char
* battleid_str = strtok((
char
*)args,
" "
);
117
if
(!battleid_str)
118
return
false
;
119
120
battleid = atoi(battleid_str);
121
122
Battlefield
* bf =
sBattlefieldMgr
->GetBattlefieldByBattleId(battleid);
123
124
if
(!bf)
125
return
false
;
126
127
bf->
EndBattle
(
false
);
128
if
(battleid == 1)
129
handler->
SendGlobalGMSysMessage
(
"Wintergrasp (Command switch used)"
);
130
131
return
true
;
132
}
133
134
static
bool
HandleBattlefieldTimer
(
ChatHandler
* handler,
const
char
* args)
135
{
136
uint32
battleid = 0;
137
uint32
time = 0;
138
char
* battleid_str = strtok((
char
*)args,
" "
);
139
if
(!battleid_str)
140
return
false
;
141
char
* time_str = strtok(NULL,
" "
);
142
if
(!time_str)
143
return
false
;
144
145
battleid = atoi(battleid_str);
146
147
time = atoi(time_str);
148
149
Battlefield
* bf =
sBattlefieldMgr
->GetBattlefieldByBattleId(battleid);
150
151
if
(!bf)
152
return
false
;
153
154
bf->
SetTimer
(time *
IN_MILLISECONDS
);
155
bf->
SendInitWorldStatesToAll
();
156
if
(battleid == 1)
157
handler->
SendGlobalGMSysMessage
(
"Wintergrasp (Command timer used)"
);
158
159
return
true
;
160
}
161
};
162
163
void
AddSC_bf_commandscript
()
164
{
165
new
bf_commandscript
();
166
}
BattlefieldMgr.h
sBattlefieldMgr
#define sBattlefieldMgr
Definition
BattlefieldMgr.h:65
Chat.h
IN_MILLISECONDS
@ IN_MILLISECONDS
Definition
Common.h:125
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
ScriptMgr.h
Battlefield
Definition
Battlefield.h:184
Battlefield::SetTimer
void SetTimer(uint32 timer)
Definition
Battlefield.h:338
Battlefield::SendInitWorldStatesToAll
virtual void SendInitWorldStatesToAll()=0
Send all worldstate data to all player in zone.
Battlefield::EndBattle
void EndBattle(bool endByTimer)
Definition
Battlefield.cpp:291
Battlefield::StartBattle
void StartBattle()
Definition
Battlefield.cpp:269
Battlefield::ToggleBattlefield
void ToggleBattlefield(bool enable)
Enable or Disable battlefield.
Definition
Battlefield.h:234
Battlefield::IsEnabled
bool IsEnabled() const
Return if battlefield is enable.
Definition
Battlefield.h:236
ChatHandler
Definition
Chat.h:41
ChatHandler::SendGlobalGMSysMessage
void SendGlobalGMSysMessage(const char *str)
Definition
Chat.cpp:188
CommandScript::CommandScript
CommandScript(const char *name)
Definition
ScriptMgr.cpp:1466
bf_commandscript
Definition
cs_bf.cpp:18
bf_commandscript::HandleBattlefieldEnable
static bool HandleBattlefieldEnable(ChatHandler *handler, const char *args)
Definition
cs_bf.cpp:83
bf_commandscript::HandleBattlefieldStart
static bool HandleBattlefieldStart(ChatHandler *handler, const char *args)
Definition
cs_bf.cpp:39
bf_commandscript::bf_commandscript
bf_commandscript()
Definition
cs_bf.cpp:20
bf_commandscript::HandleBattlefieldSwitch
static bool HandleBattlefieldSwitch(ChatHandler *handler, const char *args)
Definition
cs_bf.cpp:113
bf_commandscript::HandleBattlefieldTimer
static bool HandleBattlefieldTimer(ChatHandler *handler, const char *args)
Definition
cs_bf.cpp:134
bf_commandscript::HandleBattlefieldEnd
static bool HandleBattlefieldEnd(ChatHandler *handler, const char *args)
Definition
cs_bf.cpp:61
bf_commandscript::GetCommands
std::vector< ChatCommand > GetCommands() const OVERRIDE
Definition
cs_bf.cpp:22
AddSC_bf_commandscript
void AddSC_bf_commandscript()
Definition
cs_bf.cpp:163
rbac::RBAC_PERM_COMMAND_BF_TIMER
@ RBAC_PERM_COMMAND_BF_TIMER
Definition
RBAC.h:149
rbac::RBAC_PERM_COMMAND_BF_ENABLE
@ RBAC_PERM_COMMAND_BF_ENABLE
Definition
RBAC.h:150
rbac::RBAC_PERM_COMMAND_BF_SWITCH
@ RBAC_PERM_COMMAND_BF_SWITCH
Definition
RBAC.h:148
rbac::RBAC_PERM_COMMAND_BF_START
@ RBAC_PERM_COMMAND_BF_START
Definition
RBAC.h:146
rbac::RBAC_PERM_COMMAND_BF
@ RBAC_PERM_COMMAND_BF
Definition
RBAC.h:145
rbac::RBAC_PERM_COMMAND_BF_STOP
@ RBAC_PERM_COMMAND_BF_STOP
Definition
RBAC.h:147
src
server
scripts
Commands
cs_bf.cpp
Generated on
for Project SkyFire Core by
1.17.0