user123 Posted November 10, 2015 Share Posted November 10, 2015 Hola, encontré este script en un viejo post addCommandHandler("fireme", function (thePlayer) local onFire = setTimer(setPedOnFire, 3000, 4, thePlayer, true) outputChatBox("* ".. getPlayerName(thePlayer) .." #0080FFesta en #FF8000fuego#0080FF!",getRootElement(),255,255,255,true) end) Como puedo hacer que al escribir /fireme "Jugador" , el nombre del jugador que escribí se prenda fuego Link to comment
alex17 Posted November 10, 2015 Share Posted November 10, 2015 prueba con esto debe funcionar addCommandHandler("fireme", function (thePlayer, _, name) if not name return end local player = findPlayerByName (name) local onFire = setTimer(setPedOnFire, 3000, 4, player, true) outputChatBox("* ".. getPlayerName(player) .." #0080FFesta en #FF8000fuego#0080FF!",getRootElement(),255,255,255,true) end) function findPlayerByName (name) local player = getPlayerFromName(name) if player then return player end for i, player in ipairs(getElementsByType("player")) do if string.find(string.gsub(getPlayerName(player):lower(),"#%x%x%x%x%x%x", ""), name:lower(), 1, true) then return player end end return false end Link to comment
user123 Posted November 10, 2015 Author Share Posted November 10, 2015 No funciona, da error en el debug SCRIPT ERROR: fire\fireme.lua:4: 'then' expected near 'return' ERROR: Loading script failed: fire\fireme.lua:4: 'then' expected near Link to comment
starksZ Posted November 10, 2015 Share Posted November 10, 2015 addCommandHandler("fireme", function (thePlayer, _, name) if not name then return end local player = findPlayerByName (name) local onFire = setTimer(setPedOnFire, 3000, 4, player, true) outputChatBox("* ".. getPlayerName(player) .." #0080FFesta en #FF8000fuego#0080FF!",getRootElement(),255,255,255,true) end) function findPlayerByName (name) local player = getPlayerFromName(name) if player then return player end for i, player in ipairs(getElementsByType("player")) do if string.find(string.gsub(getPlayerName(player):lower(),"#%x%x%x%x%x%x", ""), name:lower(), 1, true) then return player end end return false end Se le olvido poner el then. Link to comment
user123 Posted November 10, 2015 Author Share Posted November 10, 2015 Ahora ya sirve , gracias, otra cosa: Por ejemplo pongo , /fireme Pepito Spam , salga en el chat : Pepito esta en fuego : Spam. osea la razón , flood, spam, noob, hola, etc, lo que yo ponga Link to comment
alex17 Posted November 10, 2015 Share Posted November 10, 2015 Utiliza esto /fireme nombredeljugador rason addCommandHandler("fireme", function (thePlayer, _, name, rason) if not name then return end local player = findPlayerByName (name) local onFire = setTimer(setPedOnFire, 3000, 4, player, true) outputChatBox("* ".. getPlayerName(player) .." #0080FFesta en #FF8000fuego#0080FF! rason ("..rason..")",getRootElement(),255,255,255,true) end) function findPlayerByName (name) local player = getPlayerFromName(name) if player then return player end for i, player in ipairs(getElementsByType("player")) do if string.find(string.gsub(getPlayerName(player):lower(),"#%x%x%x%x%x%x", ""), name:lower(), 1, true) then return player end end return false end Link to comment
user123 Posted November 10, 2015 Author Share Posted November 10, 2015 Ok, Ahora lo que pasa es que cuando me doy el fire y muero, al respawnear aparece de nuevo el fuego Link to comment
Enargy, Posted November 11, 2015 Share Posted November 11, 2015 addEventHandler("onPlayerSpawn", root, function() if isPedOnFire(source) then return setPedOnFire(source, false) end end) Link to comment
user123 Posted November 11, 2015 Author Share Posted November 11, 2015 addEventHandler("onPlayerSpawn", root, function() if isPedOnFire(source) then return setPedOnFire(source, false) end end) El problema es que, si tengo 25 hp, y me doy prendo fuego, muero , pero al respawnear como unos 3 segundos despues aparece el fuego Link to comment
Enargy, Posted November 12, 2015 Share Posted November 12, 2015 Debe ser que al hacer spawn y otra persona aparece en tu mismo punto de aparición, el fuego antes apagarse se propaga al estar cerca de alguien y ambos se queman. Si eso pasa en lugar de usar onPlayerSpawn usas onPlayerWasted; sino pues no entiendo. Link to comment
Tomas Posted November 12, 2015 Share Posted November 12, 2015 Se supone que el ped se destruye al morir, debería perder el fuego por sí solo. Link to comment
Enargy, Posted November 13, 2015 Share Posted November 13, 2015 Se supone que el ped se destruye al morir, debería perder el fuego por sí solo. A mi me ha pasado que cuando muero incendiado derrepente me prendo otra vez . Link to comment
starksZ Posted November 13, 2015 Share Posted November 13, 2015 local onFire = setTimer( setPedOnFire, 3000, 4, -- sera esto? player, true) Link to comment
user123 Posted November 13, 2015 Author Share Posted November 13, 2015 local onFire = setTimer( setPedOnFire, 3000, 4, -- sera esto? player, true) Eso lo que hace es que se repita, porque el fuego no dura mucho tiempo. Link to comment
Enargy, Posted November 13, 2015 Share Posted November 13, 2015 local onFire = setTimer( setPedOnFire, 3000, 4, -- sera esto? player, true) Eso lo que hace es que se repita, porque el fuego no dura mucho tiempo. Obviamente es eso. Al morir el timer sigue corriendo. Usa isPedDead antes de poner al elemento en llamas y en ese caso regresas la funcion a false. if isPedDead(thePlayer) then return false end ó puedes usar killTimer en lugar de regresar la funcion a nula. Link to comment
Recommended Posts