JuanM27 Posted January 5, 2012 Share Posted January 5, 2012 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
12p Posted January 5, 2012 Share Posted January 5, 2012 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
Gothem Posted January 5, 2012 Share Posted January 5, 2012 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
12p Posted January 5, 2012 Share Posted January 5, 2012 Combina ambos scripts y tendrás a tu jugador spawneando en los hospitales, con skin, armas y rotación correctas Link to comment
JuanM27 Posted January 5, 2012 Author Share Posted January 5, 2012 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
RottenFlesh Posted January 5, 2012 Share Posted January 5, 2012 Modificaste las "rotaciones"? =.= las tienes que modificar tu. Link to comment
12p Posted January 5, 2012 Share Posted January 5, 2012 Si apareces así, será porque no cambiaste las coordenadas para ajustarlas a los hospitales. LEE LOS COMENTARIOS: --Cambia solo "rotacion"! --Cambia las coordenadas y "rotacion"! Link to comment
JuanM27 Posted January 5, 2012 Author Share Posted January 5, 2012 (edited) 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 January 5, 2012 by Guest Link to comment
12p Posted January 5, 2012 Share Posted January 5, 2012 Si estas en San Fierro, o Las Venturas, te sigue spawneando en Los Santos? Link to comment
JuanM27 Posted January 5, 2012 Author Share Posted January 5, 2012 Si estas en San Fierro, o Las Venturas, te sigue spawneando en Los Santos? si, pero ya lo arregle, hay deje el code por si alguien lo necesita, muchas gracias a 2 Link to comment
RottenFlesh Posted January 5, 2012 Share Posted January 5, 2012 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 (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
12p Posted January 6, 2012 Share Posted January 6, 2012 --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" Link to comment
JuanM27 Posted January 6, 2012 Author Share Posted January 6, 2012 --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" jeje si gracias a los 2 de nuevo Link to comment
Serginix Posted January 9, 2012 Share Posted January 9, 2012 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 ) 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
Castillo Posted January 9, 2012 Share Posted January 9, 2012 Serginix, podrias usar element data en lugar de tablas tambien . Link to comment
Serginix Posted January 9, 2012 Share Posted January 9, 2012 Serginix, podrias usar element data en lugar de tablas tambien . No, porque tambien descubri que si te sales Muerto te jodes, pero lo solucione hace como 3 meses xDDD Link to comment
Castillo Posted January 9, 2012 Share Posted January 9, 2012 Bueh, pues podrias usar un array. array = {} array["Castillo"] = {{24, 500}} Link to comment
Serginix Posted January 9, 2012 Share Posted January 9, 2012 Mi solucion fue guardar las Armas en data bases, la vdd uso accounts data 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 ... 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
Recommended Posts