Jump to content

AlvarO

Members
  • Posts

    119
  • Joined

  • Last visited

Posts posted by AlvarO

  1. El for está mal, deberias hacer AreaAguerra no devolver el tables[1]... ya que esto ve si cada objeto de la tabla es otra tabla y accede al índice que le indiques, pero al no ser estos elementos una tabla es como si quieres entrar en un coche por la puerta del conductor, pero no tienes coche. El loop lo que hace es que vas iterando i de forma que por cada elemento de la tabla AreaGuerra, vas aumentando i en 1. Yo simplemente, no haría el loop, y asignaria a cada variable el valor que le corresponde al solo tener un elemento en la tabla. También no has cerrado el loop, te falta un end. Espero haberte ayudado.

     

  2. En la misma función estás moviendo el objeto 2 veces y provoca que se quede como "raro", hay varias opciones, o hace una función para abrir con su comando, y otra para cerrar con su comando. También puedes hacer esto:
     

    OpenClose = createObject ( 968, 1544.7001953125, -1630.7998046875, 13.10000038147, 0, -90, -90 )
    
    function CloseOpen(player, cmd, movimiento)
    	if movimiento == "abrir" then
       		moveObject (OpenClose, 968, 1544.7001953125, -1630.7998046875, 13.10000038147, 0, -90, -90 )
    	elseif movimiento == "cerrar" then
       		moveObject (OpenClose, 968, 1544.6999511719, -1630.8000488281, 13.10000038147, 0, 90, 0 )
       end
    addCommandHandler("puerta", CloseOpen)

     

    De forma que si escribes: /puerta abrir -> se abre, y si escribes /puerta cerrar -> se cierra.

    Espero haberte ayudado, si hay cualquier error cuéntanoslo.

  3. Hey guys, I'm having a problem since 2 weeks ago. The problem is, I'm playing MTA as always and there's no problem, it comes when i press ALT+TAB for changing of window for I don't know, check twitter, or changing music on spotify for example and I decide to return MTA. When I do it, MTA doesn't load, I can hear the sounds and everything but the video is not returning, when this happens, I go to task manager and close MTA. Is there any solution you can give me? Thanks.

  4. Hello guys, I'm trying to draw rounded rectangle on my script, but the question is, is there a way to modify the curvature of the corners? I mean, there's default curvature, but I would change it. Long time ago, there was a function which has an argument to modify this.

    This is the code I'm using:
     

    function roundedRectangle(x, y, w, h, borderColor, bgColor, postGUI)
    	if (x and y and w and h) then
    		if (not borderColor) then
    			borderColor = tocolor(0, 0, 0, 200);
    		end
    		if (not bgColor) then
    			bgColor = borderColor;
    		end
    		dxDrawRectangle(x, y, w, h, bgColor, postGUI);
    		dxDrawRectangle(x + 2, y - 1, w - 4, 1, borderColor, postGUI);
    		dxDrawRectangle(x + 2, y + h, w - 4, 1, borderColor, postGUI);
    		dxDrawRectangle(x - 1, y + 2, 1, h - 4, borderColor, postGUI);
    		dxDrawRectangle(x + w, y + 2, 1, h - 4, borderColor, postGUI);
    	end
    end

     

  5. I'm trying to add onClientRender event to a function for 5 seconds. When these 5 seconds has gone I want to remove it.

    This is what i made

    timer_1 = setTimer(showRadioSongName, 5000, 1)
    timer_11 =  setTimer ( function() addEventHandler("onClientRender", getRootElement(), showRadioSongName) end, 5000, 1 )
    if not isTimer(timer_1) and isTimer( timer_11 ) then
    	killTimer( timer_1 )
        killTimer( timer_11 )
        removeEventHandler("onClientRender", getRootElement(), showRadioSongName)
    end

     

  6. I used all the info that wiki shows, and I don't have anything:

     

    local dot = dxCreateTexture(1, 1)
    function dxDrawRectangle3D(x,y,z,w,h,c,r,...)
            local lx, ly, lz = x+w, y+h, (z+tonumber(r or 0)) or z
    	return dxDrawMaterialLine3D(x,y,z, lx, ly, lz, dot, h, c or tocolor(255,255,255,255), ...)
    end
    
    addEventHandler("onClientRender", root,
        function()
            dxDrawRectangle3D(0,0, 30, 100, 100, tocolor(255,255,255,255))
        end
    )

     

  7. I modified what I wrote for you, and found that the problem is the animation, tried other one and works fine, here you have the code:

     

    function test(player, cmd, target)
    	local targetPlayer = getPlayerFromPartialName(target)
    	if targetPlayer then
    		setPedAnimation(targetPlayer, "ped", "WOMAN_walknorm")
        else
        	outputChatBox("Sorry, we don't know a person called " .. target, player, 255, 0, 0)
    	end
    end
    addCommandHandler("xy", test)
    
    function getPlayerFromPartialName(name)
        local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
        if name then
            for _, player in ipairs(getElementsByType("player")) do
                local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
                if name_:find(name, 1, true) then
                    return player
                end
            end
        end
    end

     

  8. Try this:
     

    function test(thePlayer)
    	local targetPlayer = getPlayerFromName (thePlayer)
    	if targetPlayer then
    		setPedAnimation(targetPlayer, "ped", "bom_plan", -1, false, false, false, false)
        else
        	outputChatBox("Error, we can't find a player with that name!")
    	end
    end
    addCommandHandler("xy", test)

    You should write the command as this: /xy <playerName>

  9. I would use this:

    local marker = createMarker (0, 0, 0, "cylinder", 1.5, 255, 255, 0, 170 )
    
    function playerJoinMarker()
    	addEventHandler("onClientRender", getRootElement(), drawMarkerPanel)
    end
    addEventHandler( "onMarkerHit", marker, playerJoinMarker)
    
    function drawMarkerPanel()
    	--YOU CAN DRAW HERE YOUR PANEL, ALSO, ADD A CLOSE BUTTON WHICH REMOVE THE onClientRender EVENT
    end

     

  10. I usually use that trick: (In my case, my resolution is 1920 x 1080, so if you have any other resolution just change the values instead of yours.) 

    local sX, sY = guiGetScreenSize()
    
    function drawRectangle()
    
    dxDrawRectangle((1770/1920)*sX, (25/1080)*sY, (100/1920)*sX, (50/1080)*sY, tocolor(0, 0, 0, 200), false)
    
    end
    
    addEventHandler("onClientRender", root, drawRectangle)


    But you said if there was a method that made it easier, only comes to my mind to do something like this:

    local sx, sy = guiGetScreenSize()
    local px, py = 1920, 1080
    local x, y =  (sx/px), (sy/py)
    
    function drawRectangle()
    
    dxDrawRectangle(x*285, y*143, x*800, y*350, tocolor(0, 0, 0, 220), true)
    
    end
    
    addEventHandler("onClientRender", root, drawRectangle)

    In px and py you just have to put your resolution and just draw any element as is shown up. Hope I helped you!

    • Thanks 1
×
×
  • Create New...