Jump to content

(AYUDA)Guardar guiSetEnabled


lucascba

Recommended Posts

Hola me gustaria saber como hago para guardar guiSetEnabled, estoy haciendo un sistema de ammunation y quiero que primero compre un arma determinada y al comprar el arma se active el boton para comprar la municion, me funciono anda perfecto usando guiSetEnabled, pero cuando reconecto se vuelve a estar activado el boton de comprar el arma, miren esto es una parte del Guion:

function darcolt2 ( ) 
    guiSetEnabled ( GUIEditor.button[2], true ) ----boton para comprar municion------ 
    guiSetEnabled ( GUIEditor.button[1], false ) -----Boton para comprar el arma----- 
    triggerServerEvent("comprarcolt", localPlayer) 
end 
addEventHandler("onClientGUIClick", GUIEditor.button[1], darcolt2, false) 

Eso es, Como Puedo Hacer Que Se Quede Guardado(Desactivado el boton de Comprar Arma, si es que el jugador ya la compro) ? gracias. :roll:

Link to comment

Sisi, Este Es el server

function Dararma(id) 
    local money = getPlayerMoney(source) 
    if ( tonumber(money) >= tonumber(20000) ) then 
    takePlayerMoney ( source, tonumber(20000) ) 
    exports["CLtopbarchat"]:sendClientMessage ( "Has Comprado Una Colt, Costo:$20000", client, 0, 255, 0, true ) 
    else 
    exports["CLtopbarchat"]:sendClientMessage ( "No Tienes Suficiente Dinero Para Comprar Esta Arma", client, 255, 0, 0, true ) 
    end 
end 
addEvent("comprarcolt", true)  
addEventHandler("comprarcolt",root,Dararma) 
  
function darcolts(id) 
giveWeapon ( source ,  22,17 ) 
    local money = getPlayerMoney(source) 
    if ( tonumber(money) >= tonumber(50) ) then 
    takePlayerMoney ( source, tonumber(50) ) 
    exports["CLtopbarchat"]:sendClientMessage ( "Has Comprado Balas De Colt, Costo:$50", client, 0, 255, 0, true ) 
    else 
    exports["CLtopbarchat"]:sendClientMessage ( "No Tienes Suficiente Dinero Para Comprar Municion", client, 255, 0, 0, true ) 
    end 
end 
addEvent("darcolt", true)  
addEventHandler("darcolt",root,darcolts) 
  
--------------minigun---------------- 
function Dararmamin(id) 
    local money = getPlayerMoney(source) 
    if ( tonumber(money) >= tonumber(5000000) ) then 
    takePlayerMoney ( source, tonumber(5000000) ) 
    exports["CLtopbarchat"]:sendClientMessage ( "Has Comprado Una Minigun, Costo:$5M", client, 0, 255, 0, true ) 
    else 
    exports["CLtopbarchat"]:sendClientMessage ( "No Tienes Suficiente Dinero Para Comprar Esta Arma", client, 255, 0, 0, true ) 
    end 
end 
addEvent("comprarmin", true)  
addEventHandler("comprarmin",root,Dararmamin) 
  
function darminigun(id) 
giveWeapon ( source ,  38,100 ) 
    local money = getPlayerMoney(source) 
    if ( tonumber(money) >= tonumber(1000) ) then 
    takePlayerMoney ( source, tonumber(1000) ) 
    exports["CLtopbarchat"]:sendClientMessage ( "Has Comprado Balas De Minigun, Costo:$1000", client, 0, 255, 0, true ) 
    else 
    exports["CLtopbarchat"]:sendClientMessage ( "No Tienes Suficiente Dinero Para Comprar Municion", client, 255, 0, 0, true ) 
    end 
end 
addEvent("darmini", true)  
addEventHandler("darmini",root,darminigun) 

No tiene la funciones de todas las armas porque aun no podia hacer Que se quede guardado el guiSetEnabled,pero este es el lado server por ahora.

Si necesitas el client te lo paso por PM :roll:

Link to comment

Para que se te haga más fácil podrías hacer que si el jugador si el jugador ya tiene tal arma el botón se habilite y si no, bueno, obvio, se desactive.

Por ejemplo:

if getPedWeapon(localPlayer) == 22 then 
   guiSetEnabled(btn,true) 
else 
   guiSetEnabled(btn,false) 
end 

Link to comment
  • Administrators
porque si le pongo onClientMarkerHit debe tener esa arma cuando entra al marker , me podrías decir como hago? :roll:

No necesariamente:

getPedWeapon ( ped thePed, [ int weaponSlot = current ] ) 

Usa la variable weaponSlot para comprobar si tiene esa arma en el inventario. Obviamente de esa forma tendra que tener el arma, aunque no sea indispensable que la tenga equipada ya que podes comprobar que arma tiene en el slot correspondiente.

Link to comment

Ciber, Como puedo hacer que si el player tiene el arma 22 y lo tiene en cualquier slot se acitive esta funcion:

function botoncolt ( ) 
   if getPedWeapon(localPlayer) weaponSlot == 22 then 
      guiSetEnabled(GUIEditor.button[2],true) 
      guiSetEnabled(GUIEditor.button[1],false) 
      else 
      guiSetEnabled(GUIEditor.button[2],false) 
      guiSetEnabled(GUIEditor.button[1],true) 
   end      
end 

Link to comment
  • 3 weeks later...

Tengo un problema, quise hacerlo con setElementData pero solo ami me pone el setElementData, porque entro con otra cuenta y compro el arma pero no me pone el setElementData, aca dejo una parte.

Eso le da el setElementData cuando el jugador compra el arma.

function darcolt4 ( ) 
    triggerServerEvent("comprarcolt", localPlayer) 
    setElementData (localPlayer, "Deagle", "Si") 
    guiSetEnabled(GUIEditor.button[1],false) 
end 
addEventHandler("onClientGUIClick", GUIEditor.button[1], darcolt4, false) 

y esto comprueba si tiene el setElementData

function coltboton () 
local deagle = getElementData( localPlayer, "Deagle" ) 
if deagle == "Si" then 
   guiSetEnabled(GUIEditor.button[1],false) 
   guiSetEnabled(GUIEditor.button[2],true) 
end 
end 
addEventHandler("onClientMarkerHit", markerAmu, coltboton)     

y aca guarda el setElementData

function saveData(player) 
    local account = getPlayerAccount ( player ) 
    if not isGuestAccount ( account ) then 
        setAccountData ( account, "Deagle", getElementData(player, "Deagle") or "No" ) 
    end 
end 
  
local resourceRoot = getResourceRootElement(getThisResource())  
addEventHandler ( "onResourceStop", resourceRoot, 
function ( resource ) 
    local players = getElementsByType ( "player" ) 
    for theKey,thePlayer in ipairs(players) do 
        saveData(thePlayer) 
    end 
end 
) 
addEventHandler("onPlayerLogin", root, 
function(_, account) 
    local data = getAccountData ( account, "Deagle" ) or "No" 
    setTimer (setElementData, 3000, 1, source, "Deagle", data) 
end 
) 
  
function loggedOut() 
    saveData(source) 
end 
addEventHandler("onPlayerLogout",getRootElement(),loggedOut) 

en debugscript3 no me sale ningun error

Link to comment

El problema está en la función coltboton, no definiste el "hiter" osea la persona que entra al marker.

  
    function coltboton (hitElement) 
    local deagle = getElementData( hitElement, "Deagle" ) 
    if deagle == "Si" then 
       guiSetEnabled(GUIEditor.button[1],false) 
       guiSetEnabled(GUIEditor.button[2],true) 
    end 
    end 
    addEventHandler("onClientMarkerHit", markerAmu, coltboton)     
  

Link to comment
  • Recently Browsing   0 members

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