eldelahoz Posted February 6, 2013 Share Posted February 6, 2013 Hola quisiera saber como puedo hacer para que use un comando un sierto tiempo por ejemplo el afk lo que yo quiero hacer es que usen el comando pero que cuando lo usen se demore 1 minuto en volverlo a usar ¡Saludos! Link to comment
JuanM27 Posted February 6, 2013 Share Posted February 6, 2013 lo podes hacer un setTimer y lo comprobas si el timer esta activo con isTimer Link to comment
eldelahoz Posted February 6, 2013 Author Share Posted February 6, 2013 algo asi? addEventHandler("onPlayerJoin",getRootElement(), function () setElementData(source,"afk_state","back") setElementData(source,"HideState","disabled") end) addEventHandler( "onResourceStart", getResourceRootElement(getThisResource()), function () for i,v in pairs (getElementsByType("player")) do setElementData(v,"afk_state","back") setElementData(v,"HideState","disabled") end end) addCommandHandler("afk", function (thePlayer) if getElementData(thePlayer,"afk_state") == "back" then triggerClientEvent(thePlayer,"god_mode",thePlayer) setPedFrozen(thePlayer,true) setPlayerNametagText (thePlayer, "|AFK|" .. getPlayerName (thePlayer)) outputChatBox(getPlayerName(thePlayer).." is AFK!",getRootElement(),255,50,0) setElementData(thePlayer,"afk_state","afk") if getPedOccupiedVehicle(thePlayer) then fixVehicle(getPedOccupiedVehicle(thePlayer),true) setVehicleFrozen(getPedOccupiedVehicle(thePlayer),true) setVehicleDamageProof(getPedOccupiedVehicle(thePlayer),true) end elseif getElementData(thePlayer,"afk_state") == "afk" then setElementData(thePlayer,"afk_state","back") triggerClientEvent(thePlayer,"disable_god_mode",thePlayer) setPedFrozen(thePlayer,false) setPlayerNametagText (thePlayer, "" .. getPlayerName (thePlayer)) outputChatBox(getPlayerName(thePlayer).." is back!",getRootElement(),0,255,0) if getPedOccupiedVehicle(thePlayer) then setVehicleFrozen(getPedOccupiedVehicle(thePlayer),false) setVehicleDamageProof(getPedOccupiedVehicle(thePlayer),false) end end end) removeCommandHanlder( "afk" ) setTimer( addCommandHandler, 5000, 0, "afk", Afk ) Link to comment
JuanM27 Posted February 6, 2013 Share Posted February 6, 2013 mira si no me equivoco asi te tendria que funcionar... por que solo el timer le funcionaria al usuario que usa el comando y no a todos. TuAfk = {} addEventHandler("onPlayerJoin",getRootElement(), function () setElementData(source,"afk_state","back") setElementData(source,"HideState","disabled") end) addEventHandler( "onResourceStart", getResourceRootElement(getThisResource()), function () for i,v in pairs (getElementsByType("player")) do setElementData(v,"afk_state","back") setElementData(v,"HideState","disabled") end end) addCommandHandler("afk", function (thePlayer) if isTimer(TuAfk[thePlayer]) then cancelEvent() outputChatBox("No Puedes usar el Comando Muchas Veces Seguidas...", thePlayer, 255, 255, 0) if getElementData(thePlayer,"afk_state") == "back" then TuAfk[thePlayer] = setTimer(function(thePlayer) TuAfk[thePlayer] = nil end, 60000, 1, thePlayer) --1 Minuto triggerClientEvent(thePlayer,"god_mode",thePlayer) setPedFrozen(thePlayer,true) setPlayerNametagText (thePlayer, "|AFK|" .. getPlayerName (thePlayer)) outputChatBox(getPlayerName(thePlayer).." is AFK!",getRootElement(),255,50,0) setElementData(thePlayer,"afk_state","afk") if getPedOccupiedVehicle(thePlayer) then fixVehicle(getPedOccupiedVehicle(thePlayer),true) setVehicleFrozen(getPedOccupiedVehicle(thePlayer),true) setVehicleDamageProof(getPedOccupiedVehicle(thePlayer),true) end elseif getElementData(thePlayer,"afk_state") == "afk" then TuAfk[thePlayer] = setTimer(function(thePlayer) TuAfk[thePlayer] = nil end, 60000, 1, thePlayer) --1 Minuto setElementData(thePlayer,"afk_state","back") triggerClientEvent(thePlayer,"disable_god_mode",thePlayer) setPedFrozen(thePlayer,false) setPlayerNametagText (thePlayer, "" .. getPlayerName (thePlayer)) outputChatBox(getPlayerName(thePlayer).." is back!",getRootElement(),0,255,0) if getPedOccupiedVehicle(thePlayer) then setVehicleFrozen(getPedOccupiedVehicle(thePlayer),false) setVehicleDamageProof(getPedOccupiedVehicle(thePlayer),false) end end end end) Pero no te aseguro que ande, ya que no lo probe... Link to comment
RekZ Posted February 6, 2013 Share Posted February 6, 2013 nunca use eso de isTimer .-. y siempre me fueron bien Link to comment
eldelahoz Posted February 6, 2013 Author Share Posted February 6, 2013 No me ando T_T Link to comment
Castillo Posted February 6, 2013 Share Posted February 6, 2013 No es necesario usar timers, fijate en este tema: viewtopic.php?f=145&t=43278&p=436503 Link to comment
eldelahoz Posted February 6, 2013 Author Share Posted February 6, 2013 Pero eso seria de otro resource por asi decirlo como de fiansa ps lo que yo veo yo lo que quiero que es que pase 1 minuto para que usen el afk el afk es con dimenciones ect Link to comment
Castillo Posted February 6, 2013 Share Posted February 6, 2013 Claro, pero aca no te vamos a dar todo completito como si fuese un restaurante, mira como hice el script ese de fianza, y intenta aplicarlo en el script de AFK. Link to comment
eldelahoz Posted February 6, 2013 Author Share Posted February 6, 2013 Bueno segun lo tuyo y las funciones y eventos y mi basto conocimiento en script pude lograr local ticks = { } local tiempo = ( 10 * 60000 ) function convertTime ( ms ) local min = math.floor ( ms / 60000 ) local sec = math.floor ( ( ms / 1000 ) % 60 ) return min, sec end function afk ( jugador ) if ( ticks [ jugador ] ) then local endTick = getTickCount ( ) if ( endTick - ticks [ jugador ] < tiempo ) then local mins, secs = convertTime ( tiempo - endTick + ticks [ jugador ] ) outputChatBox ( "En ".. mins .." minutos y ".. secs .." segundos puedes volver a usar el afk.", jugador, 255, 0, 0 ) return end end if ( getPlayerWantedLevel ( jugador ) == 1 ) then ticks [ jugador ] = getTickCount ( ) setPlayerWantedLevel ( jugador, 0 ) else outputChatBox ( "Tienes que esperar un rato para volver el afk", jugador, 255, 0, 0 ) end end addCommandHandler("afk", afk function (jugador) if getElementData(jugador,"afk_state") == "back" then triggerClientEvent(jugador,"god_mode",jugador) setPedFrozen(jugador,true) setPlayerNametagText (jugador, "|AFK|" .. getPlayerName (jugador)) outputChatBox(getPlayerName(jugador).." is AFK!",getRootElement(),255,50,0) setElementData(jugador,"afk_state","afk") if getPedOccupiedVehicle(jugador) then fixVehicle(getPedOccupiedVehicle(jugador),true) setVehicleFrozen(getPedOccupiedVehicle(jugador),true) setVehicleDamageProof(getPedOccupiedVehicle(jugador),true) end elseif getElementData(jugador,"afk_state") == "afk" then setElementData(jugador,"afk_state","back") triggerClientEvent(jugador,"disable_god_mode",jugador) setPedFrozen(jugador,false) setPlayerNametagText (jugador, "" .. getPlayerName (jugador)) outputChatBox(getPlayerName(jugador).." is back!",getRootElement(),0,255,0) if getPedOccupiedVehicle(jugador) then setVehicleFrozen(getPedOccupiedVehicle(jugador),false) setVehicleDamageProof(getPedOccupiedVehicle(jugador),false) end end end) Link to comment
Castillo Posted February 6, 2013 Share Posted February 6, 2013 Eso no tiene sentido, lo unico que hiciste fue copiar el codigo del tema que te di y quitarle/cambiarle un par de cosas. Link to comment
JuanM27 Posted February 7, 2013 Share Posted February 7, 2013 No es necesario usar timers, fijate en este tema: viewtopic.php?f=145&t=43278&p=436503 perdon que me meta, pero con esa funcion que decis es mucho mas facil, mire el tema y lo entendi, yo nunca use el getTickCount, pero al ver ese tema veo que es bastante util. y sencillo Link to comment
eldelahoz Posted February 7, 2013 Author Share Posted February 7, 2013 bueno a ustedes lo entienden yo no tengo conocimiento tanto de scrip que digamos Link to comment
Recommended Posts