Jump to content

Anzo

Members
  • Posts

    276
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Anzo

  1. Anzo

    Duda!

    De forma obvia si le das varios clicks tiene que salir varias veces, no? Pero si quieres que solo se le pueda dar click solo UNA VEZ AL BOTÓN (si lo precionas una vez saldrá el mensaje, pero si le das de nuevo, no saldrá nada), puedes usar algo así: function texto() if not onetime then outputChatBox("Hola") onetime = true end end addEventHandler("onClientGUIClick", button1, texto, false) No sé si es lo que quieras, pero lo que hace es que el mensaje "Hola" solo aparezca cuando la variable onetime sea falsa, es decir, el mensaje solo aparecerá una vez aunque le sigas dando click al botón, esto es porque al darle click la variable pasa a verdadera, y la condicional dice que solo si es falsa hará la acción; si quieres que se le pueda dar click después, puedes usar onetime = false en otra parte para que así se le pueda seguir dando click al botón. Tampoco sé si es la mejor manera pero a mi me ha funcionado así.
  2. Encontré esto en un script de la comunidad: vehiclesList = { 437, 431 } function in_array(e, t) for _,v in pairs(t) do if (v==e) then return true end end return false end function getFreeSeat(veh) local max = getVehicleMaxPassengers(veh) for i=2,max,1 do local occ = getVehicleOccupant(veh, i) if (occ==false) then return i end end return false end addEventHandler("onVehicleEnter", getRootElement(), function(player,seat,jacked) local model = getElementModel(source) -- debug thing local max = getVehicleMaxPassengers(source) outputChatBox(tostring(max)..'--'..tostring(seat)) if (in_array(model, vehiclesList)) then if (seat==1) then local seatID = getFreeSeat(source) if (seatID~=false) then outputChatBox(tostring(seatID)) warpPedIntoVehicle(player, source, seatID) outputChatBox(getPlayerName(getVehicleOccupant(source, seatID))) end end end No lo puedo probar porque no cuento con la gente para hacerlo, pero veo que allí está usando el warpPedIntoVehicle, y quería saber si de esa forma sirve. PD: Sé que puedo usar ese script y listo, pero lo que quiero es que el máximo de pasajeros sea el que esta escrito en un editBox, pero primero quiero saber si este sirve.
  3. Puedo hacer que en un auto haya más pasajeros haciendo algo como esto? --supongamos que pas son los pasajeros if pas == 2 then warpPedIntoVehicle(player, vehicle, 2) end Me refiero a que si puedo warpear al jugador al asiento 2 aunque ya esté ocupado. Y si no se puede, alguien tiene una idea de cómo podría hacerlo? (pero no me lo den hecho, solo diganme que puedo usar si saben e.e) PD: Me dijeron que pegando al jugador al auto con attachElements se puede hacer, pero no creo que vaya a poder disparar por la ventana de los autos como se haría normalmente.
  4. Puedes usar dxDrawImageOnElement si mal no recuerdo, o si lo quieres hacer "manualmente" usa: getScreenFromWorldPosition getDistanceBetweenPoints3D -- y para el acl isObjectInACLGroup
  5. Muchas gracias Tomas, con esto me ayudaste mucho a hacer un código más "corto" xd.
  6. No tengo código, era una pregunta para ver si se podia, además no puedo usar la pc ahora mismo, pero dare un ejemplo por el celular a ver si se entiende. local guis = { botones = {} } function test() window = guiCreateWindow(...) Contenido = guiCreateGridList(...) guis.botones[1]=guiCreateButton(...) guis.botones[2] = guiCreateButton (...) guis.botones[3] = guiCreateButton (...) --Se puede hacer esto sin desactivar toda la window, para borrar solo los elementos que puse en la tabla for i, v in ipairs(guis[botones] do guiSetVisible(v, false) end end addEventHandler("onClientResourceStart", root, test) Si no se entiende más tarde si puedo explico mejor... Pero lo que quiero es poder borrar gui element por medio de un for loop como se haría para destruir un coche, blip, etc.
  7. Tengo una gui y adentro una gridlist donde se creará el contenido, el panel digamos esta dividido en 5 partes: Autos, armas, skins, comida, nose; si elegiste Autos se crearán unos botones para elegir autos, y so quieres skins le das al botón se skins y se borran los botones de los autos y se crean el de los skins, lo que quiero es, poder borrar esos botones sin necesidad de usar un guiSetVisible para cada botón, sé que puedo hacer desaparecer la gridlist al precionar otro botón y que luego vuelva a aparecer, pero quisiera también saber si puedo borrar varios elementos con un: for n, nn in ipairs (table) do Y abajo de eso un guiSetVisible (v, false), y se borrarán los elementos que estén en esa tabla. El problema es que me da error al hacerlo y no sé porque, me dice algo como: "button[1] no existe" y no pasa nada, no se borra ni nada. Espero me hayan entendido
  8. Quién sabe (? pero prefiero dejar de usar elementData para cosas que se pueden hacer de otro método :'v, además de que en el script ya tengo varios elementData, no quiero poner más xd(son elementData de otro script, no el que pase, solo que quería unir eso de abrir puertas por scroll a un panel que estoy haciendo, pero en ese panel ya use varios elementData y no quierop usar más :v). También que ya me aburrí de que para cada script que haga tenga que usar elementData(porque por ahora no sé mucho de tablas u.u).
  9. Muchas gracias Tomas, si funciona. Bueno, para aprovechar este post tengo dos preguntas: 1. Cómo puedo poner guis en una tabla?, lo que pasa es que tengo varios gui-element, y el código se hace muy extenso, quisiera saber si puedo hacer algo como esto: 2. Puedo usar tablas de la forma que me pasaste para remplazar un elementData que solo tiene asignado un número (supongo que si, pero para asegurar nada más )?
  10. Quisiera saber cómo puedo hacer que este script funcione sin necesidad de usar elementData, porque digamos que ya tengo varios y quisiera ver si puedo quitarle los elementData a este recurso para abrir/cerrar las puertas del auto. Client ------------------------------------ -- QUANTUMZ - QUANTUMZ - QUANTUMZ -- ------------------------------------ -- 2011 - Romania -- ------------------------------------ -- You can modify this file but -- -- don't change the credits. -- ------------------------------------ ------------------------------------ -- VEHICLECONTROL v1.0 for MTA -- ------------------------------------ GUIEditor_Window = {} GUIEditor_Button = {} GUIEditor_Label = {} GUIEditor_Scrollbar = {} GUIEditor_Window[1] = guiCreateWindow(709,236,272,288,"Vehicle Control - QuantumZ",false) GUIEditor_Scrollbar[1] = guiCreateScrollBar(24,49,225,17,true,false,GUIEditor_Window[1]) GUIEditor_Label[1] = guiCreateLabel(86,30,135,15,"Hood Open Ratio",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Label[1],"default-bold-small") GUIEditor_Label[2] = guiCreateLabel(74,72,135,15,"First Door Open Ratio",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Label[2],"default-bold-small") GUIEditor_Scrollbar[2] = guiCreateScrollBar(24,91,225,17,true,false,GUIEditor_Window[1]) GUIEditor_Label[3] = guiCreateLabel(68,112,135,15,"Second Door Open Ratio",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Label[3],"default-bold-small") GUIEditor_Scrollbar[3] = guiCreateScrollBar(24,130,225,17,true,false,GUIEditor_Window[1]) GUIEditor_Label[4] = guiCreateLabel(71,151,135,15,"Third Door Open Ratio",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Label[4],"default-bold-small") GUIEditor_Scrollbar[4] = guiCreateScrollBar(24,168,225,17,true,false,GUIEditor_Window[1]) GUIEditor_Label[5] = guiCreateLabel(68,189,135,15,"Fourth Door Open Ratio",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Label[5],"default-bold-small") GUIEditor_Scrollbar[5] = guiCreateScrollBar(24,206,225,17,true,false,GUIEditor_Window[1]) GUIEditor_Label[6] = guiCreateLabel(83,226,135,15,"Trunk Open Ratio",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Label[6],"default-bold-small") GUIEditor_Scrollbar[6] = guiCreateScrollBar(24,243,225,17,true,false,GUIEditor_Window[1]) GUIEditor_Button[1] = guiCreateButton(23,265,230,14,"close window",false,GUIEditor_Window[1]) guiSetFont(GUIEditor_Button[1],"default-small") guiWindowSetSizable ( GUIEditor_Window[1], false ) setElementData(GUIEditor_Scrollbar[1], "Type", 0) setElementData(GUIEditor_Scrollbar[2], "Type", 2) setElementData(GUIEditor_Scrollbar[3], "Type", 3) setElementData(GUIEditor_Scrollbar[4], "Type", 4) setElementData(GUIEditor_Scrollbar[5], "Type", 5) setElementData(GUIEditor_Scrollbar[6], "Type", 1) guiSetVisible(GUIEditor_Window[1], false) showCursor(false) function enableVehicleControl() if guiGetVisible(GUIEditor_Window[1]) == false then guiSetVisible(GUIEditor_Window[1], true) showCursor(true) else guiSetVisible(GUIEditor_Window[1], false) showCursor(false) end end addCommandHandler("cveh", enableVehicleControl) function closeButton() guiSetVisible(GUIEditor_Window[1], false) showCursor(false) end addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], closeButton, false ) function updateRatio(Scrolled) local position = guiScrollBarGetScrollPosition(Scrolled) local door = getElementData(Scrolled, "Type") triggerServerEvent("moveThis:~", getLocalPlayer(), door, position) end addEventHandler("onClientGUIScroll", getRootElement(), updateRatio) Server ------------------------------------ -- QUANTUMZ - QUANTUMZ - QUANTUMZ -- ------------------------------------ -- 2011 - Romania -- ------------------------------------ -- You can modify this file but -- -- don't change the credits. -- ------------------------------------ ------------------------------------ -- VEHICLECONTROL v1.0 for MTA -- ------------------------------------ function openDoor(door, position) local vehicle = getPedOccupiedVehicle(source) if getPedOccupiedVehicleSeat(source) == 0 then if door == 0 then if position==0 then setVehicleDoorOpenRatio(vehicle, 0, 0, 0.5) end if position==100 then setVehicleDoorOpenRatio(vehicle, 0, 1, 0.5) end if position>0 and position<100 then setVehicleDoorOpenRatio(vehicle, 0, position/100, 0.5) end end if door == 1 then if position==0 then setVehicleDoorOpenRatio(vehicle, 1, 0, 0.5) end if position==100 then setVehicleDoorOpenRatio(vehicle, 1, 1, 0.5) end if position>0 and position<100 then setVehicleDoorOpenRatio(vehicle, 1, position/100, 0.5) end end if door == 2 then if position==0 then setVehicleDoorOpenRatio(vehicle, 2, 0, 0.5) end if position==100 then setVehicleDoorOpenRatio(vehicle, 2, 1, 0.5) end if position>0 and position<100 then setVehicleDoorOpenRatio(vehicle, 2, position/100, 0.5) end end if door == 3 then if position==0 then setVehicleDoorOpenRatio(vehicle, 3, 0, 0.5) end if position==100 then setVehicleDoorOpenRatio(vehicle, 3, 1, 0.5) end if position>0 and position<100 then setVehicleDoorOpenRatio(vehicle, 3, position/100, 0.5) end end if door == 4 then if position==0 then setVehicleDoorOpenRatio(vehicle, 4, 0, 0.5) end if position==100 then setVehicleDoorOpenRatio(vehicle, 4, 1, 0.5) end if position>0 and position<100 then setVehicleDoorOpenRatio(vehicle, 4, position/100, 0.5) end end if door == 5 then if position==0 then setVehicleDoorOpenRatio(vehicle, 5, 0, 0.5) end if position==100 then setVehicleDoorOpenRatio(vehicle, 5, 1, 0.5) end if position>0 and position<100 then setVehicleDoorOpenRatio(vehicle, 5, position/100, 0.5) end end end end addEvent("moveThis:~", true) addEventHandler("moveThis:~", getRootElement(), openDoor) function showCreditsToQuantumZ() outputChatBox ( "Write #FFFFFF/cveh #FF0000to use #FFFFFFQuantumZ's Vehicle Control#FF0000 resource!", source, 255, 0, 0, true ) end addEventHandler("onPlayerJoin", getRootElement(), showCreditsToQuantumZ) Lo que hace es abrir las puertas del auto por medio de un scroll, pero le asigna un tipo a cada scroll (1, 2, 3, 4) para saber que es la puerta que tiene que mover; mi pregunta es, si puedo remplazar los elementData por variables, y si es así, me podrían explicar cómo? Gracias.
  11. Ya pude hacer que lo vean todos, gracias a los dos por darme una idea.
  12. @Gaberiel Me crea el arma normal, pero los demás no la pueden ver aún @Tomas Me da error en esta linea: triggerClientEvent(root, "__CreateWeapon", wep, x, y, z, vehicle, creator)
  13. Sigo sin entender... lo que tengo es esto: function equip_armas() if (source == Equipar_armamento) then vehicleh = getPedOccupiedVehicle(localPlayer) if vehicleh then local x,y,z = getElementPosition(vehicleh) local mdel = getElementModel(vehicleh) if (guiComboBoxGetSelected(comboArmas) == 0) then weapons[1] = createWeapon("m4", x,y ,z) weapons[2] = createWeapon("m4", x,y ,z) if vehs[mdel] then attachElements(weapons[1], vehicleh, 0-0.4, 0+0.9, 0+0.5,0,0,90) attachElements(weapons[2], vehicleh, 0+0.4, 0+0.9, 0+0.5,0,0,90) else attachElements(weapons[1], vehicleh, 0-0.4, 0+0.9, 0+0.2,0,0,90) attachElements(weapons[2], vehicleh, 0+0.4, 0+0.9, 0+0.2,0,0,90) end setWeaponClipAmmo(weapons[1], 99999) setWeaponClipAmmo(weapons[2], 99999) guiSetEnabled(Equipar_armamento, false) guiSetEnabled(destruir_objetos, true) end end elseif (source == destruir_objetos) then guiSetEnabled(Equipar_armamento, true) guiSetEnabled(destruir_objetos, false) for i,v in ipairs(weapons) do if isElement(v) == true then destroyElement(v) end end end end addEventHandler("onClientGUIClick", root, equip_armas) ¿Qué puedo hacer ahora para que todos vean las armas?
  14. No pasa nada, no se abre la gui: function opens() local theVehicle = getPedOccupiedVehicle ( localPlayer ) if theVehicle then if not guiGetVisible( v_wind ) then guiSetVisible( v_wind,true) showCursor(true) else guiSetVisible( v_wind,false) showCursor(false) end end end bindKey("m", "down", opens) local command = "vs" addEvent("updatecmd_c", true) addEventHandler("updatecmd_c", root, function (cmd) removeCommandHandler(command, opens) addCommandHandler(cmd, opens) command = cmd end ) addEventHandler("onClientGUIClick", root , function () if (source == Aplicar_configs) then triggerServerEvent("updatecmd_s", root, guiGetText(editeBox)) end end, false)
  15. Pensé en eso pero no entiendo como hacerlo, sabes alguna manera?
  16. Pues estaba haciendo un panel para poder crear armas por medio de botones, las armas se crean pero, solo las puedo ver yo, los demás jugadores no sienten daño ni las pueden ver. Quería saber que puedo hacer o usar para que las armas lo puedan ver los demás y no solo el jugador local. Si lo estuviera haciendo por comandos sería más fácil... Pero con botones no se me ocurre nada. Una explicación a lo que quiero es: Tengo un panel donde puedo ponerle armas al cuerpo del jugador con attachElements, por ahí todo bien, el problema es que los demás jugadores no sienten el daño de esa arma creada y no la pueden ver; quiero que la puedan ver y que les baje vida si les dispara esa arma. EJ: Tengo un botón que dice "M4", le doy click y me pone una M4 en el cuerpo, pero solo la puedo ver yo; y quiero que los demás puedan ver el arma también.
  17. @xRGamingx cambia el evento onClientPedWasted por addEventHandler("onClientPlayerWasted",root,function) y en vez de if getElementData(source, "zombie") and attacker == localPlayer then solo le dejas el attacker == localPlayer con el evento onClientPlayerWasted
  18. No me deja editar pero ya lo he podido arreglar... Pueden cerrar.
  19. Tengo un problema con esto y es que me dice que la columna no existe, pero me marca es el nombre de mi cuenta y no el de la columna y no sé porque, el error que da es éste: El 'Dk' es el nombre de la cuenta, no sé porque marca eso pero bueno, aquí dejo lo que tengo para ver si me pueden ayudar: Lo que se supone que hace es crear un top de los jugadores con más tiempo online (o eso es lo que quiero hacer), no sé porque da error ahí si ya intente haciendo otros 'top' pero con nivel y funciona, así lo tengo con los niveles: Esas son las partes que creo que tienen el error, porque lo demás son solo eventos para cargar el top a la gridlist; como dije con el de niveles intente y me funciona bien, marca a los jugadores de mayor a menor, pero intente haciéndolo con tiempo de juego y da ese error. Por si necesitan todo el código aquí lo dejo... Server:
  20. Tienes que especificar que se le abra solo al jugador local : local marker_open = createMarker(posx,posy,posz,"cylinder",1.5,255,255,255) function hit(player) if (player == localPlayer) then -- Especificamos que se le abrira el panel solo al jugador local --Aqui colocas la GUI end end addEventHandler("onClientMarkerHit", marker_open, hit) El primer argumento de onMarkerHit y onClientMarkerHit es el jugador que lo pisa, puedes poner cualquier cosa en vez de player y sería lo mismo(if pp == localPlayer then).
  21. Creo que quiere que las banderas de los países aparezcan sin necesidad de abrir los puertos, yo nunca probé así que no sé xd.
  22. Cómo podría hacerlo con eso?
  23. Si quieres que las púas pinchen las ruedas de los autos creo que una forma de hacerlo seria crear una colshape con la posición del objeto y cuando un auto entre, usas esto: set setVehicleWheelState No sé si esa era la función pero sé que había una que cambiaba el estado de las ruedas, buscala
  24. Hola, alguien sabe como puedo hacer que un comando funcione según tenga escrito algo en el editbox? es decir, si tengo en el editbox "hola", ese será el comando para hacer tal cosa, pero si escribo "chao" el comando que era "hola" ya no servirá para hacer tal cosa sino que ahora tengo que usar el comando "chao" porque es el que tengo colocado en el editbox. Yo intente usando un guiGetText para lo del comando, pero me sale siempre: Expected string at argument 1, got nil
×
×
  • Create New...