Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
cs_modify.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
7Name: modify_commandscript
8%Complete: 100
9Comment: All modify related commands
10Category: commandscripts
11EndScriptData */
12
13#include "Chat.h"
14#include "ObjectMgr.h"
15#include "Opcodes.h"
16#include "Pet.h"
17#include "Player.h"
18#include "ReputationMgr.h"
19#include "ScriptMgr.h"
20#include <stdlib.h>
21
22
24{
25public:
26 modify_commandscript() : CommandScript("modify_commandscript") { }
27
28 std::vector<ChatCommand> GetCommands() const OVERRIDE
29 {
30 static std::vector<ChatCommand> modifyspeedCommandTable =
31 {
38 };
39 static std::vector<ChatCommand> modifyCommandTable =
40 {
56 { "speed", rbac::RBAC_PERM_COMMAND_MODIFY_SPEED, false, NULL, "", modifyspeedCommandTable },
59 };
60 static std::vector<ChatCommand> commandTable =
61 {
63 { "demorph", rbac::RBAC_PERM_COMMAND_DEMORPH, false, &HandleDeMorphCommand, "", },
64 { "modify", rbac::RBAC_PERM_COMMAND_MODIFY, false, NULL, "", modifyCommandTable },
65 };
66 return commandTable;
67 }
68
69 //Edit Player HP
70 static bool HandleModifyHPCommand(ChatHandler* handler, const char* args)
71 {
72 if (!*args)
73 return false;
74
75 int32 hp = atoi((char*)args);
76 int32 hpm = atoi((char*)args);
77
78 if (hp < 1 || hpm < 1 || hpm < hp)
79 {
81 handler->SetSentErrorMessage(true);
82 return false;
83 }
84
85 Player* target = handler->getSelectedPlayer();
86 if (!target)
87 {
89 handler->SetSentErrorMessage(true);
90 return false;
91 }
92
93 if (handler->HasLowerSecurity(target, 0))
94 return false;
95
96 handler->PSendSysMessage(LANG_YOU_CHANGE_HP, handler->GetNameLink(target).c_str(), hp, hpm);
97 if (handler->needReportToTarget(target))
98 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_HP_CHANGED, handler->GetNameLink().c_str(), hp, hpm);
99
100 target->SetMaxHealth(hpm);
101 target->SetHealth(hp);
102
103 return true;
104 }
105
106 //Edit Player Mana
107 static bool HandleModifyManaCommand(ChatHandler* handler, const char* args)
108 {
109 if (!*args)
110 return false;
111
112 int32 mana = atoi((char*)args);
113 int32 manam = atoi((char*)args);
114
115 if (mana <= 0 || manam <= 0 || manam < mana)
116 {
118 handler->SetSentErrorMessage(true);
119 return false;
120 }
121
122 Player* target = handler->getSelectedPlayer();
123 if (!target)
124 {
126 handler->SetSentErrorMessage(true);
127 return false;
128 }
129
130 // check online security
131 if (handler->HasLowerSecurity(target, 0))
132 return false;
133
134 handler->PSendSysMessage(LANG_YOU_CHANGE_MANA, handler->GetNameLink(target).c_str(), mana, manam);
135 if (handler->needReportToTarget(target))
136 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MANA_CHANGED, handler->GetNameLink().c_str(), mana, manam);
137
138 target->SetMaxPower(POWER_MANA, manam);
139 target->SetPower(POWER_MANA, mana);
140
141 return true;
142 }
143
144 //Edit Player Energy
145 static bool HandleModifyEnergyCommand(ChatHandler* handler, const char* args)
146 {
147 if (!*args)
148 return false;
149
150 // char* pmana = strtok((char*)args, " ");
151 // if (!pmana)
152 // return false;
153
154 // char* pmanaMax = strtok(NULL, " ");
155 // if (!pmanaMax)
156 // return false;
157
158 // int32 manam = atoi(pmanaMax);
159 // int32 mana = atoi(pmana);
160
161 int32 energy = atoi((char*)args) * 10;
162 int32 energym = atoi((char*)args) * 10;
163
164 if (energy <= 0 || energym <= 0 || energym < energy)
165 {
167 handler->SetSentErrorMessage(true);
168 return false;
169 }
170
171 Player* target = handler->getSelectedPlayer();
172 if (!target)
173 {
175 handler->SetSentErrorMessage(true);
176 return false;
177 }
178
179 // check online security
180 if (handler->HasLowerSecurity(target, 0))
181 return false;
182
183 handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target).c_str(), energy / 10, energym / 10);
184 if (handler->needReportToTarget(target))
185 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink().c_str(), energy / 10, energym / 10);
186
187 target->SetMaxPower(POWER_ENERGY, energym);
188 target->SetPower(POWER_ENERGY, energy);
189
191
192 return true;
193 }
194
195 //Edit Player Rage
196 static bool HandleModifyRageCommand(ChatHandler* handler, const char* args)
197 {
198 if (!*args)
199 return false;
200
201 // char* pmana = strtok((char*)args, " ");
202 // if (!pmana)
203 // return false;
204
205 // char* pmanaMax = strtok(NULL, " ");
206 // if (!pmanaMax)
207 // return false;
208
209 // int32 manam = atoi(pmanaMax);
210 // int32 mana = atoi(pmana);
211
212 int32 rage = atoi((char*)args) * 10;
213 int32 ragem = atoi((char*)args) * 10;
214
215 if (rage <= 0 || ragem <= 0 || ragem < rage)
216 {
218 handler->SetSentErrorMessage(true);
219 return false;
220 }
221
222 Player* target = handler->getSelectedPlayer();
223 if (!target)
224 {
226 handler->SetSentErrorMessage(true);
227 return false;
228 }
229
230 // check online security
231 if (handler->HasLowerSecurity(target, 0))
232 return false;
233
234 handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target).c_str(), rage / 10, ragem / 10);
235 if (handler->needReportToTarget(target))
236 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink().c_str(), rage / 10, ragem / 10);
237
238 target->SetMaxPower(POWER_RAGE, ragem);
239 target->SetPower(POWER_RAGE, rage);
240
241 return true;
242 }
243
244 // Edit Player Runic Power
245 static bool HandleModifyRunicPowerCommand(ChatHandler* handler, const char* args)
246 {
247 if (!*args)
248 return false;
249
250 int32 rune = atoi((char*)args) * 10;
251 int32 runem = atoi((char*)args) * 10;
252
253 if (rune <= 0 || runem <= 0 || runem < rune)
254 {
256 handler->SetSentErrorMessage(true);
257 return false;
258 }
259
260 Player* target = handler->getSelectedPlayer();
261 if (!target)
262 {
264 handler->SetSentErrorMessage(true);
265 return false;
266 }
267
268 handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target).c_str(), rune / 10, runem / 10);
269 if (handler->needReportToTarget(target))
270 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink().c_str(), rune / 10, runem / 10);
271
272 target->SetMaxPower(POWER_RUNIC_POWER, runem);
273 target->SetPower(POWER_RUNIC_POWER, rune);
274
275 return true;
276 }
277
278 //Edit Player Faction
279 static bool HandleModifyFactionCommand(ChatHandler* handler, const char* args)
280 {
281 if (!*args)
282 return false;
283
284 char* pfactionid = handler->extractKeyFromLink((char*)args, "Hfaction");
285
286 Creature* target = handler->getSelectedCreature();
287 if (!target)
288 {
290 handler->SetSentErrorMessage(true);
291 return false;
292 }
293
294 if (!pfactionid)
295 {
296 uint32 factionid = target->getFaction();
297 uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
298 uint32 npcflag = target->GetUInt32Value(UNIT_FIELD_NPC_FLAGS);
300 handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUIDLow(), factionid, flag, npcflag, dyflag);
301 return true;
302 }
303
304 uint32 factionid = atoi(pfactionid);
305 uint32 flag;
306
307 char* pflag = strtok(NULL, " ");
308 if (!pflag)
309 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
310 else
311 flag = atoi(pflag);
312
313 char* pnpcflag = strtok(NULL, " ");
314
315 uint32 npcflag;
316 if (!pnpcflag)
317 npcflag = target->GetUInt32Value(UNIT_FIELD_NPC_FLAGS);
318 else
319 npcflag = atoi(pnpcflag);
320
321 char* pdyflag = strtok(NULL, " ");
322
323 uint32 dyflag;
324 if (!pdyflag)
326 else
327 dyflag = atoi(pdyflag);
328
329 if (!sFactionTemplateStore.LookupEntry(factionid))
330 {
331 handler->PSendSysMessage(LANG_WRONG_FACTION, factionid);
332 handler->SetSentErrorMessage(true);
333 return false;
334 }
335
336 handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUIDLow(), factionid, flag, npcflag, dyflag);
337
338 target->setFaction(factionid);
339 target->SetUInt32Value(UNIT_FIELD_FLAGS, flag);
340 target->SetUInt32Value(UNIT_FIELD_NPC_FLAGS, npcflag);
342
343 return true;
344 }
345
346 //Edit Player Spell
347 static bool HandleModifySpellCommand(ChatHandler* handler, const char* args)
348 {
349 if (!*args)
350 return false;
351
352 char* pspellflatid = strtok((char*)args, " ");
353 if (!pspellflatid)
354 return false;
355
356 char* pop = strtok(NULL, " ");
357 if (!pop)
358 return false;
359
360 char* pval = strtok(NULL, " ");
361 if (!pval)
362 return false;
363
364 uint16 mark;
365
366 char* pmark = strtok(NULL, " ");
367
368 uint8 spellflatid = atoi(pspellflatid);
369 uint8 op = atoi(pop);
370 uint16 val = atoi(pval);
371 if (!pmark)
372 mark = 65535;
373 else
374 mark = atoi(pmark);
375
376 Player* target = handler->getSelectedPlayer();
377 if (target == NULL)
378 {
380 handler->SetSentErrorMessage(true);
381 return false;
382 }
383
384 // check online security
385 if (handler->HasLowerSecurity(target, 0))
386 return false;
387
388 handler->PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellflatid, val, mark, handler->GetNameLink(target).c_str());
389 if (handler->needReportToTarget(target))
390 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, handler->GetNameLink().c_str(), spellflatid, val, mark);
391
392 WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1 + 1 + 2 + 2));
393 data << uint8(spellflatid);
394 data << uint8(op);
395 data << uint16(val);
396 data << uint16(mark);
397 target->GetSession()->SendPacket(&data);
398
399 return true;
400 }
401
402 //Edit Player Aspeed
403 static bool HandleModifyASpeedCommand(ChatHandler* handler, const char* args)
404 {
405 if (!*args)
406 return false;
407
408 float ASpeed = (float)atof((char*)args);
409
410 if (ASpeed > 50.0f || ASpeed < 0.1f)
411 {
413 handler->SetSentErrorMessage(true);
414 return false;
415 }
416
417 Player* target = handler->getSelectedPlayer();
418 if (!target)
419 {
421 handler->SetSentErrorMessage(true);
422 return false;
423 }
424
425 // check online security
426 if (handler->HasLowerSecurity(target, 0))
427 return false;
428
429 std::string targetNameLink = handler->GetNameLink(target);
430
431 if (target->IsInFlight())
432 {
433 handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
434 handler->SetSentErrorMessage(true);
435 return false;
436 }
437
438 handler->PSendSysMessage(LANG_YOU_CHANGE_ASPEED, ASpeed, targetNameLink.c_str());
439 if (handler->needReportToTarget(target))
440 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ASPEED_CHANGED, handler->GetNameLink().c_str(), ASpeed);
441
442 target->SetSpeed(MOVE_WALK, ASpeed, true);
443 target->SetSpeed(MOVE_RUN, ASpeed, true);
444 target->SetSpeed(MOVE_SWIM, ASpeed, true);
445 //target->SetSpeed(MOVE_TURN, ASpeed, true);
446 target->SetSpeed(MOVE_FLIGHT, ASpeed, true);
447 return true;
448 }
449
450 //Edit Player Speed
451 static bool HandleModifySpeedCommand(ChatHandler* handler, const char* args)
452 {
453 if (!*args)
454 return false;
455
456 float Speed = (float)atof((char*)args);
457
458 if (Speed > 50.0f || Speed < 0.1f)
459 {
461 handler->SetSentErrorMessage(true);
462 return false;
463 }
464
465 Player* target = handler->getSelectedPlayer();
466 if (!target)
467 {
469 handler->SetSentErrorMessage(true);
470 return false;
471 }
472
473 // check online security
474 if (handler->HasLowerSecurity(target, 0))
475 return false;
476
477 std::string targetNameLink = handler->GetNameLink(target);
478
479 if (target->IsInFlight())
480 {
481 handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
482 handler->SetSentErrorMessage(true);
483 return false;
484 }
485
486 handler->PSendSysMessage(LANG_YOU_CHANGE_SPEED, Speed, targetNameLink.c_str());
487 if (handler->needReportToTarget(target))
488 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SPEED_CHANGED, handler->GetNameLink().c_str(), Speed);
489
490 target->SetSpeed(MOVE_RUN, Speed, true);
491
492 return true;
493 }
494
495 //Edit Player Swim Speed
496 static bool HandleModifySwimCommand(ChatHandler* handler, const char* args)
497 {
498 if (!*args)
499 return false;
500
501 float Swim = (float)atof((char*)args);
502
503 if (Swim > 50.0f || Swim < 0.1f)
504 {
506 handler->SetSentErrorMessage(true);
507 return false;
508 }
509
510 Player* target = handler->getSelectedPlayer();
511 if (!target)
512 {
514 handler->SetSentErrorMessage(true);
515 return false;
516 }
517
518 // check online security
519 if (handler->HasLowerSecurity(target, 0))
520 return false;
521
522 std::string targetNameLink = handler->GetNameLink(target);
523
524 if (target->IsInFlight())
525 {
526 handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
527 handler->SetSentErrorMessage(true);
528 return false;
529 }
530
531 handler->PSendSysMessage(LANG_YOU_CHANGE_SWIM_SPEED, Swim, targetNameLink.c_str());
532 if (handler->needReportToTarget(target))
534
535 target->SetSpeed(MOVE_SWIM, Swim, true);
536
537 return true;
538 }
539
540 //Edit Player Walk Speed
541 static bool HandleModifyBWalkCommand(ChatHandler* handler, const char* args)
542 {
543 if (!*args)
544 return false;
545
546 float BSpeed = (float)atof((char*)args);
547
548 if (BSpeed > 50.0f || BSpeed < 0.1f)
549 {
551 handler->SetSentErrorMessage(true);
552 return false;
553 }
554
555 Player* target = handler->getSelectedPlayer();
556 if (!target)
557 {
559 handler->SetSentErrorMessage(true);
560 return false;
561 }
562
563 // check online security
564 if (handler->HasLowerSecurity(target, 0))
565 return false;
566
567 std::string targetNameLink = handler->GetNameLink(target);
568
569 if (target->IsInFlight())
570 {
571 handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
572 handler->SetSentErrorMessage(true);
573 return false;
574 }
575
576 handler->PSendSysMessage(LANG_YOU_CHANGE_BACK_SPEED, BSpeed, targetNameLink.c_str());
577 if (handler->needReportToTarget(target))
579
580 target->SetSpeed(MOVE_RUN_BACK, BSpeed, true);
581
582 return true;
583 }
584
585 //Edit Player Fly
586 static bool HandleModifyFlyCommand(ChatHandler* handler, const char* args)
587 {
588 if (!*args)
589 return false;
590
591 float FSpeed = (float)atof((char*)args);
592
593 if (FSpeed > 50.0f || FSpeed < 0.1f)
594 {
596 handler->SetSentErrorMessage(true);
597 return false;
598 }
599
600 Player* target = handler->getSelectedPlayer();
601 if (!target)
602 {
604 handler->SetSentErrorMessage(true);
605 return false;
606 }
607
608 // check online security
609 if (handler->HasLowerSecurity(target, 0))
610 return false;
611
612 handler->PSendSysMessage(LANG_YOU_CHANGE_FLY_SPEED, FSpeed, handler->GetNameLink(target).c_str());
613 if (handler->needReportToTarget(target))
614 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_FLY_SPEED_CHANGED, handler->GetNameLink().c_str(), FSpeed);
615
616 target->SetSpeed(MOVE_FLIGHT, FSpeed, true);
617
618 return true;
619 }
620
621 //Edit Player or Creature Scale
622 static bool HandleModifyScaleCommand(ChatHandler* handler, const char* args)
623 {
624 if (!*args)
625 return false;
626
627 float Scale = (float)atof((char*)args);
628 if (Scale > 10.0f || Scale < 0.1f)
629 {
631 handler->SetSentErrorMessage(true);
632 return false;
633 }
634
635 Unit* target = handler->getSelectedUnit();
636 if (!target)
637 {
639 handler->SetSentErrorMessage(true);
640 return false;
641 }
642
643 if (Player* player = target->ToPlayer())
644 {
645 // check online security
646 if (handler->HasLowerSecurity(player, 0))
647 return false;
648
649 handler->PSendSysMessage(LANG_YOU_CHANGE_SIZE, Scale, handler->GetNameLink(player).c_str());
650 if (handler->needReportToTarget(player))
651 ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, handler->GetNameLink().c_str(), Scale);
652 }
653
654 target->SetObjectScale(Scale);
655
656 return true;
657 }
658
659 //Enable Player mount
660 static bool HandleModifyMountCommand(ChatHandler* handler, const char* args)
661 {
662 if (!*args)
663 return false;
664
665 uint16 mId = 1147;
666 float speed = (float)15;
667 uint32 num = 0;
668
669 num = atoi((char*)args);
670 switch (num)
671 {
672 case 1:
673 mId = 14340;
674 break;
675 case 2:
676 mId = 4806;
677 break;
678 case 3:
679 mId = 6471;
680 break;
681 case 4:
682 mId = 12345;
683 break;
684 case 5:
685 mId = 6472;
686 break;
687 case 6:
688 mId = 6473;
689 break;
690 case 7:
691 mId = 10670;
692 break;
693 case 8:
694 mId = 10719;
695 break;
696 case 9:
697 mId = 10671;
698 break;
699 case 10:
700 mId = 10672;
701 break;
702 case 11:
703 mId = 10720;
704 break;
705 case 12:
706 mId = 14349;
707 break;
708 case 13:
709 mId = 11641;
710 break;
711 case 14:
712 mId = 12244;
713 break;
714 case 15:
715 mId = 12242;
716 break;
717 case 16:
718 mId = 14578;
719 break;
720 case 17:
721 mId = 14579;
722 break;
723 case 18:
724 mId = 14349;
725 break;
726 case 19:
727 mId = 12245;
728 break;
729 case 20:
730 mId = 14335;
731 break;
732 case 21:
733 mId = 207;
734 break;
735 case 22:
736 mId = 2328;
737 break;
738 case 23:
739 mId = 2327;
740 break;
741 case 24:
742 mId = 2326;
743 break;
744 case 25:
745 mId = 14573;
746 break;
747 case 26:
748 mId = 14574;
749 break;
750 case 27:
751 mId = 14575;
752 break;
753 case 28:
754 mId = 604;
755 break;
756 case 29:
757 mId = 1166;
758 break;
759 case 30:
760 mId = 2402;
761 break;
762 case 31:
763 mId = 2410;
764 break;
765 case 32:
766 mId = 2409;
767 break;
768 case 33:
769 mId = 2408;
770 break;
771 case 34:
772 mId = 2405;
773 break;
774 case 35:
775 mId = 14337;
776 break;
777 case 36:
778 mId = 6569;
779 break;
780 case 37:
781 mId = 10661;
782 break;
783 case 38:
784 mId = 10666;
785 break;
786 case 39:
787 mId = 9473;
788 break;
789 case 40:
790 mId = 9476;
791 break;
792 case 41:
793 mId = 9474;
794 break;
795 case 42:
796 mId = 14374;
797 break;
798 case 43:
799 mId = 14376;
800 break;
801 case 44:
802 mId = 14377;
803 break;
804 case 45:
805 mId = 2404;
806 break;
807 case 46:
808 mId = 2784;
809 break;
810 case 47:
811 mId = 2787;
812 break;
813 case 48:
814 mId = 2785;
815 break;
816 case 49:
817 mId = 2736;
818 break;
819 case 50:
820 mId = 2786;
821 break;
822 case 51:
823 mId = 14347;
824 break;
825 case 52:
826 mId = 14346;
827 break;
828 case 53:
829 mId = 14576;
830 break;
831 case 54:
832 mId = 9695;
833 break;
834 case 55:
835 mId = 9991;
836 break;
837 case 56:
838 mId = 6448;
839 break;
840 case 57:
841 mId = 6444;
842 break;
843 case 58:
844 mId = 6080;
845 break;
846 case 59:
847 mId = 6447;
848 break;
849 case 60:
850 mId = 4805;
851 break;
852 case 61:
853 mId = 9714;
854 break;
855 case 62:
856 mId = 6448;
857 break;
858 case 63:
859 mId = 6442;
860 break;
861 case 64:
862 mId = 14632;
863 break;
864 case 65:
865 mId = 14332;
866 break;
867 case 66:
868 mId = 14331;
869 break;
870 case 67:
871 mId = 8469;
872 break;
873 case 68:
874 mId = 2830;
875 break;
876 case 69:
877 mId = 2346;
878 break;
879 default:
881 handler->SetSentErrorMessage(true);
882 return false;
883 }
884
885 Player* target = handler->getSelectedPlayer();
886 if (!target)
887 {
889 handler->SetSentErrorMessage(true);
890 return false;
891 }
892
893 // check online security
894 if (handler->HasLowerSecurity(target, 0))
895 return false;
896
897 handler->PSendSysMessage(LANG_YOU_GIVE_MOUNT, handler->GetNameLink(target).c_str());
898 if (handler->needReportToTarget(target))
899 ChatHandler(target->GetSession()).PSendSysMessage(LANG_MOUNT_GIVED, handler->GetNameLink().c_str());
900
902 target->Mount(mId);
903
904 WorldPacket data(SMSG_MOVE_SET_RUN_SPEED, (8 + 4 + 1 + 4));
905 data.append(target->GetPackGUID());
906 data << (uint32)0;
907 data << (uint8)0; //new 2.1.0
908 data << float(speed);
909 target->SendMessageToSet(&data, true);
910
911 data.Initialize(SMSG_MOVE_SET_SWIM_SPEED, (8 + 4 + 4));
912 data.append(target->GetPackGUID());
913 data << (uint32)0;
914 data << float(speed);
915 target->SendMessageToSet(&data, true);
916
917 return true;
918 }
919
920 //Edit Player money
921 static bool HandleModifyMoneyCommand(ChatHandler* handler, const char* args)
922 {
923 if (!*args)
924 return false;
925
926 Player* target = handler->getSelectedPlayer();
927 if (!target)
928 {
930 handler->SetSentErrorMessage(true);
931 return false;
932 }
933
934 // check online security
935 if (handler->HasLowerSecurity(target, 0))
936 return false;
937
938 int64 moneyToAdd = 0;
939 if (strchr(args, 'g') || strchr(args, 's') || strchr(args, 'c'))
940 moneyToAdd = MoneyStringToMoney(std::string(args));
941 else
942 moneyToAdd = atol(args);
943
944 uint64 targetMoney = target->GetMoney();
945
946 if (moneyToAdd < 0)
947 {
948 int64 newmoney = int64(targetMoney) + moneyToAdd;
949
950 SF_LOG_DEBUG("misc", handler->GetSkyFireString(LANG_CURRENT_MONEY), uint32(targetMoney), int32(moneyToAdd), uint32(newmoney));
951 if (newmoney <= 0)
952 {
953 handler->PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, handler->GetNameLink(target).c_str());
954 if (handler->needReportToTarget(target))
956
957 target->SetMoney(0);
958 }
959 else
960 {
961 uint32 moneyToAddMsg = moneyToAdd * -1;
962 if (newmoney > int64(MAX_MONEY_AMOUNT))
963 newmoney = MAX_MONEY_AMOUNT;
964
965 handler->PSendSysMessage(LANG_YOU_TAKE_MONEY, moneyToAddMsg, handler->GetNameLink(target).c_str());
966 if (handler->needReportToTarget(target))
967 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, handler->GetNameLink().c_str(), moneyToAddMsg);
968 target->SetMoney(newmoney);
969 }
970 }
971 else
972 {
973 handler->PSendSysMessage(LANG_YOU_GIVE_MONEY, uint32(moneyToAdd), handler->GetNameLink(target).c_str());
974 if (handler->needReportToTarget(target))
975 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, handler->GetNameLink().c_str(), uint32(moneyToAdd));
976
977 if (moneyToAdd >= int64(MAX_MONEY_AMOUNT))
978 moneyToAdd = MAX_MONEY_AMOUNT;
979
980 if (targetMoney >= uint64(MAX_MONEY_AMOUNT) - moneyToAdd)
981 moneyToAdd -= targetMoney;
982
983 target->ModifyMoney(moneyToAdd);
984 }
985
986 SF_LOG_DEBUG("misc", handler->GetSkyFireString(LANG_NEW_MONEY), uint32(targetMoney), int32(moneyToAdd), uint32(target->GetMoney()));
987
988 return true;
989 }
990
991 //Edit Unit field
992 static bool HandleModifyBitCommand(ChatHandler* handler, const char* args)
993 {
994 if (!*args)
995 return false;
996
997 Unit* target = handler->getSelectedUnit();
998 if (!target)
999 {
1001 handler->SetSentErrorMessage(true);
1002 return false;
1003 }
1004
1005 // check online security
1006 if (target->GetTypeId() == TypeID::TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0))
1007 return false;
1008
1009 char* pField = strtok((char*)args, " ");
1010 if (!pField)
1011 return false;
1012
1013 char* pBit = strtok(NULL, " ");
1014 if (!pBit)
1015 return false;
1016
1017 uint16 field = atoi(pField);
1018 uint32 bit = atoi(pBit);
1019
1020 if (field < OBJECT_END || field >= target->GetValuesCount())
1021 {
1023 handler->SetSentErrorMessage(true);
1024 return false;
1025 }
1026 if (bit < 1 || bit > 32)
1027 {
1029 handler->SetSentErrorMessage(true);
1030 return false;
1031 }
1032
1033 if (target->HasFlag(field, (1 << (bit - 1))))
1034 {
1035 target->RemoveFlag(field, (1 << (bit - 1)));
1036 handler->PSendSysMessage(LANG_REMOVE_BIT, bit, field);
1037 }
1038 else
1039 {
1040 target->SetFlag(field, (1 << (bit - 1)));
1041 handler->PSendSysMessage(LANG_SET_BIT, bit, field);
1042 }
1043 return true;
1044 }
1045
1046 static bool HandleModifyHonorCommand(ChatHandler* handler, const char* args)
1047 {
1048 if (!*args)
1049 return false;
1050
1051 Player* target = handler->getSelectedPlayer();
1052 if (!target)
1053 {
1055 handler->SetSentErrorMessage(true);
1056 return false;
1057 }
1058
1059 // check online security
1060 if (handler->HasLowerSecurity(target, 0))
1061 return false;
1062
1063 int32 amount = (uint32)atoi(args);
1064
1065 target->ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, amount, true, true);
1066
1067 handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target).c_str(), target->GetCurrency(CURRENCY_TYPE_HONOR_POINTS, false));
1068
1069 return true;
1070 }
1071
1072 static bool HandleModifyDrunkCommand(ChatHandler* handler, const char* args)
1073 {
1074 if (!*args)
1075 return false;
1076
1077 uint8 drunklevel = (uint8)atoi(args);
1078 if (drunklevel > 100)
1079 drunklevel = 100;
1080
1081 if (Player* target = handler->getSelectedPlayer())
1082 target->SetDrunkValue(drunklevel);
1083
1084 return true;
1085 }
1086
1087 static bool HandleModifyRepCommand(ChatHandler* handler, const char* args)
1088 {
1089 if (!*args)
1090 return false;
1091
1092 Player* target = handler->getSelectedPlayer();
1093 if (!target)
1094 {
1096 handler->SetSentErrorMessage(true);
1097 return false;
1098 }
1099
1100 // check online security
1101 if (handler->HasLowerSecurity(target, 0))
1102 return false;
1103
1104 char* factionTxt = handler->extractKeyFromLink((char*)args, "Hfaction");
1105 if (!factionTxt)
1106 return false;
1107
1108 uint32 factionId = atoi(factionTxt);
1109
1110 int32 amount = 0;
1111 char* rankTxt = strtok(NULL, " ");
1112 if (!factionId || !rankTxt)
1113 return false;
1114
1115 amount = atoi(rankTxt);
1116 if ((amount == 0) && (rankTxt[0] != '-') && !isdigit(rankTxt[0]))
1117 {
1118 std::string rankStr = rankTxt;
1119 std::wstring wrankStr;
1120 if (!Utf8toWStr(rankStr, wrankStr))
1121 return false;
1122 wstrToLower(wrankStr);
1123
1124 int r = 0;
1125 amount = -42000;
1126 for (; r < MAX_REPUTATION_RANK; ++r)
1127 {
1128 std::string rank = handler->GetSkyFireString(ReputationRankStrIndex[r]);
1129 if (rank.empty())
1130 continue;
1131
1132 std::wstring wrank;
1133 if (!Utf8toWStr(rank, wrank))
1134 continue;
1135
1136 wstrToLower(wrank);
1137
1138 if (wrank.substr(0, wrankStr.size()) == wrankStr)
1139 {
1140 char* deltaTxt = strtok(NULL, " ");
1141 if (deltaTxt)
1142 {
1143 int32 delta = atoi(deltaTxt);
1144 if ((delta < 0) || (delta > ReputationMgr::PointsInRank[r] - 1))
1145 {
1147 handler->SetSentErrorMessage(true);
1148 return false;
1149 }
1150 amount += delta;
1151 }
1152 break;
1153 }
1154 amount += ReputationMgr::PointsInRank[r];
1155 }
1156 if (r >= MAX_REPUTATION_RANK)
1157 {
1159 handler->SetSentErrorMessage(true);
1160 return false;
1161 }
1162 }
1163
1164 FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
1165
1166 if (!factionEntry)
1167 {
1168 handler->PSendSysMessage(LANG_COMMAND_FACTION_UNKNOWN, factionId);
1169 handler->SetSentErrorMessage(true);
1170 return false;
1171 }
1172
1173 if (factionEntry->reputationListID < 0)
1174 {
1175 handler->PSendSysMessage(LANG_COMMAND_FACTION_NOREP_ERROR, factionEntry->name, factionId);
1176 handler->SetSentErrorMessage(true);
1177 return false;
1178 }
1179
1180 target->GetReputationMgr().SetOneFactionReputation(factionEntry, amount, false);
1181 target->GetReputationMgr().SendState(target->GetReputationMgr().GetState(factionEntry));
1182 handler->PSendSysMessage(LANG_COMMAND_MODIFY_REP, factionEntry->name, factionId,
1183 handler->GetNameLink(target).c_str(), target->GetReputationMgr().GetReputation(factionEntry));
1184 return true;
1185 }
1186
1187 //morph creature or player
1188 static bool HandleModifyMorphCommand(ChatHandler* handler, const char* args)
1189 {
1190 if (!*args)
1191 return false;
1192
1193 uint16 display_id = (uint16)atoi((char*)args);
1194
1195 Unit* target = handler->getSelectedUnit();
1196 if (!target)
1197 target = handler->GetSession()->GetPlayer();
1198
1199 // check online security
1200 else if (target->GetTypeId() == TypeID::TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0))
1201 return false;
1202
1203 target->SetDisplayId(display_id);
1204
1205 return true;
1206 }
1207
1208 //set temporary phase mask for player
1209 static bool HandleModifyPhaseCommand(ChatHandler* handler, const char* args)
1210 {
1211 if (!*args)
1212 return false;
1213
1214 uint32 phase = (uint32)atoi((char*)args);
1215
1216 Unit* target = handler->getSelectedUnit();
1217 if (!target)
1218 target = handler->GetSession()->GetPlayer();
1219
1220 target->SetPhased(phase, true, !target->IsPhased(phase));
1221
1222 return true;
1223 }
1224
1225 //change standstate
1226 static bool HandleModifyStandStateCommand(ChatHandler* handler, const char* args)
1227 {
1228 if (!*args)
1229 return false;
1230
1231 uint32 anim_id = atoi((char*)args);
1233
1234 return true;
1235 }
1236
1237 static bool HandleModifyGenderCommand(ChatHandler* handler, const char* args)
1238 {
1239 if (!*args)
1240 return false;
1241
1242 Player* target = handler->getSelectedPlayer();
1243
1244 if (!target)
1245 {
1247 handler->SetSentErrorMessage(true);
1248 return false;
1249 }
1250
1251 PlayerInfo const* info = sObjectMgr->GetPlayerInfo(target->getRace(), target->getClass());
1252 if (!info)
1253 return false;
1254
1255 char const* gender_str = (char*)args;
1256 int gender_len = strlen(gender_str);
1257
1258 Gender gender;
1259
1260 if (!strncmp(gender_str, "male", gender_len)) // MALE
1261 {
1262 if (target->getGender() == GENDER_MALE)
1263 return true;
1264
1265 gender = GENDER_MALE;
1266 }
1267 else if (!strncmp(gender_str, "female", gender_len)) // FEMALE
1268 {
1269 if (target->getGender() == GENDER_FEMALE)
1270 return true;
1271
1272 gender = GENDER_FEMALE;
1273 }
1274 else
1275 {
1277 handler->SetSentErrorMessage(true);
1278 return false;
1279 }
1280
1281 // Set gender
1282 target->SetGender(gender);
1283 target->SetByteValue(PLAYER_FIELD_PVP_INFO, 0, gender);
1284
1285 // Change display ID
1286 target->InitDisplayIds();
1287
1288 char const* gender_full = gender ? "female" : "male";
1289
1290 handler->PSendSysMessage(LANG_YOU_CHANGE_GENDER, handler->GetNameLink(target).c_str(), gender_full);
1291
1292 if (handler->needReportToTarget(target))
1293 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full, handler->GetNameLink().c_str());
1294
1295 return true;
1296 }
1297 //demorph player or unit
1298 static bool HandleDeMorphCommand(ChatHandler* handler, const char* /*args*/)
1299 {
1300 Unit* target = handler->getSelectedUnit();
1301 if (!target)
1302 target = handler->GetSession()->GetPlayer();
1303
1304 // check online security
1305 else if (target->GetTypeId() == TypeID::TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0))
1306 return false;
1307
1308 target->DeMorph();
1309
1310 return true;
1311 }
1312
1313 static bool HandleModifyCurrencyCommand(ChatHandler* handler, const char* args)
1314 {
1315 if (!*args)
1316 return false;
1317
1318 Player* target = handler->getSelectedPlayer();
1319 if (!target)
1320 {
1322 handler->SetSentErrorMessage(true);
1323 return false;
1324 }
1325
1326 char* currencyIdStr = strtok((char*)args, " ");
1327 if (!currencyIdStr)
1328 return false;
1329
1330 uint32 currencyId = atoi(currencyIdStr);
1331 const CurrencyTypesEntry* currencyType = sCurrencyTypesStore.LookupEntry(currencyId);
1332 if (!currencyType)
1333 return false;
1334
1335 char* amountStr = strtok(NULL, " ");
1336 if (!amountStr)
1337 return false;
1338
1339 uint32 amount = atoi(amountStr);
1340 if (!amount)
1341 return false;
1342
1343 target->ModifyCurrency(currencyId, amount, true, true);
1344
1345 return true;
1346 }
1347};
1348
@ CURRENCY_TYPE_HONOR_POINTS
Definition DBCEnums.h:576
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
DBCStorage< FactionTemplateEntry > sFactionTemplateStore(FactionTemplateEntryfmt)
DBCStorage< CurrencyTypesEntry > sCurrencyTypesStore(CurrencyTypesfmt)
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
std::int64_t int64
Definition Define.h:72
std::uint16_t uint16
Definition Define.h:78
@ LANG_CURRENT_MONEY
Definition Language.h:159
@ LANG_MUST_MALE_OR_FEMALE
Definition Language.h:909
@ LANG_NO_MOUNT
Definition Language.h:155
@ LANG_YOURS_ASPEED_CHANGED
Definition Language.h:143
@ LANG_YOU_CHANGE_SIZE
Definition Language.h:153
@ LANG_SELECT_CREATURE
Definition Language.h:13
@ LANG_YOURS_MANA_CHANGED
Definition Language.h:124
@ LANG_COMMAND_FACTION_UNKNOWN
Definition Language.h:315
@ LANG_YOURS_FLY_SPEED_CHANGED
Definition Language.h:151
@ LANG_COMMAND_FACTION_DELTA
Definition Language.h:317
@ LANG_YOURS_SWIM_SPEED_CHANGED
Definition Language.h:147
@ LANG_YOU_TAKE_ALL_MONEY
Definition Language.h:160
@ LANG_YOU_GIVE_MOUNT
Definition Language.h:156
@ LANG_YOURS_MONEY_TAKEN
Definition Language.h:163
@ LANG_YOU_CHANGE_RAGE
Definition Language.h:129
@ LANG_YOURS_ALL_MONEY_GONE
Definition Language.h:161
@ LANG_YOU_CHANGE_SPEED
Definition Language.h:144
@ LANG_YOU_TAKE_MONEY
Definition Language.h:162
@ LANG_YOURS_SPEED_CHANGED
Definition Language.h:145
@ LANG_REMOVE_BIT
Definition Language.h:170
@ LANG_WRONG_FACTION
Definition Language.h:133
@ LANG_YOURS_MONEY_GIVEN
Definition Language.h:165
@ LANG_YOURS_HP_CHANGED
Definition Language.h:122
@ LANG_YOURS_SIZE_CHANGED
Definition Language.h:154
@ LANG_YOU_CHANGE_ENERGY
Definition Language.h:125
@ LANG_CURRENT_FACTION
Definition Language.h:132
@ LANG_YOU_CHANGE_HP
Definition Language.h:121
@ LANG_YOU_CHANGE_RUNIC_POWER
Definition Language.h:183
@ LANG_COMMAND_MODIFY_HONOR
Definition Language.h:304
@ LANG_NEW_MONEY
Definition Language.h:168
@ LANG_YOURS_SPELLFLATID_CHANGED
Definition Language.h:136
@ LANG_YOU_CHANGE_FLY_SPEED
Definition Language.h:150
@ LANG_YOU_CHANGE_FACTION
Definition Language.h:134
@ LANG_YOU_CHANGE_ASPEED
Definition Language.h:142
@ LANG_CURRENT_ENERGY
Definition Language.h:128
@ LANG_YOURS_RAGE_CHANGED
Definition Language.h:130
@ LANG_NO_CHAR_SELECTED
Definition Language.h:118
@ LANG_SELECT_CHAR_OR_CREATURE
Definition Language.h:12
@ LANG_COMMAND_FACTION_NOREP_ERROR
Definition Language.h:333
@ LANG_YOU_CHANGE_BACK_SPEED
Definition Language.h:148
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:487
@ LANG_YOU_CHANGE_GENDER
Definition Language.h:910
@ LANG_SET_BIT
Definition Language.h:171
@ LANG_BAD_VALUE
Definition Language.h:117
@ LANG_YOU_CHANGE_SPELLFLATID
Definition Language.h:135
@ LANG_YOURS_ENERGY_CHANGED
Definition Language.h:126
@ LANG_COMMAND_MODIFY_REP
Definition Language.h:312
@ LANG_YOURS_BACK_SPEED_CHANGED
Definition Language.h:149
@ LANG_YOURS_RUNIC_POWER_CHANGED
Definition Language.h:184
@ LANG_CHAR_IN_FLIGHT
Definition Language.h:34
@ LANG_MOUNT_GIVED
Definition Language.h:157
@ LANG_YOU_CHANGE_SWIM_SPEED
Definition Language.h:146
@ LANG_YOUR_GENDER_CHANGED
Definition Language.h:911
@ LANG_YOU_GIVE_MONEY
Definition Language.h:164
@ LANG_COMMAND_FACTION_INVPARAM
Definition Language.h:316
@ LANG_YOU_CHANGE_MANA
Definition Language.h:123
#define SF_LOG_DEBUG(filterType__,...)
Definition Log.h:134
@ TYPEID_PLAYER
Definition Object.h:55
#define sObjectMgr
Definition ObjectMgr.h:1617
#define MAX_MONEY_AMOUNT
Definition Player.h:927
static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK]
@ POWER_RAGE
@ POWER_RUNIC_POWER
@ POWER_ENERGY
@ POWER_MANA
#define MAX_REPUTATION_RANK
Gender
@ GENDER_MALE
@ GENDER_FEMALE
@ MOVE_FLIGHT
Definition Unit.h:561
@ MOVE_SWIM
Definition Unit.h:558
@ MOVE_RUN
Definition Unit.h:556
@ MOVE_RUN_BACK
Definition Unit.h:557
@ MOVE_WALK
Definition Unit.h:555
@ UNIT_FLAG_PVP
Definition Unit.h:637
@ UNIT_FIELD_NPC_FLAGS
@ UNIT_FIELD_FLAGS
@ UNIT_FIELD_NPC_EMOTESTATE
@ OBJECT_FIELD_DYNAMIC_FLAGS
@ PLAYER_FIELD_PVP_INFO
int64 MoneyStringToMoney(const std::string &moneyString)
Definition Util.cpp:150
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
Definition Util.cpp:305
void wstrToLower(std::wstring &str)
Definition Util.h:314
void append(T value)
Definition ByteBuffer.h:147
virtual std::string GetNameLink() const
Definition Chat.h:79
bool HasLowerSecurity(Player *target, uint64 guid, bool strong=false)
Definition Chat.cpp:78
Unit * getSelectedUnit()
Definition Chat.cpp:841
Player * getSelectedPlayer()
Definition Chat.cpp:829
WorldSession * GetSession()
Definition Chat.h:43
Creature * getSelectedCreature()
Definition Chat.cpp:865
char * extractKeyFromLink(char *text, char const *linkType, char **something1=NULL)
Definition Chat.cpp:873
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
virtual const char * GetSkyFireString(int32 entry) const
Definition Chat.cpp:68
CommandScript(const char *name)
void SetByteValue(uint16 index, uint8 offset, uint8 value)
Definition Object.cpp:1158
uint32 GetUInt32Value(uint16 index) const
Definition Object.cpp:325
Player * ToPlayer()
Definition Object.h:204
uint32 GetGUIDLow() const
Definition Object.h:120
TypeID GetTypeId() const
Definition Object.h:131
void SetFlag(uint16 index, uint32 newFlag)
Definition Object.cpp:1261
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition Object.cpp:1280
const ByteBuffer & GetPackGUID() const
Definition Object.h:124
bool HasFlag(uint16 index, uint32 flag) const
Definition Object.cpp:1309
virtual void SetObjectScale(float scale)
Definition Object.h:129
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:1038
uint16 GetValuesCount() const
Definition Object.h:191
bool ModifyMoney(int64 amount, bool sendError=true)
Definition Player.cpp:18342
void InitDisplayIds()
Definition Player.cpp:16925
WorldSession * GetSession() const
Definition Player.h:2417
void ModifyCurrency(uint32 id, int32 count, bool printLog=true, bool ignoreMultipliers=false)
Definition Player.cpp:7691
uint32 GetCurrency(uint32 id, bool usePrecision) const
return count of currency witch has plr
Definition Player.cpp:7648
uint64 GetMoney() const
Definition Player.h:1945
void SendMessageToSet(WorldPacket *data, bool self) override
Definition Player.h:2443
void SetMoney(uint64 value)
Definition Player.cpp:18373
ReputationMgr & GetReputationMgr()
Definition Player.h:2555
static const int32 PointsInRank[MAX_REPUTATION_RANK]
void SendState(FactionState const *faction)
int32 GetReputation(uint32 faction_id) const
FactionState const * GetState(FactionEntry const *factionEntry) const
bool SetOneFactionReputation(FactionEntry const *factionEntry, int32 standing, bool incremental)
Public for chat command needs.
Definition Unit.h:1367
uint8 getGender() const
Definition Unit.h:1551
void setFaction(uint32 faction)
Definition Unit.h:1699
uint32 getFaction() const
Definition Unit.h:1695
bool SetPhased(uint32 id, bool update, bool apply) OVERRIDE
Definition Unit.cpp:7516
void SetPower(Powers power, int32 val)
Definition Unit.cpp:5255
uint8 getClass() const
Definition Unit.h:1543
int32 GetMaxPower(Powers power) const
Definition Unit.cpp:5246
void SetHealth(uint32 val)
Definition Unit.cpp:5162
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
Definition Unit.cpp:3635
bool IsInFlight() const
Definition Unit.h:1891
void SetGender(uint8 gender)
Definition Unit.h:1568
virtual void SetDisplayId(uint32 modelId)
Definition Unit.cpp:5941
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:4318
void SetMaxPower(Powers power, int32 val)
Definition Unit.cpp:5317
void SetMaxHealth(uint32 val)
Definition Unit.cpp:5206
void DeMorph()
Definition Unit.cpp:1536
uint8 getRace() const
Definition Unit.h:1535
bool IsPhased(WorldObject const *obj) const
Definition Object.cpp:3393
void Initialize(Opcodes opcode, size_t newres=200)
Definition WorldPacket.h:31
Player * GetPlayer() const
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
static bool HandleModifySpeedCommand(ChatHandler *handler, const char *args)
static bool HandleModifyRageCommand(ChatHandler *handler, const char *args)
static bool HandleModifyFlyCommand(ChatHandler *handler, const char *args)
static bool HandleModifyRunicPowerCommand(ChatHandler *handler, const char *args)
static bool HandleModifyEnergyCommand(ChatHandler *handler, const char *args)
static bool HandleModifyMountCommand(ChatHandler *handler, const char *args)
static bool HandleModifyRepCommand(ChatHandler *handler, const char *args)
static bool HandleModifyMoneyCommand(ChatHandler *handler, const char *args)
static bool HandleModifyCurrencyCommand(ChatHandler *handler, const char *args)
static bool HandleDeMorphCommand(ChatHandler *handler, const char *)
std::vector< ChatCommand > GetCommands() const OVERRIDE
Definition cs_modify.cpp:28
static bool HandleModifyBitCommand(ChatHandler *handler, const char *args)
static bool HandleModifyGenderCommand(ChatHandler *handler, const char *args)
static bool HandleModifyFactionCommand(ChatHandler *handler, const char *args)
static bool HandleModifyManaCommand(ChatHandler *handler, const char *args)
static bool HandleModifyHonorCommand(ChatHandler *handler, const char *args)
static bool HandleModifySwimCommand(ChatHandler *handler, const char *args)
static bool HandleModifySpellCommand(ChatHandler *handler, const char *args)
static bool HandleModifyMorphCommand(ChatHandler *handler, const char *args)
static bool HandleModifyASpeedCommand(ChatHandler *handler, const char *args)
static bool HandleModifyPhaseCommand(ChatHandler *handler, const char *args)
static bool HandleModifyDrunkCommand(ChatHandler *handler, const char *args)
static bool HandleModifyStandStateCommand(ChatHandler *handler, const char *args)
static bool HandleModifyBWalkCommand(ChatHandler *handler, const char *args)
static bool HandleModifyScaleCommand(ChatHandler *handler, const char *args)
static bool HandleModifyHPCommand(ChatHandler *handler, const char *args)
Definition cs_modify.cpp:70
void AddSC_modify_commandscript()
@ SMSG_MOVE_SET_SWIM_SPEED
Definition Opcodes.h:808
@ SMSG_SET_FLAT_SPELL_MODIFIER
Definition Opcodes.h:954
@ SMSG_MOVE_SET_RUN_SPEED
Definition Opcodes.h:806
@ RBAC_PERM_COMMAND_MODIFY_MONEY
Definition RBAC.h:442
@ RBAC_PERM_COMMAND_MODIFY_RUNICPOWER
Definition RBAC.h:447
@ RBAC_PERM_COMMAND_MODIFY_MOUNT
Definition RBAC.h:443
@ RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM
Definition RBAC.h:454
@ RBAC_PERM_COMMAND_MODIFY_PHASE
Definition RBAC.h:444
@ RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK
Definition RBAC.h:451
@ RBAC_PERM_COMMAND_MODIFY_SPEED_FLY
Definition RBAC.h:452
@ RBAC_PERM_COMMAND_MODIFY_SPEED
Definition RBAC.h:449
@ RBAC_PERM_COMMAND_MODIFY
Definition RBAC.h:432
@ RBAC_PERM_COMMAND_MODIFY_SCALE
Definition RBAC.h:448
@ RBAC_PERM_COMMAND_MODIFY_BIT
Definition RBAC.h:434
@ RBAC_PERM_COMMAND_MODIFY_SPEED_WALK
Definition RBAC.h:453
@ RBAC_PERM_COMMAND_MODIFY_HONOR
Definition RBAC.h:439
@ RBAC_PERM_COMMAND_MODIFY_FACTION
Definition RBAC.h:437
@ RBAC_PERM_COMMAND_DEMORPH
Definition RBAC.h:431
@ RBAC_PERM_COMMAND_MODIFY_SPELL
Definition RBAC.h:455
@ RBAC_PERM_COMMAND_MORPH
Definition RBAC.h:430
@ RBAC_PERM_COMMAND_MODIFY_RAGE
Definition RBAC.h:445
@ RBAC_PERM_COMMAND_MODIFY_GENDER
Definition RBAC.h:438
@ RBAC_PERM_COMMAND_MODIFY_MANA
Definition RBAC.h:441
@ RBAC_PERM_COMMAND_MODIFY_STANDSTATE
Definition RBAC.h:456
@ RBAC_PERM_COMMAND_MODIFY_REPUTATION
Definition RBAC.h:446
@ RBAC_PERM_COMMAND_MODIFY_ENERGY
Definition RBAC.h:436
@ RBAC_PERM_COMMAND_MODIFY_SPEED_ALL
Definition RBAC.h:450
@ RBAC_PERM_COMMAND_MODIFY_HP
Definition RBAC.h:440
@ RBAC_PERM_COMMAND_MODIFY_DRUNK
Definition RBAC.h:435
char * name
int32 reputationListID