lucascba Posted August 16, 2014 Share Posted August 16, 2014 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. Link to comment
Castillo Posted August 16, 2014 Share Posted August 16, 2014 Tenes que guardar la informacion en alguna parte, y luego verificar si tiene esa informacion. Link to comment
lucascba Posted August 16, 2014 Author Share Posted August 16, 2014 Como Puedo Hacer Eso? Link to comment
Tomas Posted August 17, 2014 Share Posted August 17, 2014 Podés usar setAccountData/getAccountData. Si posteas el sv-side te lo hago. Link to comment
lucascba Posted August 17, 2014 Author Share Posted August 17, 2014 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 Link to comment
_SAXI_ Posted August 17, 2014 Share Posted August 17, 2014 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
lucascba Posted August 17, 2014 Author Share Posted August 17, 2014 y que addEventHandler le pongo, porque si le pongo onClientMarkerHit debe tener esa arma cuando entra al marker , me podrías decir como hago? Link to comment
MTA Team 0xCiBeR Posted August 21, 2014 MTA Team Share Posted August 21, 2014 porque si le pongo onClientMarkerHit debe tener esa arma cuando entra al marker , me podrías decir como hago? 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
lucascba Posted August 21, 2014 Author Share Posted August 21, 2014 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
Tomas Posted August 22, 2014 Share Posted August 22, 2014 Las slots están predefinidas. Te recomiendo leer aquí, están todas las slots y armas: https://wiki.multitheftauto.com/wiki/Weapons Link to comment
lucascba Posted September 10, 2014 Author Share Posted September 10, 2014 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
Tomas Posted September 10, 2014 Share Posted September 10, 2014 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
lucascba Posted September 11, 2014 Author Share Posted September 11, 2014 Y Como Puedo Hacerlo Bien? Link to comment
Tomas Posted September 11, 2014 Share Posted September 11, 2014 Te lo dí arreglado arriba. Link to comment
lucascba Posted September 11, 2014 Author Share Posted September 11, 2014 Te lo dí arreglado arriba. No funciona. Link to comment
Tomas Posted September 11, 2014 Share Posted September 11, 2014 Envíame todo el código así te lo hago porque de a pedazos no puedo. Link to comment
Recommended Posts