Cliente
local cThis = getThisResource()
local cThisRoot = getResourceRootElement(cThis)
jugadores = {} -- Creamos una tabla vacia
addEvent("obtSvrInfo",true)
addEventHandler("onClientResourceStart", resourceRoot,
function()
triggerServerEvent("onClientRequest",localPlayer)
padmin = guiCreateWindow(207, 123, 388, 356, "El sexi panel de los cojones", false)
guiWindowSetSizable(padmin, false)
tabpanel = guiCreateTabPanel(9, 23, 369, 323, false, padmin)
tabjugadores = guiCreateTab("Jugadores", tabpanel)
editb = guiCreateEdit(1, 4, 113, 21, "Buscar...", false, tabjugadores)
gridlistj = guiCreateGridList(1, 25, 113, 267, false, tabjugadores)
guiGridListAddColumn(gridlistj, "Jugadores", 0.9)
addEventHandler("onClientGUIClick",gridlistj,onGridClick,false)
labeln = guiCreateLabel(127, 10, 96, 15, "Nombre:", false, tabjugadores)
labelc = guiCreateLabel(127, 35, 96, 15, "Cuenta:", false, tabjugadores)
labelip = guiCreateLabel(127, 60, 96, 15, "Ip:", false, tabjugadores)
labelse = guiCreateLabel(127, 109, 96, 15, "Serial:", false, tabjugadores)
labelvb = guiCreateLabel(127, 134, 115, 15, "Vida/blindage:", false, tabjugadores)
labelski = guiCreateLabel(127, 159, 96, 15, "Skin:", false, tabjugadores)
labelping = guiCreateLabel(127, 84, 96, 15, "Ping:", false, tabjugadores)
labelequi = guiCreateLabel(127, 184, 96, 15, "Equipo:", false, tabjugadores)
labelD = guiCreateLabel(127, 205, 96, 15, "Dinero:", false, tabjugadores)
labelar = guiCreateLabel(127, 226, 96, 15, "Arma:", false, tabjugadores)
labelv = guiCreateLabel(127, 251, 96, 15, "Vehiculo:", false, tabjugadores)
botonsile = guiCreateButton(253, 50, 56, 20, "Silenciar", false, tabjugadores)
checkboxj = guiCreateCheckBox(279, 6, 80, 14, "Jetpack", false, false, tabjugadores)
checkboxe = guiCreateCheckBox(279, 26, 80, 14, "Encarcelar", false, false, tabjugadores)
botonconge = guiCreateButton(313, 50, 56, 20, "Congelar", false, tabjugadores)
edivida = guiCreateEdit(253, 73, 58, 21, "", false, tabjugadores)
botonv = guiCreateButton(313, 74, 56, 20, "Vida", false, tabjugadores)
edidinero = guiCreateEdit(253, 98, 58, 21, "", false, tabjugadores)
botondine = guiCreateButton(313, 99, 56, 20, "Dinero", false, tabjugadores)
editnombre = guiCreateEdit(253, 123, 58, 21, "", false, tabjugadores)
botonnombre = guiCreateButton(313, 124, 56, 20, "Nombre", false, tabjugadores)
editbling = guiCreateEdit(253, 149, 58, 21, "", false, tabjugadores)
botonbli = guiCreateButton(313, 150, 56, 20, "Blindage", false, tabjugadores)
botonequi = guiCreateButton(255, 175, 56, 20, "Equipo", false, tabjugadores)
botonarm = guiCreateButton(313, 175, 56, 20, "Armas", false, tabjugadores)
botonban = guiCreateButton(255, 201, 56, 20, "Expulsar", false, tabjugadores)
botonskin = guiCreateButton(313, 201, 56, 20, "Skin", false, tabjugadores)
botonwarp = guiCreateButton(255, 226, 56, 20, "Ir", false, tabjugadores)
botonspectear = guiCreateButton(313, 226, 56, 20, "Observar", false, tabjugadores)
botonechar = guiCreateButton(255, 251, 110, 20, "Hechar", false, tabjugadores)
botonreporte = guiCreateButton(255, 276, 110, 18, "Ver Reportes", false, tabjugadores)
tabdudas = guiCreateTab("Dudas", tabpanel)
memodudas = guiCreateMemo(5, 4, 360, 286, "1.Como ago para ver los acl.\nR.Deves ser AdminG o Onwer y el comando es /veracl.\n2.Como ago para ver los sancionados.\nR.Si eres mod no puedes solo los pueden ver los smod hacia delante y el comando es /verban.\n3.Como hago para hablar con los otros staff.\nR.con el boton U te aparece el chat administrativo.", false, tabdudas)
guiMemoSetReadOnly(memodudas, true)
labelinfo = guiCreateLabel(238, 23, 145, 16, "Panel Sexi By: Therichter", false, padmin)
end
)
function mostrarwea()
if guiGetVisible(padmin) == true then
guiSetVisible(padmin, false)
showCursor(false)
guiSetInputEnabled(false)
else
guiSetVisible(padmin, true)
showCursor(true)
guiSetInputEnabled(true)
end
end
function bindmostrarwea()
bindKey("F3", "down", mostrarwea)
end
addEventHandler("onClientResourceStart", cThisRoot, bindmostrarwea)
addEventHandler("onPlayerJoin", cThisRoot, bindmostrarwea)
addEventHandler("obtSvrInfo",root,function(tabla) -- Obtenemos la tabla con los datos desde el servidor
jugadores = tabla -- Asignamos los valores de la tabla a nuestra tabla jugadores
-- Ahora podemos utilizar los valores de forma global en el cliente usando la tabla 'jugadores'
end)
function onGridClick()
local sItem = guiGridListGetSelectedItem(source) -- Obtenemos el número representante del jugador seleccionado
if sItem ~= 0 then -- Verificamos si hay algún jugador seleccionado
guiSetText(labeln,"Nombre: "..jugadores[sItem][1])
guiSetText(labelc,"Cuenta: "..jugadores[sItem][2])
guiSetText(labelip,"Ip: "..jugadores[sItem][3])
guiSetText(labelse,"Serial: "..jugadores[sItem][4])
guiSetText(labelvb,"Vida/Blindaje: "..tostring(jugadores[sItem][6]).."/"..tostring(jugadores[sItem][7]))
guiSetText(labelski,"Skin: "..jugadores[sItem][8])
guiSetText(labelping,"Ping: "..jugadores[sItem][5])
guiSetText(labelequi,"Equipo: "..jugadores[sItem][9])
guiSetText(labelD,"Dinero: "..jugadores[sItem][10])
guiSetText(labelar,"Arma: "..jugadores[sItem][11])
guiSetText(labelv,"Vehiculo: "..jugadores[sItem][12])
end
end
Servidor
addEvent("onClientRequest",true)
addEventHandler("onClientRequest",root,function()
local datos = {}
for _,v in ipairs(getElementsByType("player"))do
local nombre = getPlayerName(v)
local cuenta = getAccountName(getPlayerAccount(v)) or "Invitado"
local ip = getPlayerIP(v)
local serial = getPlayerSerial(v)
local ping = getPlayerPing(v)
local salud = getElementHealth(v)
local blindaje = getPedArmor(v)
local skin = getElementModel(v)
local team = getTeamName(getPlayerTeam(v)) or "Sin equipo"
local dinero = getPlayerMoney(v)
local arma = getWeaponNameFromID(getPedWeapon(v))
local vehiculo = getVehicleNameFromModel(getPedOccupiedVehicle(v)) or "A pie"
table.insert(datos,{nombre,cuenta,ip,serial,ping,salud,blindaje,skin,team,dinero,arma,vehiculo})
end
triggerClientEvent(source,"obtSvrInfo",source,datos) -- Enviamos la tabla al cliente
end)