Battlefields: Move BF scripts out of game
Port From (https://github.com/TrinityCore/TrinityCore/commit/49523a74a4c28e5ae17f9a8352aa8224b765b7d8)
This commit is contained in:
@@ -77,8 +77,8 @@ namespace Game.Arenas
|
||||
|
||||
public override void FillInitialWorldStates(InitWorldStates packet)
|
||||
{
|
||||
packet.AddState(ArenaWorldStates.AlivePlayersGreen, (int)GetAlivePlayersCountByTeam(Team.Horde));
|
||||
packet.AddState(ArenaWorldStates.AlivePlayersGold, (int)GetAlivePlayersCountByTeam(Team.Alliance));
|
||||
packet.AddState(ArenaWorldStates.AlivePlayersGreen, GetAlivePlayersCountByTeam(Team.Horde));
|
||||
packet.AddState(ArenaWorldStates.AlivePlayersGold, GetAlivePlayersCountByTeam(Team.Alliance));
|
||||
}
|
||||
|
||||
void UpdateArenaWorldState()
|
||||
|
||||
@@ -29,8 +29,9 @@ namespace Game.BattleFields
|
||||
{
|
||||
public enum BattleFieldTypes
|
||||
{
|
||||
WinterGrasp,
|
||||
TolBarad
|
||||
WinterGrasp = 1,
|
||||
TolBarad = 2,
|
||||
Max
|
||||
}
|
||||
|
||||
public class BattleField : ZoneScript
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using Framework.Database;
|
||||
using Game.Entities;
|
||||
using Game.Maps;
|
||||
using System.Collections.Generic;
|
||||
@@ -27,33 +28,38 @@ namespace Game.BattleFields
|
||||
|
||||
public void InitBattlefield()
|
||||
{
|
||||
BattleField wg = new BattlefieldWG();
|
||||
// respawn, init variables
|
||||
if (!wg.SetupBattlefield())
|
||||
uint oldMSTime = Time.GetMSTime();
|
||||
|
||||
uint count = 0;
|
||||
var result = DB.World.Query("SELECT TypeId, ScriptName FROM battlefield_template");
|
||||
if (!result.IsEmpty())
|
||||
{
|
||||
Log.outError(LogFilter.Battlefield, "Battlefield: Wintergrasp init failed.");
|
||||
}
|
||||
else
|
||||
{
|
||||
_battlefieldSet.Add(wg);
|
||||
Log.outInfo(LogFilter.Battlefield, "Battlefield: Wintergrasp successfully initiated.");
|
||||
do
|
||||
{
|
||||
BattleFieldTypes typeId = (BattleFieldTypes)result.Read<byte>(0);
|
||||
if (typeId >= BattleFieldTypes.Max)
|
||||
{
|
||||
Log.outError(LogFilter.Sql, $"BattlefieldMgr::InitBattlefield: Invalid TypeId value {typeId} in battlefield_template, skipped.");
|
||||
continue;
|
||||
}
|
||||
|
||||
uint scriptId = Global.ObjectMgr.GetScriptId(result.Read<string>(1));
|
||||
|
||||
var bf = Global.ScriptMgr.CreateBattlefield(scriptId);
|
||||
if (!bf.SetupBattlefield())
|
||||
{
|
||||
Log.outInfo(LogFilter.Battlefield, $"Setting up battlefield with TypeId {typeId} failed.");
|
||||
continue;
|
||||
}
|
||||
|
||||
_battlefieldSet.Add(bf);
|
||||
Log.outInfo(LogFilter.Battlefield, $"Setting up battlefield with TypeId {typeId} succeeded.");
|
||||
++count;
|
||||
|
||||
} while (result.NextRow());
|
||||
}
|
||||
|
||||
/*
|
||||
For Cataclysm: Tol Barad
|
||||
Battlefield* tb = new BattlefieldTB;
|
||||
// respawn, init variables
|
||||
if (!tb.SetupBattlefield())
|
||||
{
|
||||
TC_LOG_DEBUG("bg.battlefield", "Battlefield: Tol Barad init failed.");
|
||||
delete tb;
|
||||
}
|
||||
else
|
||||
{
|
||||
_battlefieldSet.push_back(tb);
|
||||
TC_LOG_DEBUG("bg.battlefield", "Battlefield: Tol Barad successfully initiated.");
|
||||
}
|
||||
*/
|
||||
Log.outInfo(LogFilter.ServerLoading, $"Loaded {count} battlefields in {Time.GetMSTimeDiffToNow(oldMSTime)} ms");
|
||||
}
|
||||
|
||||
public void AddZone(uint zoneId, BattleField bf)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,715 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2020 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using Framework.Constants;
|
||||
using Game.Entities;
|
||||
using System.Numerics;
|
||||
|
||||
namespace Game.BattleFields
|
||||
{
|
||||
static class WGConst
|
||||
{
|
||||
public const uint MapId = 571; // Northrend
|
||||
|
||||
public const byte MaxOutsideNpcs = 14;
|
||||
public const byte OutsideAllianceNpc = 7;
|
||||
public const byte MaxWorkshops = 6;
|
||||
|
||||
#region Data
|
||||
public static BfWGCoordGY[] WGGraveYard =
|
||||
{
|
||||
new BfWGCoordGY(5104.750f, 2300.940f, 368.579f, 0.733038f, 1329, WGGossipText.GYNE, TeamId.Neutral),
|
||||
new BfWGCoordGY(5099.120f, 3466.036f, 368.484f, 5.317802f, 1330, WGGossipText.GYNW, TeamId.Neutral),
|
||||
new BfWGCoordGY(4314.648f, 2408.522f, 392.642f, 6.268125f, 1333, WGGossipText.GYSE, TeamId.Neutral),
|
||||
new BfWGCoordGY(4331.716f, 3235.695f, 390.251f, 0.008500f, 1334, WGGossipText.GYSW, TeamId.Neutral),
|
||||
new BfWGCoordGY(5537.986f, 2897.493f, 517.057f, 4.819249f, 1285, WGGossipText.GYKeep, TeamId.Neutral),
|
||||
new BfWGCoordGY(5032.454f, 3711.382f, 372.468f, 3.971623f, 1331, WGGossipText.GYHorde, TeamId.Horde),
|
||||
new BfWGCoordGY(5140.790f, 2179.120f, 390.950f, 1.972220f, 1332, WGGossipText.GYAlliance, TeamId.Alliance),
|
||||
};
|
||||
|
||||
public static WorldStates[] ClockWorldState = { WorldStates.BattlefieldWgTimeBattleEnd, WorldStates.BattlefieldWgTimeNextBattle };
|
||||
public static uint[] WintergraspFaction = { 1732, 1735, 35 };
|
||||
|
||||
public static Position WintergraspStalkerPos = new(4948.985f, 2937.789f, 550.5172f, 1.815142f);
|
||||
|
||||
public static Position RelicPos = new(5440.379f, 2840.493f, 430.2816f, -1.832595f);
|
||||
public static Quaternion RelicRot = new(0.0f, 0.0f, -0.7933531f, 0.6087617f);
|
||||
|
||||
//Destructible (Wall, Tower..)
|
||||
public static WintergraspBuildingSpawnData[] WGGameObjectBuilding =
|
||||
{
|
||||
// Wall (Not spawned in db)
|
||||
// Entry WS X Y Z O rX rY rZ rW Type
|
||||
new WintergraspBuildingSpawnData(190219, 3749, 5371.457f, 3047.472f, 407.5710f, 3.14159300f, 0.0f, 0.0f, -1.000000000f, 0.00000000f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190220, 3750, 5331.264f, 3047.105f, 407.9228f, 0.05235888f, 0.0f, 0.0f, 0.026176450f, 0.99965730f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191795, 3764, 5385.841f, 2909.490f, 409.7127f, 0.00872424f, 0.0f, 0.0f, 0.004362106f, 0.99999050f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191796, 3772, 5384.452f, 2771.835f, 410.2704f, 3.14159300f, 0.0f, 0.0f, -1.000000000f, 0.00000000f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191799, 3762, 5371.436f, 2630.610f, 408.8163f, 3.13285800f, 0.0f, 0.0f, 0.999990500f, 0.00436732f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191800, 3766, 5301.838f, 2909.089f, 409.8661f, 0.00872424f, 0.0f, 0.0f, 0.004362106f, 0.99999050f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191801, 3770, 5301.063f, 2771.411f, 409.9014f, 3.14159300f, 0.0f, 0.0f, -1.000000000f, 0.00000000f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191802, 3751, 5280.197f, 2995.583f, 408.8249f, 1.61442800f, 0.0f, 0.0f, 0.722363500f, 0.69151360f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191803, 3752, 5279.136f, 2956.023f, 408.6041f, 1.57079600f, 0.0f, 0.0f, 0.707106600f, 0.70710690f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191804, 3767, 5278.685f, 2882.513f, 409.5388f, 1.57079600f, 0.0f, 0.0f, 0.707106600f, 0.70710690f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191806, 3769, 5279.502f, 2798.945f, 409.9983f, 1.57079600f, 0.0f, 0.0f, 0.707106600f, 0.70710690f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191807, 3759, 5279.937f, 2724.766f, 409.9452f, 1.56207000f, 0.0f, 0.0f, 0.704014800f, 0.71018530f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191808, 3760, 5279.601f, 2683.786f, 409.8488f, 1.55334100f, 0.0f, 0.0f, 0.700908700f, 0.71325110f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191809, 3761, 5330.955f, 2630.777f, 409.2826f, 3.13285800f, 0.0f, 0.0f, 0.999990500f, 0.00436732f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190369, 3753, 5256.085f, 2933.963f, 409.3571f, 3.13285800f, 0.0f, 0.0f, 0.999990500f, 0.00436732f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190370, 3758, 5257.463f, 2747.327f, 409.7427f, -3.13285800f, 0.0f, 0.0f, -0.999990500f, 0.00436732f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190371, 3754, 5214.960f, 2934.089f, 409.1905f, -0.00872424f, 0.0f, 0.0f, -0.004362106f, 0.99999050f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190372, 3757, 5215.821f, 2747.566f, 409.1884f, -3.13285800f, 0.0f, 0.0f, -0.999990500f, 0.00436732f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190374, 3755, 5162.273f, 2883.043f, 410.2556f, 1.57952200f, 0.0f, 0.0f, 0.710185100f, 0.70401500f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(190376, 3756, 5163.724f, 2799.838f, 409.2270f, 1.57952200f, 0.0f, 0.0f, 0.710185100f, 0.70401500f, WGGameObjectBuildingType.Wall),
|
||||
|
||||
// Tower of keep (Not spawned in db)
|
||||
new WintergraspBuildingSpawnData(190221, 3711, 5281.154f, 3044.588f, 407.8434f, 3.115388f, 0.0f, 0.0f, 0.9999142f, 0.013101960f, WGGameObjectBuildingType.KeepTower), // NW
|
||||
new WintergraspBuildingSpawnData(190373, 3713, 5163.757f, 2932.228f, 409.1904f, 3.124123f, 0.0f, 0.0f, 0.9999619f, 0.008734641f, WGGameObjectBuildingType.KeepTower), // SW
|
||||
new WintergraspBuildingSpawnData(190377, 3714, 5166.397f, 2748.368f, 409.1884f, -1.570796f, 0.0f, 0.0f, -0.7071066f, 0.707106900f, WGGameObjectBuildingType.KeepTower), // SE
|
||||
new WintergraspBuildingSpawnData(190378, 3712, 5281.192f, 2632.479f, 409.0985f, -1.588246f, 0.0f, 0.0f, -0.7132492f, 0.700910500f, WGGameObjectBuildingType.KeepTower), // NE
|
||||
|
||||
// Wall (with passage) (Not spawned in db)
|
||||
new WintergraspBuildingSpawnData(191797, 3765, 5343.290f, 2908.860f, 409.5757f, 0.00872424f, 0.0f, 0.0f, 0.004362106f, 0.9999905f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191798, 3771, 5342.719f, 2771.386f, 409.6249f, 3.14159300f, 0.0f, 0.0f, -1.000000000f, 0.0000000f, WGGameObjectBuildingType.Wall),
|
||||
new WintergraspBuildingSpawnData(191805, 3768, 5279.126f, 2840.797f, 409.7826f, 1.57952200f, 0.0f, 0.0f, 0.710185100f, 0.7040150f, WGGameObjectBuildingType.Wall),
|
||||
|
||||
// South tower (Not spawned in db)
|
||||
new WintergraspBuildingSpawnData(190356, 3704, 4557.173f, 3623.943f, 395.8828f, 1.675516f, 0.0f, 0.0f, 0.7431450f, 0.669130400f, WGGameObjectBuildingType.Tower), // W
|
||||
new WintergraspBuildingSpawnData(190357, 3705, 4398.172f, 2822.497f, 405.6270f, -3.124123f, 0.0f, 0.0f, -0.9999619f, 0.008734641f, WGGameObjectBuildingType.Tower), // S
|
||||
new WintergraspBuildingSpawnData(190358, 3706, 4459.105f, 1944.326f, 434.9912f, -2.002762f, 0.0f, 0.0f, -0.8422165f, 0.539139500f, WGGameObjectBuildingType.Tower), // E
|
||||
|
||||
// Door of forteress (Not spawned in db)
|
||||
new WintergraspBuildingSpawnData(WGGameObjects.FortressGate, 3763, 5162.991f, 2841.232f, 410.1892f, -3.132858f, 0.0f, 0.0f, -0.9999905f, 0.00436732f, WGGameObjectBuildingType.Door),
|
||||
|
||||
// Last door (Not spawned in db)
|
||||
new WintergraspBuildingSpawnData(WGGameObjects.VaultGate, 3773, 5397.108f, 2841.54f, 425.9014f, 3.141593f, 0.0f, 0.0f, -1.0f, 0.0f, WGGameObjectBuildingType.DoorLast),
|
||||
};
|
||||
|
||||
public static StaticWintergraspTowerInfo[] TowerData =
|
||||
{
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.FortressNW, WintergraspText.NwKeeptowerDamage, WintergraspText.NwKeeptowerDestroy),
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.FortressSW,WintergraspText.SwKeeptowerDamage,WintergraspText.SwKeeptowerDestroy),
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.FortressSE,WintergraspText.SeKeeptowerDamage,WintergraspText.SeKeeptowerDestroy),
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.FortressNE,WintergraspText.NeKeeptowerDamage,WintergraspText.NeKeeptowerDestroy),
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.Shadowsight,WintergraspText.WesternTowerDamage,WintergraspText.WesternTowerDestroy),
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.WintersEdge,WintergraspText.SouthernTowerDamage,WintergraspText.SouthernTowerDestroy),
|
||||
new StaticWintergraspTowerInfo(WintergraspTowerIds.Flamewatch,WintergraspText.EasternTowerDamage,WintergraspText.EasternTowerDestroy)
|
||||
};
|
||||
|
||||
public static Position[] WGTurret =
|
||||
{
|
||||
new Position(5391.19f, 3060.8f, 419.616f, 1.69557f),
|
||||
new Position(5266.75f, 2976.5f, 421.067f, 3.20354f),
|
||||
new Position(5234.86f, 2948.8f, 420.88f, 1.61311f),
|
||||
new Position(5323.05f, 2923.7f, 421.645f, 1.5817f),
|
||||
new Position(5363.82f, 2923.87f, 421.709f, 1.60527f),
|
||||
new Position(5264.04f, 2861.34f, 421.587f, 3.21142f),
|
||||
new Position(5264.68f, 2819.78f, 421.656f, 3.15645f),
|
||||
new Position(5322.16f, 2756.69f, 421.646f, 4.69978f),
|
||||
new Position(5363.78f, 2756.77f, 421.629f, 4.78226f),
|
||||
new Position(5236.2f, 2732.68f, 421.649f, 4.72336f),
|
||||
new Position(5265.02f, 2704.63f, 421.7f, 3.12507f),
|
||||
new Position(5350.87f, 2616.03f, 421.243f, 4.72729f),
|
||||
new Position(5390.95f, 2615.5f, 421.126f, 4.6409f),
|
||||
new Position(5148.8f, 2820.24f, 421.621f, 3.16043f),
|
||||
new Position(5147.98f, 2861.93f, 421.63f, 3.18792f),
|
||||
};
|
||||
|
||||
public static WintergraspGameObjectData[] WGPortalDefenderData =
|
||||
{
|
||||
// Player teleporter
|
||||
new WintergraspGameObjectData(5153.408f, 2901.349f, 409.1913f, -0.06981169f, 0.0f, 0.0f, -0.03489876f, 0.9993908f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5268.698f, 2666.421f, 409.0985f, -0.71558490f, 0.0f, 0.0f, -0.35020730f, 0.9366722f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5197.050f, 2944.814f, 409.1913f, 2.33874000f, 0.0f, 0.0f, 0.92050460f, 0.3907318f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5196.671f, 2737.345f, 409.1892f, -2.93213900f, 0.0f, 0.0f, -0.99452110f, 0.1045355f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5314.580f, 3055.852f, 408.8620f, 0.54105060f, 0.0f, 0.0f, 0.26723770f, 0.9636307f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5391.277f, 2828.094f, 418.6752f, -2.16420600f, 0.0f, 0.0f, -0.88294700f, 0.4694727f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5153.931f, 2781.671f, 409.2455f, 1.65806200f, 0.0f, 0.0f, 0.73727700f, 0.6755905f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5311.445f, 2618.931f, 409.0916f, -2.37364400f, 0.0f, 0.0f, -0.92718320f, 0.3746083f, 190763, 191575),
|
||||
new WintergraspGameObjectData(5269.208f, 3013.838f, 408.8276f, -1.76278200f, 0.0f, 0.0f, -0.77162460f, 0.6360782f, 190763, 191575),
|
||||
|
||||
new WintergraspGameObjectData(5401.634f, 2853.667f, 418.6748f, 2.63544400f, 0.0f, 0.0f, 0.96814730f, 0.2503814f, 192819, 192819), // return portal inside fortress, neutral
|
||||
|
||||
// Vehicle teleporter
|
||||
new WintergraspGameObjectData(5314.515f, 2703.687f, 408.5502f, -0.89011660f, 0.0f, 0.0f, -0.43051050f, 0.9025856f, 192951, 192951),
|
||||
new WintergraspGameObjectData(5316.252f, 2977.042f, 408.5385f, -0.82030330f, 0.0f, 0.0f, -0.39874840f, 0.9170604f, 192951, 192951)
|
||||
};
|
||||
|
||||
public static WintergraspTowerData[] AttackTowers =
|
||||
{
|
||||
//West Tower
|
||||
new WintergraspTowerData()
|
||||
{
|
||||
towerEntry = 190356,
|
||||
GameObject = new WintergraspGameObjectData[]
|
||||
{
|
||||
new WintergraspGameObjectData(4559.113f, 3606.216f, 419.9992f, 4.799657f, 0.0f, 0.0f, -0.67558960f, 0.73727790f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4539.420f, 3622.490f, 420.0342f, 3.211419f, 0.0f, 0.0f, -0.99939060f, 0.03490613f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4555.258f, 3641.648f, 419.9740f, 1.675514f, 0.0f, 0.0f, 0.74314400f, 0.66913150f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4574.872f, 3625.911f, 420.0792f, 0.087266f, 0.0f, 0.0f, 0.04361916f, 0.99904820f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4433.899f, 3534.142f, 360.2750f, 4.433136f, 0.0f, 0.0f, -0.79863550f, 0.60181500f, 192269, 192278), // Flag near workshop
|
||||
new WintergraspGameObjectData(4572.933f, 3475.519f, 363.0090f, 1.422443f, 0.0f, 0.0f, 0.65275960f, 0.75756520f, 192269, 192277) // Flag near bridge
|
||||
},
|
||||
CreatureBottom = new WintergraspObjectPositionData[]
|
||||
{
|
||||
new WintergraspObjectPositionData(4418.688477f, 3506.251709f, 358.975494f, 4.293305f, WGNpcs.GuardH, WGNpcs.GuardA), // Roaming Guard
|
||||
}
|
||||
},
|
||||
|
||||
//South Tower
|
||||
new WintergraspTowerData()
|
||||
{
|
||||
towerEntry = 190357,
|
||||
GameObject = new WintergraspGameObjectData[]
|
||||
{
|
||||
new WintergraspGameObjectData(4416.004f, 2822.666f, 429.8512f, 6.2657330f, 0.0f, 0.0f, -0.00872612f, 0.99996190f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4398.819f, 2804.698f, 429.7920f, 4.6949370f, 0.0f, 0.0f, -0.71325020f, 0.70090960f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4387.622f, 2719.566f, 389.9351f, 4.7385700f, 0.0f, 0.0f, -0.69779010f, 0.71630230f, 192366, 192414), // Flag near tower
|
||||
new WintergraspGameObjectData(4464.124f, 2855.453f, 406.1106f, 0.8290324f, 0.0f, 0.0f, 0.40274720f, 0.91531130f, 192366, 192429), // Flag near tower
|
||||
new WintergraspGameObjectData(4526.457f, 2810.181f, 391.1997f, 3.2899610f, 0.0f, 0.0f, -0.99724960f, 0.07411628f, 192269, 192278) // Flag near bridge
|
||||
},
|
||||
CreatureBottom = new WintergraspObjectPositionData[]
|
||||
{
|
||||
new WintergraspObjectPositionData(4452.859863f, 2808.870117f, 402.604004f, 6.056290f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4455.899902f, 2835.958008f, 401.122559f, 0.034907f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4412.649414f, 2953.792236f, 374.799957f, 0.980838f, WGNpcs.GuardH, WGNpcs.GuardA), // Roaming Guard
|
||||
new WintergraspObjectPositionData(4362.089844f, 2811.510010f, 407.337006f, 3.193950f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4412.290039f, 2753.790039f, 401.015015f, 5.829400f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4421.939941f, 2773.189941f, 400.894989f, 5.707230f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
}
|
||||
},
|
||||
|
||||
//East Tower
|
||||
new WintergraspTowerData()
|
||||
{
|
||||
towerEntry = 190358,
|
||||
GameObject = new WintergraspGameObjectData[]
|
||||
{
|
||||
new WintergraspGameObjectData(4466.793f, 1960.418f, 459.1437f, 1.151916f, 0.0f, 0.0f, 0.5446386f, 0.8386708f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4475.351f, 1937.031f, 459.0702f, 5.846854f, 0.0f, 0.0f, -0.2164392f, 0.9762961f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4451.758f, 1928.104f, 459.0759f, 4.276057f, 0.0f, 0.0f, -0.8433914f, 0.5372996f, 192488, 192501), // Flag on tower
|
||||
new WintergraspGameObjectData(4442.987f, 1951.898f, 459.0930f, 2.740162f, 0.0f, 0.0f, 0.9799242f, 0.1993704f, 192488, 192501) // Flag on tower
|
||||
},
|
||||
CreatureBottom = new WintergraspObjectPositionData[]
|
||||
{
|
||||
new WintergraspObjectPositionData(4501.060059f, 1990.280029f, 431.157013f, 1.029740f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4463.830078f, 2015.180054f, 430.299988f, 1.431170f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4494.580078f, 1943.760010f, 435.627014f, 6.195920f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4450.149902f, 1897.579956f, 435.045013f, 4.398230f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
new WintergraspObjectPositionData(4428.870117f, 1906.869995f, 432.648010f, 3.996800f, WGNpcs.GuardH, WGNpcs.GuardA), // Standing Guard
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public static WintergraspTowerCannonData[] TowerCannon =
|
||||
{
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190221,
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(5255.88f, 3047.63f, 438.499f, 3.13677f),
|
||||
new Position(5280.9f, 3071.32f, 438.499f, 1.62879f),
|
||||
},
|
||||
},
|
||||
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190373,
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(5138.59f, 2935.16f, 439.845f, 3.11723f),
|
||||
new Position(5163.06f, 2959.52f, 439.846f, 1.47258f),
|
||||
},
|
||||
},
|
||||
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190377,
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(5163.84f, 2723.74f, 439.844f, 1.3994f),
|
||||
new Position(5139.69f, 2747.4f, 439.844f, 3.17221f),
|
||||
},
|
||||
},
|
||||
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190378,
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(5278.21f, 2607.23f, 439.755f, 4.71944f),
|
||||
new Position(5255.01f, 2631.98f, 439.755f, 3.15257f),
|
||||
},
|
||||
},
|
||||
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190356,
|
||||
TowerCannonBottom = new Position[]
|
||||
{
|
||||
new Position(4537.380371f, 3599.531738f, 402.886993f, 3.998462f),
|
||||
new Position(4581.497559f, 3604.087158f, 402.886963f, 5.651723f),
|
||||
},
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(4469.448242f, 1966.623779f, 465.647217f, 1.153573f),
|
||||
new Position(4581.895996f, 3626.438477f, 426.539062f, 0.117806f),
|
||||
},
|
||||
},
|
||||
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190357,
|
||||
TowerCannonBottom = new Position[]
|
||||
{
|
||||
new Position(4421.640137f, 2799.935791f, 412.630920f, 5.459298f),
|
||||
new Position(4420.263184f, 2845.340332f, 412.630951f, 0.742197f),
|
||||
},
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(4423.430664f, 2822.762939f, 436.283142f, 6.223487f),
|
||||
new Position(4397.825684f, 2847.629639f, 436.283325f, 1.579430f),
|
||||
new Position(4398.814941f, 2797.266357f, 436.283051f, 4.703747f),
|
||||
},
|
||||
},
|
||||
|
||||
new WintergraspTowerCannonData()
|
||||
{
|
||||
towerEntry = 190358,
|
||||
TowerCannonBottom = new Position[]
|
||||
{
|
||||
new Position(4448.138184f, 1974.998779f, 441.995911f, 1.967238f),
|
||||
new Position(4448.713379f, 1955.148682f, 441.995178f, 0.380733f),
|
||||
},
|
||||
TurretTop = new Position[]
|
||||
{
|
||||
new Position(4469.448242f, 1966.623779f, 465.647217f, 1.153573f),
|
||||
new Position(4481.996582f, 1933.658325f, 465.647186f, 5.873029f),
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
public static StaticWintergraspWorkshopInfo[] WorkshopData =
|
||||
{
|
||||
new StaticWintergraspWorkshopInfo()
|
||||
{
|
||||
WorkshopId = WGWorkshopIds.Ne,
|
||||
WorldStateId = WorldStates.BattlefieldWgWorkshopNe,
|
||||
AllianceCaptureTextId = WintergraspText.SunkenRingCaptureAlliance,
|
||||
AllianceAttackTextId = WintergraspText.SunkenRingAttackAlliance,
|
||||
HordeCaptureTextId = WintergraspText.SunkenRingCaptureHorde,
|
||||
HordeAttackTextId = WintergraspText.SunkenRingAttackHorde
|
||||
},
|
||||
new StaticWintergraspWorkshopInfo()
|
||||
{
|
||||
WorkshopId = WGWorkshopIds.Nw,
|
||||
WorldStateId = WorldStates.BattlefieldWgWorkshopNw,
|
||||
AllianceCaptureTextId = WintergraspText.BrokenTempleCaptureAlliance,
|
||||
AllianceAttackTextId = WintergraspText.BrokenTempleAttackAlliance,
|
||||
HordeCaptureTextId = WintergraspText.BrokenTempleCaptureHorde,
|
||||
HordeAttackTextId = WintergraspText.BrokenTempleAttackHorde
|
||||
},
|
||||
new StaticWintergraspWorkshopInfo()
|
||||
{
|
||||
WorkshopId = WGWorkshopIds.Se,
|
||||
WorldStateId = WorldStates.BattlefieldWgWorkshopSe,
|
||||
AllianceCaptureTextId = WintergraspText.EastsparkCaptureAlliance,
|
||||
AllianceAttackTextId = WintergraspText.EastsparkAttackAlliance,
|
||||
HordeCaptureTextId = WintergraspText.EastsparkCaptureHorde,
|
||||
HordeAttackTextId = WintergraspText.EastsparkAttackHorde
|
||||
},
|
||||
|
||||
new StaticWintergraspWorkshopInfo()
|
||||
{
|
||||
WorkshopId = WGWorkshopIds.Sw,
|
||||
WorldStateId = WorldStates.BattlefieldWgWorkshopSw,
|
||||
AllianceCaptureTextId = WintergraspText.WestsparkCaptureAlliance,
|
||||
AllianceAttackTextId = WintergraspText.WestsparkAttackAlliance,
|
||||
HordeCaptureTextId = WintergraspText.WestsparkCaptureHorde,
|
||||
HordeAttackTextId = WintergraspText.WestsparkAttackHorde
|
||||
},
|
||||
|
||||
// KEEP WORKSHOPS - It can't be taken, so it doesn't have a textids
|
||||
new StaticWintergraspWorkshopInfo()
|
||||
{
|
||||
WorkshopId = WGWorkshopIds.KeepWest,
|
||||
WorldStateId = WorldStates.BattlefieldWgWorkshopKW
|
||||
},
|
||||
|
||||
new StaticWintergraspWorkshopInfo()
|
||||
{
|
||||
WorkshopId = WGWorkshopIds.KeepEast,
|
||||
WorldStateId = WorldStates.BattlefieldWgWorkshopKE
|
||||
}
|
||||
};
|
||||
#endregion
|
||||
}
|
||||
|
||||
struct WGData
|
||||
{
|
||||
public const int DamagedTowerDef = 0;
|
||||
public const int BrokenTowerDef = 1;
|
||||
public const int DamagedTowerAtt = 2;
|
||||
public const int BrokenTowerAtt = 3;
|
||||
public const int MaxVehicleA = 4;
|
||||
public const int MaxVehicleH = 5;
|
||||
public const int VehicleA = 6;
|
||||
public const int VehicleH = 7;
|
||||
public const int WonA = 8;
|
||||
public const int DefA = 9;
|
||||
public const int WonH = 10;
|
||||
public const int DefH = 11;
|
||||
public const int Max = 12;
|
||||
}
|
||||
|
||||
struct WGAchievements
|
||||
{
|
||||
public const uint WinWg = 1717;
|
||||
public const uint WinWg100 = 1718; // @Todo: Has To Be Implemented
|
||||
public const uint WgGnomeslaughter = 1723; // @Todo: Has To Be Implemented
|
||||
public const uint WgTowerDestroy = 1727;
|
||||
public const uint DestructionDerbyA = 1737; // @Todo: Has To Be Implemented
|
||||
public const uint WgTowerCannonKill = 1751; // @Todo: Has To Be Implemented
|
||||
public const uint WgMasterA = 1752; // @Todo: Has To Be Implemented
|
||||
public const uint WinWgTimer10 = 1755;
|
||||
public const uint StoneKeeper50 = 2085; // @Todo: Has To Be Implemented
|
||||
public const uint StoneKeeper100 = 2086; // @Todo: Has To Be Implemented
|
||||
public const uint StoneKeeper250 = 2087; // @Todo: Has To Be Implemented
|
||||
public const uint StoneKeeper500 = 2088; // @Todo: Has To Be Implemented
|
||||
public const uint StoneKeeper1000 = 2089; // @Todo: Has To Be Implemented
|
||||
public const uint WgRanger = 2199; // @Todo: Has To Be Implemented
|
||||
public const uint DestructionDerbyH = 2476; // @Todo: Has To Be Implemented
|
||||
public const uint WgMasterH = 2776; // @Todo: Has To Be Implemented
|
||||
}
|
||||
|
||||
struct WGSpells
|
||||
{
|
||||
// Wartime Auras
|
||||
public const uint Recruit = 37795;
|
||||
public const uint Corporal = 33280;
|
||||
public const uint Lieutenant = 55629;
|
||||
public const uint Tenacity = 58549;
|
||||
public const uint TenacityVehicle = 59911;
|
||||
public const uint TowerControl = 62064;
|
||||
public const uint SpiritualImmunity = 58729;
|
||||
public const uint GreatHonor = 58555;
|
||||
public const uint GreaterHonor = 58556;
|
||||
public const uint GreatestHonor = 58557;
|
||||
public const uint AllianceFlag = 14268;
|
||||
public const uint HordeFlag = 14267;
|
||||
public const uint GrabPassenger = 61178;
|
||||
|
||||
// Reward Spells
|
||||
public const uint VictoryReward = 56902;
|
||||
public const uint DefeatReward = 58494;
|
||||
public const uint DamagedTower = 59135;
|
||||
public const uint DestroyedTower = 59136;
|
||||
public const uint DamagedBuilding = 59201;
|
||||
public const uint IntactBuilding = 59203;
|
||||
|
||||
public const uint TeleportBridge = 59096;
|
||||
public const uint TeleportFortress = 60035;
|
||||
|
||||
public const uint TeleportDalaran = 53360;
|
||||
public const uint VictoryAura = 60044;
|
||||
|
||||
// Other Spells
|
||||
public const uint WintergraspWater = 36444;
|
||||
public const uint EssenceOfWintergrasp = 58045;
|
||||
public const uint WintergraspRestrictedFlightArea = 91604;
|
||||
|
||||
// Phasing Spells
|
||||
public const uint HordeControlsFactoryPhaseShift = 56618; // Adds Phase 16
|
||||
public const uint AllianceControlsFactoryPhaseShift = 56617; // Adds Phase 32
|
||||
|
||||
public const uint HordeControlPhaseShift = 55773; // Adds Phase 64
|
||||
public const uint AllianceControlPhaseShift = 55774; // Adds Phase 128
|
||||
}
|
||||
|
||||
struct WGNpcs
|
||||
{
|
||||
public const uint GuardH = 30739;
|
||||
public const uint GuardA = 30740;
|
||||
public const uint Stalker = 15214;
|
||||
|
||||
public const uint TaunkaSpiritGuide = 31841; // Horde Spirit Guide For Wintergrasp
|
||||
public const uint DwarvenSpiritGuide = 31842; // Alliance Spirit Guide For Wintergrasp
|
||||
|
||||
public const uint SiegeEngineAlliance = 28312;
|
||||
public const uint SiegeEngineHorde = 32627;
|
||||
public const uint Catapult = 27881;
|
||||
public const uint Demolisher = 28094;
|
||||
public const uint TowerCannon = 28366;
|
||||
}
|
||||
|
||||
struct WGGameObjects
|
||||
{
|
||||
public const uint FactoryBannerNe = 190475;
|
||||
public const uint FactoryBannerNw = 190487;
|
||||
public const uint FactoryBannerSe = 194959;
|
||||
public const uint FactoryBannerSw = 194962;
|
||||
|
||||
public const uint TitanSRelic = 192829;
|
||||
|
||||
public const uint FortressTower1 = 190221;
|
||||
public const uint FortressTower2 = 190373;
|
||||
public const uint FortressTower3 = 190377;
|
||||
public const uint FortressTower4 = 190378;
|
||||
|
||||
public const uint ShadowsightTower = 190356;
|
||||
public const uint WinterSEdgeTower = 190357;
|
||||
public const uint FlamewatchTower = 190358;
|
||||
|
||||
public const uint FortressGate = 190375;
|
||||
public const uint VaultGate = 191810;
|
||||
|
||||
public const uint KeepCollisionWall = 194323;
|
||||
}
|
||||
|
||||
struct WintergraspTowerIds
|
||||
{
|
||||
public const byte FortressNW = 0;
|
||||
public const byte FortressSW = 1;
|
||||
public const byte FortressSE = 2;
|
||||
public const byte FortressNE = 3;
|
||||
public const byte Shadowsight = 4;
|
||||
public const byte WintersEdge = 5;
|
||||
public const byte Flamewatch = 6;
|
||||
}
|
||||
|
||||
struct WGWorkshopIds
|
||||
{
|
||||
public const byte Se = 0;
|
||||
public const byte Sw = 1;
|
||||
public const byte Ne = 2;
|
||||
public const byte Nw = 3;
|
||||
public const byte KeepWest = 4;
|
||||
public const byte KeepEast = 5;
|
||||
}
|
||||
|
||||
struct WGGossipText
|
||||
{
|
||||
public const int GYNE = 20071;
|
||||
public const int GYNW = 20072;
|
||||
public const int GYSE = 20074;
|
||||
public const int GYSW = 20073;
|
||||
public const int GYKeep = 20070;
|
||||
public const int GYHorde = 20075;
|
||||
public const int GYAlliance = 20076;
|
||||
}
|
||||
|
||||
struct WGGraveyardId
|
||||
{
|
||||
public const uint WorkshopNE = 0;
|
||||
public const uint WorkshopNW = 1;
|
||||
public const uint WorkshopSE = 2;
|
||||
public const uint WorkshopSW = 3;
|
||||
public const uint Keep = 4;
|
||||
public const uint Horde = 5;
|
||||
public const uint Alliance = 6;
|
||||
public const uint Max = 7;
|
||||
}
|
||||
|
||||
struct WintergraspQuests
|
||||
{
|
||||
public const uint VictoryAlliance = 13181;
|
||||
public const uint VictoryHorde = 13183;
|
||||
public const uint CreditTowersDestroyed = 35074;
|
||||
public const uint CreditDefendSiege = 31284;
|
||||
}
|
||||
|
||||
struct WintergraspText
|
||||
{
|
||||
// Invisible Stalker
|
||||
public const byte SouthernTowerDamage = 1;
|
||||
public const byte SouthernTowerDestroy = 2;
|
||||
public const byte EasternTowerDamage = 3;
|
||||
public const byte EasternTowerDestroy = 4;
|
||||
public const byte WesternTowerDamage = 5;
|
||||
public const byte WesternTowerDestroy = 6;
|
||||
public const byte NwKeeptowerDamage = 7;
|
||||
public const byte NwKeeptowerDestroy = 8;
|
||||
public const byte SeKeeptowerDamage = 9;
|
||||
public const byte SeKeeptowerDestroy = 10;
|
||||
public const byte BrokenTempleAttackAlliance = 11;
|
||||
public const byte BrokenTempleCaptureAlliance = 12;
|
||||
public const byte BrokenTempleAttackHorde = 13;
|
||||
public const byte BrokenTempleCaptureHorde = 14;
|
||||
public const byte EastsparkAttackAlliance = 15;
|
||||
public const byte EastsparkCaptureAlliance = 16;
|
||||
public const byte EastsparkAttackHorde = 17;
|
||||
public const byte EastsparkCaptureHorde = 18;
|
||||
public const byte SunkenRingAttackAlliance = 19;
|
||||
public const byte SunkenRingCaptureAlliance = 20;
|
||||
public const byte SunkenRingAttackHorde = 21;
|
||||
public const byte SunkenRingCaptureHorde = 22;
|
||||
public const byte WestsparkAttackAlliance = 23;
|
||||
public const byte WestsparkCaptureAlliance = 24;
|
||||
public const byte WestsparkAttackHorde = 25;
|
||||
public const byte WestsparkCaptureHorde = 26;
|
||||
|
||||
public const byte StartGrouping = 27;
|
||||
public const byte StartBattle = 28;
|
||||
public const byte FortressDefendAlliance = 29;
|
||||
public const byte FortressCaptureAlliance = 30;
|
||||
public const byte FortressDefendHorde = 31;
|
||||
public const byte FortressCaptureHorde = 32;
|
||||
|
||||
public const byte NeKeeptowerDamage = 33;
|
||||
public const byte NeKeeptowerDestroy = 34;
|
||||
public const byte SwKeeptowerDamage = 35;
|
||||
public const byte SwKeeptowerDestroy = 36;
|
||||
|
||||
public const byte RankCorporal = 37;
|
||||
public const byte RankFirstLieutenant = 38;
|
||||
}
|
||||
|
||||
enum WGGameObjectState
|
||||
{
|
||||
None,
|
||||
NeutralIntact,
|
||||
NeutralDamage,
|
||||
NeutralDestroy,
|
||||
HordeIntact,
|
||||
HordeDamage,
|
||||
HordeDestroy,
|
||||
AllianceIntact,
|
||||
AllianceDamage,
|
||||
AllianceDestroy
|
||||
}
|
||||
|
||||
enum WGGameObjectBuildingType
|
||||
{
|
||||
Door,
|
||||
Titanrelic,
|
||||
Wall,
|
||||
DoorLast,
|
||||
KeepTower,
|
||||
Tower
|
||||
}
|
||||
|
||||
//Data Structs
|
||||
struct BfWGCoordGY
|
||||
{
|
||||
public BfWGCoordGY(float x, float y, float z, float o, uint graveyardId, int textId, uint startControl)
|
||||
{
|
||||
pos = new Position(x, y, z, o);
|
||||
GraveyardID = graveyardId;
|
||||
TextId = textId;
|
||||
StartControl = startControl;
|
||||
}
|
||||
|
||||
public Position pos;
|
||||
public uint GraveyardID;
|
||||
public int TextId;// for gossip menu
|
||||
public uint StartControl;
|
||||
}
|
||||
|
||||
struct WintergraspBuildingSpawnData
|
||||
{
|
||||
public WintergraspBuildingSpawnData(uint entry, uint worldstate, float x, float y, float z, float o, float rX, float rY, float rZ, float rW, WGGameObjectBuildingType type)
|
||||
{
|
||||
Entry = entry;
|
||||
WorldState = worldstate;
|
||||
Pos = new Position(x, y, z, o);
|
||||
Rot = new Quaternion(rX, rY, rZ, rW);
|
||||
BuildingType = type;
|
||||
}
|
||||
|
||||
public uint Entry;
|
||||
public uint WorldState;
|
||||
public Position Pos;
|
||||
public Quaternion Rot;
|
||||
public WGGameObjectBuildingType BuildingType;
|
||||
}
|
||||
|
||||
struct WintergraspGameObjectData
|
||||
{
|
||||
public WintergraspGameObjectData(float x, float y, float z, float o, float rX, float rY, float rZ, float rW, uint hordeEntry, uint allianceEntry)
|
||||
{
|
||||
Pos = new Position(x, y, z, o);
|
||||
Rot = new Quaternion(rX, rY, rZ, rW);
|
||||
HordeEntry = hordeEntry;
|
||||
AllianceEntry = allianceEntry;
|
||||
}
|
||||
|
||||
public Position Pos;
|
||||
public Quaternion Rot;
|
||||
public uint HordeEntry;
|
||||
public uint AllianceEntry;
|
||||
}
|
||||
|
||||
class WintergraspTowerData
|
||||
{
|
||||
public uint towerEntry; // Gameobject id of tower
|
||||
public WintergraspGameObjectData[] GameObject = new WintergraspGameObjectData[6]; // Gameobject position and entry (Horde/Alliance)
|
||||
|
||||
// Creature: Turrets and Guard // @todo: Killed on Tower destruction ? Tower damage ? Requires confirming
|
||||
public WintergraspObjectPositionData[] CreatureBottom = new WintergraspObjectPositionData[9];
|
||||
}
|
||||
|
||||
struct WintergraspObjectPositionData
|
||||
{
|
||||
public WintergraspObjectPositionData(float x, float y, float z, float o, uint hordeEntry, uint allianceEntry)
|
||||
{
|
||||
Pos = new Position(x, y, z, o);
|
||||
HordeEntry = hordeEntry;
|
||||
AllianceEntry = allianceEntry;
|
||||
}
|
||||
|
||||
public Position Pos;
|
||||
public uint HordeEntry;
|
||||
public uint AllianceEntry;
|
||||
}
|
||||
|
||||
class WintergraspTowerCannonData
|
||||
{
|
||||
public WintergraspTowerCannonData()
|
||||
{
|
||||
TowerCannonBottom = System.Array.Empty<Position>();
|
||||
TurretTop = System.Array.Empty<Position>();
|
||||
}
|
||||
|
||||
public uint towerEntry;
|
||||
public Position[] TowerCannonBottom;
|
||||
public Position[] TurretTop;
|
||||
}
|
||||
|
||||
class StaticWintergraspWorkshopInfo
|
||||
{
|
||||
public byte WorkshopId;
|
||||
public WorldStates WorldStateId;
|
||||
public byte AllianceCaptureTextId;
|
||||
public byte AllianceAttackTextId;
|
||||
public byte HordeCaptureTextId;
|
||||
public byte HordeAttackTextId;
|
||||
}
|
||||
|
||||
class StaticWintergraspTowerInfo
|
||||
{
|
||||
public StaticWintergraspTowerInfo(byte towerId, byte damagedTextId, byte destroyedTextId)
|
||||
{
|
||||
TowerId = towerId;
|
||||
DamagedTextId = damagedTextId;
|
||||
DestroyedTextId = destroyedTextId;
|
||||
}
|
||||
|
||||
public byte TowerId;
|
||||
public byte DamagedTextId;
|
||||
public byte DestroyedTextId;
|
||||
}
|
||||
}
|
||||
@@ -321,8 +321,8 @@ namespace Game.BattleGrounds.Zones
|
||||
// Team scores
|
||||
packet.AddState(ABWorldStates.ResourcesMax, MaxTeamScore);
|
||||
packet.AddState(ABWorldStates.ResourcesWarning, WarningNearVictoryScore);
|
||||
packet.AddState(ABWorldStates.ResourcesAlly, (int)m_TeamScores[TeamId.Alliance]);
|
||||
packet.AddState(ABWorldStates.ResourcesHorde, (int)m_TeamScores[TeamId.Horde]);
|
||||
packet.AddState(ABWorldStates.ResourcesAlly, m_TeamScores[TeamId.Alliance]);
|
||||
packet.AddState(ABWorldStates.ResourcesHorde, m_TeamScores[TeamId.Horde]);
|
||||
|
||||
// other unknown
|
||||
packet.AddState(0x745, 0x2);
|
||||
|
||||
@@ -848,8 +848,8 @@ namespace Game.BattleGrounds.Zones
|
||||
|
||||
public override void FillInitialWorldStates(InitWorldStates packet)
|
||||
{
|
||||
packet.AddState(EotSWorldStateIds.HordeBase, (int)m_TeamPointsCount[TeamId.Horde]);
|
||||
packet.AddState(EotSWorldStateIds.AllianceBase, (int)m_TeamPointsCount[TeamId.Alliance]);
|
||||
packet.AddState(EotSWorldStateIds.HordeBase, m_TeamPointsCount[TeamId.Horde]);
|
||||
packet.AddState(EotSWorldStateIds.AllianceBase, m_TeamPointsCount[TeamId.Alliance]);
|
||||
packet.AddState(0xAB6, 0x0);
|
||||
packet.AddState(0xAB5, 0x0);
|
||||
packet.AddState(0xAB4, 0x0);
|
||||
@@ -876,9 +876,9 @@ namespace Game.BattleGrounds.Zones
|
||||
packet.AddState(0xAD2, 0x1);
|
||||
packet.AddState(0xAD1, 0x1);
|
||||
|
||||
packet.AddState(EotSWorldStateIds.HordeResources, (int)GetTeamScore(TeamId.Horde));
|
||||
packet.AddState(EotSWorldStateIds.AllianceResources, (int)GetTeamScore(TeamId.Alliance));
|
||||
packet.AddState(EotSWorldStateIds.MaxResources, (int)EotSScoreIds.MaxTeamScore);
|
||||
packet.AddState(EotSWorldStateIds.HordeResources, GetTeamScore(TeamId.Horde));
|
||||
packet.AddState(EotSWorldStateIds.AllianceResources, GetTeamScore(TeamId.Alliance));
|
||||
packet.AddState(EotSWorldStateIds.MaxResources, EotSScoreIds.MaxTeamScore);
|
||||
|
||||
packet.AddState(0xA05, 0x8E);
|
||||
packet.AddState(0xAA0, 0x0);
|
||||
@@ -889,8 +889,8 @@ namespace Game.BattleGrounds.Zones
|
||||
for (byte point = 0; point < EotSPoints.PointsMax; ++point)
|
||||
{
|
||||
BattlegroundPointCaptureStatus captureStatus = GetPointCaptureStatus(point);
|
||||
packet.AddState(EotSMisc.m_PointsIconStruct[point].WorldStateAllianceStatusBarIcon, captureStatus == BattlegroundPointCaptureStatus.AllianceControlled ? 2 : (captureStatus == BattlegroundPointCaptureStatus.AllianceCapturing ? 1 : 0));
|
||||
packet.AddState(EotSMisc.m_PointsIconStruct[point].WorldStateHordeStatusBarIcon, captureStatus == BattlegroundPointCaptureStatus.HordeControlled ? 2 : (captureStatus == BattlegroundPointCaptureStatus.HordeCapturing ? 1 : 0));
|
||||
packet.AddState(EotSMisc.m_PointsIconStruct[point].WorldStateAllianceStatusBarIcon, captureStatus == BattlegroundPointCaptureStatus.AllianceControlled ? 2 : (captureStatus == BattlegroundPointCaptureStatus.AllianceCapturing ? 1 : 0u));
|
||||
packet.AddState(EotSMisc.m_PointsIconStruct[point].WorldStateHordeStatusBarIcon, captureStatus == BattlegroundPointCaptureStatus.HordeControlled ? 2 : (captureStatus == BattlegroundPointCaptureStatus.HordeCapturing ? 1 : 0u));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -444,12 +444,12 @@ namespace Game.BattleGrounds.Zones
|
||||
bool allyAttacks = Attackers == TeamId.Alliance;
|
||||
bool hordeAttacks = Attackers == TeamId.Horde;
|
||||
|
||||
packet.AddState(SAWorldStateIds.AncientGate, (int)GateStatus[SAObjectTypes.AncientGate]);
|
||||
packet.AddState(SAWorldStateIds.YellowGate, (int)GateStatus[SAObjectTypes.YellowGate]);
|
||||
packet.AddState(SAWorldStateIds.GreenGate, (int)GateStatus[SAObjectTypes.GreenGate]);
|
||||
packet.AddState(SAWorldStateIds.BlueGate, (int)GateStatus[SAObjectTypes.BlueGate]);
|
||||
packet.AddState(SAWorldStateIds.RedGate, (int)GateStatus[SAObjectTypes.RedGate]);
|
||||
packet.AddState(SAWorldStateIds.PurpleGate, (int)GateStatus[SAObjectTypes.PurpleGate]);
|
||||
packet.AddState(SAWorldStateIds.AncientGate, (uint)GateStatus[SAObjectTypes.AncientGate]);
|
||||
packet.AddState(SAWorldStateIds.YellowGate, (uint)GateStatus[SAObjectTypes.YellowGate]);
|
||||
packet.AddState(SAWorldStateIds.GreenGate, (uint)GateStatus[SAObjectTypes.GreenGate]);
|
||||
packet.AddState(SAWorldStateIds.BlueGate, (uint)GateStatus[SAObjectTypes.BlueGate]);
|
||||
packet.AddState(SAWorldStateIds.RedGate, (uint)GateStatus[SAObjectTypes.RedGate]);
|
||||
packet.AddState(SAWorldStateIds.PurpleGate, (uint)GateStatus[SAObjectTypes.PurpleGate]);
|
||||
|
||||
packet.AddState(SAWorldStateIds.BonusTimer, 0);
|
||||
|
||||
|
||||
@@ -801,18 +801,18 @@ namespace Game.BattleGrounds.Zones
|
||||
|
||||
public override void FillInitialWorldStates(InitWorldStates packet)
|
||||
{
|
||||
packet.AddState(WSGWorldStates.FlagCapturesAlliance, (int)GetTeamScore(TeamId.Alliance));
|
||||
packet.AddState(WSGWorldStates.FlagCapturesHorde, (int)GetTeamScore(TeamId.Horde));
|
||||
packet.AddState(WSGWorldStates.FlagCapturesAlliance, GetTeamScore(TeamId.Alliance));
|
||||
packet.AddState(WSGWorldStates.FlagCapturesHorde, GetTeamScore(TeamId.Horde));
|
||||
|
||||
if (_flagState[TeamId.Alliance] == WSGFlagState.OnGround)
|
||||
packet.AddState(WSGWorldStates.FlagUnkAlliance, -1);
|
||||
packet.AddState(WSGWorldStates.FlagUnkAlliance, 0xFFFFFFFF);
|
||||
else if (_flagState[TeamId.Alliance] == WSGFlagState.OnPlayer)
|
||||
packet.AddState(WSGWorldStates.FlagUnkAlliance, 1);
|
||||
else
|
||||
packet.AddState(WSGWorldStates.FlagUnkAlliance, 0);
|
||||
|
||||
if (_flagState[TeamId.Horde] == WSGFlagState.OnGround)
|
||||
packet.AddState(WSGWorldStates.FlagUnkHorde, -1);
|
||||
packet.AddState(WSGWorldStates.FlagUnkHorde, 0xFFFFFFFF);
|
||||
else if (_flagState[TeamId.Horde] == WSGFlagState.OnPlayer)
|
||||
packet.AddState(WSGWorldStates.FlagUnkHorde, 1);
|
||||
else
|
||||
@@ -823,7 +823,7 @@ namespace Game.BattleGrounds.Zones
|
||||
if (GetStatus() == BattlegroundStatus.InProgress)
|
||||
{
|
||||
packet.AddState(WSGWorldStates.StateTimerActive, 1);
|
||||
packet.AddState(WSGWorldStates.StateTimer, 25 - _minutesElapsed);
|
||||
packet.AddState(WSGWorldStates.StateTimer, 25u - _minutesElapsed);
|
||||
}
|
||||
else
|
||||
packet.AddState(WSGWorldStates.StateTimerActive, 0);
|
||||
|
||||
@@ -726,7 +726,7 @@ namespace Game.Entities
|
||||
// Send misc stuff that needs to be sent on every login, like the battle timers.
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.WintergraspEnable))
|
||||
{
|
||||
BattleField wg = Global.BattleFieldMgr.GetBattlefieldByBattleId(1);//Wintergrasp battle
|
||||
BattleField wg = Global.BattleFieldMgr.GetBattlefieldByBattleId(BattlefieldIds.WG);
|
||||
if (wg != null)
|
||||
{
|
||||
SendUpdateWorldState(WorldStates.BattlefieldWgActive, (uint)(wg.IsWarTime() ? 0 : 1));
|
||||
@@ -734,6 +734,18 @@ namespace Game.Entities
|
||||
SendUpdateWorldState(WorldStates.BattlefieldWgTimeNextBattle, (uint)(GameTime.GetGameTime() + timer));
|
||||
}
|
||||
}
|
||||
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.TolbaradEnable))
|
||||
{
|
||||
BattleField tb = Global.BattleFieldMgr.GetBattlefieldByBattleId(BattlefieldIds.TB);
|
||||
if (tb != null)
|
||||
{
|
||||
SendUpdateWorldState(WorldStates.BattlefieldTbFactionControlling, (uint)(tb.GetDefenderTeam() + 1));
|
||||
uint timer = tb.GetTimer() / 1000;
|
||||
SendUpdateWorldState(WorldStates.BattlefieldTbTimeBattleEnd, (uint)(tb.IsWarTime() ? (uint)(GameTime.GetGameTime() + timer) : 0));
|
||||
SendUpdateWorldState(WorldStates.BattlefieldTbTimeNextBattle, (uint)(!tb.IsWarTime() ? (uint)(GameTime.GetGameTime() + timer) : 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Arenas
|
||||
|
||||
@@ -2858,35 +2858,43 @@ namespace Game.Entities
|
||||
uint mapid = GetMapId();
|
||||
OutdoorPvP pvp = Global.OutdoorPvPMgr.GetOutdoorPvPToZoneId(zoneid);
|
||||
InstanceScript instance = GetInstanceScript();
|
||||
BattleField bf = Global.BattleFieldMgr.GetBattlefieldToZoneId(zoneid);
|
||||
BattleField battlefield = Global.BattleFieldMgr.GetBattlefieldToZoneId(zoneid);
|
||||
|
||||
InitWorldStates packet = new();
|
||||
packet.MapID = mapid;
|
||||
packet.AreaID = zoneid;
|
||||
packet.SubareaID = areaid;
|
||||
packet.AddState(2264, 0); // 1
|
||||
packet.AddState(2263, 0); // 2
|
||||
packet.AddState(2262, 0); // 3
|
||||
packet.AddState(2261, 0); // 4
|
||||
packet.AddState(2260, 0); // 5
|
||||
packet.AddState(2259, 0); // 6
|
||||
|
||||
packet.AddState(3191, WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? WorldConfig.GetIntValue(WorldCfg.ArenaSeasonId) : 0); // 7 Current Season - Arena season in progress
|
||||
// 0 - End of season
|
||||
packet.AddState(3901, WorldConfig.GetIntValue(WorldCfg.ArenaSeasonId) - (WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? 1 : 0)); // 8 PreviousSeason
|
||||
packet.AddState(2264, 0); // SCOURGE_EVENT_WORLDSTATE_EASTERN_PLAGUELANDS
|
||||
packet.AddState(2263, 0); // SCOURGE_EVENT_WORLDSTATE_TANARIS
|
||||
packet.AddState(2262, 0); // SCOURGE_EVENT_WORLDSTATE_BURNING_STEPPES
|
||||
packet.AddState(2261, 0); // SCOURGE_EVENT_WORLDSTATE_BLASTED_LANDS
|
||||
packet.AddState(2260, 0); // SCOURGE_EVENT_WORLDSTATE_AZSHARA
|
||||
packet.AddState(2259, 0); // SCOURGE_EVENT_WORLDSTATE_WINTERSPRING
|
||||
|
||||
if (mapid == 530) // Outland
|
||||
// ARENA_SEASON_IN_PROGRESS
|
||||
// 7 - arena season in progress
|
||||
// 0 - end of season
|
||||
packet.AddState(3191, WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? WorldConfig.GetUIntValue(WorldCfg.ArenaSeasonId) : 0); // 7 Current Season - Arena season in progress
|
||||
|
||||
// Previous arena season id
|
||||
uint previousArenaSeason = 0;
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) && WorldConfig.GetIntValue(WorldCfg.ArenaSeasonId) > 0)
|
||||
previousArenaSeason = WorldConfig.GetUIntValue(WorldCfg.ArenaSeasonId) - 1;// 0 - End of season
|
||||
packet.AddState(3901, previousArenaSeason);
|
||||
|
||||
if (mapid == 530) // Outland
|
||||
{
|
||||
packet.AddState(2495, 0); // 7
|
||||
packet.AddState(2493, 0xF); // 8
|
||||
packet.AddState(2491, 0xF); // 9
|
||||
packet.AddState(2495, 0); // NA_UI_OUTLAND_01 "Progress: %2494w"
|
||||
packet.AddState(2493, 15); // NA_UI_GUARDS_MAX
|
||||
packet.AddState(2491, 15); // NA_UI_GUARDS_LEFT
|
||||
}
|
||||
|
||||
// Horde War Mode bonus
|
||||
packet.AddState(17042, 10 + (Global.WorldMgr.GetWarModeDominantFaction() == TeamId.Alliance ? Global.WorldMgr.GetWarModeOutnumberedFactionReward() : 0));
|
||||
packet.AddState(17042, (uint)(10 + (Global.WorldMgr.GetWarModeDominantFaction() == TeamId.Alliance ? Global.WorldMgr.GetWarModeOutnumberedFactionReward() : 0)));
|
||||
|
||||
// Alliance War Mode bonus
|
||||
packet.AddState(17043, 10 + (Global.WorldMgr.GetWarModeDominantFaction() == TeamId.Horde ? Global.WorldMgr.GetWarModeOutnumberedFactionReward() : 0));
|
||||
packet.AddState(17043, (uint)(10 + (Global.WorldMgr.GetWarModeDominantFaction() == TeamId.Horde ? Global.WorldMgr.GetWarModeOutnumberedFactionReward() : 0)));
|
||||
|
||||
// insert <field> <value>
|
||||
switch (zoneid)
|
||||
@@ -2907,97 +2915,96 @@ namespace Game.Entities
|
||||
pvp.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
// states are always shown
|
||||
packet.AddState(2313, 0x0); // 7 ally silityst gathered
|
||||
packet.AddState(2314, 0x0); // 8 horde silityst gathered
|
||||
packet.AddState(2317, 0x0); // 9 max silithyst
|
||||
packet.AddState(2313, 0); // SI_GATHERED_A
|
||||
packet.AddState(2314, 0); // SI_GATHERED_H
|
||||
packet.AddState(2317, 0); // SI_SILITHYST_MAX
|
||||
}
|
||||
// dunno about these... aq opening event maybe?
|
||||
packet.AddState(2322, 0x0); // 10 sandworm N
|
||||
packet.AddState(2323, 0x0); // 11 sandworm S
|
||||
packet.AddState(2324, 0x0); // 12 sandworm SW
|
||||
packet.AddState(2325, 0x0); // 13 sandworm E
|
||||
// unknown, aq opening?
|
||||
packet.AddState(2322, 0); // AQ_SANDWORM_N
|
||||
packet.AddState(2323, 0); // AQ_SANDWORM_S
|
||||
packet.AddState(2324, 0); // AQ_SANDWORM_SW
|
||||
packet.AddState(2325, 0); // AQ_SANDWORM_E
|
||||
break;
|
||||
case 2597: // Alterac Valley
|
||||
if (bg && bg.GetTypeID(true) == BattlegroundTypeId.AV)
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x7ae, 0x1); // 7 snowfall n
|
||||
packet.AddState(0x532, 0x1); // 8 frostwolfhut hc
|
||||
packet.AddState(0x531, 0x0); // 9 frostwolfhut ac
|
||||
packet.AddState(0x52e, 0x0); // 10 stormpike firstaid a_a
|
||||
packet.AddState(0x571, 0x0); // 11 east frostwolf tower horde assaulted -unused
|
||||
packet.AddState(0x570, 0x0); // 12 west frostwolf tower horde assaulted - unused
|
||||
packet.AddState(0x567, 0x1); // 13 frostwolfe c
|
||||
packet.AddState(0x566, 0x1); // 14 frostwolfw c
|
||||
packet.AddState(0x550, 0x1); // 15 irondeep (N) ally
|
||||
packet.AddState(0x544, 0x0); // 16 ice grave a_a
|
||||
packet.AddState(0x536, 0x0); // 17 stormpike grave h_c
|
||||
packet.AddState(0x535, 0x1); // 18 stormpike grave a_c
|
||||
packet.AddState(0x518, 0x0); // 19 stoneheart grave a_a
|
||||
packet.AddState(0x517, 0x0); // 20 stoneheart grave h_a
|
||||
packet.AddState(0x574, 0x0); // 21 1396 unk
|
||||
packet.AddState(0x573, 0x0); // 22 iceblood tower horde assaulted -unused
|
||||
packet.AddState(0x572, 0x0); // 23 towerpoint horde assaulted - unused
|
||||
packet.AddState(0x56f, 0x0); // 24 1391 unk
|
||||
packet.AddState(0x56e, 0x0); // 25 iceblood a
|
||||
packet.AddState(0x56d, 0x0); // 26 towerp a
|
||||
packet.AddState(0x56c, 0x0); // 27 frostwolfe a
|
||||
packet.AddState(0x56b, 0x0); // 28 froswolfw a
|
||||
packet.AddState(0x56a, 0x1); // 29 1386 unk
|
||||
packet.AddState(0x569, 0x1); // 30 iceblood c
|
||||
packet.AddState(0x568, 0x1); // 31 towerp c
|
||||
packet.AddState(0x565, 0x0); // 32 stoneh tower a
|
||||
packet.AddState(0x564, 0x0); // 33 icewing tower a
|
||||
packet.AddState(0x563, 0x0); // 34 dunn a
|
||||
packet.AddState(0x562, 0x0); // 35 duns a
|
||||
packet.AddState(0x561, 0x0); // 36 stoneheart bunker alliance assaulted - unused
|
||||
packet.AddState(0x560, 0x0); // 37 icewing bunker alliance assaulted - unused
|
||||
packet.AddState(0x55f, 0x0); // 38 dunbaldar south alliance assaulted - unused
|
||||
packet.AddState(0x55e, 0x0); // 39 dunbaldar north alliance assaulted - unused
|
||||
packet.AddState(0x55d, 0x0); // 40 stone tower d
|
||||
packet.AddState(0x3c6, 0x0); // 41 966 unk
|
||||
packet.AddState(0x3c4, 0x0); // 42 964 unk
|
||||
packet.AddState(0x3c2, 0x0); // 43 962 unk
|
||||
packet.AddState(0x516, 0x1); // 44 stoneheart grave a_c
|
||||
packet.AddState(0x515, 0x0); // 45 stonheart grave h_c
|
||||
packet.AddState(0x3b6, 0x0); // 46 950 unk
|
||||
packet.AddState(0x55c, 0x0); // 47 icewing tower d
|
||||
packet.AddState(0x55b, 0x0); // 48 dunn d
|
||||
packet.AddState(0x55a, 0x0); // 49 duns d
|
||||
packet.AddState(0x559, 0x0); // 50 1369 unk
|
||||
packet.AddState(0x558, 0x0); // 51 iceblood d
|
||||
packet.AddState(0x557, 0x0); // 52 towerp d
|
||||
packet.AddState(0x556, 0x0); // 53 frostwolfe d
|
||||
packet.AddState(0x555, 0x0); // 54 frostwolfw d
|
||||
packet.AddState(0x554, 0x1); // 55 stoneh tower c
|
||||
packet.AddState(0x553, 0x1); // 56 icewing tower c
|
||||
packet.AddState(0x552, 0x1); // 57 dunn c
|
||||
packet.AddState(0x551, 0x1); // 58 duns c
|
||||
packet.AddState(0x54f, 0x0); // 59 irondeep (N) horde
|
||||
packet.AddState(0x54e, 0x0); // 60 irondeep (N) ally
|
||||
packet.AddState(0x54d, 0x1); // 61 mine (S) neutral
|
||||
packet.AddState(0x54c, 0x0); // 62 mine (S) horde
|
||||
packet.AddState(0x54b, 0x0); // 63 mine (S) ally
|
||||
packet.AddState(0x545, 0x0); // 64 iceblood h_a
|
||||
packet.AddState(0x543, 0x1); // 65 iceblod h_c
|
||||
packet.AddState(0x542, 0x0); // 66 iceblood a_c
|
||||
packet.AddState(0x540, 0x0); // 67 snowfall h_a
|
||||
packet.AddState(0x53f, 0x0); // 68 snowfall a_a
|
||||
packet.AddState(0x53e, 0x0); // 69 snowfall h_c
|
||||
packet.AddState(0x53d, 0x0); // 70 snowfall a_c
|
||||
packet.AddState(0x53c, 0x0); // 71 frostwolf g h_a
|
||||
packet.AddState(0x53b, 0x0); // 72 frostwolf g a_a
|
||||
packet.AddState(0x53a, 0x1); // 73 frostwolf g h_c
|
||||
packet.AddState(0x539, 0x0); // 74 frostwolf g a_c
|
||||
packet.AddState(0x538, 0x0); // 75 stormpike grave h_a
|
||||
packet.AddState(0x537, 0x0); // 76 stormpike grave a_a
|
||||
packet.AddState(0x534, 0x0); // 77 frostwolf hut h_a
|
||||
packet.AddState(0x533, 0x0); // 78 frostwolf hut a_a
|
||||
packet.AddState(0x530, 0x0); // 79 stormpike first aid h_a
|
||||
packet.AddState(0x52f, 0x0); // 80 stormpike first aid h_c
|
||||
packet.AddState(0x52d, 0x1); // 81 stormpike first aid a_c
|
||||
packet.AddState(1966, 1); // AV_SNOWFALL_N
|
||||
packet.AddState(1330, 1); // AV_FROSTWOLFHUT_H_C
|
||||
packet.AddState(1329, 0); // AV_FROSTWOLFHUT_A_C
|
||||
packet.AddState(1326, 0); // AV_AID_A_A
|
||||
packet.AddState(1393, 0); // East Frostwolf Tower Horde Assaulted - UNUSED
|
||||
packet.AddState(1392, 0); // West Frostwolf Tower Horde Assaulted - UNUSED
|
||||
packet.AddState(1383, 1); // AV_FROSTWOLFE_CONTROLLED
|
||||
packet.AddState(1382, 1); // AV_FROSTWOLFW_CONTROLLED
|
||||
packet.AddState(1360, 1); // AV_N_MINE_N
|
||||
packet.AddState(1348, 0); // AV_ICEBLOOD_A_A
|
||||
packet.AddState(1334, 0); // AV_PIKEGRAVE_H_C
|
||||
packet.AddState(1333, 1); // AV_PIKEGRAVE_A_C
|
||||
packet.AddState(1304, 0); // AV_STONEHEART_A_A
|
||||
packet.AddState(1303, 0); // AV_STONEHEART_H_A
|
||||
packet.AddState(1396, 0); // unk
|
||||
packet.AddState(1395, 0); // Iceblood Tower Horde Assaulted - UNUSED
|
||||
packet.AddState(1394, 0); // Towerpoint Horde Assaulted - UNUSED
|
||||
packet.AddState(1391, 0); // unk
|
||||
packet.AddState(1390, 0); // AV_ICEBLOOD_ASSAULTED
|
||||
packet.AddState(1389, 0); // AV_TOWERPOINT_ASSAULTED
|
||||
packet.AddState(1388, 0); // AV_FROSTWOLFE_ASSAULTED
|
||||
packet.AddState(1387, 0); // AV_FROSTWOLFW_ASSAULTED
|
||||
packet.AddState(1386, 1); // unk
|
||||
packet.AddState(1385, 1); // AV_ICEBLOOD_CONTROLLED
|
||||
packet.AddState(1384, 1); // AV_TOWERPOINT_CONTROLLED
|
||||
packet.AddState(1381, 0); // AV_STONEH_ASSAULTED
|
||||
packet.AddState(1380, 0); // AV_ICEWING_ASSAULTED
|
||||
packet.AddState(1379, 0); // AV_DUNN_ASSAULTED
|
||||
packet.AddState(1378, 0); // AV_DUNS_ASSAULTED
|
||||
packet.AddState(1377, 0); // Stoneheart Bunker Alliance Assaulted - UNUSED
|
||||
packet.AddState(1376, 0); // Icewing Bunker Alliance Assaulted - UNUSED
|
||||
packet.AddState(1375, 0); // Dunbaldar South Alliance Assaulted - UNUSED
|
||||
packet.AddState(1374, 0); // Dunbaldar North Alliance Assaulted - UNUSED
|
||||
packet.AddState(1373, 0); // AV_STONEH_DESTROYED
|
||||
packet.AddState(966, 0); // AV_UNK_02
|
||||
packet.AddState(964, 0); // AV_UNK_01
|
||||
packet.AddState(962, 0); // AV_STORMPIKE_COMMANDERS
|
||||
packet.AddState(1302, 1); // AV_STONEHEART_A_C
|
||||
packet.AddState(1301, 0); // AV_STONEHEART_H_C
|
||||
packet.AddState(950, 0); // AV_STORMPIKE_LIEUTENANTS
|
||||
packet.AddState(1372, 0); // AV_ICEWING_DESTROYED
|
||||
packet.AddState(1371, 0); // AV_DUNN_DESTROYED
|
||||
packet.AddState(1370, 0); // AV_DUNS_DESTROYED
|
||||
packet.AddState(1369, 0); // unk
|
||||
packet.AddState(1368, 0); // AV_ICEBLOOD_DESTROYED
|
||||
packet.AddState(1367, 0); // AV_TOWERPOINT_DESTROYED
|
||||
packet.AddState(1366, 0); // AV_FROSTWOLFE_DESTROYED
|
||||
packet.AddState(1365, 0); // AV_FROSTWOLFW_DESTROYED
|
||||
packet.AddState(1364, 1); // AV_STONEH_CONTROLLED
|
||||
packet.AddState(1363, 1); // AV_ICEWING_CONTROLLED
|
||||
packet.AddState(1362, 1); // AV_DUNN_CONTROLLED
|
||||
packet.AddState(1361, 1); // AV_DUNS_CONTROLLED
|
||||
packet.AddState(1359, 0); // AV_N_MINE_H
|
||||
packet.AddState(1358, 0); // AV_N_MINE_A
|
||||
packet.AddState(1357, 1); // AV_S_MINE_N
|
||||
packet.AddState(1356, 0); // AV_S_MINE_H
|
||||
packet.AddState(1355, 0); // AV_S_MINE_A
|
||||
packet.AddState(1349, 0); // AV_ICEBLOOD_H_A
|
||||
packet.AddState(1347, 1); // AV_ICEBLOOD_H_C
|
||||
packet.AddState(1346, 0); // AV_ICEBLOOD_A_C
|
||||
packet.AddState(1344, 0); // AV_SNOWFALL_H_A
|
||||
packet.AddState(1343, 0); // AV_SNOWFALL_A_A
|
||||
packet.AddState(1342, 0); // AV_SNOWFALL_H_C
|
||||
packet.AddState(1341, 0); // AV_SNOWFALL_A_C
|
||||
packet.AddState(1340, 0); // AV_FROSTWOLF_H_A
|
||||
packet.AddState(1339, 0); // AV_FROSTWOLF_A_A
|
||||
packet.AddState(1338, 1); // AV_FROSTWOLF_H_C
|
||||
packet.AddState(1337, 0); // AV_FROSTWOLF_A_C
|
||||
packet.AddState(1336, 0); // AV_PIKEGRAVE_H_A
|
||||
packet.AddState(1335, 0); // AV_PIKEGRAVE_A_A
|
||||
packet.AddState(1332, 0); // AV_FROSTWOLFHUT_H_A
|
||||
packet.AddState(1331, 0); // AV_FROSTWOLFHUT_A_A
|
||||
packet.AddState(1328, 0); // AV_AID_H_A
|
||||
packet.AddState(1327, 0); // AV_AID_H_C
|
||||
packet.AddState(1325, 1); // AV_AID_A_C
|
||||
}
|
||||
break;
|
||||
case 3277: // Warsong Gulch
|
||||
@@ -3005,14 +3012,14 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x62d, 0x0); // 7 1581 alliance flag captures
|
||||
packet.AddState(0x62e, 0x0); // 8 1582 horde flag captures
|
||||
packet.AddState(0x609, 0x0); // 9 1545 unk, set to 1 on alliance flag pickup...
|
||||
packet.AddState(0x60a, 0x0); // 10 1546 unk, set to 1 on horde flag pickup, after drop it's -1
|
||||
packet.AddState(0x60b, 0x2); // 11 1547 unk
|
||||
packet.AddState(0x641, 0x3); // 12 1601 unk (max flag captures?)
|
||||
packet.AddState(0x922, 0x1); // 13 2338 horde (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
packet.AddState(0x923, 0x1); // 14 2339 alliance (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
packet.AddState(1581, 0); // alliance flag captures
|
||||
packet.AddState(1582, 0); // horde flag captures
|
||||
packet.AddState(1545, 0); // unk, set to 1 on alliance flag pickup...
|
||||
packet.AddState(1546, 0); // unk, set to 1 on horde flag pickup, after drop it's -1
|
||||
packet.AddState(1547, 2); // unk
|
||||
packet.AddState(1601, 3); // unk (max flag captures?)
|
||||
packet.AddState(2338, 1); // horde (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
packet.AddState(2339, 1); // alliance (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
}
|
||||
break;
|
||||
case 3358: // Arathi Basin
|
||||
@@ -3020,38 +3027,38 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x6e7, 0x0); // 7 1767 stables alliance
|
||||
packet.AddState(0x6e8, 0x0); // 8 1768 stables horde
|
||||
packet.AddState(0x6e9, 0x0); // 9 1769 unk, ST?
|
||||
packet.AddState(0x6ea, 0x0); // 10 1770 stables (show/hide)
|
||||
packet.AddState(0x6ec, 0x0); // 11 1772 farm (0 - horde controlled, 1 - alliance controlled)
|
||||
packet.AddState(0x6ed, 0x0); // 12 1773 farm (show/hide)
|
||||
packet.AddState(0x6ee, 0x0); // 13 1774 farm color
|
||||
packet.AddState(0x6ef, 0x0); // 14 1775 gold mine color, may be FM?
|
||||
packet.AddState(0x6f0, 0x0); // 15 1776 alliance resources
|
||||
packet.AddState(0x6f1, 0x0); // 16 1777 horde resources
|
||||
packet.AddState(0x6f2, 0x0); // 17 1778 horde bases
|
||||
packet.AddState(0x6f3, 0x0); // 18 1779 alliance bases
|
||||
packet.AddState(0x6f4, 0x7d0); // 19 1780 max resources (2000)
|
||||
packet.AddState(0x6f6, 0x0); // 20 1782 blacksmith color
|
||||
packet.AddState(0x6f7, 0x0); // 21 1783 blacksmith (show/hide)
|
||||
packet.AddState(0x6f8, 0x0); // 22 1784 unk, bs?
|
||||
packet.AddState(0x6f9, 0x0); // 23 1785 unk, bs?
|
||||
packet.AddState(0x6fb, 0x0); // 24 1787 gold mine (0 - horde contr, 1 - alliance contr)
|
||||
packet.AddState(0x6fc, 0x0); // 25 1788 gold mine (0 - conflict, 1 - horde)
|
||||
packet.AddState(0x6fd, 0x0); // 26 1789 gold mine (1 - show/0 - hide)
|
||||
packet.AddState(0x6fe, 0x0); // 27 1790 gold mine color
|
||||
packet.AddState(0x700, 0x0); // 28 1792 gold mine color, wtf?, may be LM?
|
||||
packet.AddState(0x701, 0x0); // 29 1793 lumber mill color (0 - conflict, 1 - horde contr)
|
||||
packet.AddState(0x702, 0x0); // 30 1794 lumber mill (show/hide)
|
||||
packet.AddState(0x703, 0x0); // 31 1795 lumber mill color color
|
||||
packet.AddState(0x732, 0x1); // 32 1842 stables (1 - uncontrolled)
|
||||
packet.AddState(0x733, 0x1); // 33 1843 gold mine (1 - uncontrolled)
|
||||
packet.AddState(0x734, 0x1); // 34 1844 lumber mill (1 - uncontrolled)
|
||||
packet.AddState(0x735, 0x1); // 35 1845 farm (1 - uncontrolled)
|
||||
packet.AddState(0x736, 0x1); // 36 1846 blacksmith (1 - uncontrolled)
|
||||
packet.AddState(0x745, 0x2); // 37 1861 unk
|
||||
packet.AddState(0x7a3, 0x708); // 38 1955 warning limit (1800)
|
||||
packet.AddState(1767, 0); // stables alliance
|
||||
packet.AddState(1768, 0); // stables horde
|
||||
packet.AddState(1769, 0); // stables alliance controlled
|
||||
packet.AddState(1770, 0); // stables horde controlled
|
||||
packet.AddState(1772, 0); // farm alliance
|
||||
packet.AddState(1773, 0); // farm horde
|
||||
packet.AddState(1774, 0); // farm alliance controlled
|
||||
packet.AddState(1775, 0); // farm horde controlled
|
||||
packet.AddState(1776, 0); // alliance resources
|
||||
packet.AddState(1777, 0); // horde resources
|
||||
packet.AddState(1778, 0); // horde bases
|
||||
packet.AddState(1779, 0); // alliance bases
|
||||
packet.AddState(1780, 2000); // max resources (2000)
|
||||
packet.AddState(1782, 0); // blacksmith alliance
|
||||
packet.AddState(1783, 0); // blacksmith horde
|
||||
packet.AddState(1784, 0); // blacksmith alliance controlled
|
||||
packet.AddState(1785, 0); // blacksmith horde controlled
|
||||
packet.AddState(1787, 0); // gold mine alliance
|
||||
packet.AddState(1788, 0); // gold mine horde
|
||||
packet.AddState(1789, 0); // gold mine alliance controlled
|
||||
packet.AddState(1790, 0); // gold mine horde controlled
|
||||
packet.AddState(1792, 0); // lumber mill alliance
|
||||
packet.AddState(1793, 0); // lumber mill horde
|
||||
packet.AddState(1794, 0); // lumber mill alliance controlled
|
||||
packet.AddState(1795, 0); // lumber mill horde controlled
|
||||
packet.AddState(1842, 1); // stables (1 - uncontrolled)
|
||||
packet.AddState(1843, 1); // gold mine (1 - uncontrolled)
|
||||
packet.AddState(1844, 1); // lumber mill (1 - uncontrolled)
|
||||
packet.AddState(1845, 1); // farm (1 - uncontrolled)
|
||||
packet.AddState(1846, 1); // blacksmith (1 - uncontrolled)
|
||||
packet.AddState(1861, 2); // unk
|
||||
packet.AddState(1955, 1800); // warning limit (1800)
|
||||
}
|
||||
break;
|
||||
case 3820: // Eye of the Storm
|
||||
@@ -3059,39 +3066,39 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0xac1, 0x0); // 7 2753 Horde Bases
|
||||
packet.AddState(0xac0, 0x0); // 8 2752 Alliance Bases
|
||||
packet.AddState(0xab6, 0x0); // 9 2742 Mage Tower - Horde conflict
|
||||
packet.AddState(0xab5, 0x0); // 10 2741 Mage Tower - Alliance conflict
|
||||
packet.AddState(0xab4, 0x0); // 11 2740 Fel Reaver - Horde conflict
|
||||
packet.AddState(0xab3, 0x0); // 12 2739 Fel Reaver - Alliance conflict
|
||||
packet.AddState(0xab2, 0x0); // 13 2738 Draenei - Alliance conflict
|
||||
packet.AddState(0xab1, 0x0); // 14 2737 Draenei - Horde conflict
|
||||
packet.AddState(0xab0, 0x0); // 15 2736 unk // 0 at start
|
||||
packet.AddState(0xaaf, 0x0); // 16 2735 unk // 0 at start
|
||||
packet.AddState(0xaad, 0x0); // 17 2733 Draenei - Horde control
|
||||
packet.AddState(0xaac, 0x0); // 18 2732 Draenei - Alliance control
|
||||
packet.AddState(0xaab, 0x1); // 19 2731 Draenei uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(0xaaa, 0x0); // 20 2730 Mage Tower - Alliance control
|
||||
packet.AddState(0xaa9, 0x0); // 21 2729 Mage Tower - Horde control
|
||||
packet.AddState(0xaa8, 0x1); // 22 2728 Mage Tower uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(0xaa7, 0x0); // 23 2727 Fel Reaver - Horde control
|
||||
packet.AddState(0xaa6, 0x0); // 24 2726 Fel Reaver - Alliance control
|
||||
packet.AddState(0xaa5, 0x1); // 25 2725 Fel Reaver uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(0xaa4, 0x0); // 26 2724 Boold Elf - Horde control
|
||||
packet.AddState(0xaa3, 0x0); // 27 2723 Boold Elf - Alliance control
|
||||
packet.AddState(0xaa2, 0x1); // 28 2722 Boold Elf uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(0xac5, 0x1); // 29 2757 Flag (1 - show, 0 - hide) - doesn't work exactly this way!
|
||||
packet.AddState(0xad2, 0x1); // 30 2770 Horde top-stats (1 - show, 0 - hide) // 02 . horde picked up the flag
|
||||
packet.AddState(0xad1, 0x1); // 31 2769 Alliance top-stats (1 - show, 0 - hide) // 02 . alliance picked up the flag
|
||||
packet.AddState(0xabe, 0x0); // 32 2750 Horde resources
|
||||
packet.AddState(0xabd, 0x0); // 33 2749 Alliance resources
|
||||
packet.AddState(0xa05, 0x8e); // 34 2565 unk, constant?
|
||||
packet.AddState(0xaa0, 0x0); // 35 2720 Capturing progress-bar (100 . empty (only grey), 0 . blue|red (no grey), default 0)
|
||||
packet.AddState(0xa9f, 0x0); // 36 2719 Capturing progress-bar (0 - left, 100 - right)
|
||||
packet.AddState(0xa9e, 0x0); // 37 2718 Capturing progress-bar (1 - show, 0 - hide)
|
||||
packet.AddState(0xc0d, 0x17b); // 38 3085 unk
|
||||
// and some more ... unknown
|
||||
packet.AddState(2753, 0); // Horde Bases
|
||||
packet.AddState(2752, 0); // Alliance Bases
|
||||
packet.AddState(2742, 0); // Mage Tower - Horde conflict
|
||||
packet.AddState(2741, 0); // Mage Tower - Alliance conflict
|
||||
packet.AddState(2740, 0); // Fel Reaver - Horde conflict
|
||||
packet.AddState(2739, 0); // Fel Reaver - Alliance conflict
|
||||
packet.AddState(2738, 0); // Draenei - Alliance conflict
|
||||
packet.AddState(2737, 0); // Draenei - Horde conflict
|
||||
packet.AddState(2736, 0); // unk (0 at start)
|
||||
packet.AddState(2735, 0); // unk (0 at start)
|
||||
packet.AddState(2733, 0); // Draenei - Horde control
|
||||
packet.AddState(2732, 0); // Draenei - Alliance control
|
||||
packet.AddState(2731, 1); // Draenei uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(2730, 0); // Mage Tower - Alliance control
|
||||
packet.AddState(2729, 0); // Mage Tower - Horde control
|
||||
packet.AddState(2728, 1); // Mage Tower uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(2727, 0); // Fel Reaver - Horde control
|
||||
packet.AddState(2726, 0); // Fel Reaver - Alliance control
|
||||
packet.AddState(2725, 1); // Fel Reaver uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(2724, 0); // Boold Elf - Horde control
|
||||
packet.AddState(2723, 0); // Boold Elf - Alliance control
|
||||
packet.AddState(2722, 1); // Boold Elf uncontrolled (1 - yes, 0 - no)
|
||||
packet.AddState(2757, 1); // Flag (1 - show, 0 - hide) - doesn't work exactly this way!
|
||||
packet.AddState(2770, 1); // Horde top-stats (1 - show, 0 - hide) // 02 -> horde picked up the flag
|
||||
packet.AddState(2769, 1); // Alliance top-stats (1 - show, 0 - hide) // 02 -> alliance picked up the flag
|
||||
packet.AddState(2750, 0); // Horde resources
|
||||
packet.AddState(2749, 0); // Alliance resources
|
||||
packet.AddState(2565, 142); // unk, constant?
|
||||
packet.AddState(2720, 0); // Capturing progress-bar (100 -> empty (only grey), 0 -> blue|red (no grey), default 0)
|
||||
packet.AddState(2719, 0); // Capturing progress-bar (0 - left, 100 - right)
|
||||
packet.AddState(2718, 0); // Capturing progress-bar (1 - show, 0 - hide)
|
||||
packet.AddState(3085, 379); // unk, constant?
|
||||
// missing unknowns
|
||||
}
|
||||
break;
|
||||
// any of these needs change! the client remembers the prev setting!
|
||||
@@ -3101,22 +3108,22 @@ namespace Game.Entities
|
||||
pvp.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x9ba, 0x1); // 10 // add ally tower main gui icon // maybe should be sent only on login?
|
||||
packet.AddState(0x9b9, 0x1); // 11 // add horde tower main gui icon // maybe should be sent only on login?
|
||||
packet.AddState(0x9b5, 0x0); // 12 // show neutral broken hill icon // 2485
|
||||
packet.AddState(0x9b4, 0x1); // 13 // show icon above broken hill // 2484
|
||||
packet.AddState(0x9b3, 0x0); // 14 // show ally broken hill icon // 2483
|
||||
packet.AddState(0x9b2, 0x0); // 15 // show neutral overlook icon // 2482
|
||||
packet.AddState(0x9b1, 0x1); // 16 // show the overlook arrow // 2481
|
||||
packet.AddState(0x9b0, 0x0); // 17 // show ally overlook icon // 2480
|
||||
packet.AddState(0x9ae, 0x0); // 18 // horde pvp objectives captured // 2478
|
||||
packet.AddState(0x9ac, 0x0); // 19 // ally pvp objectives captured // 2476
|
||||
packet.AddState(2475, 100); //: ally / horde slider grey area // show only in direct vicinity!
|
||||
packet.AddState(2474, 50); //: ally / horde slider percentage, 100 for ally, 0 for horde // show only in direct vicinity!
|
||||
packet.AddState(2473, 0); //: ally / horde slider display // show only in direct vicinity!
|
||||
packet.AddState(0x9a8, 0x0); // 20 // show the neutral stadium icon // 2472
|
||||
packet.AddState(0x9a7, 0x0); // 21 // show the ally stadium icon // 2471
|
||||
packet.AddState(0x9a6, 0x1); // 22 // show the horde stadium icon // 2470
|
||||
packet.AddState(2490, 1); // add ally tower main gui icon
|
||||
packet.AddState(2489, 1); // add horde tower main gui icon
|
||||
packet.AddState(2485, 0); // show neutral broken hill icon
|
||||
packet.AddState(2484, 1); // show icon above broken hill
|
||||
packet.AddState(2483, 0); // show ally broken hill icon
|
||||
packet.AddState(2482, 0); // show neutral overlook icon
|
||||
packet.AddState(2481, 1); // show the overlook arrow
|
||||
packet.AddState(2480, 0); // show ally overlook icon
|
||||
packet.AddState(2478, 0); // horde pvp objectives captured
|
||||
packet.AddState(2476, 0); // ally pvp objectives captured
|
||||
packet.AddState(2475, 100); // horde slider grey area
|
||||
packet.AddState(2474, 50); // horde slider percentage, 100 for ally, 0 for horde
|
||||
packet.AddState(2473, 0); // horde slider display
|
||||
packet.AddState(2472, 0); // show the neutral stadium icon
|
||||
packet.AddState(2471, 0); // show the ally stadium icon
|
||||
packet.AddState(2470, 1); // show the horde stadium icon
|
||||
}
|
||||
break;
|
||||
case 3518: // Nagrand
|
||||
@@ -3124,40 +3131,34 @@ namespace Game.Entities
|
||||
pvp.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(2503, 0x0); // 10
|
||||
packet.AddState(2502, 0x0); // 11
|
||||
packet.AddState(2493, 0x0); // 12
|
||||
packet.AddState(2491, 0x0); // 13
|
||||
|
||||
packet.AddState(2495, 0x0); // 14
|
||||
packet.AddState(2494, 0x0); // 15
|
||||
packet.AddState(2497, 0x0); // 16
|
||||
|
||||
packet.AddState(2762, 0x0); // 17
|
||||
packet.AddState(2662, 0x0); // 18
|
||||
packet.AddState(2663, 0x0); // 19
|
||||
packet.AddState(2664, 0x0); // 20
|
||||
|
||||
packet.AddState(2760, 0x0); // 21
|
||||
packet.AddState(2670, 0x0); // 22
|
||||
packet.AddState(2668, 0x0); // 23
|
||||
packet.AddState(2669, 0x0); // 24
|
||||
|
||||
packet.AddState(2761, 0x0); // 25
|
||||
packet.AddState(2667, 0x0); // 26
|
||||
packet.AddState(2665, 0x0); // 27
|
||||
packet.AddState(2666, 0x0); // 28
|
||||
|
||||
packet.AddState(2763, 0x0); // 29
|
||||
packet.AddState(2659, 0x0); // 30
|
||||
packet.AddState(2660, 0x0); // 31
|
||||
packet.AddState(2661, 0x0); // 32
|
||||
|
||||
packet.AddState(2671, 0x0); // 33
|
||||
packet.AddState(2676, 0x0); // 34
|
||||
packet.AddState(2677, 0x0); // 35
|
||||
packet.AddState(2672, 0x0); // 36
|
||||
packet.AddState(2673, 0x0); // 37
|
||||
packet.AddState(2503, 0); // NA_UI_HORDE_GUARDS_SHOW
|
||||
packet.AddState(2502, 0); // NA_UI_ALLIANCE_GUARDS_SHOW
|
||||
packet.AddState(2493, 0); // NA_UI_GUARDS_MAX
|
||||
packet.AddState(2491, 0); // NA_UI_GUARDS_LEFT
|
||||
packet.AddState(2495, 0); // NA_UI_OUTLAND_01
|
||||
packet.AddState(2494, 0); // NA_UI_UNK_1
|
||||
packet.AddState(2497, 0); // NA_UI_UNK_2
|
||||
packet.AddState(2762, 0); // NA_MAP_WYVERN_NORTH_NEU_H
|
||||
packet.AddState(2662, 0); // NA_MAP_WYVERN_NORTH_NEU_A
|
||||
packet.AddState(2663, 0); // NA_MAP_WYVERN_NORTH_H
|
||||
packet.AddState(2664, 0); // NA_MAP_WYVERN_NORTH_A
|
||||
packet.AddState(2760, 0); // NA_MAP_WYVERN_SOUTH_NEU_H
|
||||
packet.AddState(2670, 0); // NA_MAP_WYVERN_SOUTH_NEU_A
|
||||
packet.AddState(2668, 0); // NA_MAP_WYVERN_SOUTH_H
|
||||
packet.AddState(2669, 0); // NA_MAP_WYVERN_SOUTH_A
|
||||
packet.AddState(2761, 0); // NA_MAP_WYVERN_WEST_NEU_H
|
||||
packet.AddState(2667, 0); // NA_MAP_WYVERN_WEST_NEU_A
|
||||
packet.AddState(2665, 0); // NA_MAP_WYVERN_WEST_H
|
||||
packet.AddState(2666, 0); // NA_MAP_WYVERN_WEST_A
|
||||
packet.AddState(2763, 0); // NA_MAP_WYVERN_EAST_NEU_H
|
||||
packet.AddState(2659, 0); // NA_MAP_WYVERN_EAST_NEU_A
|
||||
packet.AddState(2660, 0); // NA_MAP_WYVERN_EAST_H
|
||||
packet.AddState(2661, 0); // NA_MAP_WYVERN_EAST_A
|
||||
packet.AddState(2671, 0); // NA_MAP_HALAA_NEUTRAL
|
||||
packet.AddState(2676, 0); // NA_MAP_HALAA_NEU_A
|
||||
packet.AddState(2677, 0); // NA_MAP_HALAA_NEU_H
|
||||
packet.AddState(2672, 0); // NA_MAP_HALAA_HORDE
|
||||
packet.AddState(2673, 0); // NA_MAP_HALAA_ALLIANCE
|
||||
}
|
||||
break;
|
||||
case 3519: // Terokkar Forest
|
||||
@@ -3165,33 +3166,34 @@ namespace Game.Entities
|
||||
pvp.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0xa41, 0x0); // 10 // 2625 capture bar pos
|
||||
packet.AddState(0xa40, 0x14); // 11 // 2624 capture bar neutral
|
||||
packet.AddState(0xa3f, 0x0); // 12 // 2623 show capture bar
|
||||
packet.AddState(0xa3e, 0x0); // 13 // 2622 horde towers controlled
|
||||
packet.AddState(0xa3d, 0x5); // 14 // 2621 ally towers controlled
|
||||
packet.AddState(0xa3c, 0x0); // 15 // 2620 show towers controlled
|
||||
packet.AddState(0xa88, 0x0); // 16 // 2696 SE Neu
|
||||
packet.AddState(0xa87, 0x0); // 17 // SE Horde
|
||||
packet.AddState(0xa86, 0x0); // 18 // SE Ally
|
||||
packet.AddState(0xa85, 0x0); // 19 //S Neu
|
||||
packet.AddState(0xa84, 0x0); // 20 S Horde
|
||||
packet.AddState(0xa83, 0x0); // 21 S Ally
|
||||
packet.AddState(0xa82, 0x0); // 22 NE Neu
|
||||
packet.AddState(0xa81, 0x0); // 23 NE Horde
|
||||
packet.AddState(0xa80, 0x0); // 24 NE Ally
|
||||
packet.AddState(0xa7e, 0x0); // 25 // 2686 N Neu
|
||||
packet.AddState(0xa7d, 0x0); // 26 N Horde
|
||||
packet.AddState(0xa7c, 0x0); // 27 N Ally
|
||||
packet.AddState(0xa7b, 0x0); // 28 NW Ally
|
||||
packet.AddState(0xa7a, 0x0); // 29 NW Horde
|
||||
packet.AddState(0xa79, 0x0); // 30 NW Neutral
|
||||
packet.AddState(0x9d0, 0x5); // 31 // 2512 locked time remaining seconds first digit
|
||||
packet.AddState(0x9ce, 0x0); // 32 // 2510 locked time remaining seconds second digit
|
||||
packet.AddState(0x9cd, 0x0); // 33 // 2509 locked time remaining minutes
|
||||
packet.AddState(0x9cc, 0x0); // 34 // 2508 neutral locked time show
|
||||
packet.AddState(0xad0, 0x0); // 35 // 2768 horde locked time show
|
||||
packet.AddState(0xacf, 0x1); // 36 // 2767 ally locked time show
|
||||
packet.AddState(2625, 0); // TF_UI_CAPTURE_BAR_POS
|
||||
packet.AddState(2624, 20); // TF_UI_CAPTURE_BAR_NEUTRAL
|
||||
packet.AddState(2623, 0); // TF_UI_SHOW CAPTURE BAR
|
||||
packet.AddState(2622, 0); // TF_UI_TOWER_COUNT_H
|
||||
packet.AddState(2621, 5); // TF_UI_TOWER_COUNT_A
|
||||
packet.AddState(2620, 0); // TF_UI_TOWERS_CONTROLLED_DISPLAY
|
||||
packet.AddState(2696, 0); // TF_TOWER_NUM_15 - SE Neutral
|
||||
packet.AddState(2695, 0); // TF_TOWER_NUM_14 - SE Horde
|
||||
packet.AddState(2694, 0); // TF_TOWER_NUM_13 - SE Alliance
|
||||
packet.AddState(2693, 0); // TF_TOWER_NUM_12 - S Neutral
|
||||
packet.AddState(2692, 0); // TF_TOWER_NUM_11 - S Horde
|
||||
packet.AddState(2691, 0); // TF_TOWER_NUM_10 - S Alliance
|
||||
packet.AddState(2690, 0); // TF_TOWER_NUM_09 - NE Neutral
|
||||
packet.AddState(2689, 0); // TF_TOWER_NUM_08 - NE Horde
|
||||
packet.AddState(2688, 0); // TF_TOWER_NUM_07 - NE Alliance
|
||||
packet.AddState(2687, 0); // TF_TOWER_NUM_16 - unk
|
||||
packet.AddState(2686, 0); // TF_TOWER_NUM_06 - N Neutral
|
||||
packet.AddState(2685, 0); // TF_TOWER_NUM_05 - N Horde
|
||||
packet.AddState(2684, 0); // TF_TOWER_NUM_04 - N Alliance
|
||||
packet.AddState(2683, 0); // TF_TOWER_NUM_03 - NW Alliance
|
||||
packet.AddState(2682, 0); // TF_TOWER_NUM_02 - NW Horde
|
||||
packet.AddState(2681, 0); // TF_TOWER_NUM_01 - NW Neutral
|
||||
packet.AddState(2512, 5); // TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT
|
||||
packet.AddState(2510, 0); // TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT
|
||||
packet.AddState(2509, 0); // TF_UI_LOCKED_TIME_HOURS
|
||||
packet.AddState(2508, 0); // TF_UI_LOCKED_DISPLAY_NEUTRAL
|
||||
packet.AddState(2768, 0); // TF_UI_LOCKED_DISPLAY_HORDE
|
||||
packet.AddState(2767, 1); // TF_UI_LOCKED_DISPLAY_ALLIANCE
|
||||
}
|
||||
break;
|
||||
case 3521: // Zangarmarsh
|
||||
@@ -3199,32 +3201,32 @@ namespace Game.Entities
|
||||
pvp.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x9e1, 0x0); // 10 //2529
|
||||
packet.AddState(0x9e0, 0x0); // 11
|
||||
packet.AddState(0x9df, 0x0); // 12
|
||||
packet.AddState(0xa5d, 0x1); // 13 //2653
|
||||
packet.AddState(0xa5c, 0x0); // 14 //2652 east beacon neutral
|
||||
packet.AddState(0xa5b, 0x1); // 15 horde
|
||||
packet.AddState(0xa5a, 0x0); // 16 ally
|
||||
packet.AddState(0xa59, 0x1); // 17 // 2649 Twin spire graveyard horde 12???
|
||||
packet.AddState(0xa58, 0x0); // 18 ally 14 ???
|
||||
packet.AddState(0xa57, 0x0); // 19 neutral 7???
|
||||
packet.AddState(0xa56, 0x0); // 20 // 2646 west beacon neutral
|
||||
packet.AddState(0xa55, 0x1); // 21 horde
|
||||
packet.AddState(0xa54, 0x0); // 22 ally
|
||||
packet.AddState(0x9e7, 0x0); // 23 // 2535
|
||||
packet.AddState(0x9e6, 0x0); // 24
|
||||
packet.AddState(0x9e5, 0x0); // 25
|
||||
packet.AddState(0xa00, 0x0); // 26 // 2560
|
||||
packet.AddState(0x9ff, 0x1); // 27
|
||||
packet.AddState(0x9fe, 0x0); // 28
|
||||
packet.AddState(0x9fd, 0x0); // 29
|
||||
packet.AddState(0x9fc, 0x1); // 30
|
||||
packet.AddState(0x9fb, 0x0); // 31
|
||||
packet.AddState(0xa62, 0x0); // 32 // 2658
|
||||
packet.AddState(0xa61, 0x1); // 33
|
||||
packet.AddState(0xa60, 0x1); // 34
|
||||
packet.AddState(0xa5f, 0x0); // 35
|
||||
packet.AddState(2529, 0); // ZM_UNK_1
|
||||
packet.AddState(2528, 0); // ZM_UNK_2
|
||||
packet.AddState(2527, 0); // ZM_UNK_3
|
||||
packet.AddState(2653, 1); // ZM_WORLDSTATE_UNK_1
|
||||
packet.AddState(2652, 0); // ZM_MAP_TOWER_EAST_N
|
||||
packet.AddState(2651, 1); // ZM_MAP_TOWER_EAST_H
|
||||
packet.AddState(2650, 0); // ZM_MAP_TOWER_EAST_A
|
||||
packet.AddState(2649, 1); // ZM_MAP_GRAVEYARD_H - Twin spire graveyard horde
|
||||
packet.AddState(2648, 0); // ZM_MAP_GRAVEYARD_A
|
||||
packet.AddState(2647, 0); // ZM_MAP_GRAVEYARD_N
|
||||
packet.AddState(2646, 0); // ZM_MAP_TOWER_WEST_N
|
||||
packet.AddState(2645, 1); // ZM_MAP_TOWER_WEST_H
|
||||
packet.AddState(2644, 0); // ZM_MAP_TOWER_WEST_A
|
||||
packet.AddState(2535, 0); // ZM_UNK_4
|
||||
packet.AddState(2534, 0); // ZM_UNK_5
|
||||
packet.AddState(2533, 0); // ZM_UNK_6
|
||||
packet.AddState(2560, 0); // ZM_UI_TOWER_EAST_N
|
||||
packet.AddState(2559, 1); // ZM_UI_TOWER_EAST_H
|
||||
packet.AddState(2558, 0); // ZM_UI_TOWER_EAST_A
|
||||
packet.AddState(2557, 0); // ZM_UI_TOWER_WEST_N
|
||||
packet.AddState(2556, 1); // ZM_UI_TOWER_WEST_H
|
||||
packet.AddState(2555, 0); // ZM_UI_TOWER_WEST_A
|
||||
packet.AddState(2658, 0); // ZM_MAP_HORDE_FLAG_READY
|
||||
packet.AddState(2657, 1); // ZM_MAP_HORDE_FLAG_NOT_READY
|
||||
packet.AddState(2656, 1); // ZM_MAP_ALLIANCE_FLAG_NOT_READY
|
||||
packet.AddState(2655, 0); // ZM_MAP_ALLIANCE_FLAG_READY
|
||||
}
|
||||
break;
|
||||
case 3698: // Nagrand Arena
|
||||
@@ -3232,9 +3234,9 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0xa0f, 0x0); // 7
|
||||
packet.AddState(0xa10, 0x0); // 8
|
||||
packet.AddState(0xa11, 0x0); // 9 show
|
||||
packet.AddState(2575, 0); // BATTLEGROUND_NAGRAND_ARENA_GOLD
|
||||
packet.AddState(2576, 0); // BATTLEGROUND_NAGRAND_ARENA_GREEN
|
||||
packet.AddState(2577, 0); // BATTLEGROUND_NAGRAND_ARENA_SHOW
|
||||
}
|
||||
break;
|
||||
case 3702: // Blade's Edge Arena
|
||||
@@ -3242,9 +3244,9 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x9f0, 0x0); // 7 gold
|
||||
packet.AddState(0x9f1, 0x0); // 8 green
|
||||
packet.AddState(0x9f3, 0x0); // 9 show
|
||||
packet.AddState(2544, 0); // BATTLEGROUND_BLADES_EDGE_ARENA_GOLD
|
||||
packet.AddState(2545, 0); // BATTLEGROUND_BLADES_EDGE_ARENA_GREEN
|
||||
packet.AddState(2547, 0); // BATTLEGROUND_BLADES_EDGE_ARENA_SHOW
|
||||
}
|
||||
break;
|
||||
case 3968: // Ruins of Lordaeron
|
||||
@@ -3252,9 +3254,9 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0xbb8, 0x0); // 7 gold
|
||||
packet.AddState(0xbb9, 0x0); // 8 green
|
||||
packet.AddState(0xbba, 0x0); // 9 show
|
||||
packet.AddState(3000, 0); // BATTELGROUND_RUINS_OF_LORDAERNON_GOLD
|
||||
packet.AddState(3001, 0); // BATTELGROUND_RUINS_OF_LORDAERNON_GREEN
|
||||
packet.AddState(3002, 0); // BATTELGROUND_RUINS_OF_LORDAERNON_SHOW
|
||||
}
|
||||
break;
|
||||
case 4378: // Dalaran Sewers
|
||||
@@ -3262,9 +3264,9 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(3601, 0x0); // 7 gold
|
||||
packet.AddState(3600, 0x0); // 8 green
|
||||
packet.AddState(3610, 0x0); // 9 show
|
||||
packet.AddState(3601, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD
|
||||
packet.AddState(3600, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN
|
||||
packet.AddState(3610, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_SHOW
|
||||
}
|
||||
break;
|
||||
case 4384: // Strand of the Ancients
|
||||
@@ -3272,34 +3274,34 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
// 1-3 A defend, 4-6 H defend, 7-9 unk defend, 1 - ok, 2 - half destroyed, 3 - destroyed
|
||||
packet.AddState(0xf09, 0x0); // 7 3849 Gate of Temple
|
||||
packet.AddState(0xe36, 0x0); // 8 3638 Gate of Yellow Moon
|
||||
packet.AddState(0xe27, 0x0); // 9 3623 Gate of Green Emerald
|
||||
packet.AddState(0xe24, 0x0); // 10 3620 Gate of Blue Sapphire
|
||||
packet.AddState(0xe21, 0x0); // 11 3617 Gate of Red Sun
|
||||
packet.AddState(0xe1e, 0x0); // 12 3614 Gate of Purple Ametyst
|
||||
packet.AddState(3849, 0); // Gate of Temple
|
||||
packet.AddState(3638, 0); // Gate of Yellow Moon
|
||||
packet.AddState(3623, 0); // Gate of Green Emerald
|
||||
packet.AddState(3620, 0); // Gate of Blue Sapphire
|
||||
packet.AddState(3617, 0); // Gate of Red Sun
|
||||
packet.AddState(3614, 0); // Gate of Purple Ametyst
|
||||
packet.AddState(3571, 0); // bonus timer (1 - on, 0 - off)
|
||||
packet.AddState(3565, 0); // Horde Attacker
|
||||
packet.AddState(3564, 0); // Alliance Attacker
|
||||
|
||||
packet.AddState(0xdf3, 0x0); // 13 3571 bonus timer (1 - on, 0 - off)
|
||||
packet.AddState(0xded, 0x0); // 14 3565 Horde Attacker
|
||||
packet.AddState(0xdec, 0x0); // 15 3564 Alliance Attacker
|
||||
// End Round (timer), better explain this by example, eg. ends in 19:59 . A:BC
|
||||
packet.AddState(0xde9, 0x0); // 16 3561 C
|
||||
packet.AddState(0xde8, 0x0); // 17 3560 B
|
||||
packet.AddState(0xde7, 0x0); // 18 3559 A
|
||||
packet.AddState(0xe35, 0x0); // 19 3637 East g - Horde control
|
||||
packet.AddState(0xe34, 0x0); // 20 3636 West g - Horde control
|
||||
packet.AddState(0xe33, 0x0); // 21 3635 South g - Horde control
|
||||
packet.AddState(0xe32, 0x0); // 22 3634 East g - Alliance control
|
||||
packet.AddState(0xe31, 0x0); // 23 3633 West g - Alliance control
|
||||
packet.AddState(0xe30, 0x0); // 24 3632 South g - Alliance control
|
||||
packet.AddState(0xe2f, 0x0); // 25 3631 Chamber of Ancients - Horde control
|
||||
packet.AddState(0xe2e, 0x0); // 26 3630 Chamber of Ancients - Alliance control
|
||||
packet.AddState(0xe2d, 0x0); // 27 3629 Beach1 - Horde control
|
||||
packet.AddState(0xe2c, 0x0); // 28 3628 Beach2 - Horde control
|
||||
packet.AddState(0xe2b, 0x0); // 29 3627 Beach1 - Alliance control
|
||||
packet.AddState(0xe2a, 0x0); // 30 3626 Beach2 - Alliance control
|
||||
// and many unks...
|
||||
// End Round timer, example: 19:59 -> A:BC
|
||||
packet.AddState(3561, 0); // C
|
||||
packet.AddState(3560, 0); // B
|
||||
packet.AddState(3559, 0); // A
|
||||
|
||||
packet.AddState(3637, 0); // BG_SA_CENTER_GY_ALLIANCE
|
||||
packet.AddState(3636, 0); // BG_SA_RIGHT_GY_ALLIANCE
|
||||
packet.AddState(3635, 0); // BG_SA_LEFT_GY_ALLIANCE
|
||||
packet.AddState(3634, 0); // BG_SA_CENTER_GY_HORDE
|
||||
packet.AddState(3633, 0); // BG_SA_LEFT_GY_HORDE
|
||||
packet.AddState(3632, 0); // BG_SA_RIGHT_GY_HORDE
|
||||
packet.AddState(3631, 0); // BG_SA_HORDE_DEFENCE_TOKEN
|
||||
packet.AddState(3630, 0); // BG_SA_ALLIANCE_DEFENCE_TOKEN
|
||||
packet.AddState(3629, 0); // BG_SA_LEFT_ATT_TOKEN_HRD
|
||||
packet.AddState(3628, 0); // BG_SA_RIGHT_ATT_TOKEN_HRD
|
||||
packet.AddState(3627, 0); // BG_SA_RIGHT_ATT_TOKEN_ALL
|
||||
packet.AddState(3626, 0); // BG_SA_LEFT_ATT_TOKEN_ALL
|
||||
// missing unknowns
|
||||
}
|
||||
break;
|
||||
case 4406: // Ring of Valor
|
||||
@@ -3307,9 +3309,9 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0xe10, 0x0); // 7 gold
|
||||
packet.AddState(0xe11, 0x0); // 8 green
|
||||
packet.AddState(0xe1a, 0x0); // 9 show
|
||||
packet.AddState(3600, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN
|
||||
packet.AddState(3601, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD
|
||||
packet.AddState(3610, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_SHOW
|
||||
}
|
||||
break;
|
||||
case 4710:
|
||||
@@ -3317,25 +3319,24 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(4221, 1); // 7 BG_IC_ALLIANCE_RENFORT_SET
|
||||
packet.AddState(4222, 1); // 8 BG_IC_HORDE_RENFORT_SET
|
||||
packet.AddState(4226, 300); // 9 BG_IC_ALLIANCE_RENFORT
|
||||
packet.AddState(4227, 300); // 10 BG_IC_HORDE_RENFORT
|
||||
packet.AddState(4322, 1); // 11 BG_IC_GATE_FRONT_H_WS_OPEN
|
||||
packet.AddState(4321, 1); // 12 BG_IC_GATE_WEST_H_WS_OPEN
|
||||
packet.AddState(4320, 1); // 13 BG_IC_GATE_EAST_H_WS_OPEN
|
||||
packet.AddState(4323, 1); // 14 BG_IC_GATE_FRONT_A_WS_OPEN
|
||||
packet.AddState(4324, 1); // 15 BG_IC_GATE_WEST_A_WS_OPEN
|
||||
packet.AddState(4325, 1); // 16 BG_IC_GATE_EAST_A_WS_OPEN
|
||||
packet.AddState(4317, 1); // 17 unknown
|
||||
|
||||
packet.AddState(4301, 1); // 18 BG_IC_DOCKS_UNCONTROLLED
|
||||
packet.AddState(4296, 1); // 19 BG_IC_HANGAR_UNCONTROLLED
|
||||
packet.AddState(4306, 1); // 20 BG_IC_QUARRY_UNCONTROLLED
|
||||
packet.AddState(4311, 1); // 21 BG_IC_REFINERY_UNCONTROLLED
|
||||
packet.AddState(4294, 1); // 22 BG_IC_WORKSHOP_UNCONTROLLED
|
||||
packet.AddState(4243, 1); // 23 unknown
|
||||
packet.AddState(4345, 1); // 24 unknown
|
||||
packet.AddState(4221, 1); // BG_IC_ALLIANCE_RENFORT_SET
|
||||
packet.AddState(4222, 1); // BG_IC_HORDE_RENFORT_SET
|
||||
packet.AddState(4226, 300); // BG_IC_ALLIANCE_RENFORT
|
||||
packet.AddState(4227, 300); // BG_IC_HORDE_RENFORT
|
||||
packet.AddState(4322, 1); // BG_IC_GATE_FRONT_H_WS_OPEN
|
||||
packet.AddState(4321, 1); // BG_IC_GATE_WEST_H_WS_OPEN
|
||||
packet.AddState(4320, 1); // BG_IC_GATE_EAST_H_WS_OPEN
|
||||
packet.AddState(4323, 1); // BG_IC_GATE_FRONT_A_WS_OPEN
|
||||
packet.AddState(4324, 1); // BG_IC_GATE_WEST_A_WS_OPEN
|
||||
packet.AddState(4325, 1); // BG_IC_GATE_EAST_A_WS_OPEN
|
||||
packet.AddState(4317, 1); // unk
|
||||
packet.AddState(4301, 1); // BG_IC_DOCKS_UNCONTROLLED
|
||||
packet.AddState(4296, 1); // BG_IC_HANGAR_UNCONTROLLED
|
||||
packet.AddState(4306, 1); // BG_IC_QUARRY_UNCONTROLLED
|
||||
packet.AddState(4311, 1); // BG_IC_REFINERY_UNCONTROLLED
|
||||
packet.AddState(4294, 1); // BG_IC_WORKSHOP_UNCONTROLLED
|
||||
packet.AddState(4243, 1); // unk
|
||||
packet.AddState(4345, 1); // unk
|
||||
}
|
||||
break;
|
||||
// The Ruby Sanctum
|
||||
@@ -3344,9 +3345,9 @@ namespace Game.Entities
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(5049, 50); // 9 WORLDSTATE_CORPOREALITY_MATERIAL
|
||||
packet.AddState(5050, 50); // 10 WORLDSTATE_CORPOREALITY_TWILIGHT
|
||||
packet.AddState(5051, 0); // 11 WORLDSTATE_CORPOREALITY_TOGGLE
|
||||
packet.AddState(5049, 50); // WORLDSTATE_CORPOREALITY_MATERIAL
|
||||
packet.AddState(5050, 50); // WORLDSTATE_CORPOREALITY_TWILIGHT
|
||||
packet.AddState(5051, 0); // WORLDSTATE_CORPOREALITY_TOGGLE
|
||||
}
|
||||
break;
|
||||
// Icecrown Citadel
|
||||
@@ -3355,11 +3356,11 @@ namespace Game.Entities
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(4903, 0); // 9 WORLDSTATE_SHOW_TIMER (Blood Quickening weekly)
|
||||
packet.AddState(4904, 30); // 10 WORLDSTATE_EXECUTION_TIME
|
||||
packet.AddState(4940, 0); // 11 WORLDSTATE_SHOW_ATTEMPTS
|
||||
packet.AddState(4941, 50); // 12 WORLDSTATE_ATTEMPTS_REMAINING
|
||||
packet.AddState(4942, 50); // 13 WORLDSTATE_ATTEMPTS_MAX
|
||||
packet.AddState(4903, 0); // WORLDSTATE_SHOW_TIMER (Blood Quickening weekly)
|
||||
packet.AddState(4904, 30); // WORLDSTATE_EXECUTION_TIME
|
||||
packet.AddState(4940, 0); // WORLDSTATE_SHOW_ATTEMPTS
|
||||
packet.AddState(4941, 50); // WORLDSTATE_ATTEMPTS_REMAINING
|
||||
packet.AddState(4942, 50); // WORLDSTATE_ATTEMPTS_MAX
|
||||
}
|
||||
break;
|
||||
// The Culling of Stratholme
|
||||
@@ -3368,11 +3369,11 @@ namespace Game.Entities
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(3479, 0); // 9 WORLDSTATE_SHOW_CRATES
|
||||
packet.AddState(3480, 0); // 10 WORLDSTATE_CRATES_REVEALED
|
||||
packet.AddState(3504, 0); // 11 WORLDSTATE_WAVE_COUNT
|
||||
packet.AddState(3931, 25); // 12 WORLDSTATE_TIME_GUARDIAN
|
||||
packet.AddState(3932, 0); // 13 WORLDSTATE_TIME_GUARDIAN_SHOW
|
||||
packet.AddState(3479, 0); // WORLDSTATE_SHOW_CRATES
|
||||
packet.AddState(3480, 0); // WORLDSTATE_CRATES_REVEALED
|
||||
packet.AddState(3504, 0); // WORLDSTATE_WAVE_COUNT
|
||||
packet.AddState(3931, 25); // WORLDSTATE_TIME_GUARDIAN
|
||||
packet.AddState(3932, 0); // WORLDSTATE_TIME_GUARDIAN_SHOW
|
||||
}
|
||||
break;
|
||||
// The Oculus
|
||||
@@ -3381,8 +3382,8 @@ namespace Game.Entities
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(3524, 0); // 9 WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW
|
||||
packet.AddState(3486, 0); // 10 WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT
|
||||
packet.AddState(3524, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW
|
||||
packet.AddState(3486, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT
|
||||
}
|
||||
break;
|
||||
// Ulduar
|
||||
@@ -3391,8 +3392,18 @@ namespace Game.Entities
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(4132, 0); // 9 WORLDSTATE_ALGALON_TIMER_ENABLED
|
||||
packet.AddState(4131, 0); // 10 WORLDSTATE_ALGALON_DESPAWN_TIMER
|
||||
packet.AddState(4132, 0); // WORLDSTATE_ALGALON_TIMER_ENABLED
|
||||
packet.AddState(4131, 0); // WORLDSTATE_ALGALON_DESPAWN_TIMER
|
||||
}
|
||||
break;
|
||||
case 4415: // Violet Hold
|
||||
if (instance != null)
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(3816, 0); // WORLD_STATE_VH_SHOW
|
||||
packet.AddState(3815, 100); // WORLD_STATE_VH_PRISON_STATE
|
||||
packet.AddState(3810, 0); // WORLD_STATE_VH_WAVE_COUNT
|
||||
}
|
||||
break;
|
||||
// Halls of Refection
|
||||
@@ -3401,18 +3412,22 @@ namespace Game.Entities
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(4884, 0); // 9 WORLD_STATE_HOR_WAVES_ENABLED
|
||||
packet.AddState(4882, 0); // 10 WORLD_STATE_HOR_WAVE_COUNT
|
||||
packet.AddState(4884, 0); // WORLD_STATE_HOR_WAVES_ENABLED
|
||||
packet.AddState(4882, 0); // WORLD_STATE_HOR_WAVE_COUNT
|
||||
}
|
||||
break;
|
||||
case (uint)AreaId.Wintergrasp: // Wintergrasp
|
||||
if (battlefield != null && battlefield.GetTypeId() == (uint)BattleFieldTypes.WinterGrasp)
|
||||
battlefield.FillInitialWorldStates(packet);
|
||||
break;
|
||||
// Zul Aman
|
||||
case 3805:
|
||||
if (instance != null && mapid == 568)
|
||||
instance.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(3104, 0); // 9 WORLD_STATE_ZULAMAN_TIMER_ENABLED
|
||||
packet.AddState(3106, 0); // 10 WORLD_STATE_ZULAMAN_TIMER
|
||||
packet.AddState(3104, 0); // WORLD_STATE_ZULAMAN_TIMER_ENABLED
|
||||
packet.AddState(3106, 0); // WORLD_STATE_ZULAMAN_TIMER
|
||||
}
|
||||
break;
|
||||
// Twin Peaks
|
||||
@@ -3421,14 +3436,14 @@ namespace Game.Entities
|
||||
bg.FillInitialWorldStates(packet);
|
||||
else
|
||||
{
|
||||
packet.AddState(0x62d, 0x0); // 7 1581 alliance flag captures
|
||||
packet.AddState(0x62e, 0x0); // 8 1582 horde flag captures
|
||||
packet.AddState(0x609, 0x0); // 9 1545 unk
|
||||
packet.AddState(0x60a, 0x0); // 10 1546 unk
|
||||
packet.AddState(0x60b, 0x2); // 11 1547 unk
|
||||
packet.AddState(0x641, 0x3); // 12 1601 unk
|
||||
packet.AddState(0x922, 0x1); // 13 2338 horde (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
packet.AddState(0x923, 0x1); // 14 2339 alliance (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
packet.AddState(1581, 0x0); // alliance flag captures
|
||||
packet.AddState(1582, 0x0); // horde flag captures
|
||||
packet.AddState(1545, 0x0); // unk
|
||||
packet.AddState(1546, 0x0); // unk
|
||||
packet.AddState(1547, 0x2); // unk
|
||||
packet.AddState(1601, 0x3); // unk
|
||||
packet.AddState(2338, 0x1); // horde (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
packet.AddState(2339, 0x1); // alliance (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
|
||||
}
|
||||
break;
|
||||
// Battle for Gilneas
|
||||
@@ -3436,17 +3451,21 @@ namespace Game.Entities
|
||||
if (bg && bg.GetTypeID(true) == BattlegroundTypeId.BFG)
|
||||
bg.FillInitialWorldStates(packet);
|
||||
break;
|
||||
// Wintergrasp
|
||||
case (uint)AreaId.Wintergrasp:
|
||||
if (bf != null && bf.GetTypeId() == (uint)BattleFieldTypes.WinterGrasp)
|
||||
bf.FillInitialWorldStates(packet);
|
||||
goto default;
|
||||
// No break here, intended.
|
||||
case 5389: // Tol Barad Peninsula
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.TolbaradEnable))
|
||||
{
|
||||
packet.AddState(WorldStates.BattlefieldTbAllianceControlsShow, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldTbAllianceControlsShow));
|
||||
packet.AddState(WorldStates.BattlefieldTbHordeControlsShow, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldTbHordeControlsShow));
|
||||
packet.AddState(WorldStates.BattlefieldTbTimeNextBattleShow, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldTbTimeNextBattleShow));
|
||||
packet.AddState(WorldStates.BattlefieldTbAllianceAttackingShow, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldTbAllianceAttackingShow));
|
||||
packet.AddState(WorldStates.BattlefieldTbHordeAttackingShow, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldTbHordeAttackingShow));
|
||||
}
|
||||
break;
|
||||
case 5095: // Tol Barad
|
||||
if (battlefield != null && battlefield.GetTypeId() == (uint)BattleFieldTypes.TolBarad)
|
||||
battlefield.FillInitialWorldStates(packet);
|
||||
break;
|
||||
default:
|
||||
packet.AddState(0x914, 0x0); // 7
|
||||
packet.AddState(0x913, 0x0); // 8
|
||||
packet.AddState(0x912, 0x0); // 9
|
||||
packet.AddState(0x915, 0x0); // 10
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,14 +38,14 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
}
|
||||
|
||||
public void AddState(WorldStates variableID, int value)
|
||||
public void AddState(WorldStates variableID, uint value)
|
||||
{
|
||||
AddState((uint)variableID, value);
|
||||
}
|
||||
|
||||
public void AddState(uint variableID, int value)
|
||||
public void AddState(uint variableID, uint value)
|
||||
{
|
||||
Worldstates.Add(new WorldStateInfo(variableID, value));
|
||||
Worldstates.Add(new WorldStateInfo(variableID, (int)value));
|
||||
}
|
||||
|
||||
public void AddState(WorldStates variableID, bool value)
|
||||
|
||||
@@ -117,8 +117,8 @@ namespace Game.PvP
|
||||
{
|
||||
packet.AddState(OutdoorPvPHPWorldStates.Display_A, 1);
|
||||
packet.AddState(OutdoorPvPHPWorldStates.Display_H, 1);
|
||||
packet.AddState(OutdoorPvPHPWorldStates.Count_A, (int)m_AllianceTowersControlled);
|
||||
packet.AddState(OutdoorPvPHPWorldStates.Count_H, (int)m_HordeTowersControlled);
|
||||
packet.AddState(OutdoorPvPHPWorldStates.Count_A, m_AllianceTowersControlled);
|
||||
packet.AddState(OutdoorPvPHPWorldStates.Count_H, m_HordeTowersControlled);
|
||||
|
||||
foreach (var capture in m_capturePoints.Values)
|
||||
capture.FillInitialWorldStates(packet);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
using Framework.Constants;
|
||||
using Game.AI;
|
||||
using Game.BattleFields;
|
||||
using Game.BattleGrounds;
|
||||
using Game.Chat;
|
||||
using Game.Conditions;
|
||||
@@ -439,6 +440,18 @@ namespace Game.Scripting
|
||||
|
||||
public virtual bool _OnTrigger(Player player, AreaTriggerRecord trigger) { return false; }
|
||||
}
|
||||
|
||||
public class BattlefieldScript : ScriptObject
|
||||
{
|
||||
public BattlefieldScript(string name) : base(name)
|
||||
{
|
||||
Global.ScriptMgr.AddScript(this);
|
||||
}
|
||||
|
||||
public override bool IsDatabaseBound() { return true; }
|
||||
|
||||
public virtual BattleField GetBattlefield() { return null; }
|
||||
}
|
||||
|
||||
public class BattlegroundScript : ScriptObject
|
||||
{
|
||||
@@ -450,7 +463,7 @@ namespace Game.Scripting
|
||||
public override bool IsDatabaseBound() { return true; }
|
||||
|
||||
// Should return a fully valid Battlegroundobject for the type ID.
|
||||
public virtual Battleground BattlegroundGetBattleground() { return null; }
|
||||
public virtual Battleground GetBattleground() { return null; }
|
||||
}
|
||||
|
||||
public class OutdoorPvPScript : ScriptObject
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
using Framework.Constants;
|
||||
using Framework.Database;
|
||||
using Game.AI;
|
||||
using Game.BattleFields;
|
||||
using Game.BattleGrounds;
|
||||
using Game.Chat;
|
||||
using Game.Conditions;
|
||||
@@ -711,6 +712,12 @@ namespace Game.Scripting
|
||||
return RunScriptRet<AreaTriggerScript>(p => entered ? p.OnTrigger(player, trigger) : p.OnExit(player, trigger), Global.ObjectMgr.GetAreaTriggerScriptId(trigger.Id));
|
||||
}
|
||||
|
||||
//BattlefieldScript
|
||||
public BattleField CreateBattlefield(uint scriptId)
|
||||
{
|
||||
return RunScriptRet<BattlefieldScript, BattleField>(p => p.GetBattlefield(), scriptId, null);
|
||||
}
|
||||
|
||||
//BattlegroundScript
|
||||
public Battleground CreateBattleground(BattlegroundTypeId typeId)
|
||||
{
|
||||
|
||||
@@ -947,6 +947,16 @@ namespace Game
|
||||
Values[WorldCfg.WintergraspNobattletime] = GetDefaultValue("Wintergrasp.NoBattleTimer", 150);
|
||||
Values[WorldCfg.WintergraspRestartAfterCrash] = GetDefaultValue("Wintergrasp.CrashRestartTimer", 10);
|
||||
|
||||
// Tol Barad battlefield
|
||||
Values[WorldCfg.TolbaradEnable] = GetDefaultValue("TolBarad.Enable", true);
|
||||
Values[WorldCfg.TolbaradPlrMax] = GetDefaultValue("TolBarad.PlayerMax", 100);
|
||||
Values[WorldCfg.TolbaradPlrMin] = GetDefaultValue("TolBarad.PlayerMin", 0);
|
||||
Values[WorldCfg.TolbaradPlrMinLvl] = GetDefaultValue("TolBarad.PlayerMinLvl", 85);
|
||||
Values[WorldCfg.TolbaradBattleTime] = GetDefaultValue("TolBarad.BattleTimer", 15);
|
||||
Values[WorldCfg.TolbaradBonusTime] = GetDefaultValue("TolBarad.BonusTime", 5);
|
||||
Values[WorldCfg.TolbaradNoBattleTime] = GetDefaultValue("TolBarad.NoBattleTimer", 150);
|
||||
Values[WorldCfg.TolbaradRestartAfterCrash] = GetDefaultValue("TolBarad.CrashRestartTimer", 10);
|
||||
|
||||
// Stats limits
|
||||
Values[WorldCfg.StatsLimitsEnable] = GetDefaultValue("Stats.Limits.Enable", false);
|
||||
Values[WorldCfg.StatsLimitsDodge] = GetDefaultValue("Stats.Limits.Dodge", 95.0f);
|
||||
|
||||
Reference in New Issue
Block a user