mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
401 lines
No EOL
15 KiB
Lua
401 lines
No EOL
15 KiB
Lua
local AIO = AIO or require("AIO")
|
|
|
|
if AIO.AddAddon() then
|
|
return
|
|
end
|
|
|
|
local GobRotHandlers = AIO.AddHandlers("RotateGobs", {})
|
|
|
|
local GobTurnFrame = CreateFrame("Frame", "FrameTurnGob", UIParent, "UIPanelDialogTemplate")
|
|
GobTurnFrame:SetSize(300, 360)
|
|
GobTurnFrame:SetMovable(true)
|
|
GobTurnFrame:EnableMouse(true)
|
|
GobTurnFrame:SetToplevel(true)
|
|
GobTurnFrame:RegisterForDrag("LeftButton")
|
|
GobTurnFrame:SetPoint("CENTER")
|
|
GobTurnFrame:SetScript("OnDragStart", GobTurnFrame.StartMoving)
|
|
GobTurnFrame:SetScript("OnHide", GobTurnFrame.StopMovingOrSizing)
|
|
GobTurnFrame:SetScript("OnDragStop", GobTurnFrame.StopMovingOrSizing)
|
|
GobTurnFrame:SetScript("OnShow", function() PlaySound("igCharacterInfoTab") end)
|
|
GobTurnFrame:SetScript("OnHide", function() PlaySound("igCharacterInfoClose") end)
|
|
AIO.SavePosition(GobTurnFrame)
|
|
GobTurnFrame:SetClampedToScreen(true)
|
|
GobTurnFrame:Hide()
|
|
local GobTurnFrame_Text1 = GobTurnFrame:CreateFontString("GobTurnFrame_Text1")
|
|
GobTurnFrame_Text1:SetFont("Fonts\\FRIZQT__.TTF", 12)
|
|
GobTurnFrame_Text1:SetSize(190, 5)
|
|
GobTurnFrame_Text1:SetPoint("TOP", "FrameTurnGob", "TOP", 0, -13)
|
|
GobTurnFrame_Text1:SetText("APT Tool")
|
|
|
|
|
|
--guid input box
|
|
local GobTurnFrame_EditBox = CreateFrame("EditBox", "GUIDInput", GobTurnFrame, "InputBoxTemplate")
|
|
GobTurnFrame_EditBox:SetSize(75, 75)
|
|
GobTurnFrame_EditBox:SetAutoFocus(false)
|
|
GobTurnFrame_EditBox:SetPoint("TOP", "FrameTurnGob", "TOP", 0, -30)
|
|
GobTurnFrame_EditBox:SetScript("OnEnterPressed", GobTurnFrame_EditBox.ClearFocus)
|
|
GobTurnFrame_EditBox:SetScript("OnEscapePressed", GobTurnFrame_EditBox.ClearFocus)
|
|
local GobTurnFrame_EditBox_Text1 = GobTurnFrame_EditBox:CreateFontString("GobTurnFrame_EditBox_Text1")
|
|
GobTurnFrame_EditBox_Text1:SetFont("Fonts\\FRIZQT__.TTF", 12)
|
|
GobTurnFrame_EditBox_Text1:SetSize(190, 5)
|
|
GobTurnFrame_EditBox_Text1:SetPoint("CENTER", 0, 20)
|
|
GobTurnFrame_EditBox_Text1:SetText("GUID")
|
|
|
|
-- sliders lol
|
|
local name = "XSlider"
|
|
local slider1 = CreateFrame("Slider",name,GobTurnFrame,"OptionsSliderTemplate") --frameType, frameName, frameParent, frameTemplate
|
|
slider1:SetPoint("TOP", "GUIDInput", "TOP", 0, -70)
|
|
slider1.textLow = _G[name.."Low"]
|
|
slider1.textHigh = _G[name.."High"]
|
|
slider1.text = _G[name.."Text"]
|
|
slider1:SetMinMaxValues(0, 6.28)
|
|
slider1:SetValueStep(0.01)
|
|
slider1.minValue, slider1.maxValue = slider1:GetMinMaxValues()
|
|
slider1.textLow:SetText(string.format("%.2f", slider1.minValue))
|
|
slider1.textHigh:SetText(string.format("%.2f", slider1.maxValue))
|
|
slider1.text:SetText(name)
|
|
slider1:SetValue(0)
|
|
local slider1_editbox = CreateFrame("EDITBOX", "$parentValue", slider1, "InputBoxTemplate")
|
|
slider1_editbox:SetSize(40, 20)
|
|
slider1_editbox:SetPoint("CENTER", 115, 0)
|
|
slider1_editbox:SetAutoFocus(false)
|
|
|
|
local name = "YSlider"
|
|
local slider2 = CreateFrame("Slider",name,GobTurnFrame,"OptionsSliderTemplate") --frameType, frameName, frameParent, frameTemplate
|
|
slider2:SetPoint("TOP", "GUIDInput", "TOP", 0, -120)
|
|
slider2.textLow = _G[name.."Low"]
|
|
slider2.textHigh = _G[name.."High"]
|
|
slider2.text = _G[name.."Text"]
|
|
slider2:SetMinMaxValues(0, 6.28)
|
|
slider2:SetValueStep(0.01)
|
|
slider2.minValue, slider2.maxValue = slider2:GetMinMaxValues()
|
|
slider2.textLow:SetText(string.format("%.2f", slider2.minValue))
|
|
slider2.textHigh:SetText(string.format("%.2f", slider2.maxValue))
|
|
slider2.text:SetText(name)
|
|
slider2:SetValue(0)
|
|
local slider2_editbox = CreateFrame("EDITBOX", "$parentValue", slider2, "InputBoxTemplate")
|
|
slider2_editbox:SetSize(40, 20)
|
|
slider2_editbox:SetPoint("CENTER", 115, 0)
|
|
slider2_editbox:SetAutoFocus(false)
|
|
|
|
local name = "ZSlider"
|
|
local slider3 = CreateFrame("Slider",name,GobTurnFrame,"OptionsSliderTemplate") --frameType, frameName, frameParent, frameTemplate
|
|
slider3:SetPoint("TOP", "GUIDInput", "TOP", 0, -170)
|
|
slider3.textLow = _G[name.."Low"]
|
|
slider3.textHigh = _G[name.."High"]
|
|
slider3.text = _G[name.."Text"]
|
|
slider3:SetMinMaxValues(0, 6.28)
|
|
slider3:SetValueStep(0.01)
|
|
slider3.minValue, slider3.maxValue = slider3:GetMinMaxValues()
|
|
slider3.textLow:SetText(string.format("%.2f", slider3.minValue))
|
|
slider3.textHigh:SetText(string.format("%.2f", slider3.maxValue))
|
|
slider3.text:SetText(name)
|
|
slider3:SetValue(0)
|
|
local slider3_editbox = CreateFrame("EDITBOX", "$parentValue", slider3, "InputBoxTemplate")
|
|
slider3_editbox:SetSize(40, 20)
|
|
slider3_editbox:SetPoint("CENTER", 115, 0)
|
|
slider3_editbox:SetAutoFocus(false)
|
|
|
|
local name = "Up/Down"
|
|
local slider4 = CreateFrame("Slider",name,GobTurnFrame,"OptionsSliderTemplate") --frameType, frameName, frameParent, frameTemplate
|
|
slider4:SetPoint("TOP", "GUIDInput", "TOP", 0, -220)
|
|
slider4.textLow = _G[name.."Low"]
|
|
slider4.textHigh = _G[name.."High"]
|
|
slider4.text = _G[name.."Text"]
|
|
slider4:SetMinMaxValues(-5, 5)
|
|
slider4:SetValueStep(0.1)
|
|
slider4.minValue, slider4.maxValue = slider4:GetMinMaxValues()
|
|
slider4.textLow:SetText(string.format("%.2f", slider4.minValue))
|
|
slider4.textHigh:SetText(string.format("%.2f", slider4.maxValue))
|
|
slider4.text:SetText(name)
|
|
slider4:SetValue(0)
|
|
local slider4_editbox = CreateFrame("EDITBOX", "$parentValue", slider4, "InputBoxTemplate")
|
|
slider4_editbox:SetSize(40, 20)
|
|
slider4_editbox:SetPoint("CENTER", 115, 0)
|
|
slider4_editbox:SetAutoFocus(false)
|
|
|
|
local name = "Scale"
|
|
local slider5 = CreateFrame("Slider",name,GobTurnFrame,"OptionsSliderTemplate") --frameType, frameName, frameParent, frameTemplate
|
|
slider5:SetPoint("TOP", "GUIDInput", "TOP", 0, -270)
|
|
slider5.textLow = _G[name.."Low"]
|
|
slider5.textHigh = _G[name.."High"]
|
|
slider5.text = _G[name.."Text"]
|
|
slider5:SetMinMaxValues(0.1, 2.0)
|
|
slider5:SetValueStep(0.1)
|
|
slider5.minValue, slider5.maxValue = slider5:GetMinMaxValues()
|
|
slider5.textLow:SetText(string.format("%.2f", slider5.minValue))
|
|
slider5.textHigh:SetText(string.format("%.2f", slider5.maxValue))
|
|
slider5.text:SetText(name)
|
|
slider5:SetValue(0)
|
|
local slider5_editbox = CreateFrame("EDITBOX", "$parentValue", slider5, "InputBoxTemplate")
|
|
slider5_editbox:SetSize(40, 20)
|
|
slider5_editbox:SetPoint("CENTER", 115, 0)
|
|
slider5_editbox:SetAutoFocus(false)
|
|
|
|
|
|
-- set scripts for sliders
|
|
slider1:SetScript("OnMouseUp", function(self,button)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = slider1:GetValue()
|
|
val_2 = slider2:GetValue()
|
|
val_3 = slider3:GetValue()
|
|
val_4 = 0
|
|
val_5 = 0
|
|
slider1_editbox:SetText(string.format("%.2f", val_1))
|
|
if (GobTurnFrame_EditBox:GetText() == "") then
|
|
-- prevent spam of wrong error message
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a number.")
|
|
return false
|
|
else
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
end
|
|
end)
|
|
slider2:SetScript("OnMouseUp", function(self,button)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = slider1:GetValue()
|
|
val_2 = slider2:GetValue()
|
|
val_3 = slider3:GetValue()
|
|
val_4 = 0
|
|
val_5 = 0
|
|
slider2_editbox:SetText(string.format("%.2f", val_2))
|
|
if (GobTurnFrame_EditBox:GetText() == "") then
|
|
-- prevent spam of wrong error message
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a number.")
|
|
return false
|
|
else
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
end
|
|
end)
|
|
slider3:SetScript("OnMouseUp", function(self,button)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = slider1:GetValue()
|
|
val_2 = slider2:GetValue()
|
|
val_3 = slider3:GetValue()
|
|
val_4 = 0
|
|
val_5 = 0
|
|
slider3_editbox:SetText(string.format("%.2f", val_3))
|
|
if (GobTurnFrame_EditBox:GetText() == "") then
|
|
-- prevent spam of wrong error message
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a number.")
|
|
return false
|
|
else
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
end
|
|
end)
|
|
slider4:SetScript("OnMouseUp", function(self,button)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = 0
|
|
val_2 = 0
|
|
val_3 = 0
|
|
val_4 = slider4:GetValue()
|
|
val_5 = 0
|
|
slider4_editbox:SetText(string.format("%.2f", val_4))
|
|
if (GobTurnFrame_EditBox:GetText() == "") then
|
|
-- prevent spam of wrong error message
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a number.")
|
|
return false
|
|
else
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
end
|
|
end)
|
|
slider5:SetScript("OnMouseUp", function(self,button)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = 0
|
|
val_2 = 0
|
|
val_3 = 0
|
|
val_4 = 0
|
|
val_5 = slider5:GetValue()
|
|
slider5_editbox:SetText(string.format("%.2f", val_5))
|
|
if (GobTurnFrame_EditBox:GetText() == "") then
|
|
-- prevent spam of wrong error message
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a number.")
|
|
return false
|
|
else
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
end
|
|
end)
|
|
|
|
-- set scripts for all input boxes
|
|
slider1_editbox:SetScript("OnEnterPressed", function(self)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = slider1:GetValue()
|
|
val_2 = slider2:GetValue()
|
|
val_3 = slider3:GetValue()
|
|
val_4 = 0
|
|
val_5 = 0
|
|
if (tonumber(slider1_editbox:GetText()) == nil) then
|
|
print("You must input a number in order to apply this to the sliders.")
|
|
slider1_editbox.ClearFocus()
|
|
return false
|
|
elseif (tonumber(slider1_editbox:GetText()) > slider1.maxValue) or (tonumber(slider1_editbox:GetText()) < slider1.minValue) then
|
|
print("You must input a number between " ..slider1.minValue.. " and " ..slider1.maxValue.. ".")
|
|
slider1_editbox.ClearFocus()
|
|
return false
|
|
elseif (GobTurnFrame_EditBox:GetText() == "") then
|
|
slider1:SetValue(tonumber(slider1_editbox:GetText()))
|
|
slider1_editbox.ClearFocus()
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a GUID number.")
|
|
slider1:SetValue(tonumber(slider1_editbox:GetText()))
|
|
slider1_editbox.ClearFocus()
|
|
return false
|
|
else
|
|
slider1:SetValue(tonumber(slider1_editbox:GetText()))
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
slider1_editbox.ClearFocus()
|
|
return false
|
|
end
|
|
end)
|
|
slider1_editbox:SetScript("OnEscapePressed", slider1_editbox.ClearFocus)
|
|
|
|
slider2_editbox:SetScript("OnEnterPressed", function(self)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = slider1:GetValue()
|
|
val_2 = slider2:GetValue()
|
|
val_3 = slider3:GetValue()
|
|
val_4 = 0
|
|
val_5 = 0
|
|
if (tonumber(slider2_editbox:GetText()) == nil) then
|
|
print("You must input a number in order to apply this to the sliders.")
|
|
slider2_editbox.ClearFocus()
|
|
return false
|
|
elseif (tonumber(slider2_editbox:GetText()) > slider2.maxValue) or (tonumber(slider2_editbox:GetText()) < slider2.minValue) then
|
|
print("You must input a number between " ..slider2.minValue.. " and " ..slider2.maxValue.. ".")
|
|
slider2_editbox.ClearFocus()
|
|
return false
|
|
elseif (GobTurnFrame_EditBox:GetText() == "") then
|
|
slider2:SetValue(tonumber(slider2_editbox:GetText()))
|
|
slider2_editbox.ClearFocus()
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a GUID number.")
|
|
slider2:SetValue(tonumber(slider2_editbox:GetText()))
|
|
slider2_editbox.ClearFocus()
|
|
return false
|
|
else
|
|
slider2:SetValue(tonumber(slider2_editbox:GetText()))
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
slider2_editbox.ClearFocus()
|
|
return false
|
|
end
|
|
end)
|
|
slider2_editbox:SetScript("OnEscapePressed", slider2_editbox.ClearFocus)
|
|
|
|
slider3_editbox:SetScript("OnEnterPressed", function(self)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = slider1:GetValue()
|
|
val_2 = slider2:GetValue()
|
|
val_3 = slider3:GetValue()
|
|
val_4 = 0
|
|
val_5 = 0
|
|
if (tonumber(slider3_editbox:GetText()) == nil) then
|
|
print("You must input a number in order to apply this to the sliders.")
|
|
slider3_editbox.ClearFocus()
|
|
return false
|
|
elseif (tonumber(slider3_editbox:GetText()) > slider3.maxValue) or (tonumber(slider3_editbox:GetText()) < slider3.minValue) then
|
|
print("You must input a number between " ..slider3.minValue.. " and " ..slider3.maxValue.. ".")
|
|
slider3_editbox.ClearFocus()
|
|
return false
|
|
elseif (GobTurnFrame_EditBox:GetText() == "") then
|
|
slider3:SetValue(tonumber(slider3_editbox:GetText()))
|
|
slider3_editbox.ClearFocus()
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a GUID number.")
|
|
slider3:SetValue(tonumber(slider3_editbox:GetText()))
|
|
slider3_editbox.ClearFocus()
|
|
return false
|
|
else
|
|
slider3:SetValue(tonumber(slider3_editbox:GetText()))
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
slider3_editbox.ClearFocus()
|
|
return false
|
|
end
|
|
end)
|
|
|
|
slider4_editbox:SetScript("OnEscapePressed", slider4_editbox.ClearFocus)
|
|
slider4_editbox:SetScript("OnEnterPressed", function(self)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = 0
|
|
val_2 = 0
|
|
val_3 = 0
|
|
val_4 = slider4:GetValue()
|
|
val_5 = 0
|
|
if (tonumber(slider4_editbox:GetText()) == nil) then
|
|
print("You must input a number in order to apply this to the sliders.")
|
|
slider4_editbox.ClearFocus()
|
|
return false
|
|
elseif (tonumber(slider4_editbox:GetText()) > slider4.maxValue) or (tonumber(slider4_editbox:GetText()) < slider4.minValue) then
|
|
print("You must input a number between " ..slider4.minValue.. " and " ..slider4.maxValue.. ".")
|
|
slider4_editbox.ClearFocus()
|
|
return false
|
|
elseif (GobTurnFrame_EditBox:GetText() == "") then
|
|
slider4:SetValue(tonumber(slider4_editbox:GetText()))
|
|
slider4_editbox.ClearFocus()
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a GUID number.")
|
|
slider4:SetValue(tonumber(slider4_editbox:GetText()))
|
|
slider4_editbox.ClearFocus()
|
|
return false
|
|
else
|
|
slider4:SetValue(tonumber(slider4_editbox:GetText()))
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
slider4_editbox.ClearFocus()
|
|
return false
|
|
end
|
|
end)
|
|
|
|
slider5_editbox:SetScript("OnEscapePressed", slider5_editbox.ClearFocus)
|
|
slider5_editbox:SetScript("OnEnterPressed", function(self)
|
|
editbox = tonumber(GobTurnFrame_EditBox:GetText())
|
|
val_1 = 0
|
|
val_2 = 0
|
|
val_3 = 0
|
|
val_4 = 0
|
|
val_5 = slider5:GetValue()
|
|
if (tonumber(slider5_editbox:GetText()) == nil) then
|
|
print("You must input a number in order to apply this to the sliders.")
|
|
slider5_editbox.ClearFocus()
|
|
return false
|
|
elseif (tonumber(slider5_editbox:GetText()) > slider5.maxValue) or (tonumber(slider5_editbox:GetText()) < slider5.minValue) then
|
|
print("You must input a number between " ..slider5.minValue.. " and " ..slider5.maxValue.. ".")
|
|
slider5_editbox.ClearFocus()
|
|
return false
|
|
elseif (GobTurnFrame_EditBox:GetText() == "") then
|
|
slider5:SetValue(tonumber(slider5_editbox:GetText()))
|
|
slider5_editbox.ClearFocus()
|
|
return false
|
|
elseif (editbox == nil) then
|
|
print("You must input a GUID number.")
|
|
slider5:SetValue(tonumber(slider5_editbox:GetText()))
|
|
slider5_editbox.ClearFocus()
|
|
return false
|
|
else
|
|
slider5:SetValue(tonumber(slider5_editbox:GetText()))
|
|
AIO.Handle("RotateGobs", "CheckRotate", val_1, val_2, val_3, editbox, val_4, val_5)
|
|
slider5_editbox.ClearFocus()
|
|
return false
|
|
end
|
|
end)
|
|
|
|
function GobRotHandlers.CommandOutput(player, val_1, val_2, val_3, editbox, gm)
|
|
if gm == true then
|
|
SendChatMessage(".gob turn " ..editbox.. " "..val_1.." "..val_2.." "..val_3, "SAY")
|
|
end
|
|
end
|
|
|
|
function GobRotHandlers.ShowMain(player)
|
|
GobTurnFrame:Show()
|
|
end |