Core/Phases:

- fixed packet structure, thanks to Shauren for the notice
- fixed .mod phase command
- implemented world map area swaps for swapped terrain
This commit is contained in:
Rat
2014-10-30 23:08:23 +01:00
parent d77bb02e88
commit 2583661703
5 changed files with 26 additions and 19 deletions

View File

@@ -958,6 +958,7 @@ public:
char* t = strtok((char*)args, " ");
char* p = strtok(NULL, " ");
char* m = strtok(NULL, " ");
if (!t)
return false;
@@ -966,10 +967,16 @@ public:
std::set<uint32> phaseId;
std::set<uint32> worldMapSwap;
terrainswap.insert((uint32)atoi(t));
if (uint32 ut = (uint32)atoi(t))
terrainswap.insert(ut);
if (p)
phaseId.insert((uint32)atoi(p));
if (uint32 up = (uint32)atoi(p))
phaseId.insert(up);
if (m)
if (uint32 um = (uint32)atoi(m))
worldMapSwap.insert(um);
handler->GetSession()->SendSetPhaseShift(phaseId, terrainswap, worldMapSwap);
return true;

View File

@@ -1277,10 +1277,13 @@ public:
uint32 phase = (uint32)atoi((char*)args);
Unit* target = handler->getSelectedUnit();
if (target)
target->SetInPhase(phase, true, !target->IsInPhase(phase));
else
handler->GetSession()->GetPlayer()->SetInPhase(phase, true, !handler->GetSession()->GetPlayer()->IsInPhase(phase));
if (!target)
target = handler->GetSession()->GetPlayer();
target->SetInPhase(phase, true, !target->IsInPhase(phase));
if (target->GetTypeId() == TYPEID_PLAYER)
target->ToPlayer()->SendUpdatePhasing();
return true;
}