diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-04-09 17:24:39 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-04-09 17:24:39 +0200 |
| commit | 12a828fdbc01b9fca817829f9da3be2cf8cedf46 (patch) | |
| tree | bedf2c3cf036f4e56635f4e41c41b4e72f9418a3 /src/server/scripts/Commands | |
| parent | c34fd8d862fa85e8e1ed9d6abac349647f6cc082 (diff) | |
Core/Movement
* Implemented a generic way of sending movement packets depending on who controls the unit (player or server controlled)
* Added possibility to specify extra elements in movement packets (such as speed, extra passenger guid, collision height and similar) without having to add a special element only for these
* Removed Unit::SendMovementFlagUpdate as it was something working only in 3.3.5a and earlier (no serverside HEARTBEAT opcode exists now)
Diffstat (limited to 'src/server/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_cheat.cpp | 15 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 10 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_gm.cpp | 10 |
3 files changed, 26 insertions, 9 deletions
diff --git a/src/server/scripts/Commands/cs_cheat.cpp b/src/server/scripts/Commands/cs_cheat.cpp index 3ca81e3e6f3..aeac475fdb1 100644 --- a/src/server/scripts/Commands/cs_cheat.cpp +++ b/src/server/scripts/Commands/cs_cheat.cpp @@ -185,10 +185,11 @@ public: std::string argstr = (char*)args; + Player* target = handler->GetSession()->GetPlayer(); if (!*args) { - argstr = (handler->GetSession()->GetPlayer()->GetCommandStatus(CHEAT_WATERWALK)) ? "off" : "on"; - if (handler->GetSession()->GetPlayer()->GetCommandStatus(CHEAT_WATERWALK)) + argstr = (target->GetCommandStatus(CHEAT_WATERWALK)) ? "off" : "on"; + if (target->GetCommandStatus(CHEAT_WATERWALK)) argstr = "off"; else argstr = "on"; @@ -196,15 +197,17 @@ public: if (argstr == "off") { - handler->GetSession()->GetPlayer()->SetCommandStatusOff(CHEAT_WATERWALK); - handler->GetSession()->GetPlayer()->SendMovementSetWaterWalking(false); // OFF + target->SetCommandStatusOff(CHEAT_WATERWALK); + target->RemoveUnitMovementFlag(MOVEMENTFLAG_WATERWALKING); + target->SendMovementWaterWalking(); // OFF handler->SendSysMessage("Waterwalking is OFF. You can't walk on water."); return true; } else if (argstr == "on") { - handler->GetSession()->GetPlayer()->SetCommandStatusOn(CHEAT_WATERWALK); - handler->GetSession()->GetPlayer()->SendMovementSetWaterWalking(true); // ON + target->SetCommandStatusOn(CHEAT_WATERWALK); + target->AddUnitMovementFlag(MOVEMENTFLAG_WATERWALKING); + target->SendMovementWaterWalking(); // ON handler->SendSysMessage("Waterwalking is ON. You can walk on water."); return true; } diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 56b8d251de6..1c3968cae8e 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -1331,7 +1331,15 @@ public: target->SetExtraUnitMovementFlags(moveFlagsExtra); } - target->SendMovementFlagUpdate(); + if (target->GetTypeId() != TYPEID_PLAYER) + target->DestroyForNearbyPlayers(); // Force new SMSG_UPDATE_OBJECT:CreateObject + else + { + WorldPacket data(SMSG_PLAYER_MOVE); + target->WriteMovementInfo(data); + target->SendMessageToSet(&data, true); + } + handler->PSendSysMessage(LANG_MOVEFLAGS_SET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags()); } diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp index a99957a07c0..e0c338a2dbf 100644 --- a/src/server/scripts/Commands/cs_gm.cpp +++ b/src/server/scripts/Commands/cs_gm.cpp @@ -103,9 +103,15 @@ public: WorldPacket data; if (strncmp(args, "on", 3) == 0) - target->SendMovementSetCanFly(true); + { + target->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); + target->SendMovementCanFlyChange(); + } else if (strncmp(args, "off", 4) == 0) - target->SendMovementSetCanFly(false); + { + target->RemoveUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); + target->SendMovementCanFlyChange(); + } else { handler->SendSysMessage(LANG_USE_BOL); |
