Jump to content

[ayuda]duda con onPlayerWasted y otras dudas


JuanM27

Recommended Posts

Hola buenas tardes, desde ya agradezco la ayuda del otro dia.

ahora tengo 1 duda, quizas para muchos sea algo sencillo, pero ami me cuesta por que recien estoy espesando con esto de lua.

igual algo entiendo, pero me cuesta entender algunas funciones, busque en la wiki y me ayudo bastante.

en fin

ahora tengo 1 duda, sobre, como hacer para que cuando un player muera no pierda las armas, el skin y el team, y que nasca en el hostipal mas cercano a su muerte

yo ahora mismo tengo esto

addEventHandler( "onPlayerWasted", getRootElement( ), 
    function(ammo, killer, weapon) 
        setTimer( spawnPlayer, 4000, 1, source, 1177.5682373047, -1323.2587890625, 14.077121734619 ) 
    --  outputChatBox ( getPlayerName ( source ).." died and was transported at All Saints Hospital.") 
  
    end 
) 

este codigo a todos los players que mueren lo pone en el hospital de LS,

pero si moris en LV tambien vas a parar al Hospital de LS

pero cuando moris perdes las armas, skin, team

si me pueden guiar un poco se lo agradeceria,

-------

otra duda que tengo es sobre los playersblip

es decir yo me descargue el scrip playerblip2 que esta en recursos de la pag del mta.

pero este no me anda, o bien no es lo que yo busco,

yo quiero que en el radar y mapa(F11), los players tengan el blip del color que tienen en sus nombres que es el que tiene el Team.

pero que se cambien solo los colores, osea que si un player si hace policia el blip de ese player se cambie solo a azul o el color que sea el team.

en este script playerblips2 para que cambie de color los blips tengo que desde el panel del admin, estar apagando y prendiendo el script.

nose si ese script Playerblips2 no sea compatible con mi version, uso el mta 1.2

----------------------------------------------

otra duda, pero esto es un poco sin importancia,

vieron cuando entras a un server por primera vez que descarga las cosas del server.

como puedo poner una imagen en el fondo para que no se quede la pantalla negra?

y luego que se termine de descargar se habra el gui del Login/registre?

bueno eso seria mis dudas por ahora.

pero me gustaria que me guien mas en las del hospital y playerblips que son las mas importantes.

no quiero abusar de su tiempo, por eso no estoy pidiendo que me den los scripts ya echos.

sino que me digan se hace con esta funcion o un ejemplo para yo asi poder hacerlo, ya que se que este es un foro de ayuda y ayuda el que puede, por que tambien se que yo no le estoy pagando a nadie para que me ayude o me de los script,

bueno saludos

Link to comment

Esto servira para spawnearlos en el hospital correcto, conservando skin y equipo.

--Conseguimos las coordenadas de los hospitales, y la rotacion (para evitar que el jugador mire hacia el hospital al spawnear ) 
local zones = { 
["Los Santos"]={1177.5682373047, -1323.2587890625, 14.077121734619, rotacion}, --Cambia solo "rotacion"! 
["San Fierro"]={1177.5682373047, -1323.2587890625, 14.077121734619, rotacion}, --Cambia las coordenadas y "rotacion"! 
["Las Venturas"]={1177.5682373047, -1323.2587890625, 14.077121734619, rotacion} --Cambia las coordenadas y "rotacion"! 
} 
  
addEventHandler( "onPlayerWasted", getRootElement( ), 
    function(ammo, killer, weapon) 
        local city = getElementZoneName ( source, true ) --En que ciudad esta el jugador? 
        if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
            setTimer( spawnPlayer, 4000, 1, source, zones[city][1], zones[city][2], zones[city][3], zones[city][4], getElementModel ( source ), 0, 0, getPlayerTeam ( source ) ) --Obtener las coordenadas predefinidas por la ciudad, y spawnear al jugador ahi, con la rotacion, skin y equipo respectivos 
            --outputChatBox ( getPlayerName ( source ).." died and was transported at All Saints Hospital.") 
        end 
    end 
) 

Para lo de las armas es algo mas complejo...

Que Castillo te ayude lol

Link to comment

Este codigo hara reaparecer al jugador con sus respectivas armas y skin, vere si puedo explicarte lo demas.

function aparecerJugador(jug,armas,skin) 
    spawnPlayer(jug,1177.5, -1323.2, 14.0,0,skin) -- Aparecemos al jugador en el hospital con su skin 
    for k,v in ipairs(armas) do -- Repetimos codigo por todas las armas que tenia 
        giveWeapon(jug,v[1],v[2]) -- Damos la arma que tenia con su respectiva munición 
    end 
end 
  
addEventHandler("onPlayerWasted",root,function() 
  
    local weaps = {} -- Inicializamos la tabla de armas 
    for i=1,11 do --Repetimos codigo por los 11 slots de armas 
        local weap = getPedWeapon(source,i) -- Obtenemos la arma en un slot 
        if weap>0 then -- Vemos si es que tiene arma en el slot 
            local ammo = getPedTotalAmmo(source,i) -- Obtenemos la munición de la arma 
            if ammo>0 then -- Vemos si hay munición de la arma 
                table.insert(weaps,{weap,ammo}) -- Agregamos la arma en la tabla 
            end 
        end 
    end 
     
    local skin = getElementModel(source) -- Obtenemos el skin del jugador 
    setTimer(aparecerJugador,4000,1,source,weaps,skin) -- Esperamos 4 segundos para reaparecer al jugador 
end) 

Link to comment
Esto servira para spawnearlos en el hospital correcto, conservando skin y equipo.
--Conseguimos las coordenadas de los hospitales, y la rotacion (para evitar que el jugador mire hacia el hospital al spawnear ) 
local zones = { 
["Los Santos"]={1177.5682373047, -1323.2587890625, 14.077121734619, rotacion}, --Cambia solo "rotacion"! 
["San Fierro"]={1177.5682373047, -1323.2587890625, 14.077121734619, rotacion}, --Cambia las coordenadas y "rotacion"! 
["Las Venturas"]={1177.5682373047, -1323.2587890625, 14.077121734619, rotacion} --Cambia las coordenadas y "rotacion"! 
} 
  
addEventHandler( "onPlayerWasted", getRootElement( ), 
    function(ammo, killer, weapon) 
        local city = getElementZoneName ( source, true ) --En que ciudad esta el jugador? 
        if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
            setTimer( spawnPlayer, 4000, 1, source, zones[city][1], zones[city][2], zones[city][3], zones[city][4], getElementModel ( source ), 0, 0, getPlayerTeam ( source ) ) --Obtener las coordenadas predefinidas por la ciudad, y spawnear al jugador ahi, con la rotacion, skin y equipo respectivos 
            --outputChatBox ( getPlayerName ( source ).." died and was transported at All Saints Hospital.") 
        end 
    end 
) 

Para lo de las armas es algo mas complejo...

Que Castillo te ayude lol

hola amigo,

esto es del lado server verdad?

por que lo puse y sigo apareciendo siempre en LS sin skin y sin team

gracias

Link to comment

Edito,

hay me anda joya, dejo el code por si alguien lo necesita.

--Conseguimos las coordenadas de los hospitales, y la rotacion (para evitar que el jugador mire hacia el hospital al spawnear ) 
local zones = { 
["Los Santos"]={1177.5, -1323.2, 14.07}, --Cambia solo "rotacion"! 
["San Fierro"]={-2645.3, 635.2, 14.4}, --Cambia las coordenadas y "rotacion"! 
["Las Venturas"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
} 
  
function aparecerJugador(jug,armas,skin,Team,x,y,z) 
 --local city = getElementZoneName ( jug, true ) --En que ciudad esta el jugador? 
 --if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    spawnPlayer(jug,x,y,z,0,skin) 
    setPlayerTeam(jug,Team) 
    --outputChatBox ("naciste en: " ..x .." " ..y .." " ..z .." ", jug, 255, 0 ,0) 
    for k,v in ipairs(armas) do -- Repetimos codigo por todas las armas que tenia 
        giveWeapon(jug,v[1],v[2]) -- Damos la arma que tenia con su respectiva munición 
    end 
end 
--end 
  
addEventHandler("onPlayerWasted",root,function() 
  
    local weaps = {} -- Inicializamos la tabla de armas 
    for i=1,11 do --Repetimos codigo por los 11 slots de armas 
        local weap = getPedWeapon(source,i) -- Obtenemos la arma en un slot 
        if weap>0 then -- Vemos si es que tiene arma en el slot 
            local ammo = getPedTotalAmmo(source,i) -- Obtenemos la munición de la arma 
            if ammo>0 then -- Vemos si hay munición de la arma 
                table.insert(weaps,{weap,ammo}) -- Agregamos la arma en la tabla 
            end 
        end 
    end 
    local city = getElementZoneName (source, true ) --En que ciudad esta el jugador? 
    if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    local x,y,z = zones[city][1],zones[city][2],zones[city][3] 
    local Team = getPlayerTeam(source) -- obtenemos el team del jugador 
    local skin = getElementModel(source) -- Obtenemos el skin del jugador 
    setTimer(aparecerJugador,4000,1,source,weaps,skin,Team,x,y,z) -- Esperamos 4 segundos para reaparecer al jugador 
    end 
end) 
  

gracias a los 2 por sus ayudas,

sobre el playerblips alguna sugerian?

ah otro dato que puede ser util.

los blips de los players, en el mapa (F11) no se mueven aparecen quietos por mas que el player este manejando.

y en el mini mapa (radar) no muestra los blips de los players

saludos

Edited by Guest
Link to comment

Mmm creo que le falto algo, si esta en un interior entonces no va a spawnear, tampoco si esta en Red County (Si, Red County es otra Ciudad :P (La que esta en medio de LS y LV) )

--Conseguimos las coordenadas de los hospitales, y la rotacion (para evitar que el jugador mire hacia el hospital al spawnear ) 
local zones = { 
["Los Santos"]={1177.5, -1323.2, 14.07}, --Cambia solo "rotacion"! 
["San Fierro"]={-2645.3, 635.2, 14.4}, --Cambia las coordenadas y "rotacion"! 
["Las Venturas"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
["Unknow"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! Cuando esta en un interior la Zona es "Unknow" 
["Red County"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
} 
  
function aparecerJugador(jug,armas,skin,Team,x,y,z) 
 --local city = getElementZoneName ( jug, true ) --En que ciudad esta el jugador? 
 --if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    spawnPlayer(jug,x,y,z,0,skin) 
    setPlayerTeam(jug,Team) 
    --outputChatBox ("naciste en: " ..x .." " ..y .." " ..z .." ", jug, 255, 0 ,0) 
    for k,v in ipairs(armas) do -- Repetimos codigo por todas las armas que tenia 
        giveWeapon(jug,v[1],v[2]) -- Damos la arma que tenia con su respectiva munición 
    end 
end 
--end 
  
addEventHandler("onPlayerWasted",root,function() 
  
    local weaps = {} -- Inicializamos la tabla de armas 
    for i=1,11 do --Repetimos codigo por los 11 slots de armas 
        local weap = getPedWeapon(source,i) -- Obtenemos la arma en un slot 
        if weap>0 then -- Vemos si es que tiene arma en el slot 
            local ammo = getPedTotalAmmo(source,i) -- Obtenemos la munición de la arma 
            if ammo>0 then -- Vemos si hay munición de la arma 
                table.insert(weaps,{weap,ammo}) -- Agregamos la arma en la tabla 
            end 
        end 
    end 
    local city = getElementZoneName (source, true ) --En que ciudad esta el jugador? 
    if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    local x,y,z = zones[city][1],zones[city][2],zones[city][3] 
    local Team = getPlayerTeam(source) -- obtenemos el team del jugador 
    local skin = getElementModel(source) -- Obtenemos el skin del jugador 
    setTimer(aparecerJugador,4000,1,source,weaps,skin,Team,x,y,z) -- Esperamos 4 segundos para reaparecer al jugador 
    end 
end) 
  

O Me equivoco?

Link to comment
--Conseguimos las coordenadas de los hospitales, y la rotacion (para evitar que el jugador mire hacia el hospital al spawnear ) 
local zones = { 
["Los Santos"]={1177.5, -1323.2, 14.07}, --Cambia solo "rotacion"! 
["San Fierro"]={-2645.3, 635.2, 14.4}, --Cambia las coordenadas y "rotacion"! 
["Las Venturas"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
["Unknown"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! Cuando esta en un interior la Zona es "Unknow" 
["Red County"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
} 
  
function aparecerJugador(jug,armas,skin,Team,x,y,z) 
 --local city = getElementZoneName ( jug, true ) --En que ciudad esta el jugador? 
 --if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    spawnPlayer(jug,x,y,z,0,skin) 
    setPlayerTeam(jug,Team) 
    --outputChatBox ("naciste en: " ..x .." " ..y .." " ..z .." ", jug, 255, 0 ,0) 
    for k,v in ipairs(armas) do -- Repetimos codigo por todas las armas que tenia 
        giveWeapon(jug,v[1],v[2]) -- Damos la arma que tenia con su respectiva munición 
    end 
end 
--end 
  
addEventHandler("onPlayerWasted",root,function() 
  
    local weaps = {} -- Inicializamos la tabla de armas 
    for i=1,11 do --Repetimos codigo por los 11 slots de armas 
        local weap = getPedWeapon(source,i) -- Obtenemos la arma en un slot 
        if weap>0 then -- Vemos si es que tiene arma en el slot 
            local ammo = getPedTotalAmmo(source,i) -- Obtenemos la munición de la arma 
            if ammo>0 then -- Vemos si hay munición de la arma 
                table.insert(weaps,{weap,ammo}) -- Agregamos la arma en la tabla 
            end 
        end 
    end 
    local city = getElementZoneName (source, true ) --En que ciudad esta el jugador? 
    if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    local x,y,z = zones[city][1],zones[city][2],zones[city][3] 
    local Team = getPlayerTeam(source) -- obtenemos el team del jugador 
    local skin = getElementModel(source) -- Obtenemos el skin del jugador 
    setTimer(aparecerJugador,4000,1,source,weaps,skin,Team,x,y,z) -- Esperamos 4 segundos para reaparecer al jugador 
    end 
end) 
  

Escribiste mal "Unknown" :P

Link to comment
--Conseguimos las coordenadas de los hospitales, y la rotacion (para evitar que el jugador mire hacia el hospital al spawnear ) 
local zones = { 
["Los Santos"]={1177.5, -1323.2, 14.07}, --Cambia solo "rotacion"! 
["San Fierro"]={-2645.3, 635.2, 14.4}, --Cambia las coordenadas y "rotacion"! 
["Las Venturas"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
["Unknown"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! Cuando esta en un interior la Zona es "Unknow" 
["Red County"]={1600.2, 1827.2, 10.8} --Cambia las coordenadas y "rotacion"! 
} 
  
function aparecerJugador(jug,armas,skin,Team,x,y,z) 
 --local city = getElementZoneName ( jug, true ) --En que ciudad esta el jugador? 
 --if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    spawnPlayer(jug,x,y,z,0,skin) 
    setPlayerTeam(jug,Team) 
    --outputChatBox ("naciste en: " ..x .." " ..y .." " ..z .." ", jug, 255, 0 ,0) 
    for k,v in ipairs(armas) do -- Repetimos codigo por todas las armas que tenia 
        giveWeapon(jug,v[1],v[2]) -- Damos la arma que tenia con su respectiva munición 
    end 
end 
--end 
  
addEventHandler("onPlayerWasted",root,function() 
  
    local weaps = {} -- Inicializamos la tabla de armas 
    for i=1,11 do --Repetimos codigo por los 11 slots de armas 
        local weap = getPedWeapon(source,i) -- Obtenemos la arma en un slot 
        if weap>0 then -- Vemos si es que tiene arma en el slot 
            local ammo = getPedTotalAmmo(source,i) -- Obtenemos la munición de la arma 
            if ammo>0 then -- Vemos si hay munición de la arma 
                table.insert(weaps,{weap,ammo}) -- Agregamos la arma en la tabla 
            end 
        end 
    end 
    local city = getElementZoneName (source, true ) --En que ciudad esta el jugador? 
    if city then --Si el jugador esta en una ciudad de las 3, y no en el campo o algo asi 
    local x,y,z = zones[city][1],zones[city][2],zones[city][3] 
    local Team = getPlayerTeam(source) -- obtenemos el team del jugador 
    local skin = getElementModel(source) -- Obtenemos el skin del jugador 
    setTimer(aparecerJugador,4000,1,source,weaps,skin,Team,x,y,z) -- Esperamos 4 segundos para reaparecer al jugador 
    end 
end) 
  

Escribiste mal "Unknown" :P

jeje si gracias a los 2 de nuevo

Link to comment

No se quienes an notado, pero en sever side la tecnica de recuperacion de armas insertandolas en una tabla y que luego se las de puede fallar.

Me explico, usaba eso antes y (AVECES, No siempre, Pero me arte cuando me paso 2 veces xD) se me intercalaban las armas, con otras, osea, si varios jugadores morian al mnismo tiempo (lo cual puede ser muy probable dependiendo de lo que esten haceindo) podria fallar, e intencambiar las armas de los usuarios, o bien las municiones.

Link to comment

Mi solucion fue guardar las Armas en data bases, la vdd uso accounts data :oops:

Aunque (gracias a Castillo que desperto mi curiosidad por un resource que el hizo (creo que ya sabes cual)) aprendi a usar bien el SQL, el MySQL nah, aun no... luego me pongo a trabajarle dado que el sistema es mejor xD...

Solo es guardarlo todo cada vez q el jugador muera, y salga, y al aparecer, si se tiene almenos 1 data de las armas del source las devuelva, bueno ay varias opciones, pero esta me parece la mas fiable y sin usar muchos timers.

Link to comment
  • Recently Browsing   0 members

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