-
Notifications
You must be signed in to change notification settings - Fork 1
/
LVBM_GUI_InfoFrame.lua
513 lines (449 loc) · 17.5 KB
/
LVBM_GUI_InfoFrame.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
-- -------------------------------------------------------------------------- --
-- InfoFrame for La Vendetta Boss Mods written by LV|Nitram & Destiny|Tandanu --
-- -------------------------------------------------------------------------- --
-- v1.00: -- from InfoFrame
-- Added functions:
-- myInfoFrame = LVBMGui:CreateInfoFrame(title, text)
-- myInfoFrame:SetTitle(title)
-- myInfoFrame:SetText(text)
--
-- myInfoFrameStatusBar = myInfoFrame:CreateStatusBar(min, max, value, title)
-- myInfoFrameStatusBar:SetValue(value)
-- myInfoFrameStatusBar:SetTitle(title)
--
-- myInfoFrameTextField = myInfoFrame:CreateTextField(text)
-- myInfoFrameTextField:SetText(text)
--
-- these methods are also available for status bars and text fields
-- myInfoFrame:Show()
-- myInfoFrame:Hide()
-- myInfoFrame:GetObject() - returns the frame object
-- myInfoFrame:Delete() - you can not delete frames, but this function hides the frame and
-- - moves it to a "trash can"...the frame will be re-used next time you create a frame of this type
--
-- Added Function LVBMGui.InfoFrameRestoreFind(ftype) (DO NOT CALL) -- search in Trash
-- Added Function LVBMGui.InfoFrameGetNewName() (DO NOT CALL) -- used to get a new FrameName
--
-- Added Function LVBM_Gui_CreateDistanceFrame() for a in Range Frame (C'Thun,...)
-- Added Function LVBM_Gui_DistanceFrame() to show/hide the Range Frame
-- Added Function LVBM_InfoFrameTemplate_OnUpdate() -- allways called by Frame:OnUpdate
--
-- v1.10:
-- Updated Delete Function
-- Updated Frame Positioning
-- Updated Create Function
--
-- -------------------------------------------------------------------- --
LVBMGui = { -- Create table
["Trash"] = { -- Unused Frames moved there for recycling
},
["FrameID"] = 1; -- hmm i can't find a function to change the Name of a Frame so i use my own with ID
};
-- Save Positions of InfoFrames - Frame by Frame
if( LVBMInfoFramePosition == nil ) then LVBMInfoFramePosition = {}; end
-- Handler for Auto CleanUp
LVBMStatusBarHandler = { "OnChar", "OnDragStart", "OnDragStop", "OnEnter", "OnEvent", "OnHide", "OnKeyDown",
"OnKeyUp", "OnLeave", "OnLoad", "OnMouseDown", "OnMouseUp", "OnMouseWheel", "OnReceiveDrag",
"OnShow", "OnSizeChanged", "OnUpdate", "OnValueChanged",
};
LVBMFrameHandler = { "OnChar", "OnDragStart", "OnDragStop", "OnEnter", "OnEvent", "OnHide", "OnKeyDown",
"OnKeyUp", "OnLeave", "OnLoad", "OnMouseDown", "OnMouseUp", "OnMouseWheel", "OnReceiveDrag",
"OnShow", "OnSizeChanged", "OnUpdate", "CHAT_MSG_MONSTER_YELL",
};
LVBMFrameDefaultScripts = {
["OnMouseDown"] = function()
if ( arg1 == "RightButton" and IsShiftKeyDown() ) then
this:Hide();
elseif ( arg1 == "RightButton" ) then
this:StartMoving();
end
end,
["OnMouseUp"] = function()
if ( arg1 == "RightButton" ) then
this:StopMovingOrSizing();
local xOfs, yOfs = this:GetCenter();
yOfs = yOfs - (UIParent:GetHeight() / UIParent:GetEffectiveScale());
LVBMInfoFramePosition[this.Name] = {
["x"] = xOfs;
["y"] = yOfs;
}
end
end,
["OnEnter"] = function()
GameTooltip:Hide();
GameTooltip:ClearLines();
GameTooltip:SetOwner(this, "ANCHOR_CURSOR");
GameTooltip:SetText(LVBMGUI_INFOFRAME_TOOLTIP_TITLE, 1,1,1);
GameTooltip:AddLine(LVBMGUI_INFOFRAME_TOOLTIP_TEXT, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
GameTooltip:Show();
end,
["OnLeave"] = function()
GameTooltip:Hide();
end,
["OnHide"] = function()
this:StopMovingOrSizing();
end,
["OnUpdate"] = function()
LVBM_InfoFrameTemplate_OnUpdate(this, arg1);
end,
};
LVBMGuiStatusBar = setmetatable({}, {["__index"] = LVBMGui});
LVBMGuiTextField = setmetatable({}, {["__index"] = LVBMGui});
function LVBM_InfoFrameTemplate_OnUpdate(frame, elapsed, forceUpdate)
frame.elapsed = frame.elapsed + elapsed;
if( frame.elapsed > 1 ) or forceUpdate then
frame.elapsed = 0;
frame.myTemp = 0;
frame.myTempHeight = 0;
frame.myWidth = getglobal(frame:GetName().."Text"):GetStringWidth();
if( frame.myWidth < 84 ) then frame.myWidth = 84; end
frame.myHeight = string.getnum( getglobal(frame:GetName().."Text"):GetText(), "\n" );
frame.myHeight = frame.myHeight * 16;
if( frame.myHeight < 16 ) then frame.myHeight = 16; end
local subframes = { frame:GetChildren() };
for _,child in ipairs(subframes) do
child:SetPoint("TOP", frame, "TOP", 0, ((frame.myTempHeight + frame.myHeight + 23 + 10 )*(-1)));
frame.myTemp = child:GetWidth();
frame.myTempHeight = frame.myTempHeight + child:GetHeight();
if( frame.myTemp > frame.myWidth ) then
frame.myWidth = frame.myTemp;
end
end
frame:SetWidth( frame.myWidth + 16 );
frame:SetHeight( frame.myTempHeight + frame.myHeight + 23 + 16 ); -- Childs + Text + Title + Border
end
end
function LVBMGui.InfoFrameGetNewName()
LVBMGui["FrameID"] = LVBMGui["FrameID"] + 1;
return "LVBMInfoFrameID"..(LVBMGui["FrameID"] - 1);
end
LVBMGuiMetatable = {
["__index"] = LVBMGui,
};
LVBMGuiStatusBarMetatable = {
["__index"] = LVBMGuiStatusBar,
};
LVBMGuiTextFieldMetatable = {
["__index"] = LVBMGuiTextField,
};
function LVBMGui:CreateInfoFrame(iTitle, iText)
if self ~= LVBMGui then return; end
local tempFrame;
tempFrame = LVBMGui.InfoFrameRestoreFind("MainFrame");
if( tempFrame ) then
tempFrame:SetParent("UIParent");
tempFrame:ClearAllPoints();
else
tempFrame = CreateFrame("Frame", LVBMGui.InfoFrameGetNewName(), UIParent, "LVBMInfoFrameTemplate");
tempFrame:EnableMouse(true)
tempFrame.elapsed = 0;
tempFrame.myWidth = tempFrame:GetWidth();
tempFrame.myHeight = tempFrame:GetHeight();
for index, value in pairs(LVBMFrameDefaultScripts) do
if tempFrame:GetScript(index) ~= value then
tempFrame:SetScript(index, value);
end
end
end
tempFrame.Name = iTitle; -- This field gives us the Memory function for InfoFrames
if( LVBMInfoFramePosition[tempFrame.Name] ) then -- FRAME Positioning Load Saved Value
if( LVBMInfoFramePosition[tempFrame.Name].x < 0
or LVBMInfoFramePosition[tempFrame.Name].x > (UIParent:GetWidth() / UIParent:GetEffectiveScale()) ) then
LVBM.AddMsg("Corrected FramePoint X - Out of Screen - ("..LVBMInfoFramePosition[tempFrame.Name].x..")");
LVBMInfoFramePosition[tempFrame.Name].x = (UIParent:GetWidth() / UIParent:GetEffectiveScale()) / 2;
end
if( LVBMInfoFramePosition[tempFrame.Name].y > 0
or LVBMInfoFramePosition[tempFrame.Name].y < ((UIParent:GetHeight() / UIParent:GetEffectiveScale())*(-1)) ) then
LVBM.AddMsg("Corrected FramePoint Y - Out of Screen - ("..LVBM.Options.Gui.InfoFramePointY..")");
LVBMInfoFramePosition[tempFrame.Name].y = ((UIParent:GetHeight() / UIParent:GetEffectiveScale()) / (-2));
end
tempFrame:SetPoint("CENTER", "UIParent", "TOPLEFT",
LVBMInfoFramePosition[tempFrame.Name].x,
LVBMInfoFramePosition[tempFrame.Name].y
);
else -- Use Middle of the Screen
tempFrame:SetPoint("CENTER", "UIParent", "TOPLEFT",
((UIParent:GetWidth() / UIParent:GetEffectiveScale()) / 2),
((UIParent:GetHeight() / UIParent:GetEffectiveScale()) / (-2))
);
end
tempFrame:SetBackdropColor(0, 0, 1, 0.5);
if( iTitle ~= nil ) then
getglobal(tempFrame:GetName().."Title"):SetText(iTitle);
else
getglobal(tempFrame:GetName().."Title"):SetText("");
end
if( iText ~= nil ) then
getglobal(tempFrame:GetName().."Text"):SetText(iText);
else
getglobal(tempFrame:GetName().."Text"):SetText("");
end
tempFrame:Show();
LVBM_InfoFrameTemplate_OnUpdate(tempFrame, 0, true);
return setmetatable({
["Frame"] = tempFrame,
["SubFrames"] = {},
}, LVBMGuiMetatable);
end
function LVBMGui:GetObject()
if self == LVBMGui then return; end
return self.Frame;
end
function LVBMGui:Hide()
if self == LVBMGui then return; end
self.Frame:Hide();
end
function LVBMGui:Show()
if self == LVBMGui then return; end
self.Frame:Show();
end
function LVBMGui:SetTitle(iTitle)
if self == LVBMGui then return; end
getglobal(self.Frame:GetName().."Title"):SetText(iTitle);
end
function LVBMGui:SetText(iText)
if self == LVBMGui then return; end
getglobal(self.Frame:GetName().."Text"):SetText(iText);
end
function LVBMGui:CreateStatusBar(iMin, iMax, iValue, iTitle, iLeftText, iRightText)
if self == LVBMGui then return; end
local tempFrame;
tempFrame = LVBMGui.InfoFrameRestoreFind("StatusBar");
if( tempFrame ) then
tempFrame:SetParent(self.Frame);
tempFrame:ClearAllPoints();
else
tempFrame = CreateFrame("StatusBar", LVBMGui.InfoFrameGetNewName(), self.Frame, "LVBMInfoFrameTemplateBar");
end
tempFrame:SetWidth(140);
tempFrame:SetHeight(16);
tempFrame:SetPoint("TOP", self.Frame, "TOP", 0, -20);
tempFrame:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar");
tempFrame:SetStatusBarColor(0, 1, 0);
tempFrame:SetMinMaxValues(tonumber(iMin), tonumber(iMax));
tempFrame:SetValue(tonumber(iValue));
if( iTitle ) then getglobal(tempFrame:GetName().."Text"):SetText(iTitle);
else getglobal(tempFrame:GetName().."Text"):SetText("");
end
if( iLeftText ) then getglobal(tempFrame:GetName().."LeftText"):SetText(iLeftText);
else getglobal(tempFrame:GetName().."LeftText"):SetText("");
end
if( iRightText ) then getglobal(tempFrame:GetName().."RightText"):SetText(iRightText);
else getglobal(tempFrame:GetName().."RightText"):SetText("");
end
getglobal(tempFrame:GetName().."Text"):SetTextColor(1, 1, 1);
getglobal(tempFrame:GetName().."LeftText"):SetTextColor(1, 1, 1);
getglobal(tempFrame:GetName().."RightText"):SetTextColor(1, 1, 1);
tempFrame:Show();
LVBM_InfoFrameTemplate_OnUpdate(tempFrame:GetParent(), 0, true);
table.insert(self.SubFrames, {
["Type"] = "StatusBar",
["Frame"] = tempFrame,
});
return setmetatable(self.SubFrames[table.getn(self.SubFrames)], LVBMGuiStatusBarMetatable);
end
function LVBMGuiStatusBar:SetValue(iValue)
self.Frame:SetValue(tonumber(iValue));
end
function LVBMGuiStatusBar:SetTitle(iTitle)
getglobal(self.Frame:GetName().."Text"):SetText(iTitle);
end
function LVBMGui:CreateTextField(iText)
if self == LVBMGui then return; end
local tempFrame;
tempFrame = LVBMGui.InfoFrameRestoreFind("TextFrame");
if( tempFrame ) then
tempFrame:SetParent(self.Frame);
tempFrame:ClearAllPoints();
else
tempFrame = CreateFrame("Frame", LVBMGui.InfoFrameGetNewName(), self.Frame, "LVBMInfoFrameTemplateTextField");
end
tempFrame:SetPoint("TOP", self.Frame, "TOP", 0, -20);
tempFrame:Show();
LVBM_InfoFrameTemplate_OnUpdate(tempFrame:GetParent(), 0, true);
if( iText ~= nil ) then
getglobal(tempFrame:GetName().."Text"):SetText(iText);
end
table.insert(self.SubFrames, {
["Ident"] = iSub,
["Type"] = "TextFrame",
["Frame"] = tempFrame,
});
return setmetatable(self.SubFrames[table.getn(self.SubFrames)], LVBMGuiTextFieldMetatable);
end
function LVBMGuiTextField:SetText(iText)
getglobal(self.Frame:GetName().."Text"):SetText(iText);
end
------------------
-- FRAME KILLER --
------------------
function LVBMGui:Delete()
if self == LVBMGui then return; end
if( self.SubFrames ) then -- delete MainFrame
for index, value in pairs(self.SubFrames) do -- first delete all sub Frames
value:Delete();
end
end
self.Frame:ClearAllPoints();
self.Frame:SetParent("LVBMInfoFrameTrash");
self.Frame:SetPoint("TOPLEFT", 0, 0);
self.Frame:UnregisterAllEvents();
-- CleanUp Texts
if getglobal(self.Frame:GetName().."Title") then getglobal(self.Frame:GetName().."Title"):SetText(""); end
if getglobal(self.Frame:GetName().."Text") then getglobal(self.Frame:GetName().."Text"):SetText(""); end
if getglobal(self.Frame:GetName().."LeftText") then getglobal(self.Frame:GetName().."LeftText"):SetText(""); end
if getglobal(self.Frame:GetName().."RightText") then getglobal(self.Frame:GetName().."RightText"):SetText(""); end
if self.Type == "StatusBar" then
self.Frame:EnableMouse(false);
self.Frame:SetValue(0);
self.Frame:SetStatusBarColor(0, 1, 0)
self.Frame:SetMinMaxValues(0, 1);
for index, value in pairs(LVBMStatusBarHandler) do
if self.Frame:GetScript(value) then self.Frame:SetScript(value, nil); end
end
elseif self.Type == "TextFrame" then
self.Frame:EnableMouse(false);
getglobal(self.Frame:GetName().."Text"):SetTextColor(1, 1, 1);
for index, value in pairs(LVBMFrameHandler) do
if self.Frame:GetScript(value) then self.Frame:SetScript(value, nil); end
end
elseif not self.Type then --> main frame
self.Frame:EnableMouse(true)
self.Frame.elapsed = 0;
self.Frame.myWidth = self.Frame:GetWidth();
self.Frame.myHeight = self.Frame:GetHeight();
for index, value in pairs(LVBMFrameDefaultScripts) do
if self.Frame:GetScript(index) ~= value then
self.Frame:SetScript(index, value);
end
end
end
self.Frame:Hide();
table.insert(LVBMGui["Trash"], {
["Type"] = self.Type or "MainFrame",
["Frame"] = self.Frame,
});
--[[local env = getfenv();
for index, value in pairs(env) do
if value == self then
getfenv()[index] = nil;
break;
end
end]]
end
function LVBMGui.InfoFrameRestoreFind(ftype) -- please DO NOT CALL THIS FUNCTION
if( ftype == nil ) then return false; end
for index, value in pairs(LVBMGui.Trash) do
if( value.Type == ftype ) then
LVBMGui.Trash[index] = nil;
return value.Frame;
end
end
return false;
end
-------------------------------------------------------------------------------
LVBM_MoltenCore_Boss_Runes =
{
["Geddon"] = 1,
["Gehennas"] = 2,
["Magmadar"] = 3,
["Garr"] = 4,
["Shazzrah"] = 5,
["Golemagg"] = 6,
["Sulfuron"] = 7,
};
function LVBM_Gui_RunesFrame(moption)
if( LVBMRunesFrame ) then
local mframe = LVBMRunesFrame:GetObject();
if( mframe:IsShown() and not moption ) then LVBMRunesFrame:Hide();
else LVBMRunesFrame:Show(); end
else LVBM_Gui_CreateMcRunesFrame();
end
end
function LVBM_Gui_UpdateRunesFrame(boss)
local x = LVBM_MoltenCore_Boss_Runes[boss];
if( getglobal("LVBMRunesFrameBoss"..x) ) then
getglobal("LVBMRunesFrameBoss"..x):SetText("");
--local objectName = getglobal("LVBMRunesFrameBoss"..x):GetObject():GetName();
--getglobal(objectName.."Text"):SetTextColor(0, 1, 0);
end
end
function LVBM_Gui_CreateMcRunesFrame()
LVBMRunesFrame = LVBMGui:CreateInfoFrame(LVBMGUI_RUNES_FRAME_TITLE, LVBMGUI_RUNES_FRAME_TEXT);
if( not LVBMRunesFrame ) then
LVBM.AddMsg("Can't get Frame from CreateInfoFrame()");
return false;
end
LVBMRunesFrameBoss3 = LVBMRunesFrame:CreateTextField("Magmadar");
getglobal(LVBMRunesFrameBoss3:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMRunesFrameBoss2 = LVBMRunesFrame:CreateTextField("Gehennas");
getglobal(LVBMRunesFrameBoss2:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMRunesFrameBoss4 = LVBMRunesFrame:CreateTextField("Garr");
getglobal(LVBMRunesFrameBoss4:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMRunesFrameBoss5 = LVBMRunesFrame:CreateTextField("Shazzrah");
getglobal(LVBMRunesFrameBoss5:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMRunesFrameBoss1 = LVBMRunesFrame:CreateTextField("Geddon");
getglobal(LVBMRunesFrameBoss1:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMRunesFrameBoss6 = LVBMRunesFrame:CreateTextField("Golemagg");
getglobal(LVBMRunesFrameBoss6:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMRunesFrameBoss7 = LVBMRunesFrame:CreateTextField("Sulfuron");
getglobal(LVBMRunesFrameBoss7:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
end
--------------------------------------------------------------------------------
--
-- DistanceFrame - Usage via /distance loaded by GUI on "PLAYER_LOGIN"
--
--------------------------------------------------------------------------------
function LVBM_Gui_DistanceFrame(moption)
if( LVBMDistanceFrame ) then
local mframe = LVBMDistanceFrame:GetObject();
if( mframe:IsShown() and not moption ) then LVBMDistanceFrame:Hide();
else LVBMDistanceFrame:Show(); end
else LVBM_Gui_CreateDistanceFrame();
end
end
function LVBM_Gui_CreateDistanceFrame()
LVBMDistanceFrame = LVBMGui:CreateInfoFrame(LVBMGUI_DISTANCE_FRAME_TITLE, LVBMGUI_DISTANCE_FRAME_TEXT);
if( not LVBMDistanceFrame ) then
LVBM.AddMsg("Can't get Frame from CreateInfoFrame()");
return false;
end
LVBMDistanceFrame:GetObject():SetScript("OnUpdate", function()
LVBM_InfoFrameTemplate_OnUpdate(this, arg1);
LVBM_Gui_CreateDistanceFrame_OnUpdate();
end);
LVBMDistanceFramePlayer1 = LVBMDistanceFrame:CreateTextField("");
getglobal(LVBMDistanceFramePlayer1:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMDistanceFramePlayer2 = LVBMDistanceFrame:CreateTextField("");
getglobal(LVBMDistanceFramePlayer2:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMDistanceFramePlayer3 = LVBMDistanceFrame:CreateTextField("");
getglobal(LVBMDistanceFramePlayer3:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMDistanceFramePlayer4 = LVBMDistanceFrame:CreateTextField("");
getglobal(LVBMDistanceFramePlayer4:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
LVBMDistanceFramePlayer5 = LVBMDistanceFrame:CreateTextField("");
getglobal(LVBMDistanceFramePlayer5:GetObject():GetName().."Text"):SetTextColor(1, 0, 0);
end
function LVBM_Gui_CreateDistanceFrame_OnUpdate()
if( this.elapsed == nil ) then this.elapsed = 0; end
this.elapsed = this.elapsed + arg1;
if( this.elapsed > 0.5 ) then
local x=1;
for i=1, GetNumRaidMembers(), 1 do
if( x <= 5 and CheckInteractDistance("raid"..i, 3)
and not UnitIsDeadOrGhost("raid"..i)
and UnitName("raid"..i) ~= UnitName("player") ) then
if( getglobal("LVBMDistanceFramePlayer"..x) ) then
getglobal("LVBMDistanceFramePlayer"..x):SetText(UnitName("raid"..i));
end
x = x + 1;
end
end
if( x <= 5 ) then
for i=x, 5, 1 do
if( getglobal("LVBMDistanceFramePlayer"..i) ) then
getglobal("LVBMDistanceFramePlayer"..i):SetText("");
end
end
end
end
end