Jump to content

[Ayuda] Lava.


Platin

Recommended Posts

Todos los días posteare aquí.

¿De qué va? Cambia el agua por lava, entras a la misma y tenes 5 segundos quemándote y luego de esos 5 segundos te mueres. Este resource tiene un reincio de cada 1 segundo, básicamente, una detención de si esta en "lava" o no. El problema, cada vez que te mueres y estas dentro de la lava (en casos, fuera), te mueres como 5 veces, o sea, mueres una vez, en el spawn, vuelves a morir, otra vez, otra vez y asi sucesivamente.

Dejo el server.lua

function lava(thePlayer) 
    for i,thePlayer in ipairs(getElementsByType("player")) do 
        if not isPedDead(thePlayer) and isElementInWater(thePlayer) then 
            setPedOnFire(thePlayer, true) 
            setTimer ( function() 
                killPed(thePlayer) 
            end, 5000, 1 ) 
        end 
    end 
end 
setTimer ( lava, 1000, 0)  

¡Por cierto! De todas formas no pude solucionar lo del GUI en mi otro post, no lo dejeís de lado :/

Desde ya, muchas gracias y lo siento por estar siempre posteando problemas que son de los más fáciles de seguro.

Link to comment
Aunque Niko, recuerda que tu spawn es en el agua (si mal no estoy) cuando entre a tu servidor siempre aparecia bajo el agua..

No no, mi spawn no es bajo el agua. Es cerca de agua, pero de todas formas el isElementInWater pasa cuando estas nadando. Además, lo probe sin mi spawn, con los spawns del freeroam y nada.

Quizás..
  
addEventHandler("onPlayerSpawn",root,function() 
setPedOnFire(source,false) 
end 
) 
  

No, eso solo cancela que me queme, cosa que no provoca mi muerte.

Link to comment
@Tomas creo que el se refiere que cuando mueres te mueres de vuelta y de vuelta por la lava. creo que para que no pase eso tendría que cuando muera colocar un spawn lejos de la lava haci no muere si es que te entendí creo que dices eso no ?

Lo que pasa es lo siguiente, cuando mueres por la lava, en la lava (o sea, yo me muero quemado dentro del agua), vuelves a morir minimo 5 veces, ya sea en un spawn lejos de la lava o en uno cerca, simplemente, mueres, muchas veces.

Y no tiene puto sentido.

Link to comment
@Tomas creo que el se refiere que cuando mueres te mueres de vuelta y de vuelta por la lava. creo que para que no pase eso tendría que cuando muera colocar un spawn lejos de la lava haci no muere si es que te entendí creo que dices eso no ?

Lo que pasa es lo siguiente, cuando mueres por la lava, en la lava (o sea, yo me muero quemado dentro del agua), vuelves a morir minimo 5 veces, ya sea en un spawn lejos de la lava o en uno cerca, simplemente, mueres, muchas veces.

Y no tiene puto sentido.

¿Mueres por el fuego o sin razón?

Link to comment
@Tomas creo que el se refiere que cuando mueres te mueres de vuelta y de vuelta por la lava. creo que para que no pase eso tendría que cuando muera colocar un spawn lejos de la lava haci no muere si es que te entendí creo que dices eso no ?

Lo que pasa es lo siguiente, cuando mueres por la lava, en la lava (o sea, yo me muero quemado dentro del agua), vuelves a morir minimo 5 veces, ya sea en un spawn lejos de la lava o en uno cerca, simplemente, mueres, muchas veces.

Y no tiene puto sentido.

¿Mueres por el fuego o sin razón?

Sin razón, como /kill

Link to comment
Si no me equivoco, un elemento en llamas pierde vida por si solo, así que el timer seria innecesario.

No lo hace (al menos en mi server) , además que el llamas lo pongo de forma estética, ya que tirarte a la lava y morir es como muy, no se, extraño.

Link to comment
Si no me equivoco, un elemento en llamas pierde vida por si solo, así que el timer seria innecesario.

No lo hace (al menos en mi server) , además que el llamas lo pongo de forma estética, ya que tirarte a la lava y morir es como muy, no se, extraño.

Seguramente en algún script estás cancelando el daño si no hay un atacante.

Link to comment
  • 4 weeks later...

Solucionado, dejo el script por si hay algún interesado:

clientside

addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), 
    function() 
        setWaterColor(255, 0, 0) 
    end 
) 
addEventHandler("onClientResourceStop", getResourceRootElement(getThisResource()), 
    function() 
        resetWaterColor() 
    end 
) 
  

serverside

function lava(thePlayer) 
    for i,thePlayer in ipairs(getElementsByType("player")) do 
        if not isPedDead(thePlayer) and isElementInWater(thePlayer) then 
            setPedOnFire(thePlayer, true) 
            setTimer ( function() 
                killPed(thePlayer) 
            end, 500, 1 ) 
        end 
    end 
end 
setTimer ( lava, 1000, 0)  
  
addEventHandler("onPlayerSpawn",root,function() 
    setPedOnFire(source,false) 
end 
) 

También lo pueden obtener desde la community: https://community.multitheftauto.com/in ... s&id=11019

PD:

El error era que al actualizarse el setTimer de la función lava, reiniciaba el setTimer que esta dentro de la misma función, provocando que mueras varias veces por la misma causa, así que simplemente hice que el setTimer dentro de la función tenga una menor duración que el que activa la función.

Espero entiendan mi explicación.

Link to comment
  • 1 month later...

No seria mas lindo asi?

function quemateCojones() 
for k,playeeee in ipairs(getElementsByType("player")) do 
if isPedOnFire(playeeee) then 
setElementHealth(playeeee, getElementHealth(playeeee) - 1) 
end 
end 
end 
setTimer(quemateCojones, 50, 0) 
  
    function lava(thePlayer) 
        for i,thePlayer in ipairs(getElementsByType("player")) do 
            if not isPedDead(thePlayer) and isElementInWater(thePlayer) then 
                setPedOnFire(thePlayer, true) 
            end 
        end 
    end 
    setTimer ( lava, 1000, 0) 
      
    addEventHandler("onPlayerSpawn",root,function() 
        setPedOnFire(source,false) 
    end 
    ) 

Link to comment
  • 3 weeks later...
No seria mas lindo asi?
function quemateCojones() 
for k,playeeee in ipairs(getElementsByType("player")) do 
if isPedOnFire(playeeee) then 
setElementHealth(playeeee, getElementHealth(playeeee) - 1) 
end 
end 
end 
setTimer(quemateCojones, 50, 0) 
  
    function lava(thePlayer) 
        for i,thePlayer in ipairs(getElementsByType("player")) do 
            if not isPedDead(thePlayer) and isElementInWater(thePlayer) then 
                setPedOnFire(thePlayer, true) 
            end 
        end 
    end 
    setTimer ( lava, 1000, 0) 
      
    addEventHandler("onPlayerSpawn",root,function() 
        setPedOnFire(source,false) 
    end 
    ) 

Al igual que te lo dije en WPP, ¿pero que carajo?

Esto no fue lo que me dijiste VeNaD !

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...