Jump to content

[Ayuda] Información en panel


Recommended Posts

Hola de nuevo :D Estaba haciendo un panel para los moderadores de mi servidor, y me quede trabado de nuevo en una parte, quiero que la información del jugador elegido en la lista se muestre en los label's que hice :/ pero no muestra nada...

Este es el panel

229006_535197193194044_1427365487_n.jpg

Como ven, me seleccione a mi mismo, y no cambia nada donde dice la información del jugador :/

Esto tengo en el client:

function updatePlayerInfo(ip, serial, account, money, ping, skin) 
    guiSetText(jugadorSerial, serial) 
    guiSetText(jugadorIP, ip) 
    guiSetText(jugadorCuenta, account) 
    guiSetText(jugadorDinero, money) 
    guiSetText(jugadorPing, ping) 
    guiSetText(jugadorSkin, skin) 
end 
  
addEvent("actualizarGuis", true) 
addEventHandler("actualizarGuis", getRootElement(), updatePlayerInfo) 
  
function refreshInfoLabel() 
triggerServerEvent("actualizarGui", getRootElement(), getElementData(getLocalPlayer(),"selectedplayer"), getLocalPlayer()) 
end 
  
function whenClickPlayersList() 
    if (source == playersList) then 
        selectedPlayer = guiGridListGetItemText(playersList, guiGridListGetSelectedItem(playersList), 1) 
        if (guiGridListGetSelectedItem(playersList) ~= -1) then 
            guiSetText(playerNameEdit, selectedPlayer) 
            setElementData(getLocalPlayer(),"selectedplayer",selectedPlayer) 
            triggerServerEvent("updateGui", getLocalPlayer(), selectedPlayer, player) 
        end 
    end 
end 
  
function onUpdateplayersList() 
    guiGridListClear(playersList) 
    for id, playeritem in ipairs (getElementsByType("player")) do 
        local row = guiGridListAddRow(playersList) 
        guiGridListSetItemText(playersList, row, 1, getPlayerName(playeritem), false, false) 
    end 
end 
  
addEventHandler("onClientPlayerJoin", getRootElement(), onUpdateplayersList) 
addEventHandler("onClientPlayerQuit", getRootElement(), onUpdateplayersList) 
addEventHandler("onClientPlayerChangeNick", getRootElement(), onUpdateplayersList) 

Y esto en server:

function update(client) 
local who = getPlayerFromName (client); 
local account = getPlayerAccount( who ); 
local x, y, z = getElementPosition ( who ) 
triggerClientEvent ( "actualizarGuis", getRootElement(), getPlayerIP ( who ), getPlayerSerial ( who ), getAccountName ( account ), getPlayerMoney ( who ), getPlayerPing ( who ), x, y, z, getZoneName ( x, y, z, true ), getPedSkin( who ) ) 
end 
addEvent("actualizarGui", true) 
addEventHandler("actualizarGui", getRootElement(), update) 

Me podrían dar una manita? No me da ningún error en el debugscript, pero tampoco funciona :/ No se que es lo que esta mal (me guió mas o menos de otro panel) Gracias de antemano u.u

Link to comment

Mira lo que debes usar para ese panel, Intenta crearlo por ti mismo deberas triggear algunas cosas, Si tienes alguna duda postealo te ayudare.

getPlayerName -- Toma el nombre de el Jugador 
getPlayerAccount -- Toma la cuenta del Jugador 
getPlayerMoney -- Dinero del Jugador 
getPlayerIP -- IP Del jugador 
getPlayerPing -- Ping del Jugador 
getPlayerTeam -- Grupo de el jugador 
getPlayerSkin -- Skin del Jugador 
-- Es cuestión de definirlo y luego usar el nombre que le diste y cambiar la label con: 
guiSetText 
-- Para los botones 
kickPlayer -- Saca a el jugador de el Server 
setPedFrozen -- Congela a el jugador 
setPlayerMuted -- Mutea a el jugador o desmutea 
setElementPosition -- Para warpear y traer 
killPed -- Matarlo y creo que para spectatearlo: 
setCameraTarget 
-- Adicional 
triggerServerEvent 
triggerClientEvent 
outputChatBox 

Link to comment
Mira lo que debes usar para ese panel, Intenta crearlo por ti mismo deberas triggear algunas cosas, Si tienes alguna duda postealo te ayudare.
getPlayerName -- Toma el nombre de el Jugador 
getPlayerAccount -- Toma la cuenta del Jugador 
getPlayerMoney -- Dinero del Jugador 
getPlayerIP -- IP Del jugador 
getPlayerPing -- Ping del Jugador 
getPlayerTeam -- Grupo de el jugador 
getPlayerSkin -- Skin del Jugador 
-- Es cuestión de definirlo y luego usar el nombre que le diste y cambiar la label con: 
guiSetText 
-- Para los botones 
kickPlayer -- Saca a el jugador de el Server 
setPedFrozen -- Congela a el jugador 
setPlayerMuted -- Mutea a el jugador o desmutea 
setElementPosition -- Para warpear y traer 
killPed -- Matarlo y creo que para spectatearlo: 
setCameraTarget 
-- Adicional 
triggerServerEvent 
triggerClientEvent 
outputChatBox 

Mmm... Hice esto, creo que esta bien, o no se, pero no funciona, creo que me falta un event ? No se bien :S

function Informacion(ip, account, money, ping) 
    local ip = getPlayerIP (thePlayer) 
    local account = getPlayerAccount(thePlayer) 
    local money = getPlayerMoney(thePlayer) 
    local ping = getPlayerPing(thePlayer) 
    guiSetText(jugadorIP, ip) 
    guiSetText(jugadorCuenta, account) 
    guiSetText(jugadorDinero, money) 
    guiSetText(jugadorPing, ping) 
end 
addEvent("actualizarGui", true) 
addEventHandler("actualizarGui", getRootElement(), Informacion) 

Link to comment

Nunca e usado getElementData ni setElementData, Mira intente con esto, Tomara el Ping de el Player, dime si te sirve

function joinTime ( ) 
    local ping = getPlayerPing(source) 
    if (setElementData ( source, "playerPing", ping)) then 
    local tomarPing = getElementData(source, "playerPing") 
    guiSetText (jugadorPing, Ping:"..tomarPing..") 
end 
end 
addEventHandler ( "onPlayerJoin", getRootElement(), joinTime ) 
  

Link to comment
Nunca e usado getElementData ni setElementData, Mira intente con esto, Tomara el Ping de el Player, dime si te sirve
function joinTime ( ) 
    local ping = getPlayerPing(source) 
    if (setElementData ( source, "playerPing", ping)) then 
    local tomarPing = getElementData(source, "playerPing") 
    guiSetText (jugadorPing, Ping:"..tomarPing..") 
end 
end 
addEventHandler ( "onPlayerJoin", getRootElement(), joinTime ) 
  

'onPlayerJoin' es server side y 'guiSetText' es client side, ademas de que si 'getPlayerPing' se puede usar en client side es innecesario usar elementData, y por ultimo, tienes un error en el concanate.

Link to comment
Pues, el tiene que encontrar la manera de solucionarlo, No me fije en que era serverside el envento ps el debe de saber que usar

Luego le pido a alguien que me interprete lo que dijiste;

@Warrior17, ¿Por que no vuelves al primer panel que posteaste? No le veo tantos errores.

Link to comment

Alexteel Y haci no?

function joinTime ( ) 
    local ping = getPlayerPing(source) 
    if (setElementData ( source, "playerPing", ping)) then 
    local tomarPing = getElementData(source, "playerPing") 
    guiSetText (jugadorPing, Ping:"..tomarPing..") 
end 
end 
addEventHandler ( "onClientPlayerJoin", getRootElement(), joinTime ) 

Link to comment
Alexteel Y haci no?
function joinTime ( ) 
    local ping = getPlayerPing(source) 
    if (setElementData ( source, "playerPing", ping)) then 
    local tomarPing = getElementData(source, "playerPing") 
    guiSetText (jugadorPing, Ping:"..tomarPing..") 
end 
end 
addEventHandler ( "onClientPlayerJoin", getRootElement(), joinTime ) 

Con eso solo resuelves uno de los puntos que mencione.

Link to comment

Es mejor reparar tu script como dice Alexs:

--Client

function updatePlayerInfo(ip, serial, account, money, ping, skin) 
    guiSetText(jugadorSerial, serial) 
    guiSetText(jugadorIP, ip) 
    guiSetText(jugadorCuenta, account) 
    guiSetText(jugadorDinero, money) 
    guiSetText(jugadorPing, ping) 
    guiSetText(jugadorSkin, skin) 
end 
addEvent("actualizarGuis", true) 
addEventHandler("actualizarGuis", getRootElement(), updatePlayerInfo) 
  
function refreshInfoLabel(name) 
triggerServerEvent("actualizarGui", localPlayer, name) 
end 
  
function whenClickPlayersList() 
    if (source == playersList) then 
        if (guiGridListGetSelectedItem(playersList) ~= -1) then 
             selectedPlayer = guiGridListGetItemText(playersList, guiGridListGetSelectedItem(playersList), 1) 
            guiSetText(playerNameEdit, selectedPlayer) 
            refreshInfoLabel(selectedPlayer) 
        end 
    end 
end 
  
function onUpdateplayersList() 
    guiGridListClear(playersList) 
    for id, playeritem in ipairs (getElementsByType("player")) do 
        local row = guiGridListAddRow(playersList) 
        guiGridListSetItemText(playersList, row, 1, getPlayerName(playeritem), false, false) 
    end 
end 
addEventHandler("onClientPlayerJoin", getRootElement(), onUpdateplayersList) 
addEventHandler("onClientPlayerQuit", getRootElement(), onUpdateplayersList) 
addEventHandler("onClientPlayerChangeNick", getRootElement(), onUpdateplayersList) 

--Server

function update(name) 
local who = getPlayerFromName (name); 
local account = getPlayerAccount( who ); 
local x, y, z = getElementPosition ( who ) 
triggerClientEvent (source, "actualizarGuis", source, getPlayerIP ( who ), getPlayerSerial ( who ), getAccountName ( account ), getPlayerMoney ( who ), getPlayerPing ( who ), getElementModel ( who ) ) 
end 
addEvent("actualizarGui", true) 
addEventHandler("actualizarGui", getRootElement(), update) 

Link to comment
Es mejor reparar tu script como dice Alexs:

--Client

function updatePlayerInfo(ip, serial, account, money, ping, skin) 
    guiSetText(jugadorSerial, serial) 
    guiSetText(jugadorIP, ip) 
    guiSetText(jugadorCuenta, account) 
    guiSetText(jugadorDinero, money) 
    guiSetText(jugadorPing, ping) 
    guiSetText(jugadorSkin, skin) 
end 
addEvent("actualizarGuis", true) 
addEventHandler("actualizarGuis", getRootElement(), updatePlayerInfo) 
  
function refreshInfoLabel(name) 
triggerServerEvent("actualizarGui", localPlayer, name) 
end 
  
function whenClickPlayersList() 
    if (source == playersList) then 
        if (guiGridListGetSelectedItem(playersList) ~= -1) then 
             selectedPlayer = guiGridListGetItemText(playersList, guiGridListGetSelectedItem(playersList), 1) 
            guiSetText(playerNameEdit, selectedPlayer) 
            refreshInfoLabel(selectedPlayer) 
        end 
    end 
end 
  
function onUpdateplayersList() 
    guiGridListClear(playersList) 
    for id, playeritem in ipairs (getElementsByType("player")) do 
        local row = guiGridListAddRow(playersList) 
        guiGridListSetItemText(playersList, row, 1, getPlayerName(playeritem), false, false) 
    end 
end 
addEventHandler("onClientPlayerJoin", getRootElement(), onUpdateplayersList) 
addEventHandler("onClientPlayerQuit", getRootElement(), onUpdateplayersList) 
addEventHandler("onClientPlayerChangeNick", getRootElement(), onUpdateplayersList) 

--Server

function update(name) 
local who = getPlayerFromName (name); 
local account = getPlayerAccount( who ); 
local x, y, z = getElementPosition ( who ) 
triggerClientEvent (source, "actualizarGuis", source, getPlayerIP ( who ), getPlayerSerial ( who ), getAccountName ( account ), getPlayerMoney ( who ), getPlayerPing ( who ), getElementModel ( who ) ) 
end 
addEvent("actualizarGui", true) 
addEventHandler("actualizarGui", getRootElement(), update) 

Perdón por no contestar antes :( Se me había ido el internet, probe eso y no funciona :( No se cual sea el problema, no da ningun error pero no me funciona :cry:

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...