aka Blue Posted August 23, 2016 Share Posted August 23, 2016 Me he puesto a aportar sistemas de almacenamiento en el foro y estoy creando algo más 'innovador'. La duda que tengo es de como hacer que automáticamente detecte si hay un slot disponible (ya que uso objeto[obj][slot]) mediante un loop y automáticamente también, guarde el arma en ese slot. Tengo esto, obviamente está mal, guarda el arma en todos los slots. ¿Cómo podría arreglarlo? function boxClick( theButton, theState, player ) local caja = caja_objeto[ source ] if theButton == "right" and theState == "down" then if caja then local arma = getPedWeapon( player ) local ammo = getPedTotalAmmo( player ) if arma and tonumber( arma ) > 0 then for i=1, slots_disponibles do if contenido_caja[ caja ][ i ] == nil then contenido_caja[ caja ][ i ] = { arma = arma, ammo = ammo } takeWeapon( player, arma ) outputChatBox( "Has guardado un arma en la caja", player, 0, 255, 0 ) else outputChatBox( "Todos los slots están ocupados", player, 255, 0, 0 ) end end else outputChatBox( "Debes tener un arma en la mano para guardarla en la caja.", player, 255, 145, 0 ) end end end end Gracias de antemano Link to comment
Tomas Posted August 23, 2016 Share Posted August 23, 2016 Me he puesto a aportar sistemas de almacenamiento en el foro y estoy creando algo más 'innovador'. La duda que tengo es de como hacer que automáticamente detecte si hay un slot disponible (ya que uso objeto[obj][slot]) mediante un loop y automáticamente también, guarde el arma en ese slot.Tengo esto, obviamente está mal, guarda el arma en todos los slots. ¿Cómo podría arreglarlo? function boxClick( theButton, theState, player ) local caja = caja_objeto[ source ] if theButton == "right" and theState == "down" then if caja then local arma = getPedWeapon( player ) local ammo = getPedTotalAmmo( player ) if arma and tonumber( arma ) > 0 then for i=1, slots_disponibles do if contenido_caja[ caja ][ i ] == nil then contenido_caja[ caja ][ i ] = { arma = arma, ammo = ammo } takeWeapon( player, arma ) outputChatBox( "Has guardado un arma en la caja", player, 0, 255, 0 ) else outputChatBox( "Todos los slots están ocupados", player, 255, 0, 0 ) end end else outputChatBox( "Debes tener un arma en la mano para guardarla en la caja.", player, 255, 145, 0 ) end end end end Gracias de antemano for i=1, slots_disponibles do if contenido_caja[ caja ][ i ] == nil then contenido_caja[ caja ][ i ] = { arma = arma, ammo = ammo } takeWeapon( player, arma ) outputChatBox( "Has guardado un arma en la caja", player, 0, 255, 0 ) break end outputChatBox( "Todos los slots están ocupados", player, 255, 0, 0 ) end Link to comment
aka Blue Posted August 23, 2016 Author Share Posted August 23, 2016 Gracias Tomas, justo estaba buscando el uso de break jaja. Ahora el problema me lo da aquí: if contenido_caja[ caja ][ i ] == nil then contenido_caja[ caja ][ i ] = { arma = arma, ammo = ammo } takeWeapon( player, arma ) outputChatBox( "Has guardado un arma en la caja", player, 0, 255, 0 ) else outputChatBox( "Todos los slots están ocupados", player, 255, 0, 0 ) end Cada vez que le doy click me sale el mensaje de 'Todos los slots están ocupados', quiero hacer que salga unicamente si no hay ningún slot en nil. Link to comment
Tomas Posted August 23, 2016 Share Posted August 23, 2016 Gracias Tomas, justo estaba buscando el uso de break jaja. Ahora el problema me lo da aquí: if contenido_caja[ caja ][ i ] == nil then contenido_caja[ caja ][ i ] = { arma = arma, ammo = ammo } takeWeapon( player, arma ) outputChatBox( "Has guardado un arma en la caja", player, 0, 255, 0 ) else outputChatBox( "Todos los slots están ocupados", player, 255, 0, 0 ) end Cada vez que le doy click me sale el mensaje de 'Todos los slots están ocupados', quiero hacer que salga unicamente si no hay ningún slot en nil. El código que te dejé arriba hace eso. Link to comment
aka Blue Posted August 23, 2016 Author Share Posted August 23, 2016 Nono, ya se establece en el slot libre, el problema es el mensaje de error cuando no hay slots libres, se muestra aunque haya slots libres. Link to comment
Tomas Posted August 24, 2016 Share Posted August 24, 2016 Nono, ya se establece en el slot libre, el problema es el mensaje de error cuando no hay slots libres, se muestra aunque haya slots libres. Pues a mi me funciona bien http://prntscr.com/c9ln7b Link to comment
Recommended Posts