Jump to content

Ayuda con este Gui


Soren

Recommended Posts

Hola a todos, estaba haciendo un sistema de guis con unas funciones que saque del character system que estaban haciendo edikosh y ElMota. Pero obtuve algunos errorres y como soy malo en esto de los guis les pido su ayuda

Client

GUIEditor_Button = {} 
GUIEditor_Edit = {} 
  
GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) 
  
GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) 
  
GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) 
  
GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) 
  
  
addEvent("onVisible",true) 
addEventHandler("onVisible", getLocalPlayer(), 
function() 
guiSetVisible(GUIEditor_Button[1],true) 
guiSetVisible(GUIEditor_Button[2],true) 
guiSetVisible(GUIEditor_Button[3],true) 
guiSetVisible(GUIEditor_Edit[1],true) 
showPlayerHudComponent ("radar",false) 
showCursor(true) 
guiSetInputMode("no_binds_when_editing") 
triggerServerEvent("onCameraMatrix", getLocalPlayer()) 
ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEventHandler("onClientGUIClick", root, 
function() 
if source == GUIEditor_Button[3] then 
guiSetVisible(GUIEditor_Button[1],false) 
guiSetVisible(GUIEditor_Button[2],false) 
guiSetVisible(GUIEditor_Button[3],false) 
guiSetVisible(GUIEditor_Edit[1],false) 
setCameraTarget( localPlayer ) 
showCursor(false) 
setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) 
local skin = getElementModel( ped ) 
setElementModel( localPlayer, tonumber(skin) ) 
destroyElement(ped) 
showPlayerHudComponent ("radar",true) 
end 
end 
) 
  
function rotateTempPed ( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end 
addEventHandler("onClientRender", root, rotateTempPed) 
  
numero = 0 
  
function on_pushButton_2_clicked(button,state) 
    if (button == "left" and state == "up") then 
    if(numero == 1) then return end 
    numero = numero - 1 
    setElementModel(ped,numero) 
    
    end 
end 
addEventHandler("onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked) 
  
function on_pushButton_3_clicked(button,state) 
    if (button == "left" and state == "up") then 
    if (numero == 200) then return end 
    numero = numero + 1 
    setElementModel(ped,numero) 
    end 
end 
addEventHandler("onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked) 
  
  

Server

addEventHandler("onPlayerLogin", getRootElement(), 
function() 
triggerClientEvent(source,"onVisible",source) 
end 
) 
  
addEvent("onCameraMatrix", true) 
addEventHandler("onCameraMatrix", getRootElement(), 
function() 
setCameraMatrix( source, -1570.66796875, 1358.087890625, 11.218300819397, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 

Los errores que tengo:

Los bottones y el edit salen cuando te unes al server y no cuando te logeas

Los skins se cambian muy lento

El Ped no rota

Quiero poner que solo se pueda escojer entre 5 skins

Quiero que en el edit salga el numero del skin

Necesito su ayuda :/

Link to comment
GUIEditor_Button = {} 
GUIEditor_Edit = {} 
  
GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) 
GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) 
GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) 
GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], false ) 
end 
guiSetVisible ( GUIEditor_Edit[1], false ) 
  
  
addEvent("onVisible",true) 
addEventHandler("onVisible", getLocalPlayer(), 
function() 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], true ) 
end 
guiSetVisible ( GUIEditor_Edit[1], true ) 
showPlayerHudComponent ("radar",false) 
showCursor(true) 
guiSetInputMode("no_binds_when_editing") 
triggerServerEvent("onCameraMatrix", getLocalPlayer()) 
ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEventHandler("onClientGUIClick", root, 
function() 
if source == GUIEditor_Button[3] then 
guiSetVisible(GUIEditor_Button[1],false) 
guiSetVisible(GUIEditor_Button[2],false) 
guiSetVisible(GUIEditor_Button[3],false) 
guiSetVisible(GUIEditor_Edit[1],false) 
setCameraTarget( localPlayer ) 
showCursor(false) 
setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) 
local skin = getElementModel( ped ) 
setElementModel( localPlayer, tonumber(skin) ) 
destroyElement(ped) 
showPlayerHudComponent ("radar",true) 
end 
end 
) 
  
function rotateTempPed ( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end 
addEventHandler ( "onClientRender", root, rotateTempPed ) 
  
numero = 0 
  
function on_pushButton_2_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero == 1 ) then  
            return  
        end 
  
        numero = numero - 1 
        setElementModel ( ped, numero )    
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) 
  
function on_pushButton_3_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero >= 5 ) then  
            return  
        end 
  
        numero = numero + 1 
        setElementModel ( ped, numero ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) 

Link to comment

1: La variable "rotation" no esta definida, por eso el ped no rotava.

2: Si te fijas en la wiki, los skins no empiezan de 1, 2, 3, 4, etc: https://wiki.multitheftauto.com/wiki/All_Skins_Page

3: Usa esto:

GUIEditor_Button = {} 
GUIEditor_Edit = {} 
local rotation = 0 
local numero = 1 
local skins = { 0, 7, 9, 10, 11 } -- Esos son los primeros skins de la lista. 
  
GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) 
GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) 
GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) 
GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], false ) 
end 
guiSetVisible ( GUIEditor_Edit[1], false ) 
  
  
addEvent("onVisible",true) 
addEventHandler("onVisible", getLocalPlayer(), 
function() 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], true ) 
end 
guiSetVisible ( GUIEditor_Edit[1], true ) 
showPlayerHudComponent ("radar",false) 
showCursor(true) 
guiSetInputMode("no_binds_when_editing") 
triggerServerEvent("onCameraMatrix", getLocalPlayer()) 
ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEventHandler("onClientGUIClick", root, 
function() 
if source == GUIEditor_Button[3] then 
guiSetVisible(GUIEditor_Button[1],false) 
guiSetVisible(GUIEditor_Button[2],false) 
guiSetVisible(GUIEditor_Button[3],false) 
guiSetVisible(GUIEditor_Edit[1],false) 
setCameraTarget( localPlayer ) 
showCursor(false) 
setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) 
local skin = getElementModel( ped ) 
setElementModel( localPlayer, tonumber(skin) ) 
destroyElement(ped) 
showPlayerHudComponent ("radar",true) 
end 
end 
) 
  
function rotateTempPed ( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end 
addEventHandler ( "onClientRender", root, rotateTempPed ) 
   
function on_pushButton_2_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero == 1 ) then 
            return 
        end 
  
        numero = numero - 1 
        setElementModel ( ped, skins [ numero ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) 
  
function on_pushButton_3_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero >= #skins ) then 
            return 
        end 
  
        numero = numero + 1 
        setElementModel ( ped, skins [ numero ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) 

Link to comment
1: La variable "rotation" no esta definida, por eso el ped no rotava.

2: Si te fijas en la wiki, los skins no empiezan de 1, 2, 3, 4, etc: https://wiki.multitheftauto.com/wiki/All_Skins_Page

3: Usa esto:

GUIEditor_Button = {} 
GUIEditor_Edit = {} 
local rotation = 0 
local numero = 1 
local skins = { 0, 7, 9, 10, 11 } -- Esos son los primeros skins de la lista. 
  
GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) 
GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) 
GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) 
GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], false ) 
end 
guiSetVisible ( GUIEditor_Edit[1], false ) 
  
  
addEvent("onVisible",true) 
addEventHandler("onVisible", getLocalPlayer(), 
function() 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], true ) 
end 
guiSetVisible ( GUIEditor_Edit[1], true ) 
showPlayerHudComponent ("radar",false) 
showCursor(true) 
guiSetInputMode("no_binds_when_editing") 
triggerServerEvent("onCameraMatrix", getLocalPlayer()) 
ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEventHandler("onClientGUIClick", root, 
function() 
if source == GUIEditor_Button[3] then 
guiSetVisible(GUIEditor_Button[1],false) 
guiSetVisible(GUIEditor_Button[2],false) 
guiSetVisible(GUIEditor_Button[3],false) 
guiSetVisible(GUIEditor_Edit[1],false) 
setCameraTarget( localPlayer ) 
showCursor(false) 
setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) 
local skin = getElementModel( ped ) 
setElementModel( localPlayer, tonumber(skin) ) 
destroyElement(ped) 
showPlayerHudComponent ("radar",true) 
end 
end 
) 
  
function rotateTempPed ( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end 
addEventHandler ( "onClientRender", root, rotateTempPed ) 
   
function on_pushButton_2_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero == 1 ) then 
            return 
        end 
  
        numero = numero - 1 
        setElementModel ( ped, skins [ numero ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) 
  
function on_pushButton_3_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero >= 5 ) then 
            return 
        end 
  
        numero = numero + 1 
        setElementModel ( ped, skins [ numero ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) 

Oye una pregunta:

Puedo hacer una tabla con los skins que quiero que sean utilisables? si se puede, como se hace?

Otra pregunta:

Quiero hacer que cuando estas viendo un skin en el edit salga el nombre del skin. Osea, un nombre costum que yo le dare. Es posible? Como?

Link to comment
@Soren: Copia mi codigo, le puse algo asi podes agregar cuantos skins quieras.

Muchisimas Gracias Solid! el mejor :).

Ahora necesito respuesta a mi otra pregunta, Si se ve que esta viendo un skin por ejemplo el skin 14. Que en el edit salga un nombre que yo le ponga. Es posible?

Link to comment
Creas una tabla en el mismo orden que los skins...Entonces por ejemplo :
  
  
skin = { 0 } 
  
caracteristica = { "CJ" } 
  
  
--Despues usas 
  
guiSetText(labelX,caracteristica[numero]) 
  
  

El label X seria al que vas a usar para que salga el nombre

Perdoname pero no entendi nada. Me lo puedes explicar un poco mejor?

Link to comment

No necesitas otra tabla Edikosh, puede usar la misma ;).

GUIEditor_Button = {} 
GUIEditor_Edit = {} 
local rotation = 0 
local numero = 1 
local skins = { { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } } 
  
GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) 
GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) 
GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) 
GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], false ) 
end 
guiSetVisible ( GUIEditor_Edit[1], false ) 
  
  
addEvent("onVisible",true) 
addEventHandler("onVisible", getLocalPlayer(), 
function() 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], true ) 
end 
guiSetVisible ( GUIEditor_Edit[1], true ) 
showPlayerHudComponent ("radar",false) 
showCursor(true) 
guiSetInputMode("no_binds_when_editing") 
triggerServerEvent("onCameraMatrix", getLocalPlayer()) 
ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEventHandler("onClientGUIClick", root, 
function() 
if source == GUIEditor_Button[3] then 
guiSetVisible(GUIEditor_Button[1],false) 
guiSetVisible(GUIEditor_Button[2],false) 
guiSetVisible(GUIEditor_Button[3],false) 
guiSetVisible(GUIEditor_Edit[1],false) 
setCameraTarget( localPlayer ) 
showCursor(false) 
setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) 
local skin = getElementModel( ped ) 
setElementModel( localPlayer, tonumber(skin) ) 
destroyElement(ped) 
showPlayerHudComponent ("radar",true) 
end 
end 
) 
  
function rotateTempPed ( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end 
addEventHandler ( "onClientRender", root, rotateTempPed ) 
  
function on_pushButton_2_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero == 1 ) then 
            return 
        end 
  
        numero = numero - 1 
        setElementModel ( ped, skins [ numero ] [ 1 ] ) 
        guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) 
  
function on_pushButton_3_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero >= #skins ) then 
            return 
        end 
  
        numero = numero + 1 
        setElementModel ( ped, skins [ numero ] [ 1 ] ) 
        guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) 

Link to comment

Oh Oye Solid que bueno que no bloqueste este tema, Me vino otra duda

Estoy haciendo un ACL group que sean los VIP's Y les quiero dar a escoger 5 skins diferentes a esos, Alguna manera de crear un tabla con unos skins usables para los VIP's?

Link to comment

Mira esto es lo que logre hacer del server dide y del cleint side pero me quede atorado :/

Server

addEventHandler("onPlayerLogin", getRootElement(), 
function() 
triggerClientEvent(source,"onVisible",source) 
end 
) 
  
addEvent("onCameraMatrix", true) 
addEventHandler("onCameraMatrix", getRootElement(), 
function() 
setCameraMatrix( source, -1570.66796875, 1358.087890625, 11.218300819397, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEvent("ifvip", true) 
addEventHandler("ifvip" getRootElement(), 
function() 
isObjectInACLGroup ("user."..accName, aclGetGroup ( "VIP" ) ) 

Client

GUIEditor_Button = {} 
GUIEditor_Edit = {} 
local rotation = 0 
local numero = 1 
local skins = { { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } } 
local skinsvip = { { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } } 
  
GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) 
GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) 
GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) 
GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], false ) 
end 
guiSetVisible ( GUIEditor_Edit[1], false ) 
  
  
addEvent("onVisible",true) 
addEventHandler("onVisible", getLocalPlayer(), 
function() 
for i=1, 3 do 
    guiSetVisible ( GUIEditor_Button[i], true ) 
end 
guiSetVisible ( GUIEditor_Edit[1], true ) 
showPlayerHudComponent ("radar",false) 
showCursor(true) 
guiSetInputMode("no_binds_when_editing") 
triggerServerEvent("onCameraMatrix", getLocalPlayer()) 
ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) 
end 
) 
  
addEventHandler("onClientGUIClick", root, 
function() 
if source == GUIEditor_Button[3] then 
guiSetVisible(GUIEditor_Button[1],false) 
guiSetVisible(GUIEditor_Button[2],false) 
guiSetVisible(GUIEditor_Button[3],false) 
guiSetVisible(GUIEditor_Edit[1],false) 
setCameraTarget( localPlayer ) 
showCursor(false) 
setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) 
local skin = getElementModel( ped ) 
setElementModel( localPlayer, tonumber(skin) ) 
destroyElement(ped) 
showPlayerHudComponent ("radar",true) 
end 
end 
) 
  
function rotateTempPed ( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end 
addEventHandler ( "onClientRender", root, rotateTempPed ) 
  
function on_pushButton_2_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero == 1 ) then 
            return 
        end 
  
        numero = numero - 1 
        setElementModel ( ped, skins [ numero ] [ 1 ] ) 
        guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) 
  
function on_pushButton_3_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero >= #skins ) then 
            return 
        end 
  
        numero = numero + 1 
        setElementModel ( ped, skins [ numero ] [ 1 ] ) 
        guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) 
    end 
end 
addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) 

Link to comment

Veamos, no se si está bien. Pero por lo que veo tenes el grupo "VIP", a ver si te puedo ayudar.

function on_pushButton_3_clicked ( button, state ) 
    if ( button == "left" and state == "up" ) then 
        if ( numero >= #skins ) then 
            return 
        end 
  
        numero = numero + 1 
        username = getPlayerName ( playerSource ) 
        if ( isObjectInACLGroup ("user."..username, aclGetGroup ( "VIP" ) ) ) then -- acá comprobamos si esta en el vip. 
                setElementModel ( ped, skinsvip [ numero ] [ 1 ] ) -- entonces si está, usamos los skinsvip  
        else -- si no 
                setElementModel ( ped, skins [ numero ] [ 1 ] ) -- los skins normal. 
        end 
        guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) 
    end 
end 

Tendrías que hacer la misma modificación para retroceder un skin. No se si está bien(aver si Snake luego confirma xD), repito. Pero proba.

Link to comment

proba esto yo hago una GUI admin y me funciona perfecto esto

    local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
    if isObjectInACLGroup ( "user.".. accName, aclGetGroup ( "Admin" ) ) then 
        triggerClientEvent ( thePlayer, "ElEventoClient", thePlayer ) 

:) espero averte ayudado

Link to comment
  • Recently Browsing   0 members

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