Jump to content

Bc#

Members
  • Posts

    516
  • Joined

  • Last visited

Everything posted by Bc#

  1. Bc#

    URGENTE

    addCommandHandler ( "elmasrico", function ( player, commandName ) outputChatBox(getPlayerName(getRikolin()).." es el mas rikolin del server") end ) function getRikolin () for _, player in ipairs ( getElementsByType ( "player" ) ) do if not rikolin then local rikolin = player end if getPlayerMoney ( player ) > getPlayerMoney ( rikolin ) then rikolin = player end end return rikolin end
  2. Pero ese script es de spawn de autos ._.
  3. Claro que ya que es un debug, como dijiste que el problema era que solo funcionaba al ejecutarlo 2 veces. Pero al parecer esa no era la solucion.
  4. No ya que isElement retorna true cuando la variable es un elemento y false cuando no.
  5. Intenta esto, es para depurar tu codigo: local sonido = {} function ejecutarSonido() sonido[vehicle] = playSound3D( ... ) if isElement(sonido[vehicle]) then setTimer(function() ejecutarSonido(); outputDebugString("Error: reintentando ejecutar sonido en 1 segundo") end,1000,1); end end addEventHandler("onClientResourceStart",root,ejecutarSonido) Si no se ejecuta playSound3D, intentará cada 1 segundo.
  6. Bc#

    Blloquear chatbox

    showChat(false)
  7. De verdad sabes lo principal? ._.
  8. Aqui alguien lo estaba haciendo, para que te guies: https://forum.multitheftauto.com/viewtopic.php?f=146&t=97853
  9. Bc#

    Musica

    Así muteas todo. for k,v in ipairs(getElementsByType ("sound")) do setSoundPaused(v, true) end
  10. buscador de windows, busca archivos que contengan esa palabra.
  11. Puedes mandar trigger al server para asignarle data al vehiculo. no veo la necesidadde hacerlo en client.
  12. Prueba así Client function teamSet ( ) triggerServerEvent("WarpVehiculo", resourceRoot) end addCommandHandler("vehicle", teamSet) Server function CambiarWarpVe() rekka = createVehicle (452, -928.1640625, 2589.109375, 40.049991607666, 0, 0, 90) warpPedIntoVehicle (client, rekka) end addEvent( "WarpVehiculo", true) addEventHandler( "WarpVehiculo", resourceRoot, CambiarWarpVe)
  13. Te escribí ahí en la función que no te hará el warp por que intentas meter un player en el auto y no un ped. EDIT: Creo que me equivoque, igual se puede usar un player como ped
  14. Client function teamSet ( ) rekka = createVehicle (452, -928.1640625, 2589.109375, 40.049991607666, 0, 0, 90) triggerServerEvent("WarpVehiculo", resourceRoot,rekka) end addCommandHandler("vehicle", teamSet) Server function CambiarWarpVe(veh) --Esto no te servirá ya que no estas enviando un ped en la variable 1, sino un player. warpPedIntoVehicle (client, veh) end addEvent( "WarpVehiculo", true) addEventHandler( "WarpVehiculo", resourceRoot, CambiarWarpVe)
  15. En un if un 0 es false (nose si en lua tambien sea asi), por lo que no tienes necesidad de hacer la comparacion.
  16. Yo dije que el reto esta en encontrar un metodo mas rapido Lo mas rapido es no ordenar sino insertar los datos de manera ordenada. Para cuando realices una busqueda o consulta por busqueda binaria, encontrar el dato mas rapido.
  17. Compáralo con el sort de esta pagina: https://www.lua.org/pil/19.3.html Es un método de lua así que úsalo con confianza
  18. Estoy creando una dxLib OPP, para un mejor manejo de los datos ya que las que he visto no me agradan. Quiero el apoyo de la comunidad para desarrollarla, estoy partiendo con los botones. Acepto criticas y sujerencias. dxCreateButton: Puedes crear un boton de color solido o integrarle una imagen propia. dxCreateButton.isInside(): retorna un bool que permite saber si el cursor esta dentro del boton dxCreateButton.isClicked(): retorna un bool que permite saber si el cursor fue clickeado dxCreateButton.isVisible(): retorna un bool que permite saber si el boton esta activo dxCreateButton.setVisible(bool activo): Agrega un valor para que el boton sea activo o inactivo Code: local ssX,ssY = guiGetScreenSize(); local temp = false function dxDrawButton(text,posX,posY,sizeX,sizeY,color,font,textScale,image) if not (text and posX and posY and sizeX and sizeY and color and font and textScale) then return false end local self = {text=text,posX=posX,posY=posY,sizeX=sizeX,sizeY=sizeY,color=color,font=font,textScale=textScale,image=image,visible=true} if not image then dxDrawRectangle ( self.posX,self.posY,self.sizeX,self.sizeY,self.color) dxDrawEmptyRectangle(self.posX,self.posY,self.sizeX,self.sizeY,tocolor(0,0,0,30),2,false) else dxDrawImage (self.posX,self.posY,self.sizeX,self.sizeY, self.image, 0, 0, 0, self.color ) end local fontWidth = dxGetTextWidth ( self.text, self.textScale, self.font ) local fontHeight = dxGetFontHeight ( self.textScale, self.font ) local x = (self.posX+(self.sizeX/2)) - ((fontWidth)/2) local y = (self.posY+(self.sizeY/2)) - ((fontHeight)/2) dxDrawText ( text, x+1, y+1,self.sizeX,self.sizeY, tocolor(0,0,0,100), self.textScale, self.font) dxDrawText ( text, x, y,self.sizeX,self.sizeY, tocolor(255,255,255,255), self.textScale, self.font) local isCursorInside = function() if isCI(self.posX,self.posY,self.sizeX,self.sizeY) then return true end return false end local isClicked = function () if isCI(self.posX,self.posY,self.sizeX,self.sizeY) and temp and visible then temp = false return true end return false end local isVisible = function () return self.visible end local setVisible = function (v) self.visible = v end return { isCursorInside = isCursorInside, isClicked = isClicked, isVisible = isVisible, setVisible = setVisible } end function isCI(pX,pY,sX,sY) if isCursorShowing() then local cX,cY,_,_,_ = getCursorPosition() if cX and cY then if cX >= pX/ssX and cX <= (pX+sX)/ssX and cY >= pY/ssY and cY <= (pY+sY)/ssY then return true end end end temp=false return false end addEventHandler("onClientClick", getRootElement(), function(button, state) if (button == "left" and state == "down") then temp = true end end) function dxDrawEmptyRectangle(startX, startY, endX, endY, color, width, postGUI) dxDrawLine ( startX, startY, startX+endX, startY, color, width, postGUI ) dxDrawLine ( startX, startY, startX, startY+endY, color, width, postGUI ) dxDrawLine ( startX, startY+endY, startX+endX, startY+endY, color, width, postGUI ) dxDrawLine ( startX+endX, startY, startX+endX, startY+endY, color, width, postGUI ) end Ejemplo: local color = tocolor(255,255,255,100) local text = "No Clickeado" addEventHandler( "onClientRender", root, function() local boton = dxDrawButton(text,350, 350, 150, 30,color,"default-bold",1) if boton.isCursorInside() then color = tocolor(255,255,255,200) else color = tocolor(255,255,255,100) end if boton.isClicked() then if text == "Clieckeado" then text = "No Clickeado" else text = "Clieckeado" end end end )
  19. No se si sabes que ordenar datos sirve para una búsqueda mas eficiente, existe un método llamado búsqueda binaria que es uno de los mas eficientes ya que tiene complejidad logarítmica. Es decir encuentra un dato en log2(n) en cambio un metodo de busqueda lineal tiene complejidad n. Lo que claramente es una gran diferencia. Te dejo un link de como funciona la inserción de datos en un árbol binario:
  20. Es recurrente el tema de ordenamiento en programación, pero nose si sabes que en lua existe el método sort para ordenar tablas. Aquí el link https://www.lua.org/pil/19.3.html. Ahora cual es el sentido de hacer funciones propias para ordenar? Se supone que estas funciones te sirven para ordenar pero tu trabajo es hacer una con la que puedas ordenar mas optima-mente tu data. Por lo que se sabe la forma mas optima de ordenar es logaritmicamente insertando data en forma de arbol (si mal no recuerdo). Ahora si tu inserción de datos es lineal es muy poco optima. Compara tu función con sort en tiempos de ejecución, ve cual es mas optima y nos comentas
  21. if (isElement(player)) and (getElementData (ped, "slothbot") then
  22. Linea 38, reemplaza elseif currentWeaponID == weapID1 and elementWeaponbBack[source] then Asi no entrara a la linea si es que no hay una arma
  23. Claro, pero dije que era para hacer el debug, al menos yo uso eso para encontrar errores en códigos muy extensos.
×
×
  • Create New...