You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
850 lines
34 KiB
850 lines
34 KiB
|
|
--this file load after Plater_DefaultSettings.lua and before Plater.lua
|
|
--_G.Plater doesn't exists yet
|
|
|
|
local _
|
|
local addonName, platerInternal = ...
|
|
|
|
--namespaces
|
|
platerInternal.Scripts = {}
|
|
platerInternal.CastBar = {}
|
|
platerInternal.Mods = {}
|
|
platerInternal.Events = {}
|
|
platerInternal.Comms = {}
|
|
platerInternal.Frames = {}
|
|
platerInternal.Data = {}
|
|
platerInternal.Date = {}
|
|
platerInternal.Logs = {}
|
|
platerInternal.Audio = {}
|
|
---@type table<guid, boolean>
|
|
platerInternal.HasFriendlyAffiliation = {}
|
|
|
|
platerInternal.RemoveColor = "!removecolor"
|
|
platerInternal.NoColor = "no color"
|
|
|
|
platerInternal.Defaults = {
|
|
dropdownStatusBarTexture = [[Interface\Tooltips\UI-Tooltip-Background]],
|
|
dropdownStatusBarColor = {.1, .1, .1, .8},
|
|
}
|
|
|
|
platerInternal.UnitIdCache = {}
|
|
platerInternal.UnitIdCache.Party = {"player"}
|
|
platerInternal.UnitIdCache.PartyPet = {"playetpet"}
|
|
for i = 1, 4 do
|
|
table.insert(platerInternal.UnitIdCache.Party, "party" .. i)
|
|
table.insert(platerInternal.UnitIdCache.PartyPet, "partypet" .. i)
|
|
end
|
|
|
|
--cache unitIds so string unitId manipulating are no longer required
|
|
platerInternal.UnitIdCache.Raid = {}
|
|
platerInternal.UnitIdCache.RaidPet = {}
|
|
for i = 1, 40 do
|
|
platerInternal.UnitIdCache.Raid[i] = "raid" .. i
|
|
platerInternal.UnitIdCache.RaidPet[i] = "raidpet" .. i
|
|
end
|
|
|
|
platerInternal.UnitIdCache.Boss = {}
|
|
for i = 1, 9 do
|
|
platerInternal.UnitIdCache.Boss[i] = "boss" .. i
|
|
end
|
|
|
|
platerInternal.UnitIdCache.Nameplate = {}
|
|
for i = 1, 40 do
|
|
platerInternal.UnitIdCache.Nameplate[i] = "nameplate" .. i
|
|
end
|
|
|
|
platerInternal.UnitIdCache.Arena = {}
|
|
for i = 1, 5 do
|
|
platerInternal.UnitIdCache.Arena[i] = "arena" .. i
|
|
end
|
|
|
|
function platerInternal.CreateDataTables(Plater)
|
|
--addon comm
|
|
Plater.COMM_PLATER_PREFIX = "PLT"
|
|
Plater.COMM_SCRIPT_GROUP_EXPORTED = "GE"
|
|
Plater.COMM_SCRIPT_MSG = "PLTM"
|
|
Plater.COMM_NPC_NAME_EXPORTED = "NN"
|
|
Plater.COMM_NPC_COLOR_EXPORTED = "NC"
|
|
Plater.COMM_NPC_OR_CAST_CUSTOMIZATION = "NCC"
|
|
|
|
--unit reaction (saved 3 global locals)
|
|
Plater.UnitReaction = {
|
|
UNITREACTION_HOSTILE = 3,
|
|
UNITREACTION_NEUTRAL = 4,
|
|
UNITREACTION_FRIENDLY = 5,
|
|
}
|
|
|
|
--declaring the performance units within the plater namespace
|
|
Plater.PerformanceUnits = {}
|
|
|
|
--namespaces
|
|
Plater.Resources = {}
|
|
Plater.Auras = {}
|
|
|
|
--store spell cache. spell cache is loaded when adding new auras to track
|
|
Plater.SpellHashTable = {}
|
|
Plater.SpellIndexTable = {}
|
|
Plater.SpellSameNameTable = {}
|
|
|
|
--export strings identification
|
|
Plater.Export_CastColors = "CastColor"
|
|
Plater.Export_CastSoundAlerts = "CastSounds"
|
|
Plater.Export_NpcColors = "NpcColor"
|
|
|
|
--these tables store all bars created by boss mods
|
|
Plater.BossModsTimeBarDBM = {}
|
|
Plater.BossModsTimeBarBW = {}
|
|
|
|
--icon texcoords
|
|
Plater.WideIconCoords = {.1, .9, .1, .6} --used in extra icons frame, constant, can be changed with scripts
|
|
Plater.BorderLessIconCoords = {.1, .9, .1, .9} --used in extra icons frame,constant, can be changed with scripts
|
|
--note: regular icons has their texcoords automatically adjusted
|
|
|
|
--limit the cast bar text to this (this is dynamically adjusted at run time)
|
|
Plater.MaxCastBarTextLength = nil -- global overwrite
|
|
--auras
|
|
Plater.MaxAurasPerRow = 10 --can change during runtime
|
|
|
|
Plater.ForceInCombatUnits = {
|
|
--[] = true, --
|
|
[168326] = true, --Shattered Visage, Mueh'zala De Other Side
|
|
[170927] = true, --Erupting Ooze, Doctor Ickus Plaguefall
|
|
[171887] = true, --Slimy Smorgasbord, Globgrog Plaguefall
|
|
[164362] = true, --Slimy Morsel, Globgrog Plaguefall
|
|
[169159] = true, --Unstable Canister, Plaguefall
|
|
[168394] = true, --Slimy Morsel, Plaguefall
|
|
[176581] = true, --Spiked Ball, Painsmith Raznal SoD
|
|
[176920] = true, --Domination Arrow, Sylvanas SoD
|
|
[178008] = true, --Decrepit Orb, Sylvanas SoD
|
|
[179963] = true, --Terror Orb, Sylvanas SoD
|
|
[175861] = true, --Glacial Spike, Kel'Thusad SoD
|
|
[182778] = true, --Collapsing Quasar, Rygelon SotFO
|
|
[182823] = true, --Cosmic Core, Rygelon SotFO
|
|
[183945] = true, --Unstable Matter, Rygelon SotFO
|
|
[183745] = true, --Protoform Schematic, Lihuvim SotFO
|
|
[188302] = true, --Reconfiguration Emitter, Shadowlands S4 Fated affix
|
|
[188703] = true, --Protoform Barrier, Shadowlands S4 Fated affix
|
|
[176026] = true, --Dancing Fools, Council of Blood CN
|
|
[195318] = true,
|
|
[195580] = true,
|
|
[195820] = true,
|
|
[196642] = true,
|
|
[189886] = true,
|
|
[192955] = true,
|
|
[194806] = true,
|
|
[196548] = true,
|
|
[197398] = true,
|
|
[112668] = true,
|
|
[96608] = true,
|
|
[102019] = true,
|
|
[189893] = true, --187894?
|
|
[75966] = true, --75451?
|
|
[75899] = true,
|
|
[76518] = true,
|
|
[56792] = true,
|
|
[196559] = true,
|
|
[190187] = true,
|
|
[195138] = true,
|
|
[195821] = true,
|
|
[99922] = true,
|
|
[104822] = true,
|
|
[120651] = true, --explosives (M+)
|
|
[190381] = true, --Rotburst Totem
|
|
[130896] = true, --Blackout Barrel
|
|
[129758] = true, --Irontide Grenadier
|
|
[196712] = true, --Nullification Device
|
|
[195399] = true, --Curious Swoglet
|
|
[196043] = true, --Primalist Infuser
|
|
[97720] = true, --Blightshard Skitter
|
|
[98081] = true, --Bellowing Idol
|
|
[101075] = true, --Wormspeaker Devout
|
|
[101476] = true, --Molten Charskin
|
|
[192464] = true, --Raging Ember
|
|
[186696] = true, --Quaking Totem
|
|
[186107] = true, --Vault Keeper
|
|
[413263] = true, --Skyfall Nova
|
|
[202824] = true, --Erratic Remnant
|
|
[203230] = true, --Dragonfire Golem
|
|
[203812] = true, --Voice From Beyond
|
|
[100818] = true, -- Bellowing Idol
|
|
[92538] = true, -- Tarspitter Grub
|
|
[136330] = true, -- Soul Thorns
|
|
[136541] = true, -- Bile Oozeling
|
|
[133361] = true, -- Wasting Servant
|
|
[99664] = true, -- Restless Soul
|
|
[101008] = true, -- Stinging Swarm
|
|
[213219] = true, -- Bubbling Ooze
|
|
[214117] = true, -- Stormflurry Totem
|
|
[84400] = true, -- Flourishing Ancient
|
|
[100991] = true, -- Strangling Roots
|
|
[131009] = true, -- Spirit of Gold
|
|
[127315] = true, -- Reanimation Totem
|
|
[125828] = true, -- Soulspawn
|
|
[205212] = true, -- Infinite Keeper
|
|
[205265] = true, -- Time-Displaced Trooper
|
|
[213751] = true, -- Dynamite Mine Cart in Darkflame Cleft
|
|
[233623] = true, -- Pyrotechnics add on Rik Reverb
|
|
[237967] = true, -- Discharged Giga Bomb on Gallywix myhtic
|
|
}
|
|
|
|
--textures used in the cooldown animation, scripts can add more values to it, profile holds only the path to it
|
|
Plater.CooldownEdgeTextures = {
|
|
[[Interface\AddOns\Plater\images\cooldown_edge_1]],
|
|
[[Interface\AddOns\Plater\images\cooldown_edge_2]],
|
|
"Interface\\Cooldown\\edge",
|
|
"Interface\\Cooldown\\edge-LoC",
|
|
[[Interface\AddOns\Plater\images\transparent]],
|
|
}
|
|
|
|
--textures used in the castbar, scripts can add more values to it, profile holds only the path to it
|
|
Plater.SparkTextures = {
|
|
[[Interface\AddOns\Plater\images\spark1]],
|
|
[[Interface\AddOns\Plater\images\spark2]],
|
|
[[Interface\AddOns\Plater\images\spark3]],
|
|
[[Interface\AddOns\Plater\images\spark4]],
|
|
[[Interface\AddOns\Plater\images\spark5]],
|
|
[[Interface\AddOns\Plater\images\spark6]],
|
|
[[Interface\AddOns\Plater\images\spark7]],
|
|
[[Interface\AddOns\Plater\images\spark8]],
|
|
}
|
|
|
|
--textures used to indicate which nameplate is the current target, scripts can add more values to it, profile holds only the path to it
|
|
Plater.TargetHighlights = {
|
|
[[Interface\AddOns\Plater\images\selection_indicator1]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator2]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator3]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator4]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator5]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator6]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator7]],
|
|
[[Interface\AddOns\Plater\images\selection_indicator8]],
|
|
}
|
|
|
|
--icons available for any purpose
|
|
Plater.Media = {
|
|
Icons = {
|
|
[[Interface\AddOns\Plater\media\arrow_apple_64]],
|
|
[[Interface\AddOns\Plater\media\arrow_double_right_64]],
|
|
[[Interface\AddOns\Plater\media\arrow_right_64]],
|
|
[[Interface\AddOns\Plater\media\arrow_simple_right_64]],
|
|
[[Interface\AddOns\Plater\media\arrow_single_right_64]],
|
|
[[Interface\AddOns\Plater\media\arrow_thin_right_64]],
|
|
[[Interface\AddOns\Plater\media\blocked_center_64]],
|
|
[[Interface\AddOns\Plater\media\crown_64]],
|
|
[[Interface\AddOns\Plater\media\drop_64]],
|
|
[[Interface\AddOns\Plater\media\duck_64]],
|
|
[[Interface\AddOns\Plater\media\exclamation_64]],
|
|
[[Interface\AddOns\Plater\media\exclamation2_64]],
|
|
[[Interface\AddOns\Plater\media\fire_64]],
|
|
[[Interface\AddOns\Plater\media\glasses_64]],
|
|
[[Interface\AddOns\Plater\media\glow_horizontal_256]],
|
|
[[Interface\AddOns\Plater\media\glow_radial_128]],
|
|
[[Interface\AddOns\Plater\media\glow_square_64]],
|
|
[[Interface\AddOns\Plater\media\hat_64]],
|
|
[[Interface\AddOns\Plater\media\heart_center_64]],
|
|
[[Interface\AddOns\Plater\media\line_horizontal_256]],
|
|
[[Interface\AddOns\Plater\media\line_vertical_256]],
|
|
[[Interface\AddOns\Plater\media\radio_64]],
|
|
[[Interface\AddOns\Plater\media\skullbones_64]],
|
|
[[Interface\AddOns\Plater\media\stop_64]],
|
|
[[Interface\AddOns\Plater\media\star_empty_64]],
|
|
[[Interface\AddOns\Plater\media\star_full_64]],
|
|
[[Interface\AddOns\Plater\media\x_64]],
|
|
[[Interface\AddOns\Plater\media\checked_64]],
|
|
[[Interface\AddOns\Plater\media\sphere_full_64]],
|
|
[[Interface\AddOns\Plater\media\eye_64]],
|
|
[[Interface\AddOns\Plater\media\cross_64]],
|
|
},
|
|
}
|
|
|
|
--these are the images shown in the nameplate of the current target, they are placed in the left and right side of the health bar, scripts can add more options
|
|
--if the coords has 2 tables, it uses two textures attach in the left and right sides of the health bar
|
|
--if the coords has 4 tables, it uses 4 textures attached in top left, bottom left, top right and bottom right corners
|
|
Plater.TargetIndicators = {
|
|
["NONE"] = {
|
|
path = [[Interface\ACHIEVEMENTFRAME\UI-Achievement-WoodBorder-Corner]],
|
|
coords = {{.9, 1, .9, 1}, {.9, 1, .9, 1}, {.9, 1, .9, 1}, {.9, 1, .9, 1}}, --texcoords, support 4 or 8 coords method
|
|
desaturated = false,
|
|
width = 10,
|
|
height = 10,
|
|
x = 1, --offset
|
|
y = 1, --offset
|
|
},
|
|
|
|
["Magneto"] = {
|
|
path = [[Interface\Artifacts\RelicIconFrame]],
|
|
coords = {{0, .5, 0, .5}, {0, .5, .5, 1}, {.5, 1, .5, 1}, {.5, 1, 0, .5}},
|
|
desaturated = false,
|
|
width = 8,
|
|
height = 10,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 2,
|
|
y = 2,
|
|
},
|
|
|
|
["Gray Bold"] = {
|
|
path = [[Interface\ContainerFrame\UI-Icon-QuestBorder]],
|
|
coords = {{0, .5, 0, .5}, {0, .5, .5, 1}, {.5, 1, .5, 1}, {.5, 1, 0, .5}},
|
|
desaturated = true,
|
|
width = 10,
|
|
height = 10,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 2,
|
|
y = 2,
|
|
},
|
|
|
|
["Pins"] = {
|
|
path = [[Interface\ITEMSOCKETINGFRAME\UI-ItemSockets]],
|
|
coords = {{145/256, 161/256, 3/256, 19/256}, {145/256, 161/256, 19/256, 3/256}, {161/256, 145/256, 19/256, 3/256}, {161/256, 145/256, 3/256, 19/256}},
|
|
desaturated = 1,
|
|
width = 4,
|
|
height = 4,
|
|
autoScale = false,
|
|
--scale = 1,
|
|
x = 2,
|
|
y = 2,
|
|
},
|
|
|
|
["Silver"] = {
|
|
path = [[Interface\PETBATTLES\PETBATTLEHUD]],
|
|
coords = {
|
|
{848/1024, 868/1024, 454/512, 474/512},
|
|
{848/1024, 868/1024, 474/512, 495/512},
|
|
{868/1024, 889/1024, 474/512, 495/512},
|
|
{868/1024, 889/1024, 454/512, 474/512}
|
|
}, --848 889 454 495
|
|
desaturated = false,
|
|
width = 6,
|
|
height = 6,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 1,
|
|
y = 1,
|
|
},
|
|
|
|
["Ornament"] = {
|
|
path = [[Interface\PETBATTLES\PETJOURNAL]],
|
|
coords = {
|
|
{124/512, 161/512, 71/1024, 99/1024},
|
|
{119/512, 156/512, 29/1024, 57/1024}
|
|
},
|
|
desaturated = false,
|
|
width = 18,
|
|
height = 12,
|
|
wscale = 1,
|
|
hscale = 1.2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 14,
|
|
y = 0,
|
|
},
|
|
|
|
["Golden"] = {
|
|
path = [[Interface\Artifacts\Artifacts]],
|
|
coords = {
|
|
{137/1024, (137+29)/1024, 920/1024, 978/1024},
|
|
{(137+30)/1024, 195/1024, 920/1024, 978/1024},
|
|
},
|
|
desaturated = false,
|
|
width = 8,
|
|
height = 12,
|
|
wscale = 1,
|
|
hscale = 1.2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 0,
|
|
y = 0,
|
|
},
|
|
|
|
["Ornament Gray"] = {
|
|
path = [[Interface\Challenges\challenges-besttime-bg]],
|
|
coords = {
|
|
{89/512, 123/512, 0, 1},
|
|
{123/512, 89/512, 0, 1},
|
|
},
|
|
desaturated = false,
|
|
width = 8,
|
|
height = 12,
|
|
alpha = 0.7,
|
|
wscale = 1,
|
|
hscale = 1.2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 0,
|
|
y = 0,
|
|
color = "red",
|
|
},
|
|
|
|
["Epic"] = {
|
|
path = [[Interface\UNITPOWERBARALT\WowUI_Horizontal_Frame]],
|
|
coords = {
|
|
{30/256, 40/256, 15/64, 49/64},
|
|
{40/256, 30/256, 15/64, 49/64},
|
|
},
|
|
desaturated = false,
|
|
width = 6,
|
|
height = 12,
|
|
wscale = 1,
|
|
hscale = 1.2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
x = 3,
|
|
y = 0,
|
|
blend = "ADD",
|
|
},
|
|
|
|
["Arrow"] = {
|
|
path = [[Interface\AddOns\Plater\media\arrow_single_right_64]],
|
|
coords = {
|
|
{0, 1, 0, 1},
|
|
{1, 0, 0, 1}
|
|
},
|
|
desaturated = false,
|
|
width = 20,
|
|
height = 20,
|
|
x = 28,
|
|
y = 0,
|
|
wscale = 1.5,
|
|
hscale = 2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
blend = "ADD",
|
|
color = "white",
|
|
},
|
|
|
|
["Arrow Thin"] = {
|
|
path = [[Interface\AddOns\Plater\media\arrow_thin_right_64]],
|
|
coords = {
|
|
{0, 1, 0, 1},
|
|
{1, 0, 0, 1}
|
|
},
|
|
desaturated = false,
|
|
width = 20,
|
|
height = 20,
|
|
x = 28,
|
|
y = 0,
|
|
wscale = 1.5,
|
|
hscale = 2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
blend = "ADD",
|
|
color = "white",
|
|
},
|
|
|
|
["Double Arrows"] = {
|
|
path = [[Interface\AddOns\Plater\media\arrow_double_right_64]],
|
|
coords = {
|
|
{0, 1, 0, 1},
|
|
{1, 0, 0, 1}
|
|
},
|
|
desaturated = false,
|
|
width = 20,
|
|
height = 20,
|
|
x = 28,
|
|
y = 0,
|
|
wscale = 1.5,
|
|
hscale = 2,
|
|
autoScale = true,
|
|
--scale = 1,
|
|
blend = "ADD",
|
|
color = "white",
|
|
},
|
|
}
|
|
|
|
--which specs each class has available
|
|
Plater.SpecList = { --private
|
|
["DEMONHUNTER"] = {
|
|
[577] = true,
|
|
[581] = true,
|
|
},
|
|
["DEATHKNIGHT"] = {
|
|
[250] = true,
|
|
[251] = true,
|
|
[252] = true,
|
|
},
|
|
["WARRIOR"] = {
|
|
[71] = true,
|
|
[72] = true,
|
|
[73] = true,
|
|
},
|
|
["MAGE"] = {
|
|
[62] = true,
|
|
[63] = true,
|
|
[64] = true,
|
|
},
|
|
["ROGUE"] = {
|
|
[259] = true,
|
|
[260] = true,
|
|
[261] = true,
|
|
},
|
|
["DRUID"] = {
|
|
[102] = true,
|
|
[103] = true,
|
|
[104] = true,
|
|
[105] = true,
|
|
},
|
|
["HUNTER"] = {
|
|
[253] = true,
|
|
[254] = true,
|
|
[255] = true,
|
|
},
|
|
["SHAMAN"] = {
|
|
[262] = true,
|
|
[263] = true,
|
|
[264] = true,
|
|
},
|
|
["PRIEST"] = {
|
|
[256] = true,
|
|
[257] = true,
|
|
[258] = true,
|
|
},
|
|
["WARLOCK"] = {
|
|
[265] = true,
|
|
[266] = true,
|
|
[267] = true,
|
|
},
|
|
["PALADIN"] = {
|
|
[65] = true,
|
|
[66] = true,
|
|
[70] = true,
|
|
},
|
|
["MONK"] = {
|
|
[268] = true,
|
|
[269] = true,
|
|
[270] = true,
|
|
},
|
|
["EVOKER"] = {
|
|
[1467] = true,
|
|
[1468] = true,
|
|
[1473] = true,
|
|
},
|
|
}
|
|
|
|
--default ranges to use in the range check proccess against enemies, player can select a different range in the options panel
|
|
Plater.DefaultSpellRangeList = {
|
|
--classes
|
|
[1] = 10, --Warrior
|
|
[2] = 30, --Paladin
|
|
[3] = 30, --Hunter
|
|
[4] = 10, --Rogue
|
|
[5] = 30, --Priest
|
|
[6] = 10, --DeathKnight
|
|
[7] = 30, --Shaman
|
|
[8] = 30, --Mage
|
|
[9] = 30, --Warlock
|
|
[10] = 10, --Monk
|
|
[11] = 30, --Druid
|
|
[12] = 10, --DH
|
|
|
|
[577] = 30, --> havoc demon hunter
|
|
[581] = 30, --> vengeance demon hunter
|
|
|
|
[250] = 30, --> blood dk
|
|
[251] = 30, --> frost dk
|
|
[252] = 30, --> unholy dk
|
|
|
|
[102] = 45, --> druid balance
|
|
[103] = 40, --> druid feral
|
|
[104] = 30, --> druid guardian
|
|
[105] = 40, --> druid resto
|
|
|
|
[253] = 40, --> hunter bm - Cobra Shot
|
|
[254] = 40, --> hunter marks - Aimed Shot
|
|
[255] = 40, --> hunter survivor - Serpent Sting
|
|
|
|
[62] = 40, --> mage arcane
|
|
[63] = 40, --> mage fire
|
|
[64] = 40, --> mage frost
|
|
|
|
[268] = 30 , --> monk bm
|
|
[269] = 40, --> monk ww
|
|
[270] = 40, --> monk mw
|
|
|
|
[65] = 40, --> paladin holy
|
|
[66] = 30, --> paladin protect
|
|
[70] = 30, --> paladin ret
|
|
|
|
[256] = 40, --> priest disc
|
|
[257] = 40, --> priest holy
|
|
[258] = 40, --> priest shadow
|
|
|
|
[259] = 30, --> rogue assassination
|
|
[260] = 20, --> rogue outlaw
|
|
[261] = 30, --> rogue sub
|
|
|
|
[262] = 40, --> shaman elemental
|
|
[263] = 40, --> shaman enhancement
|
|
[264] = 40, --> shaman resto
|
|
|
|
[265] = 40, --> warlock aff
|
|
[266] = 40, --> warlock demo
|
|
[267] = 40, --> warlock destro
|
|
|
|
[71] = 30, --> warrior arms
|
|
[72] = 30, --> warrior fury
|
|
[73] = 30, --> warrior protect
|
|
|
|
[1467] = 25, --> evoker devastation
|
|
[1468] = 25, --> evoker preservation
|
|
[1473] = 25, --> evoker augmentation
|
|
|
|
-- low-level (without spec)
|
|
[1444] = 40, --> Initial SHAMAN
|
|
[1446] = 40, --> Initial WARRIOR
|
|
[1447] = 40, --> Initial DRUID
|
|
[1448] = 40, --> Initial HUNTER
|
|
[1449] = 40, --> Initial MAGE
|
|
[1450] = 40, --> Initial MONK
|
|
[1451] = 40, --> Initial PALADIN
|
|
[1452] = 40, --> Initial PRIEST
|
|
[1453] = 40, --> Initial ROGUE
|
|
[1454] = 40, --> Initial WARLOCK
|
|
[1455] = 40, --> Initial DK
|
|
[1456] = 40, --> Initial DH
|
|
}
|
|
|
|
--default ranges to use in the range check proccess against friendlies, player can select a different range in the options panel
|
|
Plater.DefaultSpellRangeListF = {
|
|
--classes
|
|
[1] = 30, --Warrior
|
|
[2] = 40, --Paladin
|
|
[3] = 40, --Hunter
|
|
[4] = 10, --Rogue
|
|
[5] = 40, --Priest
|
|
[6] = 30, --DeathKnight
|
|
[7] = 40, --Shaman
|
|
[8] = 40, --Mage
|
|
[9] = 40, --Warlock
|
|
[10] = 40, --Monk
|
|
[11] = 40, --Druid
|
|
[12] = 30, --DH
|
|
|
|
[577] = 30, --> havoc demon hunter
|
|
[581] = 30, --> vengeance demon hunter
|
|
|
|
[250] = 30, --> blood dk
|
|
[251] = 30, --> frost dk
|
|
[252] = 30, --> unholy dk
|
|
|
|
[102] = 45, --> druid balance
|
|
[103] = 40, --> druid feral
|
|
[104] = 30, --> druid guardian
|
|
[105] = 40, --> druid resto
|
|
|
|
[253] = 40, --> hunter bm - Cobra Shot
|
|
[254] = 40, --> hunter marks - Aimed Shot
|
|
[255] = 40, --> hunter survivor - Serpent Sting
|
|
|
|
[62] = 40, --> mage arcane
|
|
[63] = 40, --> mage fire
|
|
[64] = 40, --> mage frost
|
|
|
|
[268] = 30 , --> monk bm
|
|
[269] = 40, --> monk ww
|
|
[270] = 40, --> monk mw
|
|
|
|
[65] = 40, --> paladin holy
|
|
[66] = 30, --> paladin protect
|
|
[70] = 30, --> paladin ret
|
|
|
|
[256] = 40, --> priest disc
|
|
[257] = 40, --> priest holy
|
|
[258] = 40, --> priest shadow
|
|
|
|
[259] = 10, --> rogue assassination
|
|
[260] = 10, --> rogue outlaw
|
|
[261] = 10, --> rogue sub
|
|
|
|
[262] = 40, --> shaman elemental
|
|
[263] = 40, --> shaman enhancement
|
|
[264] = 40, --> shaman resto
|
|
|
|
[265] = 40, --> warlock aff
|
|
[266] = 40, --> warlock demo
|
|
[267] = 40, --> warlock destro
|
|
|
|
[71] = 30, --> warrior arms
|
|
[72] = 30, --> warrior fury
|
|
[73] = 30, --> warrior protect
|
|
|
|
[1467] = 25, --> evoker devastation
|
|
[1468] = 25, --> evoker preservation
|
|
[1473] = 25, --> evoker augmentation
|
|
|
|
-- low-level (without spec)
|
|
[1444] = 40, --> Initial SHAMAN
|
|
[1446] = 40, --> Initial WARRIOR
|
|
[1447] = 40, --> Initial DRUID
|
|
[1448] = 40, --> Initial HUNTER
|
|
[1449] = 40, --> Initial MAGE
|
|
[1450] = 40, --> Initial MONK
|
|
[1451] = 40, --> Initial PALADIN
|
|
[1452] = 40, --> Initial PRIEST
|
|
[1453] = 40, --> Initial ROGUE
|
|
[1454] = 40, --> Initial WARLOCK
|
|
[1455] = 40, --> Initial DK
|
|
[1456] = 40, --> Initial DH
|
|
}
|
|
|
|
--types of codes for each script in the Scripting tab (do not change these inside scripts)
|
|
Plater.CodeTypeNames = { --private
|
|
[1] = "UpdateCode",
|
|
[2] = "ConstructorCode",
|
|
[3] = "OnHideCode",
|
|
[4] = "OnShowCode",
|
|
[5] = "Initialization",
|
|
}
|
|
|
|
--hook options
|
|
--types of codes available to add in a script in the Hooking tab
|
|
Plater.HookScripts = { --private
|
|
"Initialization",
|
|
"Deinitialization",
|
|
"Constructor",
|
|
"Destructor",
|
|
"Nameplate Created",
|
|
"Nameplate Added",
|
|
"Nameplate Removed",
|
|
"Nameplate Updated",
|
|
"Cast Start",
|
|
"Cast Update",
|
|
"Cast Stop",
|
|
"Target Changed",
|
|
"Raid Target",
|
|
"Enter Combat",
|
|
"Leave Combat",
|
|
"Player Power Update",
|
|
"Player Talent Update",
|
|
"Health Update",
|
|
"Zone Changed",
|
|
"Name Updated",
|
|
"Load Screen",
|
|
"Player Logon",
|
|
"Receive Comm Message",
|
|
"Send Comm Message",
|
|
"Option Changed",
|
|
"Mod Option Changed",
|
|
}
|
|
|
|
Plater.HookScriptsDesc = { --private
|
|
["Initialization"] = "Executed once for the mod every time it is loaded or compiled. Used to initialize the global mod environment 'modTable'.",
|
|
["Deinitialization"] = "Executed once for the mod every time it is unloaded. Used to de-initialize the global mod environment 'modTable' and the mod.",
|
|
["Constructor"] = "Executed once when the nameplate run the hook for the first time.\n\nUse to initialize configs in the environment.\n\nAlways receive unitFrame in 'self' parameter.",
|
|
["Destructor"] = "Run when the hook is Disabled or unloaded due to Load Conditions.\n\nUse to hide all frames created.\n\n|cFF44FF44Run on all nameplates shown in the screen|r.",
|
|
["Nameplate Created"] = "Executed when a nameplate is created.\n\nRequires a |cFFFFFF22/reload|r after changing the code.",
|
|
["Nameplate Added"] = "Run after a nameplate is added to the screen.",
|
|
["Nameplate Removed"] = "Run when the nameplate is removed from the screen.",
|
|
["Nameplate Updated"] = "Run after the nameplate gets an updated from Plater.\n\n|cFFFFFF22Important:|r doesn't run every frame.",
|
|
|
|
["Cast Start"] = "When the unit starts to cast a spell.\n\n|cFFFFFF22self|r is unitFrame.castBar",
|
|
["Cast Update"] = "When the cast bar receives an update from Plater.\n\n|cFFFFFF22Important:|r doesn't run every frame.\n\n|cFFFFFF22self|r is unitFrame.castBar",
|
|
["Cast Stop"] = "When the cast is finished for any reason or the nameplate has been removed from the screen.\n\n|cFFFFFF22self|r is unitFrame.castBar",
|
|
|
|
["Target Changed"] = "Run after the player selects a new target.\n\n|cFF44FF44Run on all nameplates shown in the screen|r.",
|
|
["Raid Target"] = "A raid target mark has added, modified or removed (skull, cross, etc).\n\n|cFF44FF44Run on all nameplates shown in the screen|r.",
|
|
["Enter Combat"] = "Executed shortly after the player enter combat.\n\n|cFF44FF44Run on all nameplates shown in the screen|r.",
|
|
["Leave Combat"] = "Executed shortly after the player leave combat.\n\n|cFF44FF44Run on all nameplates shown in the screen|r.",
|
|
|
|
["Player Power Update"] = "Run when the player power, such as combo points, gets an update.\n\n|cFF44FF44Run only on the nameplate of your current target|r.",
|
|
["Player Talent Update"] = "When the player changes a talent or specialization.\n\n|cFF44FF44Run on all nameplates shown in the screen|r.",
|
|
|
|
["Health Update"] = "When the health of the unit changes.",
|
|
["Zone Changed"] = "Run when the player enter into a new zone.\n\n|cFF44FF44Run on all nameplates already created, on screen or not|r.",
|
|
["Name Updated"] = "Executed when the name of the unit shown in the nameplate receives an update.",
|
|
["Load Screen"] = "Run when a load screen finishes.\n\nUse to change settings for a specific area or map.\n\n|cFF44FF44Do not run on nameplates|r.",
|
|
["Player Logon"] = "Run when the player login into the game.\n\nUse to register textures, indicators, etc.\n\n|cFF44FF44Do not run on nameplates,\nrun only once after login\nor /reload|r.",
|
|
["Receive Comm Message"] = "Executed when a comm is received, a comm can be sent using Plater.SendComm(payload) in 'Send Comm Message' hook.",
|
|
["Send Comm Message"] = "Executed on an internal timer for each mod. Used to send comm data via Plater.SendComm(payload).",
|
|
["Option Changed"] = "Executed when a option in the options panel has changed",
|
|
["Mod Option Changed"] = "Executed when a option in the mod options panel has changed",
|
|
}
|
|
|
|
--all functions below can be overridden by scripts, hooks or any external code
|
|
--this allows the user to fully modify Plater at a high level
|
|
--how to override a function:
|
|
--create a script in the hooking tab, add a 'Constructor' and a 'Nameplate Created'
|
|
--copy the entire function from this file and paste in the constructor, hit save.
|
|
--then when the first nameplate appears in the screen the function get rewritten
|
|
--for fast debugging is recomended to paste the function in a 'Nameplate Updated' hook so just by saving the script (SHIFT + ENTER) you get the function to update immediately.
|
|
Plater.CanOverride_Functions = {
|
|
RefreshDBUpvalues = true, --refresh cache
|
|
RefreshDBLists = true, --refresh cache
|
|
UpdateAuraCache = true, --refresh cache
|
|
|
|
CreateShowAuraIconAnimation = true, --creates the animation for aura icons played when they are shown
|
|
GetHealthCutoffValue = true, --check if the character has a execute range and enable or disable the health cut off indicators
|
|
CheckRange = true, --check if the player is in range of the unit
|
|
GetSpellForRangeCheck = true, --get a spell to be used in the range check
|
|
SetFontOutlineAndShadow = true, --apply the outline and shadow of a text
|
|
UpdatePersonalBar = true, --update the personal bar
|
|
UpdateResourceFrame = true, --anchors the resource frame (soul shards, combo points, etc)
|
|
UpdateCastbarTargetText = true, --update the settings of the cast target (font color, size, etc)
|
|
UpdateSpellNameSize = true, --receive a fontString and set the length of the spell name size in the cast bar
|
|
QuickHealthUpdate = true, --update the health bar during NAMEPLATE_ADDED
|
|
OnUpdateHealth = true, --when the healthbar get a new health value
|
|
OnUpdateHealthMax = true, --when the maxhealth of the healthbar get updated
|
|
UpdateIconAspecRatio = true, --adjust the icon texcoords depending on its size
|
|
FormatTime = true, --get a number and return it formated into time, e.g. 63 return "1m" 1 minute
|
|
FormatTimeDecimal = true, --get a number and return it formated into time with decimals below 10sec, e.g. 9.5 return "9.5s"
|
|
ResetAuraContainer = true, --reset the aura container to be ready to a refresh
|
|
TrackSpecificAuras = true, --refresh the aura container using a list of auras to track
|
|
UpdateAuras_Manual = true, --start an aura refresh for manual aura tracking
|
|
UpdateAuras_Automatic = true, --start an aura refresh for automatic aura tracking
|
|
UpdateAuras_Self_Automatic = true, --start an aura refresh on the personal bar nameplate
|
|
|
|
ColorOverrider = true, --control which color que nameplate will have when the Override Default Colors are enabled
|
|
FindAndSetNameplateColor = true, --Plater tries to find a color for the nameplate
|
|
SetTextColorByClass = true, --adds the class color into a text with scape sequence
|
|
|
|
UpdatePlateSize = true, --control the size of health, cast, power bars
|
|
SetPlateBackground = true, --set the backdrop when showing the nameplate area
|
|
UpdateNameplateThread = true, --change the nameplate color based on threat
|
|
UpdateTargetHighlight = true, --adjust the highlight on the player target nameplate
|
|
UpdateTargetIndicator = true, --adjust the target indicator on the player target nameplate
|
|
UpdateLifePercentVisibility = true, --control when the life percent text is shown
|
|
UpdateLifePercentText = true, --update the health shown in the nameplate
|
|
AddGuildNameToPlayerName = true, --adds the guild name into the player name
|
|
UpdateUnitName = true, --update the unit name
|
|
UpdateUnitNameTextSize = true, --controls the length of the unit name text
|
|
UpdateBorderColor = true, --update the color of the border
|
|
UpdatePlateBorderThickness = true, --adjust how thick is the border around the health bar
|
|
UpdatePlateRaidMarker = true, --update the raid marker in the nameplate
|
|
UpdateIndicators = true, --check which indicators will be shown in the nameplate (rare, elite, etc)
|
|
AddIndicator = true, --adds an indicator
|
|
ClearIndicators = true, --clear all indicators in the nameplate
|
|
GetPlateAlpha = true, --get the absolute alpha amount for the nameplate (when in range)
|
|
CheckHighlight = true, --check if the mouse is over the nameplate and show the highlight
|
|
EnableHighlight = true, --enable the highlight check
|
|
DisableHighlight = true, --disable the highlight check
|
|
GetUnitType = true, --return if an unit is a pet, minor or regular
|
|
|
|
AnimateLeftWithAccel = true, --move the health bar to left when health animation is enabled
|
|
AnimateRightWithAccel = true, --move the health bar to right when health animation is enabled
|
|
IsQuestObjective = true, --check if the npc from the nameplate is a quest mob
|
|
}
|
|
|
|
--store functions and members which can be overridden by scripts
|
|
Plater.CanOverride_Members = {
|
|
TargetIndicators = true, --table with all options for target indicators
|
|
TargetHighlights = true, --table with all options for target highlight
|
|
SparkTextures = true, --table with all textures available for castbar sparks
|
|
CooldownEdgeTextures = true, --table with all textures available for cooldown edges
|
|
AurasHorizontalPadding = true, --space in pixels between each row of buffs
|
|
WideIconCoords = true, --used on buff special icons, are the texcoordinates when using wide icons
|
|
BorderLessIconCoords = true, --used on buff special icons, when not using wide icons
|
|
PlayerIsTank = true, --for aggro checks, if true the function will consider the player as tank
|
|
CombatTime = true, --GetTime() of when the player entered in combat, affect aggro animations
|
|
CurrentEncounterID = true, --store the current encounter ID if in combat and fighiting a boss
|
|
LatestEncounter = true, --store time() from the latest ENCOUNTER_END
|
|
ZoneInstanceType = true, --from GetInstanceInfo zone type, can be party, raid, arena, pvp, none
|
|
ZonePvpType = true, --from GetZonePVPInfo
|
|
PlayerGuildName = true, --name of the player's guild
|
|
SpellForRangeCheck = true, --spell name used for range check
|
|
PlayerGUID = true, --store the GUID of the player
|
|
PlayerClass = true, --store the name for the player (non localized)
|
|
}
|
|
|
|
|
|
end
|
|
|