Core/Battleground: Implemented blizzlike script for Isle of Conquest, written by gyullo and me, based on Socolin's and Josh's patch -BIG THANKS TO THEM-
Anyway the map is not yet playable, there are issues not related with the script. I also want to thanks to QAston, linencloth, Shauren and Machiavelli to be so patient with my questions.
This commit is contained in:
@@ -1563,6 +1563,7 @@ void Player::setDeathState(DeathState s)
|
||||
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP, 1);
|
||||
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DEATH, 1);
|
||||
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON, 1);
|
||||
GetAchievementMgr().ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL,ACHIEVEMENT_CRITERIA_CONDITION_NO_DEATH);
|
||||
}
|
||||
Unit::setDeathState(s);
|
||||
|
||||
@@ -1885,7 +1886,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
|
||||
if (duel && GetMapId() != mapid && GetMap()->GetGameObject(GetUInt64Value(PLAYER_DUEL_ARBITER)))
|
||||
DuelComplete(DUEL_FLED);
|
||||
|
||||
if (GetMapId() == mapid && !m_transport)
|
||||
if (GetMapId() == mapid && !m_transport || (GetTransport() && GetMapId() == 628))
|
||||
{
|
||||
//lets reset far teleport flag if it wasn't reset during chained teleports
|
||||
SetSemaphoreTeleportFar(false);
|
||||
@@ -4809,6 +4810,12 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness)
|
||||
UpdateZone(newzone,newarea);
|
||||
sOutdoorPvPMgr->HandlePlayerResurrects(this, newzone);
|
||||
|
||||
if (InBattleground())
|
||||
{
|
||||
if (Battleground* bg = GetBattleground())
|
||||
bg->HandlePlayerResurrect(this);
|
||||
}
|
||||
|
||||
// update visibility
|
||||
UpdateObjectVisibility();
|
||||
|
||||
@@ -8752,6 +8759,9 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid)
|
||||
case 4384:
|
||||
NumberOfFields = 30;
|
||||
break;
|
||||
case 4710:
|
||||
NumberOfFields = 28;
|
||||
break;
|
||||
default:
|
||||
NumberOfFields = 12;
|
||||
break;
|
||||
@@ -9244,6 +9254,32 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid)
|
||||
data << uint32(0xe1a) << uint32(0x0); // 9 show
|
||||
}
|
||||
break;
|
||||
case 4710:
|
||||
if (bg && bg->GetTypeID(true) == BATTLEGROUND_IC)
|
||||
bg->FillInitialWorldStates(data);
|
||||
else
|
||||
{
|
||||
data << uint32(4221) << uint32(1); // 7
|
||||
data << uint32(4222) << uint32(1); // 8
|
||||
data << uint32(4226) << uint32(300); // 9
|
||||
data << uint32(4227) << uint32(300); // 10
|
||||
data << uint32(4322) << uint32(1); // 11
|
||||
data << uint32(4321) << uint32(1); // 12
|
||||
data << uint32(4320) << uint32(1); // 13
|
||||
data << uint32(4323) << uint32(1); // 14
|
||||
data << uint32(4324) << uint32(1); // 15
|
||||
data << uint32(4325) << uint32(1); // 16
|
||||
data << uint32(4317) << uint32(1); // 17
|
||||
|
||||
data << uint32(4301) << uint32(1); // 18
|
||||
data << uint32(4296) << uint32(1); // 19
|
||||
data << uint32(4306) << uint32(1); // 20
|
||||
data << uint32(4311) << uint32(1); // 21
|
||||
data << uint32(4294) << uint32(1); // 22
|
||||
data << uint32(4243) << uint32(1); // 23
|
||||
data << uint32(4345) << uint32(1); // 24
|
||||
}
|
||||
break;
|
||||
default:
|
||||
data << uint32(0x914) << uint32(0x0); // 7
|
||||
data << uint32(0x913) << uint32(0x0); // 8
|
||||
|
||||
Reference in New Issue
Block a user