Jump to content

Sticmy

Members
  • Posts

    254
  • Joined

  • Last visited

Posts posted by Sticmy

  1. 12 minutes ago, yani said:

    then you wouldn't have to link the element position but replace it with simple image size, I don't really have an idea but I am trying to help

    I also have no idea how I could achieve it, I just have to wait for another one to help me, also thanks bro

    • Like 1
  2. 1 minute ago, yani said:

    try lowering if dist >= 0 and dist <= 900 to a value you like

    There it is already look at the code, the problem is not that, what I want to make the image is static so it moves away or not simply static and does not enlarge or anything like that when moving away from the image obviously will take the limit of the distance to be seen.

  3. Guys, I need help when it comes to putting an image on the world as I did, I don't like it

    In this image as well as it is placed in that position when you move away you see it the same, without enlarging it or anything like that it is totally static
     

    1omJO1c.png

    Here is another image at the time when I walk away it gets bigger I did it in 2 ways but in those 2 ways I can't find a way to do it as I want it to be totally static even when I walk away at 500 meters
     

    fzfFQY4.png


    Code:
     

    local TextureFile = nil
    local ImagesTable = {
    {1834.3446044922, -2398.0639648438, 13.5546875, "x.png"},
    }
    
    addEventHandler("onClientResourceStart", resourceRoot, function()
    	for _, texture in ipairs(ImagesTable) do
    		TextureFile = DxTexture(texture[4])
    	end
    end)
    addEventHandler("onClientRender", getRootElement(), function()
    	local pos = Vector3(localPlayer.position)
    	for _, v in ipairs(ImagesTable) do
    		local dist = math.sqrt( ( pos.x - v[1] ) ^ 2 + ( pos.y - v[2] ) ^ 2 + ( pos.z - v[3] ) ^ 2 )
    		if dist >= 0 and dist <= 900 then
    			if isLineOfSightClear( pos.x, pos.y, pos.z, v[1], v[2], v[3], false, false, false, false, false, false, false,localPlayer ) then
    				local x, y = getScreenFromWorldPosition( v[1], v[2], v[3])
    				if x and y then
    					print(x, y)
    					dxDrawImage(x-80, y-120, 120, 120, TextureFile, 0, 0, 0, tocolor(255, 255, 255, 255))
    				end
    			end
    		end
    	end
    end)
    -- destroyTexture
    addEventHandler("onClientResourceStop", resourceRoot, function()
    	if isElement(TextureFile) then
    		TextureFile:destroy()
    		TextureFile = nil;
    	end
    end)
    
    --Another way I tried but couldn't
    --[[
    addEventHandler("onClientRender", getRootElement(), function()
    	local pos = Vector3(localPlayer.position)
    	local x, y, z = getCameraTarget()
    	for i, v in ipairs(ImagesTable) do
    		local distance = getDistanceBetweenPoints3D(pos.x, pos.y, pos.z, v[1], v[2], v[3])
    		if distance >= 0 and distance <= 200 then
    			dxDrawMaterialLine3D(v[1], v[2], v[3] + 1, v[1], v[2], v[3], TextureFile, 1, tocolor( 255, 255, 255, 255 ))
    		end
    	end
    end)
    ]]

     

  4. Hola, estoy buscando gente que quiera apoyar un proyecto que estoy armando trata de un zombie como dice el titulo, yo soy el scripter.
    Se busca mas que todo gente que sepa mapear de 10/10, daré mas información de lo que tendra el proyecto que estoy armando dejare mi discord y mi facebook por si quieren comunicarse conmigo y ayudarme, si son hosters también acepto como sea lo importante es que quieran unirse por voluntad, gracias.

    Discord: Master#3817
    Facebook: https://www.facebook.com/steven.ac.5015

  5. ¡Hola!

    Estoy vendiendo este sistema de vehículos para los roleplay, tiene un hermoso panel donde podrás: cerrar/abrir, estacionar, apagar/prender luces.

    Me falto rellenar lo demás pero ahora ultimo he estado ocupado con los estudios, pero lo terminare si o si..

    El sistema está hecho en MySQL al cual podría adaptarlo a su servidor, está hecho por cuentas pero si tu servidor esta basado en seriales, ¡no hay problema! aún así puedo adaptarlo al sistema de registros que llevan, puedo aclarar que el sistema esta en 90% pero si alguien desea comprarlo lo dejare al 100% de lo que debería de estar, también añadi unos cuantos exports por si desean obtener los vehículos de cada jugador.

    Costo: $20 - Descompilado

    Costo: $15 - Compilado

    PD: Me falto hacer la parte de comprar el vehículo, eso también lo acabare así que para mas información y necesitan una prueba de que funciona bien, podemos hablar por mi facebook yo los invitare a mi local.

     

    FB: https://www.facebook.com/steven.ac.5015

    Imagen 1:

    EnhK113.png

    Imagen 2:

    Czlv8pV.png

    • Like 1
  6. function render ()
    	local level = getElementData (localPlayer, "LEVEL") or 0
    	dxDrawText("level ".. level, 110 - 1, 717 - 1, 381 - 1, 754 - 1, tocolor(0, 0, 0, 255), 1.30, "bankgothic", "left", "top", false, false, false, false, false)
    	dxDrawText("level ".. level, 110 + 1, 717 - 1, 381 + 1, 754 - 1, tocolor(0, 0, 0, 255), 1.30, "bankgothic", "left", "top", false, false, false, false, false)
    	dxDrawText("level ".. level, 110 - 1, 717 + 1, 381 - 1, 754 + 1, tocolor(0, 0, 0, 255), 1.30, "bankgothic", "left", "top", false, false, false, false, false)
    	dxDrawText("level ".. level, 110 + 1, 717 + 1, 381 + 1, 754 + 1, tocolor(0, 0, 0, 255), 1.30, "bankgothic", "left", "top", false, false, false, false, false)
    	dxDrawText("level ".. level, 110, 717, 381, 754, tocolor(255, 255, 255, 255), 1.30, "bankgothic", "left", "top", false, false, false, false, false)
    end
    addEventHandler("onClientRender", root, render)

     

    • Haha 1
  7.  

    ¡Chicos les invito pasar un rato en mi servidor, apenas lo abrí esta en beta, obviamente iré cambiando cosas, mejorando cosas, actualizando!
     
    IP: mtasa://74.91.112.207:22003
     
    ¿Qué contiene?
    1.- Sistema de vehículos.
    2.- Sistema de Tiendas (Armas, Skins, Comida)
    3.- Sistema de Pildoras (Para aumento de vida)
    4.- Sistema de Bosses.
    5.- Sistema de Clanes.
    6.- PvP, se hará eventos entre clanes de las mejores clanes.
    7.- Deathmatch (Podrás desactivar y activarlo).
    9.- Sistema de Niveles y Experiencia.
    10.- Zombies (Hay 3 zombies que podría pasarte cosas malas al matarlo, 1.- si te toca te manda avolar, 2.- podría explotarte en la cara y la pantalla toda de sangre, 3.- al matarlo te puede tirar humo, pondré más zombies que pase algo obviamente te dará mas experiencia)
    11.- Entrenamiento para las armas (Esto te servirá para subir de habilidades de cada arma, también subes matando zombies)
    12.- Fabricación de Pildoras.
     
    Por ahora hay estos sistemas me faltan poner más al cual añadiré:
    Sistema de Misiones (Cooperativo/Sin cooperativo)
    Y otros más que al cual no podré decirlo (Estoy pensando k poner XDDDDDD)
     
    Unas cuantas imágenes, si tienen criticas díganlos ;), si quieres aportar eh ayudar en mapeos contácteme acepto ayudas :)
     
    IMAGENES
    wEjHdng.jpg
     
    LYm38Q6.jpg
     
    1zkHlPE.jpg
     
    9nrldTd.jpg
     
    LFc5p6qg.jpg
     
    MPBkH4A.jpg
     
    tLddKLl.jpg
     
    bAJfMU4.jpg
     
    obO4m52.jpg
     
     
  8. 5 hours ago, aka Blue said:

    Resumen: página de facebook repleta de niños ratas que se creen "hackers" y roban recursos a servidores para venderlos o postearlos.

    Podrá ser lo más activa que quieras la página pero estas cosas no están bien.

    En ese grupo es obvio que hay ñiños ratas, pero de que se creen hackers hasta ahora no ha ocurrido eso, roban resources siempre ocurren en muchos servidores hasta en la misma forum.

  9. 6 hours ago, aka Blue said:

    Utiliza math.min y math.max. Un ejemplo de cómo utilizarlo es:

    
    math.min( exp + 50, 102 ) -- Subira 50 de exp hasta 102
    
    math.max( exp - 100, 0 ) -- Bajara 100 hasta llegar a 0
    

     

    No entiendo sobre esa función como se utiliza, de hecho como lo adapto al elementData?

    Quiero hacer un sistema de niveles + experiencia.

  10. Hola, quisiera saber como puedo hacer que cuando un jugador recibe un elementData osea sumándole 2 como si fuera una experiencia al llegar al cierta experiencia suba de nivel (Eso ya esta hecho).

    Las tablas esta perfectamente, todo esta bien lo que pasa es que cuando llega a tal experiencia cuando le sumo +2 no sube de nivel osea no le da la otra data que debería de dar.

    Ejemplo: Juanito tiene 499 de Experiencia, para subir de nivel tiene que llegar a los 500 que le daría la otra data que hice, pero como le ando sumando +2 en total tendría 501 pero no le suma el nivel y si uso el '>=' termina bugeando todo termina sumándose muchas veces al recibir una Experiencia, no se me ocurre como hacer eso, llego a los 501 y en esa experiencia ya debería de subir al Nivel 1 pero no, solamente funciona si le sumo 1 y no 2.

    ¿Alguna manera de hacer que funcione perfectamente por más que le sume 5, 6, 7, etc.?

  11. Yo lo haría así es más fácil xD

     

    exports.scoreboard:addScoreboardColumn('Online')
    
    local t = { }
     
    function checkValues( source,arg1,arg2)
        if (arg2 >= 60) then
            t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1
            t[ source ][ 'sec' ] = 0
        end
        if (arg1 >= 60) then
            t[ source ][ 'min' ] = 0
            t[ source ][ 'hour' ] = tonumber( t[ source ][ 'hour' ] or 0 ) + 1
        end
        return arg1, arg2
    end
         
    setTimer(
        function( )
            for _, v in pairs( getElementsByType( "player" ) ) do
                if (not t[ v ]) then
                    t[ v ] = {
                                ["hour"] = 0,
                                 ["min"] = 0,
                                 ["sec"] = 0
                                }
                end
     
                t[ v ][ 'sec' ] = tonumber( t[ v ][ 'sec' ] or 0 ) + 1
                local min,sec = checkValues (
                        v,
                        t[ v ][ 'min' ] or 0,
                        t[ v ][ 'sec' ] or 0
    						)  
    	local hour = tonumber( t[ v ][ 'hour' ] or 0 )
    
                setElementData(
                    v,
                    "Online",
                    tostring( hour )..':'..tostring( min )..':'..tostring( sec )
                )
            end
        end,
        1000, 0
    )
       
    function onPlayerQuit ( )
        local playeraccount = getPlayerAccount ( source )
        if ( playeraccount ) and not isGuestAccount ( playeraccount ) then
            local sValue = getElementData( source,'Online' )
    	local hour = tonumber( t[ source ][ 'hour' ] or 0 )
    	local min = tonumber( t[ source ][ 'min' ] or 0 )
    	local sec = tonumber( t[ source ][ 'sec' ] or 0 )
            setAccountData ( playeraccount, "Online-hour", tostring(hour) )
            setAccountData ( playeraccount, "Online-min", tostring(min) )
            setAccountData ( playeraccount, "Online-sec", tostring(sec) )
            setAccountData ( playeraccount, "Online", tostring(sValue) )
    
        end
        t[ source ] = nil
    end
    addEvent ("stopSave", true)
    addEventHandler ("stopSave", getRootElement(), onQuit)
     
    function onPlayerLogin (_, playeraccount )
        if ( playeraccount ) then
            local time = getAccountData ( playeraccount, "Online" )
    	local hou = getAccountData ( playeraccount, "Online-hour")
    	local min = getAccountData ( playeraccount, "Online-min")
    	local sec = getAccountData ( playeraccount, "Online-sec")
            if ( time ) then
                setElementData ( source, "Online", time )
    
                                 t[ source ]["hour"] = tonumber(hou)
                                 t[ source ]["min"] = tonumber(min)
                                 t[ source ]["sec"] = tonumber(sec)
                    else
                setElementData ( source, "Online",0 )
                setAccountData ( playeraccount, "Online",0 )
            end
        end
    end
    addEventHandler ( "onPlayerQuit", root, onPlayerQuit )
    addEventHandler ( "onPlayerLogin", root, onPlayerLogin )
    
    
    function onStop ()
        for k, v in ipairs (getElementsByType("player")) do
            if not (isGuestAccount (getPlayerAccount (v))) then
                triggerEvent ("stopSave", v)
            end
        end
    end
    addEventHandler ("onResourceStop", resourceRoot, onStop)

     

  12. 5 hours ago, aka Blue said:

    Te estás rallando demasiado para algo tan sencillo. Haz que cuando entre al servidor se inserte en la tabla y que cuando el recurso se reinicie, coja a todos los jugadores y los meta nuevamente en la tabla... También, que cuando salgan, los retire de la tabla.

    Lo que quiero hacer yo es que aparezcan jugadores cercanos a mi posición 

  13. GTA V experience

    Hi, I come to sell this script that I did, it is basic but useful means for your server, it is useful for any type of gamemode.

    Contact me to negotiate.

    Payment Methods

    1.- Paypal (Cost: $ 7)

    Image

    tY6J0J5.png

    • Like 2
  14. 1 hour ago, Simple01 said:
    
    local i = i - 1
                        if i < 5 then
    

    ¿Para que requieres el empleo de la variable 'i'? ( Necesito esta respuesta para ofrecerte una adaptación correcta y funcional del código ).

    Intente hacer que no lo vuelva a meter pero no funcionó xD

  15. No me funciono :(

    quisiera que no se inserte mas el jugador que no se vuelva a repetir si ya me metió que no salga otra vez le dejo la función he intentado con el código de Dv pero aún asi no funciona

    local screenW, screenH = guiGetScreenSize()
    local jugadores = {}
    
    addEventHandler("onClientRender", root,
        function()
        	if not isMTAWindowActive ()	then
            	if not isPlayerMapVisible () then
                    for i, v in ipairs(getElementsByType("player")) do 
                    local x, y, z = getElementPosition(localPlayer)
                    local mx, my, mz = getElementPosition(v)
                        if getDistanceBetweenPoints3D(x, y, z, mx, my, mz + 0.5) < 10 then
                            outputDebugString(getPlayerName(v))
                            table.insert(jugadores, {getPlayerName(v), v})
                        end
                    end
                        -- jugadores
                    for i, v in ipairs(jugadores) do
                    local i = i - 1
                        if i < 5 then
                            dxDrawText(v[1], screenW * 0.4113, screenH * 0.3133+(i*70), screenW * 0.6607, screenH * 0.3562, tocolor(255, 0, 0, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
                        end
                    end
                end
        	end
    	end
    )

     

  16. 1 minute ago, Enargy, said:

    Por lo menos prueba el código que él hizo por ti lo cual si funciona sin probarlo....

    Ahí iré a probarlo

  17. 7 hours ago, #Dv^ said:

    Depende de que manera quieras insertar al jugador en una tabla. 

    
    local _table = {}
    
    addEventHandler("onPlayerJoin", root, -- al ingresar, se insertará en la tabla.
        function()
            _table[source] = true
        end
    )
    
    addEventHandler("onPlayerLogin", root,
        function()
            if _table[source] then -- si está en la tabla, devolverá la siguiente afirmación.
                return print("El jugador ya se encuentra en la tabla.")
            end
            _table[source] = true -- de lo contrario, si no está en la tabla se insertará.
        end
    )
    
    addEventHandler("onPlayerLogout", root, -- opcional.
        function()
            if _table[source] then
                _table[source] = nil
            end
        end
    )
    

    Pues sino, de esta manera.

    
    local _table = {}
    
    addEventHandler("onPlayerJoin", root, -- al ingresar, se insertará en la tabla.
        function()
            table.insert(_table, source)
        end
    )
    
    addEventHandler("onPlayerLogin", root,
        function()
            for _, v in pairs(_table) do
                if v == source then
                    print("El jugador ya está en la tabla.")
                end
            end
        end
    )
    
    

     

    Men y como hago para que no se repita muchas veces es que trato de hacer que aparezca jugadores cercanos ami y como que se repite muchas veces yse vuelven a insertar crees que me funcione tus dos formas de que no lo inserte men?

  18. Por ejemplo si yo ya ando en la tabla que no me inserte otra vez, porque ya estoy ahí adentro.

×
×
  • Create New...