BFA Update (still lots of testing to do tho)
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Framework.Collections;
|
||||
|
||||
namespace Framework.Algorithms
|
||||
{
|
||||
public class DepthFirstSearch
|
||||
{
|
||||
private bool[] marked; // marked[v] = is there an s-v path?
|
||||
private int count; // number of vertices connected to s
|
||||
|
||||
/**
|
||||
* Computes the vertices in graph {@code G} that are
|
||||
* connected to the source vertex {@code s}.
|
||||
* @param G the graph
|
||||
* @param s the source vertex
|
||||
* @throws IllegalArgumentException unless {@code 0 <= s < V}
|
||||
*/
|
||||
public DepthFirstSearch(EdgeWeightedDigraph G, uint s, Action<uint> action)
|
||||
{
|
||||
marked = new bool[G.NumberOfVertices];
|
||||
//validateVertex(s);
|
||||
dfs(G, s, action);
|
||||
}
|
||||
|
||||
// depth first search from v
|
||||
private void dfs(EdgeWeightedDigraph G, uint v, Action<uint> action)
|
||||
{
|
||||
count++;
|
||||
marked[v] = true;
|
||||
foreach (var w in G.Adjacent((int)v))
|
||||
{
|
||||
if (!marked[w.To])
|
||||
{
|
||||
action(w.To);
|
||||
dfs(G, w.To, action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is there a path between the source vertex {@code s} and vertex {@code v}?
|
||||
* @param v the vertex
|
||||
* @return {@code true} if there is a path, {@code false} otherwise
|
||||
* @throws IllegalArgumentException unless {@code 0 <= v < V}
|
||||
*/
|
||||
public bool Marked(int v)
|
||||
{
|
||||
//validateVertex(v);
|
||||
return marked[v];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of vertices connected to the source vertex {@code s}.
|
||||
* @return the number of vertices connected to the source vertex {@code s}
|
||||
*/
|
||||
public int Count()
|
||||
{
|
||||
return count;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Framework.Collections;
|
||||
|
||||
namespace Framework.Algorithms
|
||||
{
|
||||
/// <summary>
|
||||
/// The DijkstraShortestPath class represents a data type for solving the single-source shortest paths problem
|
||||
/// in edge-weighted digraphs where the edge weights are non-negative
|
||||
/// </summary>
|
||||
/// <seealso href="http://algs4.cs.princeton.edu/44sp/DijkstraSP.java.html">DijkstraSP class from Princeton University's Java Algorithms</seealso>
|
||||
public class DijkstraShortestPath
|
||||
{
|
||||
private readonly double[] _distanceTo;
|
||||
private readonly DirectedEdge[] _edgeTo;
|
||||
private readonly IndexMinPriorityQueue<double> _priorityQueue;
|
||||
/// <summary>
|
||||
/// Computes a shortest paths tree from the specified sourceVertex to every other vertex in the edge-weighted directed graph
|
||||
/// </summary>
|
||||
/// <param name="graph">The edge-weighted directed graph</param>
|
||||
/// <param name="sourceVertex">The source vertex to compute the shortest paths tree from</param>
|
||||
/// <exception cref="ArgumentOutOfRangeException">Throws an ArgumentOutOfRangeException if an edge weight is negative</exception>
|
||||
/// <exception cref="ArgumentNullException">Thrown if EdgeWeightedDigraph is null</exception>
|
||||
public DijkstraShortestPath(EdgeWeightedDigraph graph, int sourceVertex)
|
||||
{
|
||||
if (graph == null)
|
||||
{
|
||||
throw new ArgumentNullException("graph", "EdgeWeightedDigraph cannot be null");
|
||||
}
|
||||
|
||||
foreach (DirectedEdge edge in graph.Edges())
|
||||
{
|
||||
if (edge.Weight < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException($"Edge: '{edge}' has negative weight");
|
||||
}
|
||||
}
|
||||
|
||||
_distanceTo = new double[graph.NumberOfVertices];
|
||||
_edgeTo = new DirectedEdge[graph.NumberOfVertices];
|
||||
for (int v = 0; v < graph.NumberOfVertices; v++)
|
||||
{
|
||||
_distanceTo[v] = double.PositiveInfinity;
|
||||
}
|
||||
_distanceTo[sourceVertex] = 0.0;
|
||||
|
||||
_priorityQueue = new IndexMinPriorityQueue<double>(graph.NumberOfVertices);
|
||||
_priorityQueue.Insert(sourceVertex, _distanceTo[sourceVertex]);
|
||||
while (!_priorityQueue.IsEmpty())
|
||||
{
|
||||
int v = _priorityQueue.DeleteMin();
|
||||
foreach (DirectedEdge edge in graph.Adjacent(v))
|
||||
{
|
||||
Relax(edge);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void Relax(DirectedEdge edge)
|
||||
{
|
||||
uint v = edge.From;
|
||||
uint w = edge.To;
|
||||
if (_distanceTo[w] > _distanceTo[v] + edge.Weight)
|
||||
{
|
||||
_distanceTo[w] = _distanceTo[v] + edge.Weight;
|
||||
_edgeTo[w] = edge;
|
||||
if (_priorityQueue.Contains((int)w))
|
||||
{
|
||||
_priorityQueue.DecreaseKey((int)w, _distanceTo[w]);
|
||||
}
|
||||
else
|
||||
{
|
||||
_priorityQueue.Insert((int)w, _distanceTo[w]);
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns the length of a shortest path from the sourceVertex to the specified destinationVertex
|
||||
/// </summary>
|
||||
/// <param name="destinationVertex">The destination vertex to find a shortest path to</param>
|
||||
/// <returns>The length of a shortest path from the sourceVertex to the specified destinationVertex or double.PositiveInfinity if no such path exists</returns>
|
||||
public double DistanceTo(int destinationVertex)
|
||||
{
|
||||
return _distanceTo[destinationVertex];
|
||||
}
|
||||
/// <summary>
|
||||
/// Is there a path from the sourceVertex to the specified destinationVertex?
|
||||
/// </summary>
|
||||
/// <param name="destinationVertex">The destination vertex to see if there is a path to</param>
|
||||
/// <returns>True if there is a path from the sourceVertex to the specified destinationVertex, false otherwise</returns>
|
||||
public bool HasPathTo(int destinationVertex)
|
||||
{
|
||||
return _distanceTo[destinationVertex] < double.PositiveInfinity;
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns an IEnumerable of DirectedEdges representing a shortest path from the sourceVertex to the specified destinationVertex
|
||||
/// </summary>
|
||||
/// <param name="destinationVertex">The destination vertex to find a shortest path to</param>
|
||||
/// <returns>IEnumerable of DirectedEdges representing a shortest path from the sourceVertex to the specified destinationVertex</returns>
|
||||
public IEnumerable<DirectedEdge> PathTo(int destinationVertex)
|
||||
{
|
||||
if (!HasPathTo(destinationVertex))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
var path = new Stack<DirectedEdge>();
|
||||
for (DirectedEdge edge = _edgeTo[destinationVertex]; edge != null; edge = _edgeTo[edge.From])
|
||||
{
|
||||
path.Push(edge);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
// TODO: This method should be private and should be called from the bottom of the constructor
|
||||
/// <summary>
|
||||
/// check optimality conditions:
|
||||
/// </summary>
|
||||
/// <param name="graph">The edge-weighted directed graph</param>
|
||||
/// <param name="sourceVertex">The source vertex to check optimality conditions from</param>
|
||||
/// <returns>True if all optimality conditions are met, false otherwise</returns>
|
||||
/// <exception cref="ArgumentNullException">Thrown on null EdgeWeightedDigraph</exception>
|
||||
public bool Check(EdgeWeightedDigraph graph, int sourceVertex)
|
||||
{
|
||||
if (graph == null)
|
||||
{
|
||||
throw new ArgumentNullException("graph", "EdgeWeightedDigraph cannot be null");
|
||||
}
|
||||
|
||||
if (_distanceTo[sourceVertex] != 0.0 || _edgeTo[sourceVertex] != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for (int v = 0; v < graph.NumberOfVertices; v++)
|
||||
{
|
||||
if (v == sourceVertex)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (_edgeTo[v] == null && _distanceTo[v] != double.PositiveInfinity)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (int v = 0; v < graph.NumberOfVertices; v++)
|
||||
{
|
||||
foreach (DirectedEdge edge in graph.Adjacent(v))
|
||||
{
|
||||
uint w = edge.To;
|
||||
if (_distanceTo[v] + edge.Weight < _distanceTo[w])
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int w = 0; w < graph.NumberOfVertices; w++)
|
||||
{
|
||||
if (_edgeTo[w] == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
DirectedEdge edge = _edgeTo[w];
|
||||
uint v = edge.From;
|
||||
if (w != edge.To)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (_distanceTo[v] + edge.Weight != _distanceTo[w])
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Framework.Collections
|
||||
{
|
||||
/// <summary>
|
||||
/// The EdgeWeightedDigrpah class represents an edge-weighted directed graph of vertices named 0 through V-1, where each directed edge
|
||||
/// is of type DirectedEdge and has real-valued weight.
|
||||
/// </summary>
|
||||
/// <seealso href="http://algs4.cs.princeton.edu/44sp/EdgeWeightedDigraph.java.html">EdgeWeightedDigraph class from Princeton University's Java Algorithms</seealso>
|
||||
public class EdgeWeightedDigraph
|
||||
{
|
||||
private readonly LinkedList<DirectedEdge>[] _adjacent;
|
||||
/// <summary>
|
||||
/// Constructs an empty edge-weighted digraph with the specified number of vertices and 0 edges
|
||||
/// </summary>
|
||||
/// <param name="vertices">Number of vertices in the Graph</param>
|
||||
public EdgeWeightedDigraph(int vertices)
|
||||
{
|
||||
NumberOfVertices = vertices;
|
||||
NumberOfEdges = 0;
|
||||
_adjacent = new LinkedList<DirectedEdge>[NumberOfVertices];
|
||||
for (int v = 0; v < NumberOfVertices; v++)
|
||||
{
|
||||
_adjacent[v] = new LinkedList<DirectedEdge>();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// The number of vertices in the edge-weighted digraph
|
||||
/// </summary>
|
||||
public int NumberOfVertices { get; private set; }
|
||||
/// <summary>
|
||||
/// The number of edges in the edge-weighted digraph
|
||||
/// </summary>
|
||||
public int NumberOfEdges { get; private set; }
|
||||
/// <summary>
|
||||
/// Adds the specified directed edge to the edge-weighted digraph
|
||||
/// </summary>
|
||||
/// <param name="edge">The DirectedEdge to add</param>
|
||||
/// <exception cref="ArgumentNullException">DirectedEdge cannot be null</exception>
|
||||
public void AddEdge(DirectedEdge edge)
|
||||
{
|
||||
if (edge == null)
|
||||
{
|
||||
throw new ArgumentNullException("edge", "DirectedEdge cannot be null");
|
||||
}
|
||||
|
||||
_adjacent[edge.From].AddLast(edge);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns an IEnumerable of the DirectedEdges incident from the specified vertex
|
||||
/// </summary>
|
||||
/// <param name="vertex">The vertex to find incident DirectedEdges from</param>
|
||||
/// <returns>IEnumerable of the DirectedEdges incident from the specified vertex</returns>
|
||||
public IEnumerable<DirectedEdge> Adjacent(int vertex)
|
||||
{
|
||||
return _adjacent[vertex];
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns an IEnumerable of all directed edges in the edge-weighted digraph
|
||||
/// </summary>
|
||||
/// <returns>IEnumerable of of all directed edges in the edge-weighted digraph</returns>
|
||||
public IEnumerable<DirectedEdge> Edges()
|
||||
{
|
||||
for (int v = 0; v < NumberOfVertices; v++)
|
||||
{
|
||||
foreach (DirectedEdge edge in _adjacent[v])
|
||||
{
|
||||
yield return edge;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns the number of directed edges incident from the specified vertex
|
||||
/// This is known as the outdegree of the vertex
|
||||
/// </summary>
|
||||
/// <param name="vertex">The vertex to find find the outdegree of</param>
|
||||
/// <returns>The number of directed edges incident from the specified vertex</returns>
|
||||
public int OutDegree(int vertex)
|
||||
{
|
||||
return _adjacent[vertex].Count;
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a string that represents the current edge-weighted digraph
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// A string that represents the current edge-weighted digraph
|
||||
/// </returns>
|
||||
public override string ToString()
|
||||
{
|
||||
var formattedString = new StringBuilder();
|
||||
formattedString.AppendFormat("{0} vertices, {1} edges {2}", NumberOfVertices, NumberOfEdges, Environment.NewLine);
|
||||
for (int v = 0; v < NumberOfVertices; v++)
|
||||
{
|
||||
formattedString.AppendFormat("{0}: ", v);
|
||||
foreach (DirectedEdge edge in _adjacent[v])
|
||||
{
|
||||
formattedString.AppendFormat("{0} ", edge.To);
|
||||
}
|
||||
formattedString.AppendLine();
|
||||
}
|
||||
return formattedString.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The DirectedEdge class represents a weighted edge in an edge-weighted directed graph.
|
||||
/// </summary>
|
||||
/// <seealso href="http://algs4.cs.princeton.edu/44sp/DirectedEdge.java.html">DirectedEdge class from Princeton University's Java Algorithms</seealso>
|
||||
public class DirectedEdge
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructs a directed edge from one specified vertex to another with the given weight
|
||||
/// </summary>
|
||||
/// <param name="from">The start vertex</param>
|
||||
/// <param name="to">The destination vertex</param>
|
||||
/// <param name="weight">The weight of the DirectedEdge</param>
|
||||
public DirectedEdge(uint from, uint to, double weight)
|
||||
{
|
||||
From = from;
|
||||
To = to;
|
||||
Weight = weight;
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns the destination vertex of the DirectedEdge
|
||||
/// </summary>
|
||||
public uint From { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns the start vertex of the DirectedEdge
|
||||
/// </summary>
|
||||
public uint To { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns the weight of the DirectedEdge
|
||||
/// </summary>
|
||||
public double Weight { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns a string that represents the current DirectedEdge
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// A string that represents the current DirectedEdge
|
||||
/// </returns>
|
||||
public override string ToString()
|
||||
{
|
||||
return $"From: {From}, To: {To}, Weight: {Weight}";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Framework.Collections
|
||||
{
|
||||
/// <summary>
|
||||
/// The IndexMinPriorityQueue class represents an indexed priority queue of generic keys.
|
||||
/// </summary>
|
||||
/// <seealso href="http://algs4.cs.princeton.edu/24pq/IndexMinPQ.java.html">IndexMinPQ class from Princeton University's Java Algorithms</seealso>
|
||||
/// <typeparam name="T">Type must implement IComparable interface</typeparam>
|
||||
public class IndexMinPriorityQueue<T> where T : IComparable<T>
|
||||
{
|
||||
private readonly T[] _keys;
|
||||
private readonly int _maxSize;
|
||||
private readonly int[] _pq;
|
||||
private readonly int[] _qp;
|
||||
/// <summary>
|
||||
/// Constructs an empty indexed priority queue with indices between 0 and the specified maxSize - 1
|
||||
/// </summary>
|
||||
/// <param name="maxSize">The maximum size of the indexed priority queue</param>
|
||||
public IndexMinPriorityQueue(int maxSize)
|
||||
{
|
||||
_maxSize = maxSize;
|
||||
Size = 0;
|
||||
_keys = new T[_maxSize + 1];
|
||||
_pq = new int[_maxSize + 1];
|
||||
_qp = new int[_maxSize + 1];
|
||||
for (int i = 0; i < _maxSize; i++)
|
||||
{
|
||||
_qp[i] = -1;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// The number of keys on this indexed priority queue
|
||||
/// </summary>
|
||||
public int Size { get; private set; }
|
||||
/// <summary>
|
||||
/// Is the indexed priority queue empty?
|
||||
/// </summary>
|
||||
/// <returns>True if the indexed priority queue is empty, false otherwise</returns>
|
||||
public bool IsEmpty()
|
||||
{
|
||||
return Size == 0;
|
||||
}
|
||||
/// <summary>
|
||||
/// Is the specified parameter i an index on the priority queue?
|
||||
/// </summary>
|
||||
/// <param name="i">An index to check for on the priority queue</param>
|
||||
/// <returns>True if the specified parameter i is an index on the priority queue, false otherwise</returns>
|
||||
public bool Contains(int i)
|
||||
{
|
||||
return _qp[i] != -1;
|
||||
}
|
||||
/// <summary>
|
||||
/// Associates the specified key with the specified index
|
||||
/// </summary>
|
||||
/// <param name="index">The index to associate the key with</param>
|
||||
/// <param name="key">The key to associate with the index</param>
|
||||
public void Insert(int index, T key)
|
||||
{
|
||||
Size++;
|
||||
_qp[index] = Size;
|
||||
_pq[Size] = index;
|
||||
_keys[index] = key;
|
||||
Swim(Size);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns an index associated with a minimum key
|
||||
/// </summary>
|
||||
/// <returns>An index associated with a minimum key</returns>
|
||||
public int MinIndex()
|
||||
{
|
||||
return _pq[1];
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a minimum key
|
||||
/// </summary>
|
||||
/// <returns>A minimum key</returns>
|
||||
public T MinKey()
|
||||
{
|
||||
return _keys[_pq[1]];
|
||||
}
|
||||
/// <summary>
|
||||
/// Removes a minimum key and returns its associated index
|
||||
/// </summary>
|
||||
/// <returns>An index associated with a minimum key that was removed</returns>
|
||||
public int DeleteMin()
|
||||
{
|
||||
int min = _pq[1];
|
||||
Exchange(1, Size--);
|
||||
Sink(1);
|
||||
_qp[min] = -1;
|
||||
_keys[_pq[Size + 1]] = default(T);
|
||||
_pq[Size + 1] = -1;
|
||||
return min;
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns the key associated with the specified index
|
||||
/// </summary>
|
||||
/// <param name="index">The index of the key to return</param>
|
||||
/// <returns>The key associated with the specified index</returns>
|
||||
public T KeyAt(int index)
|
||||
{
|
||||
return _keys[index];
|
||||
}
|
||||
/// <summary>
|
||||
/// Change the key associated with the specified index to the specified value
|
||||
/// </summary>
|
||||
/// <param name="index">The index of the key to change</param>
|
||||
/// <param name="key">Change the key associated with the specified index to this key</param>
|
||||
public void ChangeKey(int index, T key)
|
||||
{
|
||||
_keys[index] = key;
|
||||
Swim(_qp[index]);
|
||||
Sink(_qp[index]);
|
||||
}
|
||||
/// <summary>
|
||||
/// Decrease the key associated with the specified index to the specified value
|
||||
/// </summary>
|
||||
/// <param name="index">The index of the key to decrease</param>
|
||||
/// <param name="key">Decrease the key associated with the specified index to this key</param>
|
||||
public void DecreaseKey(int index, T key)
|
||||
{
|
||||
_keys[index] = key;
|
||||
Swim(_qp[index]);
|
||||
}
|
||||
/// <summary>
|
||||
/// Increase the key associated with the specified index to the specified value
|
||||
/// </summary>
|
||||
/// <param name="index">The index of the key to increase</param>
|
||||
/// <param name="key">Increase the key associated with the specified index to this key</param>
|
||||
public void IncreaseKey(int index, T key)
|
||||
{
|
||||
_keys[index] = key;
|
||||
Sink(_qp[index]);
|
||||
}
|
||||
/// <summary>
|
||||
/// Remove the key associated with the specified index
|
||||
/// </summary>
|
||||
/// <param name="index">The index of the key to remove</param>
|
||||
public void Delete(int index)
|
||||
{
|
||||
int i = _qp[index];
|
||||
Exchange(i, Size--);
|
||||
Swim(i);
|
||||
Sink(i);
|
||||
_keys[index] = default(T);
|
||||
_qp[index] = -1;
|
||||
}
|
||||
private bool Greater(int i, int j)
|
||||
{
|
||||
return _keys[_pq[i]].CompareTo(_keys[_pq[j]]) > 0;
|
||||
}
|
||||
private void Exchange(int i, int j)
|
||||
{
|
||||
int swap = _pq[i];
|
||||
_pq[i] = _pq[j];
|
||||
_pq[j] = swap;
|
||||
_qp[_pq[i]] = i;
|
||||
_qp[_pq[j]] = j;
|
||||
}
|
||||
private void Swim(int k)
|
||||
{
|
||||
while (k > 1 && Greater(k / 2, k))
|
||||
{
|
||||
Exchange(k, k / 2);
|
||||
k = k / 2;
|
||||
}
|
||||
}
|
||||
private void Sink(int k)
|
||||
{
|
||||
while (2 * k <= Size)
|
||||
{
|
||||
int j = 2 * k;
|
||||
if (j < Size && Greater(j, j + 1))
|
||||
{
|
||||
j++;
|
||||
}
|
||||
if (!Greater(k, j))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Exchange(k, j);
|
||||
k = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -603,7 +603,7 @@ namespace Framework.Constants
|
||||
CommandReloadSpellLootTemplate = 695,
|
||||
CommandReloadSpellLinkedSpell = 696,
|
||||
CommandReloadSpellPetAuras = 697,
|
||||
// 698 - Reuse
|
||||
CommandCharacterChangeaccount = 698,
|
||||
CommandReloadSpellProc = 699,
|
||||
CommandReloadSpellScripts = 700,
|
||||
CommandReloadSpellTargetPosition = 701,
|
||||
|
||||
@@ -408,7 +408,10 @@ namespace Framework.Constants
|
||||
GainParagonReputation = 206,
|
||||
EarnHonorXp = 207,
|
||||
RelicTalentUnlocked = 211,
|
||||
TotalTypes = 213
|
||||
ReachAccountHonorLevel = 213,
|
||||
HeartOfAzerothArtifactPowerEarned = 214,
|
||||
HeartOfAzerothLevelReached = 215,
|
||||
TotalTypes
|
||||
}
|
||||
|
||||
public enum CriteriaDataType
|
||||
|
||||
@@ -26,10 +26,11 @@ namespace Framework.Constants
|
||||
HasFollowsTerrain = 0x010, // Nyi
|
||||
Unk1 = 0x020,
|
||||
HasTargetRollPitchYaw = 0x040, // Nyi
|
||||
Unk2 = 0x080,
|
||||
HasAnimID = 0x080,
|
||||
Unk3 = 0x100,
|
||||
Unk4 = 0x200,
|
||||
HasCircularMovement = 0x400
|
||||
HasAnimKitID = 0x200,
|
||||
HasCircularMovement = 0x400,
|
||||
Unk5 = 0x800
|
||||
}
|
||||
|
||||
public enum AreaTriggerTypes
|
||||
|
||||
@@ -78,51 +78,51 @@ namespace Framework.Constants
|
||||
CharCreateAlliedRaceAchievement = 50,
|
||||
CharCreateLevelRequirementDemonHunter = 51,
|
||||
|
||||
CharDeleteInProgress = 52,
|
||||
CharDeleteSuccess = 53,
|
||||
CharDeleteFailed = 54,
|
||||
CharDeleteFailedLockedForTransfer = 55,
|
||||
CharDeleteFailedGuildLeader = 56,
|
||||
CharDeleteFailedArenaCaptain = 57,
|
||||
CharDeleteFailedHasHeirloomOrMail = 58,
|
||||
CharDeleteFailedUpgradeInProgress = 59,
|
||||
CharDeleteFailedHasWowToken = 60,
|
||||
CharDeleteFailedVasTransactionInProgress = 61,
|
||||
|
||||
CharLoginInProgress = 62,
|
||||
CharLoginSuccess = 63,
|
||||
CharLoginNoWorld = 64,
|
||||
CharLoginDuplicateCharacter = 65,
|
||||
CharLoginNoInstances = 66,
|
||||
CharLoginFailed = 67,
|
||||
CharLoginDisabled = 68,
|
||||
CharLoginNoCharacter = 69,
|
||||
CharLoginLockedForTransfer = 70,
|
||||
CharLoginLockedByBilling = 71,
|
||||
CharLoginLockedByMobileAh = 72,
|
||||
CharLoginTemporaryGmLock = 73,
|
||||
CharLoginLockedByCharacterUpgrade = 74,
|
||||
CharLoginLockedByRevokedCharacterUpgrade = 75,
|
||||
CharLoginLockedByRevokedVasTransaction = 76,
|
||||
CharLoginLockedByRestriction = 77,
|
||||
|
||||
CharNameSuccess = 78,
|
||||
CharNameFailure = 79,
|
||||
CharNameNoName = 80,
|
||||
CharNameTooShort = 81,
|
||||
CharNameTooLong = 82,
|
||||
CharNameInvalidCharacter = 83,
|
||||
CharNameMixedLanguages = 84,
|
||||
CharNameProfane = 85,
|
||||
CharNameReserved = 86,
|
||||
CharNameInvalidApostrophe = 87,
|
||||
CharNameMultipleApostrophes = 88,
|
||||
CharNameThreeConsecutive = 89,
|
||||
CharNameInvalidSpace = 90,
|
||||
CharNameConsecutiveSpaces = 91,
|
||||
CharNameRussianConsecutiveSilentCharacters = 92,
|
||||
CharNameRussianSilentCharacterAtBeginningOrEnd = 93,
|
||||
CharNameDeclensionDoesntMatchBaseName = 94
|
||||
CharCreateCharacterInCommunity = 52,
|
||||
CharDeleteInProgress = 53,
|
||||
CharDeleteSuccess = 54,
|
||||
CharDeleteFailed = 55,
|
||||
CharDeleteFailedLockedForTransfer = 56,
|
||||
CharDeleteFailedGuildLeader = 57,
|
||||
CharDeleteFailedArenaCaptain = 58,
|
||||
CharDeleteFailedHasHeirloomOrMail = 59,
|
||||
CharDeleteFailedUpgradeInProgress = 60,
|
||||
CharDeleteFailedHasWowToken = 61,
|
||||
CharDeleteFailedVasTransactionInProgress = 62,
|
||||
CharDeleteFailedCommunityOwner = 63,
|
||||
CharLoginInProgress = 64,
|
||||
CharLoginSuccess = 65,
|
||||
CharLoginNoWorld = 66,
|
||||
CharLoginDuplicateCharacter = 67,
|
||||
CharLoginNoInstances = 68,
|
||||
CharLoginFailed = 69,
|
||||
CharLoginDisabled = 70,
|
||||
CharLoginNoCharacter = 71,
|
||||
CharLoginLockedForTransfer = 72,
|
||||
CharLoginLockedByBilling = 73,
|
||||
CharLoginLockedByMobileAh = 74,
|
||||
CharLoginTemporaryGmLock = 75,
|
||||
CharLoginLockedByCharacterUpgrade = 76,
|
||||
CharLoginLockedByRevokedCharacterUpgrade = 77,
|
||||
CharLoginLockedByRevokedVasTransaction = 78,
|
||||
CharLoginLockedByRestriction = 79,
|
||||
CharNameSuccess = 80,
|
||||
CharNameFailure = 81,
|
||||
CharNameNoName = 82,
|
||||
CharNameTooShort = 83,
|
||||
CharNameTooLong = 84,
|
||||
CharNameInvalidCharacter = 85,
|
||||
CharNameMixedLanguages = 86,
|
||||
CharNameProfane = 87,
|
||||
CharNameReserved = 88,
|
||||
CharNameInvalidApostrophe = 89,
|
||||
CharNameMultipleApostrophes = 90,
|
||||
CharNameThreeConsecutive = 91,
|
||||
CharNameInvalidSpace = 92,
|
||||
CharNameConsecutiveSpaces = 93,
|
||||
CharNameRussianConsecutiveSilentCharacters = 94,
|
||||
CharNameRussianSilentCharacterAtBeginningOrEnd = 95,
|
||||
CharNameDeclensionDoesntMatchBaseName = 96
|
||||
}
|
||||
|
||||
public enum CharacterUndeleteResult
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
namespace Framework.Constants
|
||||
{
|
||||
public enum AbilytyLearnType : byte
|
||||
public enum AbilityLearnType : byte
|
||||
{
|
||||
OnSkillValue = 1, // Spell state will update depending on skill value
|
||||
OnSkillLearn = 2 // Spell will be learned/removed together with entire skill
|
||||
@@ -904,7 +904,7 @@ namespace Framework.Constants
|
||||
public enum BattlegroundBracketId // bracketId for level ranges
|
||||
{
|
||||
First = 0,
|
||||
Last = 11,
|
||||
Last = 12,
|
||||
Max
|
||||
}
|
||||
|
||||
@@ -1241,7 +1241,7 @@ namespace Framework.Constants
|
||||
Prime = 2
|
||||
}
|
||||
|
||||
public enum ItemSetFlags : byte
|
||||
public enum ItemSetFlags
|
||||
{
|
||||
LegacyInactive = 0x01,
|
||||
}
|
||||
@@ -1301,7 +1301,7 @@ namespace Framework.Constants
|
||||
|
||||
public enum LockType
|
||||
{
|
||||
Picklock = 1,
|
||||
Lockpicking = 1,
|
||||
Herbalism = 2,
|
||||
Mining = 3,
|
||||
DisarmTrap = 4,
|
||||
@@ -1317,14 +1317,34 @@ namespace Framework.Constants
|
||||
OpenAttacking = 14,
|
||||
Gahzridian = 15,
|
||||
Blasting = 16,
|
||||
SlowOpen = 17,
|
||||
SlowClose = 18,
|
||||
PvpOpen = 17,
|
||||
PvpClose = 18,
|
||||
Fishing = 19,
|
||||
Inscription = 20,
|
||||
OpenFromVehicle = 21,
|
||||
Archaelogy = 22,
|
||||
Archaeology = 22,
|
||||
PvpOpenFast = 23,
|
||||
LumberMill = 28
|
||||
LumberMill = 28,
|
||||
Skinning = 29,
|
||||
AncientMana = 30,
|
||||
Warboard = 31,
|
||||
ClassicHerbalism = 32,
|
||||
OutlandHerbalism = 33,
|
||||
NorthrendHerbalism = 34,
|
||||
CataclysmHerbalism = 35,
|
||||
PandariaHerbalism = 36,
|
||||
DraenorHerbalism = 37,
|
||||
LegionHerbalism = 38,
|
||||
KulTiranHerbalism = 39,
|
||||
ClassicMining = 40,
|
||||
OutlandMining = 41,
|
||||
NorthrendMining = 42,
|
||||
CataclysmMining = 43,
|
||||
PandariaMining = 44,
|
||||
DraenorMining = 45,
|
||||
LegionMining = 46,
|
||||
KulTiranMining = 47,
|
||||
Skinning2 = 48
|
||||
}
|
||||
|
||||
public enum MapTypes : byte
|
||||
@@ -1359,7 +1379,7 @@ namespace Framework.Constants
|
||||
IgnoreRestrictions = 0x20
|
||||
}
|
||||
|
||||
public enum MountFlags
|
||||
public enum MountFlags : ushort
|
||||
{
|
||||
CanPitch = 0x4, // client checks MOVEMENTFLAG2_FULL_SPEED_PITCHING
|
||||
CanSwim = 0x8, // client checks MOVEMENTFLAG_SWIMMING
|
||||
@@ -1416,7 +1436,7 @@ namespace Framework.Constants
|
||||
MonoValue = 0x400 // Skill always has value 1
|
||||
}
|
||||
|
||||
public enum SpellCategoryFlags : byte
|
||||
public enum SpellCategoryFlags : sbyte
|
||||
{
|
||||
CooldownScalesWithWeaponSpeed = 0x01, // unused
|
||||
CooldownStartsOnEvent = 0x04,
|
||||
@@ -1743,4 +1763,37 @@ namespace Framework.Constants
|
||||
Read = 456,
|
||||
Boot = 506
|
||||
}
|
||||
|
||||
public enum ExpectedStatType : byte
|
||||
{
|
||||
CreatureHealth = 0,
|
||||
PlayerHealth = 1,
|
||||
CreatureAutoAttackDps = 2,
|
||||
CreatureArmor = 3,
|
||||
PlayerMana = 4,
|
||||
PlayerPrimaryStat = 5,
|
||||
PlayerSecondaryStat = 6,
|
||||
ArmorConstant = 7,
|
||||
None = 8,
|
||||
CreatureSpellDamage = 9
|
||||
}
|
||||
|
||||
public enum UiMapSystem : sbyte
|
||||
{
|
||||
World = 0,
|
||||
Taxi = 1,
|
||||
Adventure = 2,
|
||||
Max = 3
|
||||
}
|
||||
|
||||
public enum UiMapType
|
||||
{
|
||||
Cosmic = 0,
|
||||
World = 1,
|
||||
Continent = 2,
|
||||
Zone = 3,
|
||||
Dungeon = 4,
|
||||
Micro = 5,
|
||||
Orphan = 6
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,6 +202,7 @@ namespace Framework.Constants
|
||||
NoXpAtKill = 0x40, // Creature Kill Not Provide Xp
|
||||
Trigger = 0x80, // Trigger Creature
|
||||
NoTaunt = 0x100, // Creature Is Immune To Taunt Auras And Effect Attack Me
|
||||
NoMoveFlagsUpdate = 0x200, // Creature won't update movement flags
|
||||
Worldevent = 0x4000, // Custom Flag For World Event Creatures (Left Room For Merging)
|
||||
Guard = 0x8000, // Creature Is Guard
|
||||
NoCrit = 0x20000, // Creature Can'T Do Critical Strikes
|
||||
@@ -214,7 +215,7 @@ namespace Framework.Constants
|
||||
ImmunityKnockback = 0x40000000, // creature is immune to knockback effects
|
||||
|
||||
DBAllowed = (InstanceBind | Civilian | NoParry | NoParryHasten | NoBlock | NoCrush | NoXpAtKill |
|
||||
Trigger | NoTaunt | Worldevent | NoCrit | NoSkillgain | TauntDiminish | AllDiminish | Guard |
|
||||
Trigger | NoTaunt | NoMoveFlagsUpdate | Worldevent | NoCrit | NoSkillgain | TauntDiminish | AllDiminish | Guard |
|
||||
IgnorePathfinding | NoPlayerDamageReq | ImmunityKnockback)
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,11 @@ namespace Framework.Constants
|
||||
KeystoneReceptacle = 49,
|
||||
GatheringNode = 50,
|
||||
ChallengeModeReward = 51,
|
||||
Max = 52
|
||||
Multi = 52,
|
||||
SiegeableMulti = 53,
|
||||
SiegeableMo = 54,
|
||||
PvpReward = 55,
|
||||
Max = 56
|
||||
}
|
||||
|
||||
public enum GameObjectState
|
||||
|
||||
@@ -259,7 +259,7 @@ namespace Framework.Constants
|
||||
StrInt = 74
|
||||
}
|
||||
|
||||
public enum ItemSpelltriggerType : byte
|
||||
public enum ItemSpelltriggerType : sbyte
|
||||
{
|
||||
OnUse = 0, // use after equip cooldown
|
||||
OnEquip = 1,
|
||||
@@ -347,6 +347,68 @@ namespace Framework.Constants
|
||||
OverrideRequiredLevel = 18
|
||||
}
|
||||
|
||||
enum ItemContext : byte
|
||||
{
|
||||
None = 0,
|
||||
DungeonNormal = 1,
|
||||
DungeonHeroic = 2,
|
||||
RaidNormal = 3,
|
||||
RaidRaidFinder = 4,
|
||||
RaidHeroic = 5,
|
||||
RaidMythic = 6,
|
||||
PvpUnranked1 = 7,
|
||||
PvpRanked1 = 8,
|
||||
ScenarioNormal = 9,
|
||||
ScenarioHeroic = 10,
|
||||
QuestReward = 11,
|
||||
Store = 12,
|
||||
TradeSkill = 13,
|
||||
Vendor = 14,
|
||||
BlackMarket = 15,
|
||||
ChallengeMode1 = 16,
|
||||
DungeonLvlUp1 = 17,
|
||||
DungeonLvlUp2 = 18,
|
||||
DungeonLvlUp3 = 19,
|
||||
DungeonLvlUp4 = 20,
|
||||
ForceToNone = 21,
|
||||
Timewalker = 22,
|
||||
DungeonMythic = 23,
|
||||
PvpHonorReward = 24,
|
||||
WorldQuest1 = 25,
|
||||
WorldQuest2 = 26,
|
||||
WorldQuest3 = 27,
|
||||
WorldQuest4 = 28,
|
||||
WorldQuest5 = 29,
|
||||
WorldQuest6 = 30,
|
||||
MissionReward1 = 31,
|
||||
MissionReward2 = 32,
|
||||
ChallengeMode2 = 33,
|
||||
ChallengeMode3 = 34,
|
||||
ChallengeModeJackpot = 35,
|
||||
WorldQuest7 = 36,
|
||||
WorldQuest8 = 37,
|
||||
PvpRanked2 = 38,
|
||||
PvpRanked3 = 39,
|
||||
PvpRanked4 = 40,
|
||||
PvpUnranked2 = 41,
|
||||
WorldQuest9 = 42,
|
||||
WorldQuest10 = 43,
|
||||
PvpRanked5 = 44,
|
||||
PvpRanked6 = 45,
|
||||
PvpRanked7 = 46,
|
||||
PvpUnranked3 = 47,
|
||||
PvpUnranked4 = 48,
|
||||
PvpUnranked5 = 49,
|
||||
PvpUnranked6 = 50,
|
||||
PvpUnranked7 = 51,
|
||||
PvpRanked8 = 52,
|
||||
WorldQuest11 = 53,
|
||||
WorldQuest12 = 54,
|
||||
WorldQuest13 = 55,
|
||||
PvpRankedJackpot = 56,
|
||||
TournamentRealm = 57
|
||||
}
|
||||
|
||||
public enum ItemEnchantmentType : byte
|
||||
{
|
||||
None = 0,
|
||||
@@ -905,79 +967,82 @@ namespace Framework.Constants
|
||||
TooFewToSplit = 26, // Tried To Split More Than Number In Stack.
|
||||
SplitFailed = 27, // Couldn'T Split Those Items.
|
||||
SpellFailedReagentsGeneric = 28, // Missing Reagent
|
||||
NotEnoughMoney = 29, // You Don'T Have Enough Money.
|
||||
NotABag = 30, // Not A Bag.
|
||||
DestroyNonemptyBag = 31, // You Can Only Do That With Empty Bags.
|
||||
NotOwner = 32, // You Don'T Own That Item.
|
||||
OnlyOneQuiver = 33, // You Can Only Equip One Quiver.
|
||||
NoBankSlot = 34, // You Must Purchase That Bag Slot First
|
||||
NoBankHere = 35, // You Are Too Far Away From A Bank.
|
||||
ItemLocked = 36, // Item Is Locked.
|
||||
GenericStunned = 37, // You Are Stunned
|
||||
PlayerDead = 38, // You Can'T Do That When You'Re Dead.
|
||||
ClientLockedOut = 39, // You Can'T Do That Right Now.
|
||||
InternalBagError = 40, // Internal Bag Error
|
||||
OnlyOneBolt = 41, // You Can Only Equip One Quiver.
|
||||
OnlyOneAmmo = 42, // You Can Only Equip One Ammo Pouch.
|
||||
CantWrapStackable = 43, // Stackable Items Can'T Be Wrapped.
|
||||
CantWrapEquipped = 44, // Equipped Items Can'T Be Wrapped.
|
||||
CantWrapWrapped = 45, // Wrapped Items Can'T Be Wrapped.
|
||||
CantWrapBound = 46, // Bound Items Can'T Be Wrapped.
|
||||
CantWrapUnique = 47, // Unique Items Can'T Be Wrapped.
|
||||
CantWrapBags = 48, // Bags Can'T Be Wrapped.
|
||||
LootGone = 49, // Already Looted
|
||||
InvFull = 50, // Inventory Is Full.
|
||||
BankFull = 51, // Your Bank Is Full
|
||||
VendorSoldOut = 52, // That Item Is Currently Sold Out.
|
||||
BagFull2 = 53, // That Bag Is Full.
|
||||
ItemNotFound2 = 54, // The Item Was Not Found.
|
||||
CantStack2 = 55, // This Item Cannot Stack.
|
||||
BagFull3 = 56, // That Bag Is Full.
|
||||
VendorSoldOut2 = 57, // That Item Is Currently Sold Out.
|
||||
ObjectIsBusy = 58, // That Object Is Busy.
|
||||
CantBeDisenchanted = 59,
|
||||
NotInCombat = 60, // You Can'T Do That While In Combat
|
||||
NotWhileDisarmed = 61, // You Can'T Do That While Disarmed
|
||||
BagFull4 = 62, // That Bag Is Full.
|
||||
CantEquipRank = 63, // You Don'T Have The Required Rank For That Item
|
||||
CantEquipReputation = 64, // You Don'T Have The Required Reputation For That Item
|
||||
TooManySpecialBags = 65, // You Cannot Equip Another Bag Of That Type
|
||||
LootCantLootThatNow = 66, // You Can'T Loot That Item Now.
|
||||
ItemUniqueEquippable = 67, // You Cannot Equip More Than One Of Those.
|
||||
VendorMissingTurnins = 68, // You Do Not Have The Required Items For That Purchase
|
||||
NotEnoughHonorPoints = 69, // You Don'T Have Enough Honor Points
|
||||
NotEnoughArenaPoints = 70, // You Don'T Have Enough Arena Points
|
||||
ItemMaxCountSocketed = 71, // You Have The Maximum Number Of Those Gems In Your Inventory Or Socketed Into Items.
|
||||
MailBoundItem = 72, // You Can'T Mail Soulbound Items.
|
||||
InternalBagError2 = 73, // Internal Bag Error
|
||||
BagFull5 = 74, // That Bag Is Full.
|
||||
ItemMaxCountEquippedSocketed = 75, // You Have The Maximum Number Of Those Gems Socketed Into Equipped Items.
|
||||
ItemUniqueEquippableSocketed = 76, // You Cannot Socket More Than One Of Those Gems Into A Single Item.
|
||||
TooMuchGold = 77, // At Gold Limit
|
||||
NotDuringArenaMatch = 78, // You Can'T Do That While In An Arena Match
|
||||
TradeBoundItem = 79, // You Can'T Trade A Soulbound Item.
|
||||
CantEquipRating = 80, // You Don'T Have The Personal, Team, Or Battleground Rating Required To Buy That Item
|
||||
EventAutoequipBindConfirm = 81,
|
||||
NotSameAccount = 82, // Account-Bound Items Can Only Be Given To Your Own Characters.
|
||||
NoOutput = 83,
|
||||
ItemMaxLimitCategoryCountExceededIs = 84, // You Can Only Carry %D %S
|
||||
ItemMaxLimitCategorySocketedExceededIs = 85, // You Can Only Equip %D |4item:Items In The %S Category
|
||||
ScalingStatItemLevelExceeded = 86, // Your Level Is Too High To Use That Item
|
||||
PurchaseLevelTooLow = 87, // You Must Reach Level %D To Purchase That Item.
|
||||
CantEquipNeedTalent = 88, // You Do Not Have The Required Talent To Equip That.
|
||||
ItemMaxLimitCategoryEquippedExceededIs = 89, // You Can Only Equip %D |4item:Items In The %S Category
|
||||
ShapeshiftFormCannotEquip = 90, // Cannot Equip Item In This Form
|
||||
ItemInventoryFullSatchel = 91, // Your Inventory Is Full. Your Satchel Has Been Delivered To Your Mailbox.
|
||||
ScalingStatItemLevelTooLow = 92, // Your Level Is Too Low To Use That Item
|
||||
CantBuyQuantity = 93, // You Can'T Buy The Specified Quantity Of That Item.
|
||||
ItemIsBattlePayLocked = 94, // Your purchased item is still waiting to be unlocked
|
||||
ReagentBankFull = 95, // Your reagent bank is full
|
||||
ReagentBankLocked = 96,
|
||||
WrongBagType3 = 97,
|
||||
CantUseItem = 98, // You can't use that item.
|
||||
CantBeObliterated = 99, // You can't obliterate that item
|
||||
GuildBankConjuredItem = 100,// You cannot store conjured items in the guild bank
|
||||
CantDoThatRightNow = 101,// You can't do that right now.
|
||||
CantTradeGold = 29, // Gold May Only Be Offered By One Trader.
|
||||
NotEnoughMoney = 30, // You Don'T Have Enough Money.
|
||||
NotABag = 31, // Not A Bag.
|
||||
DestroyNonemptyBag = 32, // You Can Only Do That With Empty Bags.
|
||||
NotOwner = 33, // You Don'T Own That Item.
|
||||
OnlyOneQuiver = 34, // You Can Only Equip One Quiver.
|
||||
NoBankSlot = 35, // You Must Purchase That Bag Slot First
|
||||
NoBankHere = 36, // You Are Too Far Away From A Bank.
|
||||
ItemLocked = 37, // Item Is Locked.
|
||||
GenericStunned = 38, // You Are Stunned
|
||||
PlayerDead = 39, // You Can'T Do That When You'Re Dead.
|
||||
ClientLockedOut = 40, // You Can'T Do That Right Now.
|
||||
InternalBagError = 41, // Internal Bag Error
|
||||
OnlyOneBolt = 42, // You Can Only Equip One Quiver.
|
||||
OnlyOneAmmo = 43, // You Can Only Equip One Ammo Pouch.
|
||||
CantWrapStackable = 44, // Stackable Items Can'T Be Wrapped.
|
||||
CantWrapEquipped = 45, // Equipped Items Can'T Be Wrapped.
|
||||
CantWrapWrapped = 46, // Wrapped Items Can'T Be Wrapped.
|
||||
CantWrapBound = 47, // Bound Items Can'T Be Wrapped.
|
||||
CantWrapUnique = 48, // Unique Items Can'T Be Wrapped.
|
||||
CantWrapBags = 49, // Bags Can'T Be Wrapped.
|
||||
LootGone = 50, // Already Looted
|
||||
InvFull = 51, // Inventory Is Full.
|
||||
BankFull = 52, // Your Bank Is Full
|
||||
VendorSoldOut = 53, // That Item Is Currently Sold Out.
|
||||
BagFull2 = 54, // That Bag Is Full.
|
||||
ItemNotFound2 = 55, // The Item Was Not Found.
|
||||
CantStack2 = 56, // This Item Cannot Stack.
|
||||
BagFull3 = 57, // That Bag Is Full.
|
||||
VendorSoldOut2 = 58, // That Item Is Currently Sold Out.
|
||||
ObjectIsBusy = 59, // That Object Is Busy.
|
||||
CantBeDisenchanted = 60, // Item Cannot Be Disenchanted
|
||||
NotInCombat = 61, // You Can'T Do That While In Combat
|
||||
NotWhileDisarmed = 62, // You Can'T Do That While Disarmed
|
||||
BagFull4 = 63, // That Bag Is Full.
|
||||
CantEquipRank = 64, // You Don'T Have The Required Rank For That Item
|
||||
CantEquipReputation = 65, // You Don'T Have The Required Reputation For That Item
|
||||
TooManySpecialBags = 66, // You Cannot Equip Another Bag Of That Type
|
||||
LootCantLootThatNow = 67, // You Can'T Loot That Item Now.
|
||||
ItemUniqueEquippable = 68, // You Cannot Equip More Than One Of Those.
|
||||
VendorMissingTurnins = 69, // You Do Not Have The Required Items For That Purchase
|
||||
NotEnoughHonorPoints = 70, // You Don'T Have Enough Honor Points
|
||||
NotEnoughArenaPoints = 71, // You Don'T Have Enough Arena Points
|
||||
ItemMaxCountSocketed = 72, // You Have The Maximum Number Of Those Gems In Your Inventory Or Socketed Into Items.
|
||||
MailBoundItem = 73, // You Can'T Mail Soulbound Items.
|
||||
InternalBagError2 = 74, // Internal Bag Error
|
||||
BagFull5 = 75, // That Bag Is Full.
|
||||
ItemMaxCountEquippedSocketed = 76, // You Have The Maximum Number Of Those Gems Socketed Into Equipped Items.
|
||||
ItemUniqueEquippableSocketed = 77, // You Cannot Socket More Than One Of Those Gems Into A Single Item.
|
||||
TooMuchGold = 78, // At Gold Limit
|
||||
NotDuringArenaMatch = 79, // You Can'T Do That While In An Arena Match
|
||||
TradeBoundItem = 80, // You Can'T Trade A Soulbound Item.
|
||||
CantEquipRating = 81, // You Don'T Have The Personal, Team, Or Battleground Rating Required To Buy That Item
|
||||
EventAutoequipBindConfirm = 82,
|
||||
NotSameAccount = 83, // Account-Bound Items Can Only Be Given To Your Own Characters.
|
||||
EquipNone3 = 84,
|
||||
ItemMaxLimitCategoryCountExceededIs = 85, // You Can Only Carry %D %S
|
||||
ItemMaxLimitCategorySocketedExceededIs = 86, // You Can Only Equip %D |4item:Items In The %S Category
|
||||
ScalingStatItemLevelExceeded = 87, // Your Level Is Too High To Use That Item
|
||||
PurchaseLevelTooLow = 88, // You Must Reach Level %D To Purchase That Item.
|
||||
CantEquipNeedTalent = 89, // You Do Not Have The Required Talent To Equip That.
|
||||
ItemMaxLimitCategoryEquippedExceededIs = 90, // You Can Only Equip %D |4item:Items In The %S Category
|
||||
ShapeshiftFormCannotEquip = 91, // Cannot Equip Item In This Form
|
||||
ItemInventoryFullSatchel = 92, // Your Inventory Is Full. Your Satchel Has Been Delivered To Your Mailbox.
|
||||
ScalingStatItemLevelTooLow = 93, // Your Level Is Too Low To Use That Item
|
||||
CantBuyQuantity = 94, // You Can'T Buy The Specified Quantity Of That Item.
|
||||
ItemIsBattlePayLocked = 95, // Your Purchased Item Is Still Waiting To Be Unlocked
|
||||
ReagentBankFull = 96, // Your Reagent Bank Is Full
|
||||
ReagentBankLocked = 97,
|
||||
WrongBagType3 = 98, // That Item Doesn'T Go In That Container.
|
||||
CantUseItem = 99, // You Can'T Use That Item.
|
||||
CantBeObliterated = 100,// You Can'T Obliterate That Item
|
||||
GuildBankConjuredItem = 101,// You Cannot Store Conjured Items In The Guild Bank
|
||||
CantDoThatRightNow = 102,// You Can'T Do That Right Now.
|
||||
BagFull6 = 103,// That Bag Is Full.
|
||||
CantBeScrapped = 104,// You Can'T Scrap That Item
|
||||
}
|
||||
|
||||
public enum BuyResult
|
||||
|
||||
@@ -42,8 +42,14 @@ namespace Framework.Constants
|
||||
PandarenNeutral = 42,
|
||||
PandarenAlliance = 43,
|
||||
PandarenHorde = 44,
|
||||
Rikkitun = 168,
|
||||
Addon = -1 // Used By Addons, In 2.4.0 Not Exist, Replaced By Messagetype?
|
||||
Sprite = 168,
|
||||
ShathYar = 178,
|
||||
Nerglish = 179,
|
||||
Moonkin = 180,
|
||||
Shalassian = 181,
|
||||
Thalassian2 = 182,
|
||||
Addon = 183,
|
||||
AddonLogged = 184
|
||||
}
|
||||
|
||||
public enum CypherStrings
|
||||
@@ -946,7 +952,8 @@ namespace Framework.Constants
|
||||
AccountBnetNotLinked = 1189,
|
||||
DisallowTicketsConfig = 1190,
|
||||
BanExists = 1191,
|
||||
// Room For More Level 3 1192-1198 Not Used
|
||||
ChangeAccountSuccess = 1192,
|
||||
// Room For More Level 3 1193-1198 Not Used
|
||||
|
||||
// Debug Commands
|
||||
DebugAreatriggerLeft = 1999,
|
||||
|
||||
@@ -182,4 +182,10 @@ namespace Framework.Constants
|
||||
CannotEnterZoneInCombat, // A Boss Encounter Is Currently In Progress On The Target Map
|
||||
CannotEnterUnspecifiedReason
|
||||
}
|
||||
|
||||
public enum ModelIgnoreFlags
|
||||
{
|
||||
Nothing = 0x00,
|
||||
M2 = 0x01
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,29 +22,35 @@ namespace Framework.Constants
|
||||
Object = 0,
|
||||
Item = 1,
|
||||
Container = 2,
|
||||
Unit = 3,
|
||||
Player = 4,
|
||||
GameObject = 5,
|
||||
DynamicObject = 6,
|
||||
Corpse = 7,
|
||||
AreaTrigger = 8,
|
||||
SceneObject = 9,
|
||||
Conversation = 10
|
||||
AzeriteEmpoweredItem = 3,
|
||||
AzeriteItem = 4,
|
||||
Unit = 5,
|
||||
Player = 6,
|
||||
ActivePlayer = 7,
|
||||
GameObject = 8,
|
||||
DynamicObject = 9,
|
||||
Corpse = 10,
|
||||
AreaTrigger = 11,
|
||||
SceneObject = 12,
|
||||
Conversation = 13
|
||||
}
|
||||
|
||||
public enum TypeMask
|
||||
{
|
||||
Object = 0x01,
|
||||
Item = 0x02,
|
||||
Container = Item | 0x04,
|
||||
Unit = 0x08,
|
||||
Player = 0x10,
|
||||
GameObject = 0x20,
|
||||
DynamicObject = 0x40,
|
||||
Corpse = 0x80,
|
||||
AreaTrigger = 0x100,
|
||||
Sceneobject = 0x200,
|
||||
Conversation = 0x400,
|
||||
Container = 0x04,
|
||||
AzeriteEmpoweredItem = 0x08,
|
||||
AzeriteItem = 0x10,
|
||||
Unit = 0x20,
|
||||
Player = 0x40,
|
||||
ActivePlayer = 0x80,
|
||||
GameObject = 0x100,
|
||||
DynamicObject = 0x200,
|
||||
Corpse = 0x400,
|
||||
AreaTrigger = 0x800,
|
||||
Sceneobject = 0x1000,
|
||||
Conversation = 0x2000,
|
||||
Seer = Player | Unit | DynamicObject
|
||||
}
|
||||
|
||||
@@ -97,7 +103,8 @@ namespace Framework.Constants
|
||||
BattlePet = 44,
|
||||
CommerceObj = 45,
|
||||
ClientSession = 46,
|
||||
Cast = 47
|
||||
Cast = 47,
|
||||
ClientConnection = 48
|
||||
}
|
||||
|
||||
public enum NotifyFlags
|
||||
@@ -131,7 +138,7 @@ namespace Framework.Constants
|
||||
// uses this category
|
||||
}
|
||||
|
||||
public enum SummonType: byte
|
||||
public enum SummonType
|
||||
{
|
||||
None = 0,
|
||||
Pet = 1,
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace Framework.Constants
|
||||
DeclensionDoesntMatchBaseName = 16
|
||||
}
|
||||
|
||||
public enum PetStableinfo
|
||||
public enum PetStableinfo : byte
|
||||
{
|
||||
Active = 1,
|
||||
Inactive = 2
|
||||
|
||||
@@ -24,8 +24,7 @@ namespace Framework.Constants
|
||||
public const int MaxTalentTiers = 7;
|
||||
public const int MaxTalentColumns = 3;
|
||||
public const int MaxTalentRank = 5;
|
||||
public const int MaxPvpTalentTiers = 6;
|
||||
public const int MaxPvpTalentColumns = 3;
|
||||
public const int MaxPvpTalentSlots = 4;
|
||||
public const int MinSpecializationLevel = 10;
|
||||
public const int MaxSpecializations = 4;
|
||||
public const int MaxMasterySpells = 2;
|
||||
@@ -46,7 +45,7 @@ namespace Framework.Constants
|
||||
public const uint infinityCooldownDelayCheck = Time.Month / 2;
|
||||
public const int MaxPlayerSummonDelay = 2 * Time.Minute;
|
||||
|
||||
public const int TaxiMaskSize = 258;
|
||||
public const int TaxiMaskSize = 286;
|
||||
|
||||
// corpse reclaim times
|
||||
public const int DeathExpireStep = (5 * Time.Minute);
|
||||
@@ -59,17 +58,13 @@ namespace Framework.Constants
|
||||
public const int MaxRunes = 7;
|
||||
public const int MaxRechargingRunes = 3;
|
||||
|
||||
public static uint[] DefaultTalentRowLevels = { 15, 30, 45, 60, 75, 90, 100 };
|
||||
public static uint[] DKTalentRowLevels = { 57, 58, 59, 60, 75, 90, 100 };
|
||||
//public static uint[] DHTalentRowLevels = { 99, 100, 102, 104, 106, 108, 110 };
|
||||
|
||||
public const int CustomDisplaySize = 3;
|
||||
|
||||
public const int ArtifactsAllWeaponsGeneralWeaponEquippedPassive = 197886;
|
||||
|
||||
public const int MaxArtifactTier = 1;
|
||||
|
||||
public const byte MaxHonorLevel = 50;
|
||||
public const int MaxHonorLevel = 500;
|
||||
public const byte LevelMinHonor = 110;
|
||||
public const uint SpellPvpRulesEnabled = 134735;
|
||||
}
|
||||
@@ -418,7 +413,7 @@ namespace Framework.Constants
|
||||
GM = 0x08,
|
||||
Ghost = 0x10,
|
||||
Resting = 0x20,
|
||||
Unk6 = 0x40,
|
||||
VoiceChat = 0x40,
|
||||
Unk7 = 0x80,
|
||||
ContestedPVP = 0x100,
|
||||
InPVP = 0x200,
|
||||
@@ -449,7 +444,8 @@ namespace Framework.Constants
|
||||
public enum PlayerFlagsEx
|
||||
{
|
||||
ReagentBankUnlocked = 0x01,
|
||||
MercenaryMode = 0x02
|
||||
MercenaryMode = 0x02,
|
||||
ArtifactForgeCheat = 0x04
|
||||
}
|
||||
|
||||
public enum CharacterFlags : uint
|
||||
@@ -724,9 +720,9 @@ namespace Framework.Constants
|
||||
|
||||
public enum AttackSwingErr
|
||||
{
|
||||
CantAttack = 0,
|
||||
NotInRange = 0,
|
||||
BadFacing = 1,
|
||||
NotInRange = 2,
|
||||
CantAttack = 2,
|
||||
DeadTarget = 3
|
||||
}
|
||||
|
||||
|
||||
@@ -315,6 +315,11 @@ namespace Framework.Constants
|
||||
ClearProgressOfCriteriaTreeObjectivesOnAccept = 0x1000000
|
||||
}
|
||||
|
||||
public enum QuestFlagsEx2
|
||||
{
|
||||
NoWarModeBonus = 0x2
|
||||
}
|
||||
|
||||
public enum QuestSpecialFlags
|
||||
{
|
||||
None = 0x00,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -273,7 +273,7 @@ namespace Framework.Constants
|
||||
SetOrientation = 66, //
|
||||
CreateTimedEvent = 67, // Id, Initialmin, Initialmax, Repeatmin(Only If It Repeats), Repeatmax(Only If It Repeats), Chance
|
||||
Playmovie = 68, // Entry
|
||||
MoveToPos = 69, // PointId, transport, disablePathfinding
|
||||
MoveToPos = 69, // PointId, transport, disablePathfinding, ContactDistance
|
||||
RespawnTarget = 70, //
|
||||
Equip = 71, // Entry, Slotmask Slot1, Slot2, Slot3 , Only Slots With Mask Set Will Be Sent To Client, Bits Are 1, 2, 4, Leaving Mask 0 Is Defaulted To Mask 7 (Send All), Slots1-3 Are Only Used If No Entry Is Set
|
||||
CloseGossip = 72, // None
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Framework.Constants
|
||||
{
|
||||
public struct SkillConst
|
||||
{
|
||||
public const int MaxPlayerSkills = 128;
|
||||
public const int MaxPlayerSkills = 256;
|
||||
public const uint MaxSkillStep = 15;
|
||||
}
|
||||
|
||||
@@ -34,23 +34,22 @@ namespace Framework.Constants
|
||||
Maces = 54,
|
||||
TwoHandedSwords = 55,
|
||||
Defense = 95,
|
||||
LangCommon = 98,
|
||||
LanguageCommon = 98,
|
||||
RacialDwarf = 101,
|
||||
LangOrcish = 109,
|
||||
LangDwarven = 111,
|
||||
LangDarnassian = 113,
|
||||
LangTaurahe = 115,
|
||||
LanguageOrcish = 109,
|
||||
LanguageDwarven = 111,
|
||||
LanguageDarnassian = 113,
|
||||
LanguageTaurahe = 115,
|
||||
DualWield = 118,
|
||||
RacialTauren = 124,
|
||||
RacialOrc = 125,
|
||||
RacialNightElf = 126,
|
||||
FirstAid = 129,
|
||||
Staves = 136,
|
||||
LangThalassian = 137,
|
||||
LangDraconic = 138,
|
||||
LangDemonTongue = 139,
|
||||
LangTitan = 140,
|
||||
LangOldTongue = 141,
|
||||
LanguageThalassian = 137,
|
||||
LanguageDraconic = 138,
|
||||
LanguageDemonTongue = 139,
|
||||
LanguageTitan = 140,
|
||||
LanguageOldTongue = 141,
|
||||
Survival = 142,
|
||||
HorseRiding = 148,
|
||||
WolfRiding = 149,
|
||||
@@ -95,8 +94,8 @@ namespace Framework.Constants
|
||||
PetTurtle = 251,
|
||||
PetGenericHunter = 270,
|
||||
PlateMail = 293,
|
||||
LangGnomish = 313,
|
||||
LangTroll = 315,
|
||||
LanguageGnomish = 313,
|
||||
LanguageTroll = 315,
|
||||
Enchanting = 333,
|
||||
Fishing = 356,
|
||||
Skinning = 393,
|
||||
@@ -112,7 +111,7 @@ namespace Framework.Constants
|
||||
PetHyena = 654,
|
||||
PetBirdOfPrey = 655,
|
||||
PetWindSerpent = 656,
|
||||
LangForsaken = 673,
|
||||
LanguageForsaken = 673,
|
||||
KodoRiding = 713,
|
||||
RacialTroll = 733,
|
||||
RacialGnome = 753,
|
||||
@@ -120,7 +119,7 @@ namespace Framework.Constants
|
||||
Jewelcrafting = 755,
|
||||
RacialBloodElf = 756,
|
||||
PetEventRemoteControl = 758,
|
||||
LangDraenei = 759,
|
||||
LanguageDraenei = 759,
|
||||
RacialDraenei = 760,
|
||||
PetFelguard = 761,
|
||||
Riding = 762,
|
||||
@@ -146,8 +145,8 @@ namespace Framework.Constants
|
||||
PetExoticSpiritBeast = 788,
|
||||
RacialWorgen = 789,
|
||||
RacialGoblin = 790,
|
||||
LangGilnean = 791,
|
||||
LangGoblin = 792,
|
||||
LanguageGilnean = 791,
|
||||
LanguageGoblin = 792,
|
||||
Archaeology = 794,
|
||||
Hunter = 795,
|
||||
DeathKnight = 796,
|
||||
@@ -159,7 +158,7 @@ namespace Framework.Constants
|
||||
AllGlyphs = 810,
|
||||
PetDog = 811,
|
||||
PetMonkey = 815,
|
||||
PetShaleSpider = 817,
|
||||
PetExoticShaleSpider = 817,
|
||||
Beetle = 818,
|
||||
AllGuildPerks = 821,
|
||||
PetHydra = 824,
|
||||
@@ -168,9 +167,7 @@ namespace Framework.Constants
|
||||
Warlock = 849,
|
||||
RacialPandaren = 899,
|
||||
Mage = 904,
|
||||
LangPandarenNeutral = 905,
|
||||
LangPandarenAlliance = 906,
|
||||
LangPandarenHorde = 907,
|
||||
LanguagePandarenNeutral = 905,
|
||||
Rogue = 921,
|
||||
Shaman = 924,
|
||||
FelImp = 927,
|
||||
@@ -190,17 +187,16 @@ namespace Framework.Constants
|
||||
WayOfTheBrew = 980,
|
||||
ApprenticeCooking = 981,
|
||||
JourneymanCookbook = 982,
|
||||
Porcupine = 983,
|
||||
Crane = 984,
|
||||
WaterStrider = 985,
|
||||
PetRodent = 983,
|
||||
PetCrane = 984,
|
||||
PetWaterStrider = 985,
|
||||
PetExoticQuilen = 986,
|
||||
PetGoat = 987,
|
||||
Basilisk = 988,
|
||||
PetBasilisk = 988,
|
||||
NoPlayers = 999,
|
||||
Direhorn = 1305,
|
||||
PetDirehorn = 1305,
|
||||
PetPrimalStormElemental = 1748,
|
||||
PetWaterElementalMinorTalentVersion = 1777,
|
||||
PetExoticRylak = 1818,
|
||||
PetRiverbeast = 1819,
|
||||
Unused = 1830,
|
||||
DemonHunter = 1848,
|
||||
@@ -212,6 +208,127 @@ namespace Framework.Constants
|
||||
Warglaives = 2152,
|
||||
PetMechanical = 2189,
|
||||
PetAbomination = 2216,
|
||||
PetOxen = 2279,
|
||||
PetScalehide = 2280,
|
||||
PetFeathermane = 2361,
|
||||
RacialNightborne = 2419,
|
||||
RacialHighmountainTauren = 2420,
|
||||
RacialLightforgedDraenei = 2421,
|
||||
RacialVoidElf = 2423,
|
||||
KulTiranBlacksmithing = 2437,
|
||||
LegionBlacksmithing = 2454,
|
||||
LanguageShalassian = 2464,
|
||||
LanguageThalassian2 = 2465,
|
||||
DraenorBlacksmithing = 2472,
|
||||
PandariaBlacksmithing = 2473,
|
||||
CataclysmBlacksmithing = 2474,
|
||||
NorthrendBlacksmithing = 2475,
|
||||
OutlandBlacksmithing = 2476,
|
||||
Blacksmithing2 = 2477,
|
||||
KulTiranAlchemy = 2478,
|
||||
LegionAlchemy = 2479,
|
||||
DraenorAlchemy = 2480,
|
||||
PandariaAlchemy = 2481,
|
||||
CataclysmAlchemy = 2482,
|
||||
NorthrendAlchemy = 2483,
|
||||
OutlandAlchemy = 2484,
|
||||
Alchemy2 = 2485,
|
||||
KulTiranEnchanting = 2486,
|
||||
LegionEnchanting = 2487,
|
||||
DraenorEnchanting = 2488,
|
||||
PandariaEnchanting = 2489,
|
||||
CataclysmEnchanting = 2491,
|
||||
NorthrendEnchanting = 2492,
|
||||
OutlandEnchanting = 2493,
|
||||
Enchanting2 = 2494,
|
||||
KulTiranEngineering = 2499,
|
||||
LegionEngineering = 2500,
|
||||
DraenorEngineering = 2501,
|
||||
PandariaEngineering = 2502,
|
||||
CataclysmEngineering = 2503,
|
||||
NorthrendEngineering = 2504,
|
||||
OutlandEngineering = 2505,
|
||||
Engineering2 = 2506,
|
||||
KulTiranInscription = 2507,
|
||||
LegionInscription = 2508,
|
||||
DraenorInscription = 2509,
|
||||
PandariaInscription = 2510,
|
||||
CataclysmInscription = 2511,
|
||||
NorthrendInscription = 2512,
|
||||
OutlandInscription = 2513,
|
||||
Inscription2 = 2514,
|
||||
KulTiranJewelcrafting = 2517,
|
||||
LegionJewelcrafting = 2518,
|
||||
DraenorJewelcrafting = 2519,
|
||||
PandariaJewelcrafting = 2520,
|
||||
CataclysmJewelcrafting = 2521,
|
||||
NorthrendJewelcrafting = 2522,
|
||||
OutlandJewelcrafting = 2523,
|
||||
Jewelcrafting2 = 2524,
|
||||
KulTiranLeatherworking = 2525,
|
||||
LegionLeatherworking = 2526,
|
||||
DraenorLeatherworking = 2527,
|
||||
PandariaLeatherworking = 2528,
|
||||
CataclysmLeatherworking = 2529,
|
||||
NorthrendLeatherworking = 2530,
|
||||
OutlandLeatherworking = 2531,
|
||||
Leatherworking2 = 2532,
|
||||
KulTiranTailoring = 2533,
|
||||
LegionTailoring = 2534,
|
||||
DraenorTailoring = 2535,
|
||||
PandariaTailoring = 2536,
|
||||
CataclysmTailoring = 2537,
|
||||
NorthrendTailoring = 2538,
|
||||
OutlandTailoring = 2539,
|
||||
Tailoring2 = 2540,
|
||||
KulTiranCooking = 2541,
|
||||
LegionCooking = 2542,
|
||||
DraenorCooking = 2543,
|
||||
PandariaCooking = 2544,
|
||||
CataclysmCooking = 2545,
|
||||
NorthrendCooking = 2546,
|
||||
OutlandCooking = 2547,
|
||||
Cooking2 = 2548,
|
||||
KulTiranHerbalism = 2549,
|
||||
LegionHerbalism = 2550,
|
||||
DraenorHerbalism = 2551,
|
||||
PandariaHerbalism = 2552,
|
||||
CataclysmHerbalism = 2553,
|
||||
NorthrendHerbalism = 2554,
|
||||
OutlandHerbalism = 2555,
|
||||
Herbalism2 = 2556,
|
||||
KulTiranSkinning = 2557,
|
||||
LegionSkinning = 2558,
|
||||
DraenorSkinning = 2559,
|
||||
PandariaSkinning = 2560,
|
||||
CataclysmSkinning = 2561,
|
||||
NorthrendSkinning = 2562,
|
||||
OutlandSkinning = 2563,
|
||||
Skinning2 = 2564,
|
||||
KulTiranMining = 2565,
|
||||
LegionMining = 2566,
|
||||
DraenorMining = 2567,
|
||||
PandariaMining = 2568,
|
||||
CataclysmMining = 2569,
|
||||
NorthrendMining = 2570,
|
||||
OutlandMining = 2571,
|
||||
Mining2 = 2572,
|
||||
KulTiranFishing = 2585,
|
||||
LegionFishing = 2586,
|
||||
DraenorFishing = 2587,
|
||||
PandariaFishing = 2588,
|
||||
CataclysmFishing = 2589,
|
||||
NorthrendFishing = 2590,
|
||||
OutlandFishing = 2591,
|
||||
Fishing2 = 2592,
|
||||
RacialDarkIronDwarf = 2597,
|
||||
RacialMagHarOrc = 2598,
|
||||
PetLizard = 2703,
|
||||
PetHorse = 2704,
|
||||
PetExoticPterrordax = 2705,
|
||||
PetToad = 2706,
|
||||
PetExoticKrolusk = 2707,
|
||||
SecondPetHunter = 2716
|
||||
}
|
||||
|
||||
public enum SkillState
|
||||
@@ -222,7 +339,7 @@ namespace Framework.Constants
|
||||
Deleted = 3
|
||||
}
|
||||
|
||||
public enum SkillCategory : byte
|
||||
public enum SkillCategory : sbyte
|
||||
{
|
||||
Unk = 0,
|
||||
Attributes = 5,
|
||||
|
||||
@@ -513,7 +513,9 @@ namespace Framework.Constants
|
||||
Unk489 = 489,
|
||||
Unk490 = 490,
|
||||
Unk491 = 491,
|
||||
Total = 492
|
||||
Unk492 = 492,
|
||||
Unk493 = 493,
|
||||
Total
|
||||
}
|
||||
|
||||
public enum AuraEffectHandleModes
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace Framework.Constants
|
||||
Cast = 0x04, // 2 Cast Any Spells
|
||||
Move = 0x08, // 3 Removed By Any Movement
|
||||
Turning = 0x10, // 4 Removed By Any Turning
|
||||
Jump = 0x20, // 5 Removed By Entering Combat
|
||||
Jump = 0x20, // 5 Removed By Jumping
|
||||
NotMounted = 0x40, // 6 Removed By Dismounting
|
||||
NotAbovewater = 0x80, // 7 Removed By Entering Water
|
||||
NotUnderwater = 0x100, // 8 Removed By Leaving Water
|
||||
@@ -687,23 +687,29 @@ namespace Framework.Constants
|
||||
NotWhileMercenary = 270,
|
||||
SpecDisabled = 271,
|
||||
CantBeObliterated = 272,
|
||||
FollowerClassSpecCap = 273,
|
||||
TransportNotReady = 274,
|
||||
TransmogSetAlreadyKnown = 275,
|
||||
DisabledByAuraLabel = 276,
|
||||
DisabledByMaxUsableLevel = 277,
|
||||
SpellAlreadyKnown = 278,
|
||||
MustKnowSupercedingSpell = 279,
|
||||
YouCannotUseThatInPvpInstance = 280,
|
||||
NoArtifactEquipped = 281,
|
||||
WrongArtifactEquipped = 282,
|
||||
TargetIsUntargetableByAnyone = 283,
|
||||
SpellEffectFailed = 284,
|
||||
NeedAllPartyMembers = 285,
|
||||
ArtifactAtFullPower = 286,
|
||||
ApItemFromPreviousTier = 287,
|
||||
AreaTriggerCreation = 288,
|
||||
Unknown = 289,
|
||||
CantBeScrapped = 273,
|
||||
FollowerClassSpecCap = 274,
|
||||
TransportNotReady = 275,
|
||||
TransmogSetAlreadyKnown = 276,
|
||||
DisabledByAuraLabel = 277,
|
||||
DisabledByMaxUsableLevel = 278,
|
||||
SpellAlreadyKnown = 279,
|
||||
MustKnowSupercedingSpell = 280,
|
||||
YouCannotUseThatInPvpInstance = 281,
|
||||
NoArtifactEquipped = 282,
|
||||
WrongArtifactEquipped = 283,
|
||||
TargetIsUntargetableByAnyone = 284,
|
||||
SpellEffectFailed = 285,
|
||||
NeedAllPartyMembers = 286,
|
||||
ArtifactAtFullPower = 287,
|
||||
ApItemFromPreviousTier = 288,
|
||||
AreaTriggerCreation = 289,
|
||||
AzeriteEmpoweredOnly = 290,
|
||||
AzeriteEmpoweredNoChoicesToUndo = 291,
|
||||
WrongFaction = 292,
|
||||
NotEnoughCurrency = 293,
|
||||
BattleForAzerothRidingRequirement = 294,
|
||||
Unknown = 295,
|
||||
|
||||
// Ok Cast Value - Here In Case A Future Version Removes Success And We Need To Use A Custom Value (Not Sent To Client Either Way)
|
||||
SpellCastOk = Success
|
||||
@@ -1030,6 +1036,7 @@ namespace Framework.Constants
|
||||
CannotRitualOfDoomWhileSummoningSiters = 317, // You Cannot Perform The Ritual Of Doom While Attempting To Summon The Sisters.
|
||||
LearnedAllThatYouCanAboutYourArtifact = 318, // You Have Learned All That You Can About Your Artifact.
|
||||
CantCallPetWithLoneWolf = 319, // You Cannot Use Call Pet While Lone Wolf Is Active.
|
||||
TargetCannotAlreadyHaveOrbOfPower = 320, // Target cannot already have a Orb of Power.
|
||||
YouMustBeInAnInnToStrumThatGuitar = 321, // You must be in an inn to strum that guitar.
|
||||
YouCannotReachTheLatch = 322, // You cannot reach the latch.
|
||||
RequiresABrimmingKeystone = 323, // Requires A Brimming Keystone.
|
||||
@@ -1048,22 +1055,41 @@ namespace Framework.Constants
|
||||
YouDoNotKnowHowToTameFeathermanes = 336, // You Do Not Know How To Tame Feathermanes.
|
||||
YouMustReachArtifactKnowledgeLevel25 = 337, // You Must Reach Artifact Knowledge Level 25 To Use The Tome.
|
||||
RequiresANetherPortalDisruptor = 338, // Requires A Nether Portal Disruptor.
|
||||
YouAreNotTheCorrectRankToUseThisItem = 339, // You Are Not The Correct Rank To Use This Item.
|
||||
MustBeStandingNearInjuredChromieInMountHyjal = 340, // Must Be Standing Near The Injured Chromie In Mount Hyjal.
|
||||
TheresNothingFurtherYouCanLearn = 341, // There'S Nothing Further You Can Learn.
|
||||
RemoveCannonsHeavyIronPlatingFirst = 342, // You Should Remove The Cannon'S Heavy Iron Plating First.
|
||||
RemoveCannonsElectrokineticDefenseGridFirst = 343, // You Should Remove The Cannon'S Electrokinetic Defense Grid First.
|
||||
RequiresTheArmoryKeyAndDendriteClusters = 344, // You Are Missing Pieces Of The Armory Key Or Do Not Have Enough Dendrite Clusters.
|
||||
ThisItemRequiresBasicObliterumToUpgrade = 345, // This Item Requires Basic Obliterum To Upgrade.
|
||||
ThisItemRequiresPrimalObliterumToUpgrade = 346, // This Item Requires Primal Obliterum To Upgrade.
|
||||
ThisItemRequiresFlightMastersWhistle = 347, // This Item Requires A Flight Master'S Whistle.
|
||||
RequiresMorrisonsMasterKey = 348, // Requires Morrison'S Master Key.
|
||||
RequiresPowerThatEchoesThatOfTheAugari = 349, // Will Only Open To One Wielding The Power That Echoes That Of The Augari.
|
||||
ThatPlayerHasAPendingTotemicRevival = 350, // That Player Has A Pending Totemic Revival.
|
||||
YouHaveNoFireMinesDeployed = 351, // You Have No Fire Mines Deployed.
|
||||
MustBeAffectedBySpiritPowder = 352, // You Must Be Affected By The Spirit Powder To Take The Phylactery.
|
||||
YouAreBlockedByAStructureAboveYou = 353, // You Are Blocked By A Structure Above You.
|
||||
Requires100ImpMeat = 354, // Requires 100 Imp Meat.
|
||||
YouHaveNotObtainedAnyBackgroundFilters = 355, // You Have Not Obtained Any Background Filters.
|
||||
NothingInterestingPostedHereRightNow = 356, // There Is Nothing Interesting Posted Here Right Now.
|
||||
ParagonReputationRequiresHigherLevel = 357, // Paragon Reputation Is Not Available Until A Higher Level.
|
||||
UunaIsMissing = 358, // Uuna Is Missing.
|
||||
OnlyOtherHivemindMembersMayJoin = 359, // Only Other Members Of Their Hivemind May Join With Them.
|
||||
NoValidFlaskPresent = 360, // No Valid Flask Present.
|
||||
NoWildImpsToSacrifice = 361, // There Are No Wild Imps To Sacrifice.
|
||||
YouAreCarryingTooMuchIron = 362, // You Are Carrying Too Much Iron
|
||||
YouHaveNoIronToCollect = 363, // You Have No Iron To Collect
|
||||
YouHaveNoWildImps = 364, // You Have No Available Wild Imps.
|
||||
NeedsRepairs = 365, // Needs Repairs.
|
||||
YouAreCarryingTooMuchWood = 366, // You'Re Carrying Too Much Wood.
|
||||
YouAreAlreadyCarryingRepairParts = 367, // You'Re Already Carrying Repair Parts.
|
||||
YouHaveNotUnlockedFlightWhistleForZone = 368, // You Have Not Unlocked The Flight Whistle For This Zone.
|
||||
ThereAreNoUnlockedFlightPointsNearby = 369, // There Are No Unlocked Flight Points Nearby To Take You To.
|
||||
YouMustHaveAFelguard = 370, // You Must Have A Felguard.
|
||||
TargetHasNoFesteringWounds = 371, // The Target Has No Festering Wounds.
|
||||
YouDontHaveDeadlyOrWoundPoisonActive = 372, // You Do Not Have Deadly Poison Or Wound Poison Active.
|
||||
CannotReadSoldierDogTagWithoutHeadlampOn = 373, // You Cannot Read The Soldier'S Dog Tag Without Your Headlamp On.
|
||||
}
|
||||
|
||||
public enum SpellMissInfo
|
||||
@@ -2058,7 +2084,13 @@ namespace Framework.Constants
|
||||
GiveHonor = 253,
|
||||
Unk254 = 254,
|
||||
LearnTransmogSet = 255,
|
||||
TotalSpellEffects = 256,
|
||||
Unk256 = 256,
|
||||
Unk257 = 257,
|
||||
ModifyKeystone = 258,
|
||||
RespecAzeriteEmpoweredItem = 259,
|
||||
SummonStabledPet = 260,
|
||||
ScrapItem = 261,
|
||||
TotalSpellEffects,
|
||||
}
|
||||
|
||||
public enum SpellEffectHandle
|
||||
@@ -2363,6 +2395,7 @@ namespace Framework.Constants
|
||||
Unk147 = 147,
|
||||
Unk148 = 148,
|
||||
Unk149 = 149,
|
||||
UnitOwnCritter = 150, // own battle pet from UNIT_FIELD_CRITTER
|
||||
TotalSpellTargets
|
||||
}
|
||||
public enum SpellTargetSelectionCategories
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Framework.Constants
|
||||
{
|
||||
HasLowerAnimForEnter = 0x01,
|
||||
HasLowerAnimForRide = 0x02,
|
||||
Unk3 = 0x04,
|
||||
DisableGravity = 0x04, // Passenger will not be affected by gravity
|
||||
ShouldUseVehSeatExitAnimOnVoluntaryExit = 0x08,
|
||||
Unk5 = 0x10,
|
||||
Unk6 = 0x20,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,12 +20,10 @@ namespace Framework.Constants
|
||||
public enum ObjectFields
|
||||
{
|
||||
Guid = 0x000, // Size: 4, Flags: Public
|
||||
Data = 0x004, // Size: 4, Flags: Public
|
||||
Type = 0x008, // Size: 1, Flags: Public
|
||||
Entry = 0x009, // Size: 1, Flags: Dynamic
|
||||
DynamicFlags = 0x00a, // Size: 1, Flags: Dynamic, Urgent
|
||||
ScaleX = 0x00b, // Size: 1, Flags: Public
|
||||
End = 0x00c,
|
||||
Entry = 0x004, // Size: 1, Flags: Dynamic
|
||||
DynamicFlags = 0x005, // Size: 1, Flags: Dynamic, Urgent
|
||||
ScaleX = 0x006, // Size: 1, Flags: Public
|
||||
End = 0x007,
|
||||
}
|
||||
|
||||
public enum ItemFields
|
||||
@@ -57,8 +55,7 @@ namespace Framework.Constants
|
||||
BonusListIds = 0x001, // Flags: Owner, 0x100
|
||||
ArtifactPowers = 0x002, // Flags: OWNER
|
||||
Gems = 0x003, // Flags: OWNER
|
||||
RelicTalentData = 0x004, // Flags: OWNER
|
||||
End = 0x005
|
||||
End = 0x004
|
||||
}
|
||||
|
||||
public enum ContainerFields
|
||||
@@ -68,108 +65,141 @@ namespace Framework.Constants
|
||||
End = ItemFields.End + 0x091
|
||||
}
|
||||
|
||||
public enum AzeriteEmpoweredItemFields
|
||||
{
|
||||
Selections = ItemFields.End + 0x000, // Size: 4, Flags: PUBLIC
|
||||
End = ItemFields.End + 0x004,
|
||||
}
|
||||
|
||||
public enum AzeriteEmpoweredItemDynamicFields
|
||||
{
|
||||
End = ItemDynamicFields.End + 0x000,
|
||||
}
|
||||
|
||||
public enum AzeriteItemFields
|
||||
{
|
||||
Xp = ItemFields.End + 0x000, // Size: 2, Flags: PUBLIC
|
||||
Level = ItemFields.End + 0x002, // Size: 1, Flags: PUBLIC
|
||||
AuraLevel = ItemFields.End + 0x003, // Size: 1, Flags: PUBLIC
|
||||
KnowledgeLevel = ItemFields.End + 0x004, // Size: 1, Flags: OWNER
|
||||
DebugKnowledgeWeek = ItemFields.End + 0x005, // Size: 1, Flags: OWNER
|
||||
End = ItemFields.End + 0x006,
|
||||
}
|
||||
|
||||
public enum AzeriteItemDynamicFields
|
||||
{
|
||||
End = ItemDynamicFields.End + 0x000,
|
||||
}
|
||||
|
||||
public enum UnitFields
|
||||
{
|
||||
Charm = ObjectFields.End + 0x000, // Size: 4, Flags: Public
|
||||
Summon = ObjectFields.End + 0x004, // Size: 4, Flags: Public
|
||||
Critter = ObjectFields.End + 0x008, // Size: 4, Flags: Private
|
||||
Critter = ObjectFields.End + 0x008, // Size: 4, Flags: Privaten
|
||||
CharmedBy = ObjectFields.End + 0x00c, // Size: 4, Flags: Public
|
||||
SummonedBy = ObjectFields.End + 0x010, // Size: 4, Flags: Public
|
||||
CreatedBy = ObjectFields.End + 0x014, // Size: 4, Flags: Public
|
||||
DemonCreator = ObjectFields.End + 0x018, // Size: 4, Flags: Public
|
||||
Target = ObjectFields.End + 0x01c, // Size: 4, Flags: Public
|
||||
BattlePetCompanionGuid = ObjectFields.End + 0x020, // Size: 4, Flags: Public
|
||||
BattlePetDbId = ObjectFields.End + 0x024, // Size: 2, Flags: Public
|
||||
ChannelData = ObjectFields.End + 0x026, // Size: 2, Flags: PUBLIC, URGENT
|
||||
SummonedByHomeRealm = ObjectFields.End + 0x028, // Size: 1, Flags: Public
|
||||
Bytes0 = ObjectFields.End + 0x029, // Size: 1, Flags: Public
|
||||
DisplayPower = ObjectFields.End + 0x02a, // Size: 1, Flags: Public
|
||||
OverrideDisplayPowerId = ObjectFields.End + 0x02b, // Size: 1, Flags: Public
|
||||
Health = ObjectFields.End + 0x02c, // Size: 2, Flags: Public
|
||||
Power = ObjectFields.End + 0x02e, // Size: 6, Flags: Public, UrgentSelfOnly
|
||||
MaxHealth = ObjectFields.End + 0x034, // Size: 2, Flags: Public
|
||||
MaxPower = ObjectFields.End + 0x036, // Size: 6, Flags: Public
|
||||
PowerRegenFlatModifier = ObjectFields.End + 0x03c, // Size: 6, Flags: Private, Owner, UnitAll
|
||||
PowerRegenInterruptedFlatModifier = ObjectFields.End + 0x042, // Size: 6, Flags: Private, Owner, UnitAll
|
||||
Level = ObjectFields.End + 0x048, // Size: 1, Flags: Public
|
||||
EffectiveLevel = ObjectFields.End + 0x049, // Size: 1, Flags: Public
|
||||
|
||||
SandboxScalingId = ObjectFields.End + 0x04a, // Size: 1, Flags: Public
|
||||
ScalingLevelMin = ObjectFields.End + 0x04b, // Size: 1, Flags: Public
|
||||
ScalingLevelMax = ObjectFields.End + 0x04c, // Size: 1, Flags: Public
|
||||
ScalingLevelDelta = ObjectFields.End + 0x04d, // Size: 1, Flags: Public
|
||||
FactionTemplate = ObjectFields.End + 0x04e, // Size: 1, Flags: Public
|
||||
VirtualItemSlotId = ObjectFields.End + 0x04f, // Size: 6, Flags: Public
|
||||
Flags = ObjectFields.End + 0x055, // Size: 1, Flags: Public, Urgent
|
||||
Flags2 = ObjectFields.End + 0x056, // Size: 1, Flags: Public, Urgent
|
||||
Flags3 = ObjectFields.End + 0x057, // Size: 1, Flags: Public, Urgent
|
||||
AuraState = ObjectFields.End + 0x058, // Size: 1, Flags: Public
|
||||
BaseAttackTime = ObjectFields.End + 0x059, // Size: 2, Flags: Public
|
||||
RangedAttackTime = ObjectFields.End + 0x05b, // Size: 1, Flags: Private
|
||||
BoundingRadius = ObjectFields.End + 0x05c, // Size: 1, Flags: Public
|
||||
CombatReach = ObjectFields.End + 0x05d, // Size: 1, Flags: Public
|
||||
DisplayId = ObjectFields.End + 0x05e, // Size: 1, Flags: Dynamic, Urgent
|
||||
NativeDisplayId = ObjectFields.End + 0x05f, // Size: 1, Flags: Public, Urgent
|
||||
MountDisplayId = ObjectFields.End + 0x060, // Size: 1, Flags: Public, Urgent
|
||||
MinDamage = ObjectFields.End + 0x061, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
MaxDamage = ObjectFields.End + 0x062, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
MinOffHandDamage = ObjectFields.End + 0x063, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
MaxOffHandDamage = ObjectFields.End + 0x064, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
Bytes1 = ObjectFields.End + 0x065, // Size: 1, Flags: Public
|
||||
PetNumber = ObjectFields.End + 0x066, // Size: 1, Flags: Public
|
||||
PetNameTimestamp = ObjectFields.End + 0x067, // Size: 1, Flags: Public
|
||||
PetExperience = ObjectFields.End + 0x068, // Size: 1, Flags: Owner
|
||||
PetNextLevelExp = ObjectFields.End + 0x069, // Size: 1, Flags: Owner
|
||||
ModCastSpeed = ObjectFields.End + 0x06a, // Size: 1, Flags: Public
|
||||
ModCastHaste = ObjectFields.End + 0x06b, // Size: 1, Flags: Public
|
||||
ModHaste = ObjectFields.End + 0x06c, // Size: 1, Flags: Public
|
||||
ModRangedHaste = ObjectFields.End + 0x06d, // Size: 1, Flags: Public
|
||||
ModHasteRegen = ObjectFields.End + 0x06e, // Size: 1, Flags: Public
|
||||
ModTimeRate = ObjectFields.End + 0x06f, // Size: 1, Flags: Public
|
||||
CreatedBySpell = ObjectFields.End + 0x070, // Size: 1, Flags: Public
|
||||
NpcFlags = ObjectFields.End + 0x071, // Size: 2, Flags: Public, Dynamic
|
||||
NpcEmotestate = ObjectFields.End + 0x073, // Size: 1, Flags: Public
|
||||
Stat = ObjectFields.End + 0x074, // Size: 4, Flags: Private, Owner
|
||||
PosStat = ObjectFields.End + 0x078, // Size: 4, Flags: Private, Owner
|
||||
NegStat = ObjectFields.End + 0x07c, // Size: 4, Flags: Private, Owner
|
||||
Resistances = ObjectFields.End + 0x080, // Size: 7, Flags: Private, Owner, SpecialInfo
|
||||
ResistanceBuffModsPositive = ObjectFields.End + 0x087, // Size: 7, Flags: Private, Owner
|
||||
ResistanceBuffModsNegative = ObjectFields.End + 0x08e, // Size: 7, Flags: Private, Owner
|
||||
ModBonusArmor = ObjectFields.End + 0x095, // Size: 1, Flags: Private, Owner
|
||||
BaseMana = ObjectFields.End + 0x096, // Size: 1, Flags: Public
|
||||
BaseHealth = ObjectFields.End + 0x097, // Size: 1, Flags: Private, Owner
|
||||
Bytes2 = ObjectFields.End + 0x098, // Size: 1, Flags: Public
|
||||
AttackPower = ObjectFields.End + 0x099, // Size: 1, Flags: Private, Owner
|
||||
AttackPowerModPos = ObjectFields.End + 0x09a, // Size: 1, Flags: Private, Owner
|
||||
AttackPowerModNeg = ObjectFields.End + 0x09b, // Size: 1, Flags: Private, Owner
|
||||
AttackPowerMultiplier = ObjectFields.End + 0x09c, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPower = ObjectFields.End + 0x09d, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPowerModPos = ObjectFields.End + 0x09e, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPowerModNeg = ObjectFields.End + 0x09f, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPowerMultiplier = ObjectFields.End + 0x0a0, // Size: 1, Flags: Private, Owner
|
||||
AttackSpeedAura = ObjectFields.End + 0x0a1, // Size: 1, Flags: Private, Owner
|
||||
MinRangedDamage = ObjectFields.End + 0x0a2, // Size: 1, Flags: Private, Owner
|
||||
MaxRangedDamage = ObjectFields.End + 0x0a3, // Size: 1, Flags: Private, Owner
|
||||
PowerCostModifier = ObjectFields.End + 0x0a4, // Size: 7, Flags: Private, Owner
|
||||
PowerCostMultiplier = ObjectFields.End + 0x0ab, // Size: 7, Flags: Private, Owner
|
||||
MaxHealthModifier = ObjectFields.End + 0x0b2, // Size: 1, Flags: Private, Owner
|
||||
HoverHeight = ObjectFields.End + 0x0b3, // Size: 1, Flags: Public
|
||||
MinItemLevelCutoff = ObjectFields.End + 0x0b4, // Size: 1, Flags: Public
|
||||
MinItemLevel = ObjectFields.End + 0x0b5, // Size: 1, Flags: Public
|
||||
MaxItemlevel = ObjectFields.End + 0x0b6, // Size: 1, Flags: Public
|
||||
WildBattlepetLevel = ObjectFields.End + 0x0b7, // Size: 1, Flags: Public
|
||||
BattlepetCompanionNameTimestamp = ObjectFields.End + 0x0b8, // Size: 1, Flags: Public
|
||||
InteractSpellid = ObjectFields.End + 0x0b9, // Size: 1, Flags: Public
|
||||
StateSpellVisualId = ObjectFields.End + 0x0ba, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimId = ObjectFields.End + 0x0bb, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimKitId = ObjectFields.End + 0x0bc, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateWorldEffectId = ObjectFields.End + 0x0bd, // Size: 4, Flags: Dynamic, Urgent
|
||||
ScaleDuration = ObjectFields.End + 0x0c1, // Size: 1, Flags: Public
|
||||
LooksLikeMountId = ObjectFields.End + 0x0c2, // Size: 1, Flags: Public
|
||||
LooksLikeCreatureId = ObjectFields.End + 0x0c3, // Size: 1, Flags: Public
|
||||
LookAtControllerId = ObjectFields.End + 0x0c4, // Size: 1, Flags: Public
|
||||
LookAtControllerTarget = ObjectFields.End + 0x0c5, // Size: 4, Flags: Public
|
||||
End = ObjectFields.End + 0x0c9
|
||||
LookAtControllerTarget = ObjectFields.End + 0x01c, // Size: 4, Flags: Public
|
||||
Target = ObjectFields.End + 0x020, // Size: 4, Flags: Public
|
||||
BattlePetCompanionGuid = ObjectFields.End + 0x024, // Size: 4, Flags: Public
|
||||
BattlePetDbId = ObjectFields.End + 0x028, // Size: 2, Flags: Public
|
||||
ChannelData = ObjectFields.End + 0x02a, // Size: 2, Flags: Public, Urgent
|
||||
SummonedByHomeRealm = ObjectFields.End + 0x02c, // Size: 1, Flags: Public
|
||||
Bytes0 = ObjectFields.End + 0x02d, // Size: 1, Flags: Public
|
||||
DisplayPower = ObjectFields.End + 0x02e, // Size: 1, Flags: Public
|
||||
OverrideDisplayPowerId = ObjectFields.End + 0x02f, // Size: 1, Flags: Public
|
||||
Health = ObjectFields.End + 0x030, // Size: 2, Flags: Public
|
||||
Power = ObjectFields.End + 0x032, // Size: 6, Flags: Public, UrgentSelfOnly
|
||||
MaxHealth = ObjectFields.End + 0x038, // Size: 2, Flags: Public
|
||||
MaxPower = ObjectFields.End + 0x03a, // Size: 6, Flags: Public
|
||||
PowerRegenFlatModifier = ObjectFields.End + 0x040, // Size: 6, Flags: Private, Owner, UnitAll
|
||||
PowerRegenInterruptedFlatModifier = ObjectFields.End + 0x046, // Size: 6, Flags: Private, Owner, UnitAll
|
||||
Level = ObjectFields.End + 0x04c, // Size: 1, Flags: Public
|
||||
EffectiveLevel = ObjectFields.End + 0x04d, // Size: 1, Flags: Public
|
||||
ContentTuningId = ObjectFields.End + 0x04e, // Size: 1, Flags: Public
|
||||
ScalingLevelMin = ObjectFields.End + 0x04f, // Size: 1, Flags: Public
|
||||
ScalingLevelMax = ObjectFields.End + 0x050, // Size: 1, Flags: Public
|
||||
ScalingLevelDelta = ObjectFields.End + 0x051, // Size: 1, Flags: Public
|
||||
ScalingFactionGroup = ObjectFields.End + 0x052, // Size: 1, Flags: Public
|
||||
ScalingHealthItemLevelCurveId = ObjectFields.End + 0x053, // Size: 1, Flags: Public
|
||||
ScalingDamageItemLevelCurveId = ObjectFields.End + 0x054, // Size: 1, Flags: Public
|
||||
FactionTemplate = ObjectFields.End + 0x055, // Size: 1, Flags: Public
|
||||
VirtualItemSlotId = ObjectFields.End + 0x056, // Size: 6, Flags: Public
|
||||
Flags = ObjectFields.End + 0x05c, // Size: 1, Flags: Public, Urgent
|
||||
Flags2 = ObjectFields.End + 0x05d, // Size: 1, Flags: Public, Urgent
|
||||
Flags3 = ObjectFields.End + 0x05e, // Size: 1, Flags: Public, UrgentScalingLevelDelta
|
||||
AuraState = ObjectFields.End + 0x05f, // Size: 1, Flags: Public
|
||||
BaseAttackTime = ObjectFields.End + 0x060, // Size: 2, Flags: Public
|
||||
RangedAttackTime = ObjectFields.End + 0x062, // Size: 1, Flags: Private
|
||||
BoundingRadius = ObjectFields.End + 0x063, // Size: 1, Flags: Public
|
||||
CombatReach = ObjectFields.End + 0x064, // Size: 1, Flags: Public
|
||||
DisplayId = ObjectFields.End + 0x065, // Size: 1, Flags: Dynamic, Urgent
|
||||
DisplayScale = ObjectFields.End + 0x066, // Size: 1, Flags: Dynamic, Urgent
|
||||
NativeDisplayId = ObjectFields.End + 0x067, // Size: 1, Flags: Public, Urgent
|
||||
NativeXDisplayScale = ObjectFields.End + 0x068, // Size: 1, Flags: Public, Urgent
|
||||
MountDisplayId = ObjectFields.End + 0x069, // Size: 1, Flags: Public, Urgent
|
||||
MinDamage = ObjectFields.End + 0x06a, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
MaxDamage = ObjectFields.End + 0x06b, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
MinOffHandDamage = ObjectFields.End + 0x06c, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
MaxOffHandDamage = ObjectFields.End + 0x06d, // Size: 1, Flags: Private, Owner, SpecialInfo
|
||||
Bytes1 = ObjectFields.End + 0x06e, // Size: 1, Flags: Public
|
||||
PetNumber = ObjectFields.End + 0x06f, // Size: 1, Flags: Public
|
||||
PetNameTimestamp = ObjectFields.End + 0x070, // Size: 1, Flags: Public
|
||||
PetExperience = ObjectFields.End + 0x071, // Size: 1, Flags: Owner
|
||||
PetNextLevelExp = ObjectFields.End + 0x072, // Size: 1, Flags: Owner
|
||||
ModCastSpeed = ObjectFields.End + 0x073, // Size: 1, Flags: Public
|
||||
ModCastHaste = ObjectFields.End + 0x074, // Size: 1, Flags: Public
|
||||
ModHaste = ObjectFields.End + 0x075, // Size: 1, Flags: Public
|
||||
ModRangedHaste = ObjectFields.End + 0x076, // Size: 1, Flags: Public
|
||||
ModHasteRegen = ObjectFields.End + 0x077, // Size: 1, Flags: Public
|
||||
ModTimeRate = ObjectFields.End + 0x078, // Size: 1, Flags: Public
|
||||
CreatedBySpell = ObjectFields.End + 0x079, // Size: 1, Flags: Public
|
||||
NpcFlags = ObjectFields.End + 0x07a, // Size: 2, Flags: Public, Dynamic
|
||||
NpcEmotestate = ObjectFields.End + 0x07c, // Size: 1, Flags: Public
|
||||
Stat = ObjectFields.End + 0x07d, // Size: 4, Flags: Private, Owner
|
||||
PosStat = ObjectFields.End + 0x081, // Size: 4, Flags: Private, Owner
|
||||
NegStat = ObjectFields.End + 0x085, // Size: 4, Flags: Private, Owner
|
||||
Resistances = ObjectFields.End + 0x089, // Size: 7, Flags: Private, Owner, SpecialInfo
|
||||
BonusResistanceMods = ObjectFields.End + 0x090, // Size: 7, Flags: Private, Owner
|
||||
BaseMana = ObjectFields.End + 0x097, // Size: 1, Flags: Public
|
||||
BaseHealth = ObjectFields.End + 0x098, // Size: 1, Flags: Private, Owner
|
||||
Bytes2 = ObjectFields.End + 0x099, // Size: 1, Flags: Public
|
||||
AttackPower = ObjectFields.End + 0x09a, // Size: 1, Flags: Private, Owner
|
||||
AttackPowerModPos = ObjectFields.End + 0x09b, // Size: 1, Flags: Private, Owner
|
||||
AttackPowerModNeg = ObjectFields.End + 0x09c, // Size: 1, Flags: Private, Owner
|
||||
AttackPowerMultiplier = ObjectFields.End + 0x09d, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPower = ObjectFields.End + 0x09e, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPowerModPos = ObjectFields.End + 0x09f, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPowerModNeg = ObjectFields.End + 0x0a0, // Size: 1, Flags: Private, Owner
|
||||
RangedAttackPowerMultiplier = ObjectFields.End + 0x0a1, // Size: 1, Flags: Private, Owner
|
||||
MainHandWeaponAttackPower = ObjectFields.End + 0x0a2, // Size: 1, Flags: Private, Owner
|
||||
OffHandWeaponAttackPower = ObjectFields.End + 0x0a3, // Size: 1, Flags: Private, Owner
|
||||
RangedHandWeaponAttackPower = ObjectFields.End + 0x0a4, // Size: 1, Flags: Private, Owner
|
||||
AttackSpeedAura = ObjectFields.End + 0x0a5, // Size: 1, Flags: Private, Owner
|
||||
Lifesteal = ObjectFields.End + 0x0a6, // Size: 1, Flags: Private, Owner
|
||||
MinRangedDamage = ObjectFields.End + 0x0a7, // Size: 1, Flags: Private, Owner
|
||||
MaxRangedDamage = ObjectFields.End + 0x0a8, // Size: 1, Flags: Private, Owner
|
||||
PowerCostModifier = ObjectFields.End + 0x0a9, // Size: 7, Flags: Private, Owner
|
||||
PowerCostMultiplier = ObjectFields.End + 0x0b0, // Size: 7, Flags: Private, Owner
|
||||
MaxHealthModifier = ObjectFields.End + 0x0b7, // Size: 1, Flags: Private, Owner
|
||||
HoverHeight = ObjectFields.End + 0x0b8, // Size: 1, Flags: Public
|
||||
MinItemLevelCutoff = ObjectFields.End + 0x0b9, // Size: 1, Flags: Public
|
||||
MinItemLevel = ObjectFields.End + 0x0ba, // Size: 1, Flags: Public
|
||||
MaxItemlevel = ObjectFields.End + 0x0bb, // Size: 1, Flags: Public
|
||||
WildBattlepetLevel = ObjectFields.End + 0x0bc, // Size: 1, Flags: Public
|
||||
BattlepetCompanionNameTimestamp = ObjectFields.End + 0x0bd, // Size: 1, Flags: Public
|
||||
InteractSpellid = ObjectFields.End + 0x0be, // Size: 1, Flags: Public
|
||||
StateSpellVisualId = ObjectFields.End + 0x0bf, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimId = ObjectFields.End + 0x0c0, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimKitId = ObjectFields.End + 0x0c1, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateWorldEffectId = ObjectFields.End + 0x0c2, // Size: 4, Flags: Dynamic, Urgent
|
||||
ScaleDuration = ObjectFields.End + 0x0c6, // Size: 1, Flags: Public
|
||||
LooksLikeMountId = ObjectFields.End + 0x0c7, // Size: 1, Flags: Public
|
||||
LooksLikeCreatureId = ObjectFields.End + 0x0c8, // Size: 1, Flags: Public
|
||||
LookAtControllerId = ObjectFields.End + 0x0c9, // Size: 1, Flags: Public
|
||||
GuildGuid = ObjectFields.End + 0x0ca, // Size: 4, Flags: Public
|
||||
End = ObjectFields.End + 0x0ce
|
||||
}
|
||||
|
||||
public enum UnitDynamicFields
|
||||
@@ -196,148 +226,158 @@ namespace Framework.Constants
|
||||
Bytes4 = UnitFields.End + 0x014, // Size: 1, Flags: Public
|
||||
DuelTeam = UnitFields.End + 0x015, // Size: 1, Flags: Public
|
||||
GuildTimestamp = UnitFields.End + 0x016, // Size: 1, Flags: Public
|
||||
QuestLog = UnitFields.End + 0x017, // Size: 800, Flags: PartyMember
|
||||
VisibleItem = UnitFields.End + 0x337, // Size: 38, Flags: Public
|
||||
ChosenTitle = UnitFields.End + 0x35d, // Size: 1, Flags: Public
|
||||
FakeInebriation = UnitFields.End + 0x35e, // Size: 1, Flags: Public
|
||||
VirtualRealm = UnitFields.End + 0x35f, // Size: 1, Flags: Public
|
||||
CurrentSpecId = UnitFields.End + 0x360, // Size: 1, Flags: Public
|
||||
TaxiMountAnimKitId = UnitFields.End + 0x361, // Size: 1, Flags: Public
|
||||
AvgItemLevel = UnitFields.End + 0x362, // Size: 4, Flags: Public
|
||||
CurrentBattlePetBreedQuality = UnitFields.End + 0x366, // Size: 1, Flags: Public
|
||||
Prestige = UnitFields.End + 0x367, // Size: 1, Flags: Public
|
||||
HonorLevel = UnitFields.End + 0x368, // Size: 1, Flags: Public
|
||||
InvSlotHead = UnitFields.End + 0x369, // Size: 780, Flags: Private
|
||||
EndNotSelf = UnitFields.End + 0x369,
|
||||
|
||||
Farsight = UnitFields.End + 0x675, // Size: 4, Flags: Private
|
||||
SummonedBattlePetId = UnitFields.End + 0x679, // Size: 4, Flags: Private
|
||||
KnownTitles = UnitFields.End + 0x67d, // Size: 12, Flags: Private
|
||||
Coinage = UnitFields.End + 0x689, // Size: 2, Flags: Private
|
||||
Xp = UnitFields.End + 0x68b, // Size: 1, Flags: Private
|
||||
NextLevelXp = UnitFields.End + 0x68c, // Size: 1, Flags: Private
|
||||
TrialXp = UnitFields.End + 0x68d, // Size: 1, Flags: Private
|
||||
SkillLineId = UnitFields.End + 0x68e, // Size: 448, Flags: Private
|
||||
SkillLineStep = UnitFields.End + 0x6ce,
|
||||
SkillLineRank = UnitFields.End + 0x70e,
|
||||
SkillLineSubRank = UnitFields.End + 0x74e,
|
||||
SkillLineMaxRank = UnitFields.End + 0x78e,
|
||||
SkillLineTempBonus = UnitFields.End + 0x7ce,
|
||||
SkillLinePermBonus = UnitFields.End + 0x80e,
|
||||
CharacterPoints = UnitFields.End + 0x84e, // Size: 1, Flags: Private
|
||||
MaxTalentTiers = UnitFields.End + 0x84f, // Size: 1, Flags: Private
|
||||
TrackCreatures = UnitFields.End + 0x850, // Size: 1, Flags: Private
|
||||
TrackResources = UnitFields.End + 0x851, // Size: 1, Flags: Private
|
||||
Expertise = UnitFields.End + 0x852, // Size: 1, Flags: Private
|
||||
OffhandExpertise = UnitFields.End + 0x853, // Size: 1, Flags: Private
|
||||
RangedExpertise = UnitFields.End + 0x854, // Size: 1, Flags: Private
|
||||
CombatRatingExpertise = UnitFields.End + 0x855, // Size: 1, Flags: Private
|
||||
BlockPercentage = UnitFields.End + 0x856, // Size: 1, Flags: Private
|
||||
DodgePercentage = UnitFields.End + 0x857, // Size: 1, Flags: Private
|
||||
DodgePercentageFromAttribute = UnitFields.End + 0x858, // Size: 1, Flags: Private
|
||||
ParryPercentage = UnitFields.End + 0x859, // Size: 1, Flags: Private
|
||||
ParryPercentageFromAttribute = UnitFields.End + 0x85a, // Size: 1, Flags: Private
|
||||
CritPercentage = UnitFields.End + 0x85b, // Size: 1, Flags: Private
|
||||
RangedCritPercentage = UnitFields.End + 0x85c, // Size: 1, Flags: Private
|
||||
OffhandCritPercentage = UnitFields.End + 0x85d, // Size: 1, Flags: Private
|
||||
SpellCritPercentage1 = UnitFields.End + 0x85e, // Size: 1, Flags: Private
|
||||
ShieldBlock = UnitFields.End + 0x85f, // Size: 1, Flags: Private
|
||||
ShieldBlockCritPercentage = UnitFields.End + 0x860, // Size: 1, Flags: Private
|
||||
Mastery = UnitFields.End + 0x861, // Size: 1, Flags: Private
|
||||
Speed = UnitFields.End + 0x862, // Size: 1, Flags: Private
|
||||
Lifesteal = UnitFields.End + 0x863, // Size: 1, Flags: Private
|
||||
Avoidance = UnitFields.End + 0x864, // Size: 1, Flags: Private
|
||||
Sturdiness = UnitFields.End + 0x865, // Size: 1, Flags: Private
|
||||
Versatility = UnitFields.End + 0x866, // Size: 1, Flags: Private
|
||||
VersatilityBonus = UnitFields.End + 0x867, // Size: 1, Flags: Private
|
||||
PvpPowerDamage = UnitFields.End + 0x868, // Size: 1, Flags: Private
|
||||
PvpPowerHealing = UnitFields.End + 0x869, // Size: 1, Flags: Private
|
||||
ExploredZones1 = UnitFields.End + 0x86a, // Size: 320, Flags: Private
|
||||
RestInfo = UnitFields.End + 0x9aa, // Size: 4, Flags: Private
|
||||
ModDamageDonePos = UnitFields.End + 0x9ae, // Size: 7, Flags: Private
|
||||
ModDamageDoneNeg = UnitFields.End + 0x9b5, // Size: 7, Flags: Private
|
||||
ModDamageDonePct = UnitFields.End + 0x9bc, // Size: 7, Flags: Private
|
||||
ModHealingDonePos = UnitFields.End + 0x9c3, // Size: 1, Flags: Private
|
||||
ModHealingPct = UnitFields.End + 0x9c4, // Size: 1, Flags: Private
|
||||
ModHealingDonePct = UnitFields.End + 0x9c5, // Size: 1, Flags: Private
|
||||
ModPeriodicHealingDonePercent = UnitFields.End + 0x9c6, // Size: 1, Flags: Private
|
||||
WeaponDmgMultipliers = UnitFields.End + 0x9c7, // Size: 3, Flags: Private
|
||||
WeaponAtkSpeedMultipliers = UnitFields.End + 0x9ca, // Size: 3, Flags: Private
|
||||
ModSpellPowerPct = UnitFields.End + 0x9cd, // Size: 1, Flags: Private
|
||||
ModResiliencePercent = UnitFields.End + 0x9ce, // Size: 1, Flags: Private
|
||||
OverrideSpellPowerByApPct = UnitFields.End + 0x9cf, // Size: 1, Flags: Private
|
||||
OverrideApBySpellPowerPercent = UnitFields.End + 0x9d0, // Size: 1, Flags: Private
|
||||
ModTargetResistance = UnitFields.End + 0x9d1, // Size: 1, Flags: Private
|
||||
ModTargetPhysicalResistance = UnitFields.End + 0x9d2, // Size: 1, Flags: Private
|
||||
LocalFlags = UnitFields.End + 0x9d3, // Size: 1, Flags: Private
|
||||
FieldBytes = UnitFields.End + 0x9d4, // Size: 1, Flags: Private
|
||||
PvpMedals = UnitFields.End + 0x9d5, // Size: 1, Flags: Private
|
||||
BuyBackPrice1 = UnitFields.End + 0x9d6, // Size: 12, Flags: Private
|
||||
BuyBackTimestamp1 = UnitFields.End + 0x9e2, // Size: 12, Flags: Private
|
||||
Kills = UnitFields.End + 0x9ee, // Size: 1, Flags: Private
|
||||
LifetimeHonorableKills = UnitFields.End + 0x9ef, // Size: 1, Flags: Private
|
||||
WatchedFactionIndex = UnitFields.End + 0x9f0, // Size: 1, Flags: Private
|
||||
CombatRating1 = UnitFields.End + 0x9f1, // Size: 32, Flags: Private
|
||||
ArenaTeamInfo11 = UnitFields.End + 0xa11, // Size: 42, Flags: Private
|
||||
MaxLevel = UnitFields.End + 0xa3b, // Size: 1, Flags: Private
|
||||
ScalingLevelDelta = UnitFields.End + 0xa3c, // Size: 1, Flags: Private
|
||||
MaxCreatureScalingLevel = UnitFields.End + 0xa3d, // Size: 1, Flags: Private
|
||||
NoReagentCost1 = UnitFields.End + 0xa3e, // Size: 4, Flags: Private
|
||||
PetSpellPower = UnitFields.End + 0xa42, // Size: 1, Flags: Private
|
||||
Researching1 = UnitFields.End + 0xa43, // Size: 10, Flags: Private
|
||||
ProfessionSkillLine1 = UnitFields.End + 0xa4d, // Size: 2, Flags: Private
|
||||
UiHitModifier = UnitFields.End + 0xa4f, // Size: 1, Flags: Private
|
||||
UiSpellHitModifier = UnitFields.End + 0xa50, // Size: 1, Flags: Private
|
||||
HomeRealmTimeOffset = UnitFields.End + 0xa51, // Size: 1, Flags: Private
|
||||
ModPetHaste = UnitFields.End + 0xa52, // Size: 1, Flags: Private
|
||||
FieldBytes2 = UnitFields.End + 0xa53, // Size: 1, Flags: Private
|
||||
FieldBytes3 = UnitFields.End + 0xa54, // Size: 1, Flags: Private, UrgentSelfOnly
|
||||
LfgBonusFactionId = UnitFields.End + 0xa55, // Size: 1, Flags: Private
|
||||
LootSpecId = UnitFields.End + 0xa56, // Size: 1, Flags: Private
|
||||
OverrideZonePvpType = UnitFields.End + 0xa57, // Size: 1, Flags: Private, UrgentSelfOnly
|
||||
BagSlotFlags = UnitFields.End + 0xa58, // Size: 4, Flags: Private
|
||||
BankBagSlotFlags = UnitFields.End + 0xa5c, // Size: 7, Flags: Private
|
||||
InsertItemsLeftToRight = UnitFields.End + 0xa63, // Size: 1, Flags: Private
|
||||
QuestCompleted = UnitFields.End + 0xa64, // Size: 1750, Flags: Private
|
||||
Honor = UnitFields.End + 0x113a, // Size: 1, Flags: Private
|
||||
HonorNextLevel = UnitFields.End + 0x113b, // Size: 1, Flags: Private
|
||||
End = UnitFields.End + 0x113c,
|
||||
QuestLog = UnitFields.End + 0x017, // Size: 1600, Flags: PartyMember
|
||||
VisibleItem = UnitFields.End + 0x657, // Size: 38, Flags: Public
|
||||
ChosenTitle = UnitFields.End + 0x67d, // Size: 1, Flags: Public
|
||||
FakeInebriation = UnitFields.End + 0x67e, // Size: 1, Flags: Public
|
||||
VirtualRealm = UnitFields.End + 0x67f, // Size: 1, Flags: Public
|
||||
CurrentSpecId = UnitFields.End + 0x680, // Size: 1, Flags: Public
|
||||
TaxiMountAnimKitId = UnitFields.End + 0x681, // Size: 1, Flags: Public
|
||||
AvgItemLevel = UnitFields.End + 0x682, // Size: 4, Flags: Public
|
||||
CurrentBattlePetBreedQuality = UnitFields.End + 0x686, // Size: 1, Flags: Public
|
||||
HonorLevel = UnitFields.End + 0x687, // Size: 1, Flags: Public
|
||||
End = UnitFields.End + 0x688
|
||||
}
|
||||
|
||||
public enum PlayerDynamicFields
|
||||
{
|
||||
ReserachSite = UnitDynamicFields.End + 0x000, // Flags: Private
|
||||
ResearchSiteProgress = UnitDynamicFields.End + 0x001, // Flags: Private
|
||||
DailyQuests = UnitDynamicFields.End + 0x002, // Flags: Private
|
||||
AvailableQuestLineXQuestId = UnitDynamicFields.End + 0x003, // Flags: Private
|
||||
Heirlooms = UnitDynamicFields.End + 0x004, // Flags: Private
|
||||
HeirloomsFlags = UnitDynamicFields.End + 0x005, // Flags: PRIVATE
|
||||
Toys = UnitDynamicFields.End + 0x006, // Flags: Private
|
||||
Transmog = UnitDynamicFields.End + 0x007, // Flags: PRIVATE
|
||||
ConditionalTransmog = UnitDynamicFields.End + 0x008, // Flags: PRIVATE
|
||||
SelfResSpells = UnitDynamicFields.End + 0x009, // Flags: Private
|
||||
CharacterRestrictions = UnitDynamicFields.End + 0x00a, // Flags: Private
|
||||
SpellPctModByLabel = UnitDynamicFields.End + 0x00b, // Flags: Private
|
||||
SpellFlatModByLabel = UnitDynamicFields.End + 0x00c, // Flags: Private
|
||||
ArenaCooldowns = UnitDynamicFields.End + 0x00d, // Flags: Public
|
||||
End = UnitDynamicFields.End + 0x00e,
|
||||
ArenaCooldowns = UnitDynamicFields.End + 0x000, // Flags: Public
|
||||
End = UnitDynamicFields.End + 0x001,
|
||||
}
|
||||
|
||||
public enum ActivePlayerFields
|
||||
{
|
||||
InvSlotHead = PlayerFields.End + 0x000, // Size: 780, Flags: Public
|
||||
Farsight = PlayerFields.End + 0x30c, // Size: 4, Flags: Public
|
||||
SummonedBattlePetId = PlayerFields.End + 0x310, // Size: 4, Flags: Public
|
||||
KnownTitles = PlayerFields.End + 0x314, // Size: 12, Flags: Public
|
||||
Coinage = PlayerFields.End + 0x320, // Size: 2, Flags: Public
|
||||
Xp = PlayerFields.End + 0x322, // Size: 1, Flags: Public
|
||||
NextLevelXp = PlayerFields.End + 0x323, // Size: 1, Flags: Public
|
||||
TrialXp = PlayerFields.End + 0x324, // Size: 1, Flags: Public
|
||||
SkillLineId = PlayerFields.End + 0x325, // Size: 128, Flags: Public
|
||||
SkillLineStep = PlayerFields.End + 0x3a5, // Size: 128, Flags: Public
|
||||
SkillLineRank = PlayerFields.End + 0x425, // Size: 128, Flags: Public
|
||||
SkillLineStartRank = PlayerFields.End + 0x4a5, // Size: 128, Flags: Public
|
||||
SkillLineMaxRank = PlayerFields.End + 0x525, // Size: 128, Flags: Public
|
||||
SkillLineTempBonus = PlayerFields.End + 0x5a5, // Size: 128, Flags: Public
|
||||
SkillLinePermBonus = PlayerFields.End + 0x625, // Size: 128, Flags: Public
|
||||
CharacterPoints = PlayerFields.End + 0x6a5, // Size: 1, Flags: Public
|
||||
MaxTalentTiers = PlayerFields.End + 0x6a6, // Size: 1, Flags: Public
|
||||
TrackCreatures = PlayerFields.End + 0x6a7, // Size: 1, Flags: Public
|
||||
TrackResources = PlayerFields.End + 0x6a8, // Size: 2, Flags: Public
|
||||
Expertise = PlayerFields.End + 0x6aa, // Size: 1, Flags: Public
|
||||
OffhandExpertise = PlayerFields.End + 0x6ab, // Size: 1, Flags: Public
|
||||
RangedExpertise = PlayerFields.End + 0x6ac, // Size: 1, Flags: Public
|
||||
CombatRatingExpertise = PlayerFields.End + 0x6ad, // Size: 1, Flags: Public
|
||||
BlockPercentage = PlayerFields.End + 0x6ae, // Size: 1, Flags: Public
|
||||
DodgePercentage = PlayerFields.End + 0x6af, // Size: 1, Flags: Public
|
||||
DodgePercentageFromAttribute = PlayerFields.End + 0x6b0, // Size: 1, Flags: Public
|
||||
ParryPercentage = PlayerFields.End + 0x6b1, // Size: 1, Flags: Public
|
||||
ParryPercentageFromAttribute = PlayerFields.End + 0x6b2, // Size: 1, Flags: Public
|
||||
CritPercentage = PlayerFields.End + 0x6b3, // Size: 1, Flags: Public
|
||||
RangedCritPercentage = PlayerFields.End + 0x6b4, // Size: 1, Flags: Public
|
||||
OffhandCritPercentage = PlayerFields.End + 0x6b5, // Size: 1, Flags: Public
|
||||
SpellCritPercentage1 = PlayerFields.End + 0x6b6, // Size: 1, Flags: Public
|
||||
ShieldBlock = PlayerFields.End + 0x6b7, // Size: 1, Flags: Public
|
||||
ShieldBlockCritPercentage = PlayerFields.End + 0x6b8, // Size: 1, Flags: Public
|
||||
Mastery = PlayerFields.End + 0x6b9, // Size: 1, Flags: Public
|
||||
Speed = PlayerFields.End + 0x6ba, // Size: 1, Flags: Public
|
||||
Avoidance = PlayerFields.End + 0x6bb, // Size: 1, Flags: Public
|
||||
Sturdiness = PlayerFields.End + 0x6bc, // Size: 1, Flags: Public
|
||||
Versatility = PlayerFields.End + 0x6bd, // Size: 1, Flags: Public
|
||||
VersatilityBonus = PlayerFields.End + 0x6be, // Size: 1, Flags: Public
|
||||
PvpPowerDamage = PlayerFields.End + 0x6bf, // Size: 1, Flags: Public
|
||||
PvpPowerHealing = PlayerFields.End + 0x6c0, // Size: 1, Flags: Public
|
||||
ExploredZones = PlayerFields.End + 0x6c1, // Size: 320, Flags: Public
|
||||
RestInfo = PlayerFields.End + 0x801, // Size: 4, Flags: Public
|
||||
ModDamageDonePos = PlayerFields.End + 0x805, // Size: 7, Flags: Public
|
||||
ModDamageDoneNeg = PlayerFields.End + 0x80c, // Size: 7, Flags: Public
|
||||
ModDamageDonePct = PlayerFields.End + 0x813, // Size: 7, Flags: Public
|
||||
ModHealingDonePos = PlayerFields.End + 0x81a, // Size: 1, Flags: Public
|
||||
ModHealingPct = PlayerFields.End + 0x81b, // Size: 1, Flags: Public
|
||||
ModHealingDonePct = PlayerFields.End + 0x81c, // Size: 1, Flags: Public
|
||||
ModPeriodicHealingDonePercent = PlayerFields.End + 0x81d, // Size: 1, Flags: Public
|
||||
WeaponDmgMultipliers = PlayerFields.End + 0x81e, // Size: 3, Flags: Public
|
||||
WeaponAtkSpeedMultipliers = PlayerFields.End + 0x821, // Size: 3, Flags: Public
|
||||
ModSpellPowerPct = PlayerFields.End + 0x824, // Size: 1, Flags: Public
|
||||
ModResiliencePercent = PlayerFields.End + 0x825, // Size: 1, Flags: Public
|
||||
OverrideSpellPowerByApPct = PlayerFields.End + 0x826, // Size: 1, Flags: Public
|
||||
OverrideApBySpellPowerPercent = PlayerFields.End + 0x827, // Size: 1, Flags: Public
|
||||
ModTargetResistance = PlayerFields.End + 0x828, // Size: 1, Flags: Public
|
||||
ModTargetPhysicalResistance = PlayerFields.End + 0x829, // Size: 1, Flags: Public
|
||||
LocalFlags = PlayerFields.End + 0x82a, // Size: 1, Flags: Public
|
||||
Bytes = PlayerFields.End + 0x82b, // Size: 1, Flags: Public
|
||||
PvpMedals = PlayerFields.End + 0x82c, // Size: 1, Flags: Public
|
||||
BuyBackPrice = PlayerFields.End + 0x82d, // Size: 12, Flags: Public
|
||||
BuyBackTimestamp = PlayerFields.End + 0x839, // Size: 12, Flags: Public
|
||||
Kills = PlayerFields.End + 0x845, // Size: 1, Flags: Public
|
||||
LifetimeHonorableKills = PlayerFields.End + 0x846, // Size: 1, Flags: Public
|
||||
WatchedFactionIndex = PlayerFields.End + 0x847, // Size: 1, Flags: Public
|
||||
CombatRating = PlayerFields.End + 0x848, // Size: 32, Flags: Public
|
||||
ArenaTeamInfo = PlayerFields.End + 0x868, // Size: 54, Flags: Public
|
||||
MaxLevel = PlayerFields.End + 0x89e, // Size: 1, Flags: Public
|
||||
ScalingPlayerLevelDelta = PlayerFields.End + 0x89f, // Size: 1, Flags: Public
|
||||
MaxCreatureScalingLevel = PlayerFields.End + 0x8a0, // Size: 1, Flags: Public
|
||||
NoReagentCost = PlayerFields.End + 0x8a1, // Size: 4, Flags: Public
|
||||
PetSpellPower = PlayerFields.End + 0x8a5, // Size: 1, Flags: Public
|
||||
ProfessionSkillLine = PlayerFields.End + 0x8a6, // Size: 2, Flags: Public
|
||||
UiHitModifier = PlayerFields.End + 0x8a8, // Size: 1, Flags: Public
|
||||
UiSpellHitModifier = PlayerFields.End + 0x8a9, // Size: 1, Flags: Public
|
||||
HomeRealmTimeOffset = PlayerFields.End + 0x8aa, // Size: 1, Flags: Public
|
||||
ModPetHaste = PlayerFields.End + 0x8ab, // Size: 1, Flags: Public
|
||||
Bytes2 = PlayerFields.End + 0x8ac, // Size: 1, Flags: Public
|
||||
Bytes3 = PlayerFields.End + 0x8ad, // Size: 1, Flags: Public, UrgentSelfOnly
|
||||
LfgBonusFactionId = PlayerFields.End + 0x8ae, // Size: 1, Flags: Public
|
||||
LootSpecId = PlayerFields.End + 0x8af, // Size: 1, Flags: Public
|
||||
OverrideZonePvpType = PlayerFields.End + 0x8b0, // Size: 1, Flags: Public, UrgentSelfOnly
|
||||
BagSlotFlags = PlayerFields.End + 0x8b1, // Size: 4, Flags: Public
|
||||
BankBagSlotFlags = PlayerFields.End + 0x8b5, // Size: 7, Flags: Public
|
||||
InsertItemsLeftToRight = PlayerFields.End + 0x8bc, // Size: 1, Flags: Public
|
||||
QuestCompleted = PlayerFields.End + 0x8bd, // Size: 1750, Flags: Public
|
||||
Honor = PlayerFields.End + 0xf93, // Size: 1, Flags: Public
|
||||
HonorNextLevel = PlayerFields.End + 0xf94, // Size: 1, Flags: Public
|
||||
PvpTierMaxFromWins = PlayerFields.End + 0xf95, // Size: 1, Flags: Public
|
||||
PvpLastWeeksTierMaxFromWins = PlayerFields.End + 0xf96, // Size: 1, Flags: Public
|
||||
End = PlayerFields.End + 0xf97,
|
||||
}
|
||||
|
||||
public enum ActivePlayerDynamicFields
|
||||
{
|
||||
ReserachSite = PlayerDynamicFields.End + 0x000, // Flags: Public
|
||||
ResearchSiteProgress = PlayerDynamicFields.End + 0x001, // Flags: Public
|
||||
DailyQuests = PlayerDynamicFields.End + 0x002, // Flags: Public
|
||||
AvailableQuestLineXQuestId = PlayerDynamicFields.End + 0x003, // Flags: Public
|
||||
Heirlooms = PlayerDynamicFields.End + 0x005, // Flags: Public
|
||||
HeirloomFlags = PlayerDynamicFields.End + 0x006, // Flags: Public
|
||||
Toys = PlayerDynamicFields.End + 0x007, // Flags: Public
|
||||
Transmog = PlayerDynamicFields.End + 0x008, // Flags: Public
|
||||
ConditionalTransmog = PlayerDynamicFields.End + 0x009, // Flags: Public
|
||||
SelfResSpells = PlayerDynamicFields.End + 0x00a, // Flags: Public
|
||||
CharacterRestrictions = PlayerDynamicFields.End + 0x00b, // Flags: Public
|
||||
SpellPctModByLabel = PlayerDynamicFields.End + 0x00c, // Flags: Public
|
||||
SpellFlatModByLabel = PlayerDynamicFields.End + 0x00d, // Flags: Public
|
||||
Reserach = PlayerDynamicFields.End + 0x00e, // Flags: Public
|
||||
End = PlayerDynamicFields.End + 0x00f,
|
||||
}
|
||||
|
||||
public enum GameObjectFields
|
||||
{
|
||||
CreatedBy = ObjectFields.End + 0x000, // Size: 4, Flags: Public
|
||||
DisplayId = ObjectFields.End + 0x004, // Size: 1, Flags: Dynamic, Urgent
|
||||
Flags = ObjectFields.End + 0x005, // Size: 1, Flags: Public, Urgent
|
||||
ParentRotation = ObjectFields.End + 0x006, // Size: 4, Flags: Public
|
||||
Faction = ObjectFields.End + 0x00a, // Size: 1, Flags: Public
|
||||
Level = ObjectFields.End + 0x00b, // Size: 1, Flags: Public
|
||||
Bytes1 = ObjectFields.End + 0x00c, // Size: 1, Flags: Public, Urgent
|
||||
SpellVisualId = ObjectFields.End + 0x00d, // Size: 1, Flags: Public, Dynamic, Urgent
|
||||
StateSpellVisualId = ObjectFields.End + 0x00e, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnumId = ObjectFields.End + 0x00f, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimKitId = ObjectFields.End + 0x010, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateWorldEffectId = ObjectFields.End + 0x011, // Size: 4, Flags: Dynamic, Urgent
|
||||
End = ObjectFields.End + 0x015
|
||||
GuildGuid = ObjectFields.End + 0x004, // Size: 4, Flags: Public
|
||||
DisplayId = ObjectFields.End + 0x008, // Size: 1, Flags: Dynamic, Urgent
|
||||
Flags = ObjectFields.End + 0x009, // Size: 1, Flags: Public, Urgent
|
||||
ParentRotation = ObjectFields.End + 0x00a, // Size: 4, Flags: Public
|
||||
Faction = ObjectFields.End + 0x00e, // Size: 1, Flags: Public
|
||||
Level = ObjectFields.End + 0x00f, // Size: 1, Flags: Public
|
||||
Bytes1 = ObjectFields.End + 0x010, // Size: 1, Flags: Public, Urgent
|
||||
SpellVisualId = ObjectFields.End + 0x011, // Size: 1, Flags: Public, Dynamic, Urgent
|
||||
StateSpellVisualId = ObjectFields.End + 0x012, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimId = ObjectFields.End + 0x013, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateAnimKitId = ObjectFields.End + 0x014, // Size: 1, Flags: Dynamic, Urgent
|
||||
StateWorldEffectId = ObjectFields.End + 0x015, // Size: 4, Flags: Dynamic, Urgent
|
||||
CustomParam = ObjectFields.End + 0x019, // Size: 1, Flags: Public, Urgent
|
||||
End = ObjectFields.End + 0x01a,
|
||||
}
|
||||
|
||||
public enum GameObjectDynamicFields
|
||||
@@ -361,15 +401,16 @@ namespace Framework.Constants
|
||||
{
|
||||
Owner = ObjectFields.End + 0x000, // Size: 4, Flags: Public
|
||||
Party = ObjectFields.End + 0x004, // Size: 4, Flags: Public
|
||||
DisplayId = ObjectFields.End + 0x008, // Size: 1, Flags: Public
|
||||
Item = ObjectFields.End + 0x009, // Size: 19, Flags: Public
|
||||
Bytes1 = ObjectFields.End + 0x01c, // Size: 1, Flags: Public
|
||||
Bytes2 = ObjectFields.End + 0x01d, // Size: 1, Flags: Public
|
||||
Flags = ObjectFields.End + 0x01e, // Size: 1, Flags: Public
|
||||
DynamicFlags = ObjectFields.End + 0x01f, // Size: 1, Flags: Dynamic
|
||||
FactionTemplate = ObjectFields.End + 0x020, // Size: 1, Flags: Public
|
||||
CustomDisplayOption = ObjectFields.End + 0x021, // Size: 1, Flags: PUBLIC
|
||||
End = ObjectFields.End + 0x022
|
||||
GuildGuid = ObjectFields.End + 0x008, // Size: 4, Flags: PUBLIC
|
||||
DisplayId = ObjectFields.End + 0x00C, // Size: 1, Flags: Public
|
||||
Item = ObjectFields.End + 0x00D, // Size: 19, Flags: Public
|
||||
Bytes1 = ObjectFields.End + 0x020, // Size: 1, Flags: Public
|
||||
Bytes2 = ObjectFields.End + 0x021, // Size: 1, Flags: Public
|
||||
Flags = ObjectFields.End + 0x022, // Size: 1, Flags: Public
|
||||
DynamicFlags = ObjectFields.End + 0x023, // Size: 1, Flags: Dynamic
|
||||
FactionTemplate = ObjectFields.End + 0x024, // Size: 1, Flags: Public
|
||||
CustomDisplayOption = ObjectFields.End + 0x025, // Size: 1, Flags: PUBLIC
|
||||
End = ObjectFields.End + 0x026
|
||||
}
|
||||
|
||||
public enum AreaTriggerFields
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace Framework.Database
|
||||
"resettalents_time, primarySpecialization, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, dungeonDifficulty, " +
|
||||
"totalKills, todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, " +
|
||||
"health, power1, power2, power3, power4, power5, power6, instance_id, activeTalentGroup, lootSpecId, exploredZones, knownTitles, actionBars, grantableLevels, raidDifficulty, legacyRaidDifficulty, fishingSteps, " +
|
||||
"honor, honorLevel, prestigeLevel, honorRestState, honorRestBonus " +
|
||||
"honor, honorLevel, honorRestState, honorRestBonus " +
|
||||
"FROM characters c LEFT JOIN character_fishingsteps cfs ON c.guid = cfs.guid WHERE c.guid = ?");
|
||||
|
||||
PrepareStatement(CharStatements.SEL_GROUP_MEMBER, "SELECT guid FROM group_member WHERE memberGuid = ?");
|
||||
@@ -137,7 +137,7 @@ namespace Framework.Database
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_BGDATA, "SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell FROM character_battleground_data WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_GLYPHS, "SELECT talentGroup, glyphId FROM character_glyphs WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_TALENTS, "SELECT talentId, talentGroup FROM character_talent WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_PVP_TALENTS, "SELECT talentId, talentGroup FROM character_pvp_talent WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_PVP_TALENTS, "SELECT talentId0, talentId1, talentId2, talentId3, talentGroup FROM character_pvp_talent WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_SKILLS, "SELECT skill, value, max FROM character_skills WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_RANDOMBG, "SELECT guid FROM character_battleground_random WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_BANNED, "SELECT guid FROM character_banned WHERE guid = ? AND active = 1");
|
||||
@@ -194,6 +194,7 @@ namespace Framework.Database
|
||||
PrepareStatement(CharStatements.DEL_GIFT, "DELETE FROM character_gifts WHERE item_guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_CHARACTER_GIFT_BY_ITEM, "SELECT entry, flags FROM character_gifts WHERE item_guid = ?");
|
||||
PrepareStatement(CharStatements.SEL_ACCOUNT_BY_NAME, "SELECT account FROM characters WHERE name = ?");
|
||||
PrepareStatement(CharStatements.UPD_ACCOUNT_BY_GUID, "UPDATE characters SET account = ? WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.DEL_ACCOUNT_INSTANCE_LOCK_TIMES, "DELETE FROM account_instance_times WHERE accountId = ?");
|
||||
PrepareStatement(CharStatements.INS_ACCOUNT_INSTANCE_LOCK_TIMES, "INSERT INTO account_instance_times (accountId, instanceId, releaseTime) VALUES (?, ?, ?)");
|
||||
PrepareStatement(CharStatements.SEL_MATCH_MAKER_RATING, "SELECT matchMakerRating FROM character_arena_stats WHERE guid = ? AND slot = ?");
|
||||
@@ -430,7 +431,7 @@ namespace Framework.Database
|
||||
"logout_time=?,is_logout_resting=?,resettalents_cost=?,resettalents_time=?,primarySpecialization=?,extra_flags=?,stable_slots=?,at_login=?,zone=?,death_expire_time=?,taxi_path=?," +
|
||||
"totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?," +
|
||||
"watchedFaction=?,drunk=?,health=?,power1=?,power2=?,power3=?,power4=?,power5=?,power6=?,latency=?,activeTalentGroup=?,lootSpecId=?,exploredZones=?," +
|
||||
"equipmentCache=?,knownTitles=?,actionBars=?,grantableLevels=?,online=?,honor=?,honorLevel=?,prestigeLevel=?,honorRestState=?,honorRestBonus=?,lastLoginBuild=? WHERE guid=?");
|
||||
"equipmentCache=?,knownTitles=?,actionBars=?,grantableLevels=?,online=?,honor=?,honorLevel=?,honorRestState=?,honorRestBonus=?,lastLoginBuild=? WHERE guid=?");
|
||||
|
||||
PrepareStatement(CharStatements.UPD_ADD_AT_LOGIN_FLAG, "UPDATE characters SET at_login = at_login | ? WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.UPD_REM_AT_LOGIN_FLAG, "UPDATE characters set at_login = at_login & ~ ? WHERE guid = ?");
|
||||
@@ -618,7 +619,7 @@ namespace Framework.Database
|
||||
PrepareStatement(CharStatements.DEL_PETITION_SIGNATURE_BY_OWNER, "DELETE FROM petition_sign WHERE ownerguid = ?");
|
||||
PrepareStatement(CharStatements.INS_CHAR_GLYPHS, "INSERT INTO character_glyphs VALUES(?, ?, ?)");
|
||||
PrepareStatement(CharStatements.INS_CHAR_TALENT, "INSERT INTO character_talent (guid, talentId, talentGroup) VALUES (?, ?, ?)");
|
||||
PrepareStatement(CharStatements.INS_CHAR_PVP_TALENT, "INSERT INTO character_pvp_talent (guid, talentId, talentGroup) VALUES (?, ?, ?)");
|
||||
PrepareStatement(CharStatements.INS_CHAR_PVP_TALENT, "INSERT INTO character_pvp_talent (guid, talentId0, talentId1, talentId2, talentId3, talentGroup) VALUES (?, ?, ?, ?, ?, ?)");
|
||||
PrepareStatement(CharStatements.UPD_CHAR_LIST_SLOT, "UPDATE characters SET slot = ? WHERE guid = ? AND account = ?");
|
||||
PrepareStatement(CharStatements.INS_CHAR_FISHINGSTEPS, "INSERT INTO character_fishingsteps (guid, fishingSteps) VALUES (?, ?)");
|
||||
PrepareStatement(CharStatements.DEL_CHAR_FISHINGSTEPS, "DELETE FROM character_fishingsteps WHERE guid = ?");
|
||||
@@ -884,6 +885,7 @@ namespace Framework.Database
|
||||
DEL_GIFT,
|
||||
SEL_CHARACTER_GIFT_BY_ITEM,
|
||||
SEL_ACCOUNT_BY_NAME,
|
||||
UPD_ACCOUNT_BY_GUID,
|
||||
DEL_ACCOUNT_INSTANCE_LOCK_TIMES,
|
||||
INS_ACCOUNT_INSTANCE_LOCK_TIMES,
|
||||
SEL_MATCH_MAKER_RATING,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -75,7 +75,7 @@ namespace Framework.Database
|
||||
PrepareStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_ID_BY_GUID, "SELECT id FROM waypoint_scripts WHERE guid = ?");
|
||||
PrepareStatement(WorldStatements.DEL_CREATURE, "DELETE FROM creature WHERE guid = ?");
|
||||
PrepareStatement(WorldStatements.SEL_COMMANDS, "SELECT name, permission, help FROM command");
|
||||
PrepareStatement(WorldStatements.SEL_CREATURE_TEMPLATE, "SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, femaleName, subname, TitleAlt, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, faction, npcflag, speed_walk, speed_run, scale, rank, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, unit_flags3, dynamicflags, family, trainer_class, type, type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, HealthModifier, HealthModifierExtra, ManaModifier, ManaModifierExtra, ArmorModifier, DamageModifier, ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?");
|
||||
PrepareStatement(WorldStatements.SEL_CREATURE_TEMPLATE, "SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, name, femaleName, subname, TitleAlt, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, faction, npcflag, speed_walk, speed_run, scale, rank, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, unit_flags3, dynamicflags, family, trainer_class, type, type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, HealthModifier, HealthModifierExtra, ManaModifier, ManaModifierExtra, ArmorModifier, DamageModifier, ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?");
|
||||
PrepareStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_BY_ID, "SELECT guid, delay, command, datalong, datalong2, dataint, x, y, z, o FROM waypoint_scripts WHERE id = ?");
|
||||
PrepareStatement(WorldStatements.SEL_CREATURE_BY_ID, "SELECT guid FROM creature WHERE id = ?");
|
||||
PrepareStatement(WorldStatements.SEL_GAMEOBJECT_NEAREST, "SELECT guid, id, position_x, position_y, position_z, map, (POW(position_x - ?, 2) + POW(position_y - ?, 2) + POW(position_z - ?, 2)) AS order_ FROM gameobject WHERE map = ? AND (POW(position_x - ?, 2) + POW(position_y - ?, 2) + POW(position_z - ?, 2)) <= ? ORDER BY order_");
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.4.1" />
|
||||
<PackageReference Include="MySqlConnector" Version="0.40.4" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.5.0" />
|
||||
<PackageReference Include="MySqlConnector" Version="0.46.2" />
|
||||
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -5325,7 +5325,7 @@ namespace Bgs.Protocol.Account.V1
|
||||
public PrivacyInfo(PrivacyInfo other) : this()
|
||||
{
|
||||
isUsingRid_ = other.isUsingRid_;
|
||||
isRealIdVisibleForViewFriends_ = other.isRealIdVisibleForViewFriends_;
|
||||
isVisibleForViewFriends = other.isVisibleForViewFriends;
|
||||
isHiddenFromFriendFinder_ = other.isHiddenFromFriendFinder_;
|
||||
gameInfoPrivacy_ = other.gameInfoPrivacy_;
|
||||
}
|
||||
@@ -5350,14 +5350,14 @@ namespace Bgs.Protocol.Account.V1
|
||||
|
||||
/// <summary>Field number for the "is_real_id_visible_for_view_friends" field.</summary>
|
||||
public const int IsRealIdVisibleForViewFriendsFieldNumber = 4;
|
||||
private bool isRealIdVisibleForViewFriends_;
|
||||
private bool isVisibleForViewFriends;
|
||||
public bool IsRealIdVisibleForViewFriends
|
||||
{
|
||||
get { return isRealIdVisibleForViewFriends_; }
|
||||
get { return isVisibleForViewFriends; }
|
||||
set
|
||||
{
|
||||
bitArray.Set(IsRealIdVisibleForViewFriendsFieldNumber, true);
|
||||
isRealIdVisibleForViewFriends_ = value;
|
||||
isVisibleForViewFriends = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ using System.Linq;
|
||||
|
||||
public static partial class Detour
|
||||
{
|
||||
const float H_SCALE = 2.0f; // Search heuristic scale.
|
||||
const float H_SCALE = 0.999f; // Search heuristic scale.
|
||||
|
||||
/// Defines polygon filtering and traversal costs for navigation mesh query operations.
|
||||
// @ingroup detour
|
||||
|
||||
Reference in New Issue
Block a user