Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
cs_cheat.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/* ScriptData
6Name: cheat_commandscript
7%Complete: 100
8Comment: All cheat related commands
9Category: commandscripts
10EndScriptData */
11
12#include "Chat.h"
13#include "Language.h"
14#include "ObjectMgr.h"
15#include "Player.h"
16#include "ScriptMgr.h"
17
19{
20public:
21 cheat_commandscript() : CommandScript("cheat_commandscript") { }
22
23 std::vector<ChatCommand> GetCommands() const OVERRIDE
24 {
25 static std::vector<ChatCommand> cheatCommandTable =
26 {
35 };
36
37 static std::vector<ChatCommand> commandTable =
38 {
39 { "cheat", rbac::RBAC_PERM_COMMAND_CHEAT, false, NULL, "", cheatCommandTable },
40 };
41 return commandTable;
42 }
43
44 static bool HandleGodModeCheatCommand(ChatHandler* handler, const char* args)
45 {
46 if (!handler->GetSession() && !handler->GetSession()->GetPlayer())
47 return false;
48
49 std::string argstr = (char*)args;
50
51 if (!*args)
52 argstr = (handler->GetSession()->GetPlayer()->GetCommandStatus(CHEAT_GOD)) ? "off" : "on";
53
54 if (argstr == "off")
55 {
57 handler->SendSysMessage("Godmode is OFF. You can take damage.");
58 return true;
59 }
60 else if (argstr == "on")
61 {
63 handler->SendSysMessage("Godmode is ON. You won't take damage.");
64 return true;
65 }
66
67 return false;
68 }
69
70 static bool HandleCasttimeCheatCommand(ChatHandler* handler, const char* args)
71 {
72 if (!handler->GetSession() && !handler->GetSession()->GetPlayer())
73 return false;
74
75 std::string argstr = (char*)args;
76
77 if (!*args)
78 argstr = (handler->GetSession()->GetPlayer()->GetCommandStatus(CHEAT_CASTTIME)) ? "off" : "on";
79
80 if (argstr == "off")
81 {
83 handler->SendSysMessage("CastTime Cheat is OFF. Your spells will have a casttime.");
84 return true;
85 }
86 else if (argstr == "on")
87 {
89 handler->SendSysMessage("CastTime Cheat is ON. Your spells won't have a casttime.");
90 return true;
91 }
92
93 return false;
94 }
95
96 static bool HandleCoolDownCheatCommand(ChatHandler* handler, const char* args)
97 {
98 if (!handler->GetSession() && !handler->GetSession()->GetPlayer())
99 return false;
100
101 std::string argstr = (char*)args;
102
103 if (!*args)
104 argstr = (handler->GetSession()->GetPlayer()->GetCommandStatus(CHEAT_COOLDOWN)) ? "off" : "on";
105
106 if (argstr == "off")
107 {
109 handler->SendSysMessage("Cooldown Cheat is OFF. You are on the global cooldown.");
110 return true;
111 }
112 else if (argstr == "on")
113 {
115 handler->SendSysMessage("Cooldown Cheat is ON. You are not on the global cooldown.");
116 return true;
117 }
118
119 return false;
120 }
121
122 static bool HandlePowerCheatCommand(ChatHandler* handler, const char* args)
123 {
124 if (!handler->GetSession() && !handler->GetSession()->GetPlayer())
125 return false;
126
127 std::string argstr = (char*)args;
128
129 if (!*args)
130 argstr = (handler->GetSession()->GetPlayer()->GetCommandStatus(CHEAT_POWER)) ? "off" : "on";
131
132 if (argstr == "off")
133 {
135 handler->SendSysMessage("Power Cheat is OFF. You need mana/rage/energy to use spells.");
136 return true;
137 }
138 else if (argstr == "on")
139 {
141 handler->SendSysMessage("Power Cheat is ON. You don't need mana/rage/energy to use spells.");
142 return true;
143 }
144
145 return false;
146 }
147
148 static bool HandleCheatStatusCommand(ChatHandler* handler, const char* /*args*/)
149 {
150 Player* player = handler->GetSession()->GetPlayer();
151
152 const char* enabled = "enabled";
153 const char* disabled = "disabled";
154
156 handler->PSendSysMessage(LANG_COMMAND_CHEAT_GOD, player->GetCommandStatus(CHEAT_GOD) ? enabled : disabled);
157 handler->PSendSysMessage(LANG_COMMAND_CHEAT_CD, player->GetCommandStatus(CHEAT_COOLDOWN) ? enabled : disabled);
158 handler->PSendSysMessage(LANG_COMMAND_CHEAT_CT, player->GetCommandStatus(CHEAT_CASTTIME) ? enabled : disabled);
159 handler->PSendSysMessage(LANG_COMMAND_CHEAT_POWER, player->GetCommandStatus(CHEAT_POWER) ? enabled : disabled);
160 handler->PSendSysMessage(LANG_COMMAND_CHEAT_WW, player->GetCommandStatus(CHEAT_WATERWALK) ? enabled : disabled);
161 return true;
162 }
163
164 static bool HandleWaterWalkCheatCommand(ChatHandler* handler, const char* args)
165 {
166 if (!handler->GetSession() && !handler->GetSession()->GetPlayer())
167 return false;
168
169 std::string argstr = (char*)args;
170
171 Player* target = handler->GetSession()->GetPlayer();
172 if (!*args)
173 {
174 argstr = (target->GetCommandStatus(CHEAT_WATERWALK)) ? "off" : "on";
176 argstr = "off";
177 else
178 argstr = "on";
179 }
180
181 if (argstr == "off")
182 {
184 target->SetWaterWalking(false);
185 handler->SendSysMessage("Waterwalking is OFF. You can't walk on water.");
186 return true;
187 }
188 else if (argstr == "on")
189 {
191 target->SetWaterWalking(true);
192 handler->SendSysMessage("Waterwalking is ON. You can walk on water.");
193 return true;
194 }
195
196 return false;
197 }
198
199 static bool HandleTaxiCheatCommand(ChatHandler* handler, const char* args)
200 {
201 if (!*args)
202 {
204 handler->SetSentErrorMessage(true);
205 return false;
206 }
207
208 std::string argstr = (char*)args;
209
210 Player* chr = handler->getSelectedPlayer();
211
212 if (!chr)
213 chr = handler->GetSession()->GetPlayer();
214 else if (handler->HasLowerSecurity(chr, 0)) // check online security
215 return false;
216
217 if (argstr == "on")
218 {
219 chr->SetTaxiCheater(true);
220 handler->PSendSysMessage(LANG_YOU_GIVE_TAXIS, handler->GetNameLink(chr).c_str());
221 if (handler->needReportToTarget(chr))
223 return true;
224 }
225
226 if (argstr == "off")
227 {
228 chr->SetTaxiCheater(false);
229 handler->PSendSysMessage(LANG_YOU_REMOVE_TAXIS, handler->GetNameLink(chr).c_str());
230 if (handler->needReportToTarget(chr))
232
233 return true;
234 }
235
237 handler->SetSentErrorMessage(true);
238 return false;
239 }
240
241 static bool HandleExploreCheatCommand(ChatHandler* handler, const char* args)
242 {
243 if (!*args)
244 return false;
245
246 int flag = atoi((char*)args);
247
248 Player* chr = handler->getSelectedPlayer();
249 if (chr == NULL)
250 {
252 handler->SetSentErrorMessage(true);
253 return false;
254 }
255
256 if (flag != 0)
257 {
258 handler->PSendSysMessage(LANG_YOU_SET_EXPLORE_ALL, handler->GetNameLink(chr).c_str());
259 if (handler->needReportToTarget(chr))
261 }
262 else
263 {
264 handler->PSendSysMessage(LANG_YOU_SET_EXPLORE_NOTHING, handler->GetNameLink(chr).c_str());
265 if (handler->needReportToTarget(chr))
267 }
268
269 for (uint8 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i)
270 {
271 if (flag != 0)
272 handler->GetSession()->GetPlayer()->SetFlag(PLAYER_FIELD_EXPLORED_ZONES + i, 0xFFFFFFFF);
273 else
275 }
276
277 return true;
278 }
279};
280
std::uint8_t uint8
Definition Define.h:79
#define OVERRIDE
Definition Define.h:60
@ LANG_YOU_SET_EXPLORE_NOTHING
Definition Language.h:549
@ LANG_YOURS_TAXIS_REMOVED
Definition Language.h:140
@ LANG_COMMAND_CHEAT_CT
Definition Language.h:366
@ LANG_YOURS_TAXIS_ADDED
Definition Language.h:139
@ LANG_USE_BOL
Definition Language.h:265
@ LANG_COMMAND_CHEAT_WW
Definition Language.h:369
@ LANG_COMMAND_CHEAT_POWER
Definition Language.h:368
@ LANG_COMMAND_CHEAT_GOD
Definition Language.h:365
@ LANG_YOU_REMOVE_TAXIS
Definition Language.h:138
@ LANG_COMMAND_CHEAT_CD
Definition Language.h:367
@ LANG_YOURS_EXPLORE_SET_ALL
Definition Language.h:550
@ LANG_NO_CHAR_SELECTED
Definition Language.h:118
@ LANG_YOU_SET_EXPLORE_ALL
Definition Language.h:548
@ LANG_YOURS_EXPLORE_SET_NOTHING
Definition Language.h:551
@ LANG_YOU_GIVE_TAXIS
Definition Language.h:137
@ LANG_COMMAND_CHEAT_STATUS
Definition Language.h:364
@ CHEAT_COOLDOWN
Definition Player.h:990
@ CHEAT_POWER
Definition Player.h:991
@ CHEAT_GOD
Definition Player.h:988
@ CHEAT_WATERWALK
Definition Player.h:992
@ CHEAT_CASTTIME
Definition Player.h:989
#define PLAYER_EXPLORED_ZONES_SIZE
Definition Player.h:55
@ PLAYER_FIELD_EXPLORED_ZONES
virtual std::string GetNameLink() const
Definition Chat.h:79
bool HasLowerSecurity(Player *target, uint64 guid, bool strong=false)
Definition Chat.cpp:78
Player * getSelectedPlayer()
Definition Chat.cpp:829
WorldSession * GetSession()
Definition Chat.h:43
void PSendSysMessage(const char *format,...) ATTR_PRINTF(2
Definition Chat.cpp:221
void SetSentErrorMessage(bool val)
Definition Chat.h:114
virtual bool needReportToTarget(Player *chr) const
Definition Chat.cpp:1271
virtual void SendSysMessage(const char *str)
Definition Chat.cpp:153
CommandScript(const char *name)
void SetFlag(uint16 index, uint32 newFlag)
Definition Object.cpp:1261
bool GetCommandStatus(uint32 command) const
Definition Player.h:1407
WorldSession * GetSession() const
Definition Player.h:2417
void SetCommandStatusOn(uint32 command)
Definition Player.h:1411
void SetCommandStatusOff(uint32 command)
Definition Player.h:1415
void SetTaxiCheater(bool on)
Definition Player.h:1386
bool SetWaterWalking(bool enable, bool packetOnly=false)
Definition Unit.cpp:9245
Player * GetPlayer() const
static bool HandleWaterWalkCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:164
static bool HandleGodModeCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:44
static bool HandlePowerCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:122
std::vector< ChatCommand > GetCommands() const OVERRIDE
Definition cs_cheat.cpp:23
static bool HandleExploreCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:241
static bool HandleTaxiCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:199
static bool HandleCasttimeCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:70
static bool HandleCheatStatusCommand(ChatHandler *handler, const char *)
Definition cs_cheat.cpp:148
static bool HandleCoolDownCheatCommand(ChatHandler *handler, const char *args)
Definition cs_cheat.cpp:96
void AddSC_cheat_commandscript()
Definition cs_cheat.cpp:281
@ RBAC_PERM_COMMAND_CHEAT_POWER
Definition RBAC.h:184
@ RBAC_PERM_COMMAND_CHEAT_TAXI
Definition RBAC.h:186
@ RBAC_PERM_COMMAND_CHEAT_GOD
Definition RBAC.h:183
@ RBAC_PERM_COMMAND_CHEAT_COOLDOWN
Definition RBAC.h:181
@ RBAC_PERM_COMMAND_CHEAT
Definition RBAC.h:179
@ RBAC_PERM_COMMAND_CHEAT_CASTTIME
Definition RBAC.h:180
@ RBAC_PERM_COMMAND_CHEAT_WATERWALK
Definition RBAC.h:187
@ RBAC_PERM_COMMAND_CHEAT_STATUS
Definition RBAC.h:185
@ RBAC_PERM_COMMAND_CHEAT_EXPLORE
Definition RBAC.h:182