Javier Posted October 31, 2012 Posted October 31, 2012 Hola amigos , Soy nuevo aqui en la comunidad y estoy haciendo un script para que cada sierto tiempo le dè al player 10% de armadura al player. Bueno aclaro que no se mucho de lua function incremento () setPedArmor ( source, getPedArmor(source) + 10 ) setTimer ( incremento, 120000, 0 ) end addEventHandler ( "onPlayerDamage", getRootElement(), incremento ) no le dà al player la armadura , me pueden ayudar. Gracias
Arsilex Posted October 31, 2012 Posted October 31, 2012 function incremento () for k, jugador in ipairs(getElementsByType("player")) do setPedArmor ( jugador, getPedArmor(jugador) + 10 ) setTimer ( incremento, 120000, 0 ) end end addEventHandler ( "onResourceStart", getRootElement(), incremento ) prueba eso
Javier Posted October 31, 2012 Author Posted October 31, 2012 function incremento () for k, jugador in ipairs(getElementsByType("player")) do setPedArmor ( jugador, getPedArmor(jugador) + 10 ) setTimer ( incremento, 120000, 0 ) end end addEventHandler ( "onResourceStart", getRootElement(), incremento ) prueba eso No funciona.
Renkon Posted October 31, 2012 Posted October 31, 2012 function f_incremento() for _, p, in ipairs(getElementsByType("player")) do setPedArmor ( p, getPedArmor(p) + 10) setTimer (f_incremento, 120000, 1) end end addEventHandler ( "onResourceStart", resourceRoot, f_incremento )
Javier Posted October 31, 2012 Author Posted October 31, 2012 function f_incremento() for _, p, in ipairs(getElementsByType("player")) do setPedArmor ( p, getPedArmor(p) + 10) setTimer (f_incremento, 120000, 1) end end addEventHandler ( "onResourceStart", resourceRoot, f_incremento ) Me dice error. Lo que Yo quiero es que por ejemplo -- (cuando pase esto entonces dar armadura al player cada sierto tiempo)
Castillo Posted October 31, 2012 Posted October 31, 2012 Le queres dar + 10 de armadura a todos los jugadores cada 2 minutos, es eso?
Javier Posted October 31, 2012 Author Posted October 31, 2012 Le queres dar + 10 de armadura a todos los jugadores cada 2 minutos, es eso? Nono. Por ejemplo cuando un Zombie toque al player , entonces dar armadura cada cierto tiempo, al player que le toco el zombie
Arsilex Posted October 31, 2012 Posted October 31, 2012 function playerDamage_text ( attacker, weapon, bodypart, loss ) if isPedZombie( attacker) setPedArmor ( source , getPedArmor(source) + 10) end end addEventHandler ( "onPlayerDamage", getRootElement (), playerDamage_text ) prueba asi aver
Javier Posted October 31, 2012 Author Posted October 31, 2012 (edited) Usa:onPlayerDamage getElementType Estuve bien un script en la comunidad y dice.. if (attackerweapon == 0) and getElementData(attacker,"zombie") == true then --Aqui seria dar armadura cada sierto tiempo. Yo intentè asi function incremento () if (attackerweapon == 0) and getElementData(attacker,"zombie") == true then setPedArmor ( source, getPedArmor(source) + 10 ) setTimer ( incremento, 120000, 0 ) end end addEventHandler ( "onPlayerDamage", getRootElement(), incremento ) Pero no le da la armadura Edited October 31, 2012 by Guest
Castillo Posted October 31, 2012 Posted October 31, 2012 Verifica si el atacante es un "ped" con getElementType y luego si es un zombi con getElementData.
Javier Posted October 31, 2012 Author Posted October 31, 2012 Verifica si el atacante es un "ped" con getElementType y luego si es un zombi con getElementData. Yo lo puse asi. Segun el script que vi en la comunidad. if (attackerweapon == 0) and getElementData(attacker,"zombie") == true then
Arsilex Posted October 31, 2012 Posted October 31, 2012 function incremento ( attacker, weapon, bodypart, loss ) if getElementType ( attacker) == "ped"then if getElementData(attacker,"zombie") == true then setPedArmor ( source, getPedArmor(source) + 10 ) setTimer ( incremento, 120000, 0 ) end end addEventHandler ( "onPlayerDamage", getRootElement(), incremento )
Javier Posted October 31, 2012 Author Posted October 31, 2012 Pekio , tu script funciona . Pero solo le da 10 armadura cuando el zombie le pega. Yo quiero que vaya incrementando de a 10. Y me dice esto Bad argument @ 'getElementType' [Expected element at argument 1, got nil]
Arsilex Posted October 31, 2012 Posted October 31, 2012 claro eso te dice por que al pasar el tiempo se ejecuta de nuevo y da error por que no hay attacker..
Javier Posted October 31, 2012 Author Posted October 31, 2012 claro eso te dice por que al pasar el tiempo se ejecuta de nuevo y da error por que no hay attacker.. Entonces. Lo ideal seria que una vez que el zombie lo toco, se vaya incrementando.
Arsilex Posted October 31, 2012 Posted October 31, 2012 function incremento ( attacker, weapon, bodypart, loss ) if getElementType ( attacker) == "ped"then if getElementData(attacker,"zombie") == true then setPedArmor ( source, getPedArmor(source) + 10 ) setTimer ( function() setPedArmor ( source, getPedArmor(source) + 10 ) end, 120000, 0 ) end end addEventHandler ( "onPlayerDamage", getRootElement(), incremento ) no si si es asi pero pruebalo
Javier Posted October 31, 2012 Author Posted October 31, 2012 Error. 'end' expected (to close 'function' at line 55) near ''
Castillo Posted October 31, 2012 Posted October 31, 2012 playersTouched = { } function incremento ( attacker, weapon, bodypart, loss ) if ( attacker and getElementType ( attacker ) == "ped" and getElementData ( attacker, "zombie" ) ) then playersTouched [ source ] = true end end addEventHandler ( "onPlayerDamage", getRootElement(), incremento ) setTimer ( function ( ) for player, _ in pairs ( playersTouched ) do setPedArmor ( player, ( getPedArmor ( player ) + 10 ) ) end end ,120000, 0 )
Javier Posted October 31, 2012 Author Posted October 31, 2012 Solid Dice esto: lua:65: bad argument #1 to 'pairs' (table expected, got nil)
Castillo Posted October 31, 2012 Posted October 31, 2012 No se, lo acabo de probar y funciona perfectamente.
Javier Posted October 31, 2012 Author Posted October 31, 2012 No se, lo acabo de probar y funciona perfectamente. Ese mismo es que usaste?
Recommended Posts