Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion [admin]/admin2/client/main/admin_players.lua
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ function aPlayersTab.onClientClick(button)
elseif (source == aPlayersTab.SetSkin) then
aSkin.Show(player)
elseif (source == aPlayersTab.SetInterior) then
aPlayerInterior(player)
aInterior.Show(player)
elseif (source == aPlayersTab.JetPack) then
triggerServerEvent("aPlayer", getLocalPlayer(), player, "jetpack")
elseif (source == aPlayersTab.SetMoney) then
Expand Down
132 changes: 83 additions & 49 deletions [admin]/admin2/client/widgets/admin_interior.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,84 +7,118 @@
* Original File by lil_Toady
*
**************************************]]
aInteriorForm = nil
aInterior = {
Form = nil,
interiors = {}
}

function aPlayerInterior(player)
if (aInteriorForm == nil) then
function aInterior.Show(player)
if (aInterior.Form == nil) then
local x, y = guiGetScreenSize()
aInteriorForm = guiCreateWindow(x / 2 - 110, y / 2 - 150, 220, 300, "Player Interior Management", false)
aInteriorList = guiCreateGridList(0.03, 0.08, 0.94, 0.73, true, aInteriorForm)
guiGridListAddColumn(aInteriorList, "World", 0.2)
guiGridListAddColumn(aInteriorList, "Description", 0.75)
aInteriorSelect = guiCreateButton(0.03, 0.82, 0.94, 0.075, "Select", true, aInteriorForm)
aInteriorCancel = guiCreateButton(0.03, 0.90, 0.94, 0.075, "Cancel", true, aInteriorForm)

local node = xmlLoadFile("conf\\interiors.xml")
if (node) then
local interiors = 0
while (xmlFindChild(node, "interior", interiors) ~= false) do
local interior = xmlFindChild(node, "interior", interiors)
local row = guiGridListAddRow(aInteriorList)
guiGridListSetItemText(aInteriorList, row, 1, xmlNodeGetAttribute(interior, "world"), false, true)
guiGridListSetItemText(aInteriorList, row, 2, xmlNodeGetAttribute(interior, "id"), false, false)
interiors = interiors + 1
end
end
addEventHandler("onClientGUIDoubleClick", aInteriorForm, aClientInteriorDoubleClick)
addEventHandler("onClientGUIClick", aInteriorForm, aClientInteriorClick)
aInterior.Form = guiCreateWindow(x / 2 - 110, y / 2 - 150, 220, 300, "Player Interior Management", false)
guiSetAlpha(aInterior.Form, 1)
guiSetProperty(aInterior.Form, 'AlwaysOnTop', 'True')
aInterior.List = guiCreateGridList(0.03, 0.17, 0.94, 0.65, true, aInterior.Form)
guiGridListAddColumn(aInterior.List, "World", 0.2)
guiGridListAddColumn(aInterior.List, "Description", 0.75)
aInterior.Edit = guiCreateEdit(0.03, 0.08, 0.94, 0.08, '', true, aInterior.Form)
aInterior.Select = guiCreateButton(0.03, 0.82, 0.94, 0.075, "Select", true, aInterior.Form)
aInterior.Cancel = guiCreateButton(0.03, 0.90, 0.94, 0.075, "Cancel", true, aInterior.Form)

aInterior.Load()
aInterior.Refresh()

addEventHandler("onClientGUIDoubleClick", aInterior.Form, aInterior.onDoubleClick)
addEventHandler("onClientGUIClick", aInterior.Form, aInterior.onClick)
addEventHandler("onClientGUIChanged", aInterior.Form, aInterior.onGUIChange)

--Register With Admin Form
aRegister("PlayerInterior", aInteriorForm, aPlayerInterior, aPlayerInteriorClose)
aRegister("PlayerInterior", aInterior.Form, aInterior.Show, aInterior.Close)
end
aInteriorSelectPointer = player
guiSetVisible(aInteriorForm, true)
guiBringToFront(aInteriorForm)
aInterior.SelectPointer = player
guiSetVisible(aInterior.Form, true)
guiBringToFront(aInterior.Form)
end

function aPlayerInteriorClose(destroy)
if ((destroy) or (guiCheckBoxGetSelected(aPerformanceInterior))) then
if (aInteriorForm) then
removeEventHandler("onClientGUIDoubleClick", aInteriorForm, aClientInteriorDoubleClick)
removeEventHandler("onClientGUIClick", aInteriorForm, aClientInteriorClick)
destroyElement(aInteriorForm)
aInteriorForm = nil
function aInterior.Close(destroy)
if (destroy) then
aInterior.interiors = {}
if (aInterior.Form) then
removeEventHandler("onClientGUIDoubleClick", aInterior.Form, aInterior.onDoubleClick)
removeEventHandler("onClientGUIClick", aInterior.Form, aInterior.onClick)
destroyElement(aInterior.Form)
aInterior.Form = nil
end
else
guiSetVisible(aInteriorForm, false)
guiSetVisible(aInterior.Form, false)
end
end

function aClientInteriorDoubleClick(button)
function aInterior.onDoubleClick(button)
if (button == "left") then
if (source == aInteriorList) then
if (guiGridListGetSelectedItem(aInteriorList) ~= -1) then
if (source == aInterior.List) then
if (guiGridListGetSelectedItem(aInterior.List) ~= -1) then
triggerServerEvent(
"aPlayer",
getLocalPlayer(),
aInteriorSelectPointer,
aInterior.SelectPointer,
"setinterior",
guiGridListGetItemText(aInteriorList, guiGridListGetSelectedItem(aInteriorList), 2)
guiGridListGetItemText(aInterior.List, guiGridListGetSelectedItem(aInterior.List), 2)
)
aPlayerInteriorClose(false)
aInterior.Close(false)
end
end
end
end

function aClientInteriorClick(button)
function aInterior.onGUIChange()
aInterior.Refresh()
end

function aInterior.onClick(button)
if (button == "left") then
if (source == aInteriorSelect) then
if (guiGridListGetSelectedItem(aInteriorList) ~= -1) then
if (source == aInterior.Select) then
if (guiGridListGetSelectedItem(aInterior.List) ~= -1) then
triggerServerEvent(
"aPlayer",
getLocalPlayer(),
aInteriorSelectPointer,
aInterior.SelectPointer,
"setinterior",
guiGridListGetItemText(aInteriorList, guiGridListGetSelectedItem(aInteriorList), 2)
guiGridListGetItemText(aInterior.List, guiGridListGetSelectedItem(aInterior.List), 2)
)
guiSetVisible(aInteriorForm, false)
guiSetVisible(aInterior.Form, false)
end
elseif (source == aInteriorCancel) then
aPlayerInteriorClose(false)
elseif (source == aInterior.Cancel) then
aInterior.Close(false)
end
end
end

function aInterior.Load()
local table = {}
local node = xmlLoadFile("conf\\interiors.xml")
if (node) then
local interiors = 0
while (xmlFindChild(node, "interior", interiors) ~= false) do
local interior = xmlFindChild(node, "interior", interiors)
local id = #table + 1
table[id] = {}
table[id]["id"] = xmlNodeGetAttribute(interior, "id")
table[id]["world"] = xmlNodeGetAttribute(interior, "world")
interiors = interiors + 1
end
end
aInterior.interiors = table
end

function aInterior.Refresh()
local filter = guiGetText(aInterior.Edit):lower()
guiGridListClear(aInterior.List)
for k, v in ipairs(aInterior.interiors) do
if v.world:find(filter) or v.id:lower():find(filter) then
local row = guiGridListAddRow(aInterior.List)
guiGridListSetItemText(aInterior.List, row, 1, v.world, false, true)
guiGridListSetItemText(aInterior.List, row, 2, v.id, false, false)
end
end
end
55 changes: 39 additions & 16 deletions [admin]/admin2/client/widgets/admin_skin.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,23 @@ aSkin = {
function aSkin.Show(player)
if (aSkin.Form == nil) then
local x, y = guiGetScreenSize()
aSkin.Form = guiCreateWindow(x / 2 - 140, y / 2 - 125, 280, 250, "Player Skin Select", false)
aSkin.Form = guiCreateWindow(x / 2 - 140, y / 2 - 140, 280, 280, "Player Skin Select", false)
guiSetAlpha(aSkin.Form, 1)
guiSetProperty(aSkin.Form, 'AlwaysOnTop', 'True')
aSkin.Label =
guiCreateLabel(0.03, 0.09, 0.94, 0.07, "Select a skin from the list or enter the id", true, aSkin.Form)
guiLabelSetHorizontalAlign(aSkin.Label, "center")
guiLabelSetColor(aSkin.Label, 255, 0, 0)

aSkin.Edit = guiCreateEdit(0.03, 0.18, 0.70, 0.09, '', true, aSkin.Form)
guiCreateInnerImage("client\\images\\search.png", aSkin.Edit)

aSkin.Groups = guiCreateCheckBox(0.03, 0.90, 0.70, 0.09, "Sort by groups", false, true, aSkin.Form)
if (aGetSetting("skinsGroup")) then
guiCheckBoxSetSelected(aSkin.Groups, true)
end

aSkin.List = guiCreateGridList(0.03, 0.18, 0.70, 0.71, true, aSkin.Form)
aSkin.List = guiCreateGridList(0.03, 0.27, 0.70, 0.625, true, aSkin.Form)
guiGridListAddColumn(aSkin.List, "ID", 0.20)
guiGridListAddColumn(aSkin.List, "", 0.75)

Expand All @@ -39,10 +45,12 @@ function aSkin.Show(player)
aSkin.Cancel = guiCreateButton(0.75, 0.88, 0.27, 0.09, "Cancel", true, aSkin.Form)

aSkin.Load()
aSkin.Refresh(guiCheckBoxGetSelected(aSkin.Groups))
aSkin.Refresh()

addEventHandler("onClientGUIClick", aSkin.Form, aSkin.onClick)
addEventHandler("onClientGUIDoubleClick", aSkin.Form, aSkin.onDoubleClick)
addEventHandler("onClientGUIChanged", aSkin.Form, aSkin.onGUIChange)

--Register With Admin Form
aRegister("PlayerSkin", aSkin.Form, aSkin.Show, aSkin.Close)
end
Expand Down Expand Up @@ -78,6 +86,12 @@ function aSkin.onDoubleClick(button)
end
end

function aSkin.onGUIChange()
if (source == aSkin.Edit) then
aSkin.Refresh()
end
end

function aSkin.onClick(button)
if (button == "left") then
if (source == aSkin.Accept) then
Expand All @@ -101,7 +115,7 @@ function aSkin.onClick(button)
elseif (source == aSkin.Cancel) then
aSkin.Close(false)
elseif (source == aSkin.Groups) then
aSkin.Refresh(guiCheckBoxGetSelected(aSkin.Groups))
aSkin.Refresh()
end
end
end
Expand Down Expand Up @@ -130,14 +144,26 @@ function aSkin.Load()
aSkin.skins = table
end

function aSkin.Refresh(groups)
aSetSetting("skinsGroup", groups)
function aSkin.Refresh()
aSetSetting("skinsGroup", guiCheckBoxGetSelected(aSkin.Groups))
guiGridListClear(aSkin.List)
if (groups) then
local filter = guiGetText(aSkin.Edit):lower()
if (guiCheckBoxGetSelected(aSkin.Groups)) then
local skins = {}
for name, group in pairs(aSkin.skins) do
for _, skin in ipairs(group) do
if skin.model:find(filter) or skin.name:lower():find(filter) then
if (not skins[name]) then
skins[name] = {}
end
table.insert(skins[name], skin)
end
end
end
for name, group in pairs(skins) do
local row = guiGridListAddRow(aSkin.List)
guiGridListSetItemText(aSkin.List, row, 2, name, true, false)
for id, skin in ipairs(aSkin.skins[name]) do
for id, skin in ipairs(group) do
row = guiGridListAddRow(aSkin.List)
guiGridListSetItemText(aSkin.List, row, 1, skin.model, false, true)
guiGridListSetItemText(aSkin.List, row, 2, skin.name, false, false)
Expand All @@ -148,18 +174,15 @@ function aSkin.Refresh(groups)
local skins = {}
for name, group in pairs(aSkin.skins) do
for id, skin in pairs(group) do
local id = tonumber(skin.model)
skins[id] = skin.name
skins[skin.model] = skin.name
end
end
local i = 0
while (i <= 288) do
if (skins[i] ~= nil) then
for model, skinName in pairs(skins) do
if model:find(filter) or skinName:lower():find(filter) then
local row = guiGridListAddRow(aSkin.List)
guiGridListSetItemText(aSkin.List, row, 1, tostring(i), false, true)
guiGridListSetItemText(aSkin.List, row, 2, skins[i], false, false)
guiGridListSetItemText(aSkin.List, row, 1, model, false, true)
guiGridListSetItemText(aSkin.List, row, 2, skinName, false, false)
end
i = i + 1
end
guiGridListSetSortingEnabled(aSkin.List, true)
end
Expand Down
Loading