lLinux Posted April 2, 2014 Share Posted April 2, 2014 Hola a todos, bueno lo que susede es que quiero crear vehiculos por medio de una tabla y que cuando exploten vuelvan hagan spawn segun la posicion de cada uno. Link to comment
Tomas Posted April 2, 2014 Share Posted April 2, 2014 ¿Tablas? ¿Quién las quiere? ._. function cuandoexplote ( elsecsiplayer ) local x, y, z = getElementPosition ( elsecsiplayer) elsexyvehiculo = createVehicle ( 522, x, y, z ) end function lasexyfuncion ( elsecsiplayer ) x,y,z = getElementPosition( elsecsiplayer ) elsexyvehiculo = createVehicle ( 522, x, y, z ) end addEventHandler ( "onVehicleExplode", elsexyvehiculo, cuandoexplote) addCommandHandler("aparecersexyvehiculo", lasexyfuncion) Suerte! Link to comment
lLinux Posted April 2, 2014 Author Share Posted April 2, 2014 ¿Tablas? ¿Quién las quiere? ._. function cuandoexplote ( elsecsiplayer ) local x, y, z = getElementPosition ( elsecsiplayer) elsexyvehiculo = createVehicle ( 522, x, y, z ) end function lasexyfuncion ( elsecsiplayer ) x,y,z = getElementPosition( elsecsiplayer ) elsexyvehiculo = createVehicle ( 522, x, y, z ) end addEventHandler ( "onVehicleExplode", elsexyvehiculo, cuandoexplote) addCommandHandler("aparecersexyvehiculo", lasexyfuncion) Suerte! Mira lo que are es poner vehiculos en un parqueadero entonces quiero evitarme poner varios createVehicle, y usar una tabla para evitar hacer eso y que se cree automaticamente todos. (claro si se puede) Link to comment
Tomas Posted April 2, 2014 Share Posted April 2, 2014 Si, claro que se puede vehiculos = { {522}, {521}, {623}, {513}, {134} } local vehiculostablita = unpack(vehiculos[i]) createVehicle(vehiculostablita, x,y,z) Nota: Si vas a usar onVehicleExplode no te recomiendo usar tablas porque necesitarías definir cada vehiculo para que cuando ese vehículo explote se recree nuevamente. Solo que uses [1] = bla bla bla Tu decides Link to comment
Arsilex Posted April 2, 2014 Share Posted April 2, 2014 ¿Tablas? ¿Quién las quiere? ._. function cuandoexplote ( elsecsiplayer ) local x, y, z = getElementPosition ( elsecsiplayer) elsexyvehiculo = createVehicle ( 522, x, y, z ) end function lasexyfuncion ( elsecsiplayer ) x,y,z = getElementPosition( elsecsiplayer ) elsexyvehiculo = createVehicle ( 522, x, y, z ) end addEventHandler ( "onVehicleExplode", elsexyvehiculo, cuandoexplote) addCommandHandler("aparecersexyvehiculo", lasexyfuncion) Suerte! En realidad las tablas las quieren mucha gente es una de las herramientas mejores para scriptear guardar información temporalmente sin usar mucho CPU y RAM de tu host. Ademas de ser bastante utiles una vez que pillas el truco de como controlarlas bien te sirven para muchos scripts muy avanzados Link to comment
Bc# Posted April 2, 2014 Share Posted April 2, 2014 ¿Tablas? ¿Quién las quiere? ._. function cuandoexplote ( elsecsiplayer ) local x, y, z = getElementPosition ( elsecsiplayer) elsexyvehiculo = createVehicle ( 522, x, y, z ) end function lasexyfuncion ( elsecsiplayer ) x,y,z = getElementPosition( elsecsiplayer ) elsexyvehiculo = createVehicle ( 522, x, y, z ) end addEventHandler ( "onVehicleExplode", elsexyvehiculo, cuandoexplote) addCommandHandler("aparecersexyvehiculo", lasexyfuncion) Suerte! En realidad las tablas las quieren mucha gente es una de las herramientas mejores para scriptear guardar información temporalmente sin usar mucho CPU y RAM de tu host. Ademas de ser bastante utiles una vez que pillas el truco de como controlarlas bien te sirven para muchos scripts muy avanzados Las tablas siguen siendo una variable, pero que puede guardar muchísimos mas valores que una sola variable normal, por lo que al usarlas optimizas tu código, el único pero de usarlas es que se hace mas difícil entender el código para las personas que no las manejan, o si las usas excesivamente te enredas mucho con las variables, pero por lo que veo tu si las manejas muy bien. Link to comment
Tomas Posted April 2, 2014 Share Posted April 2, 2014 Bc, ese mensaje fue para mi? ._. Me siento alagado ._. Link to comment
Bc# Posted April 2, 2014 Share Posted April 2, 2014 Bc, ese mensaje fue para mi? ._. Me siento alagado ._. Ahora que veo el script me doy cuenta que tienes un par de errores , eso hay que hacerlo con un ciclo for para el tipo de vehículo y las posiciones (También hay que crear tablas para estas). Link to comment
lLinux Posted April 2, 2014 Author Share Posted April 2, 2014 Bc, ese mensaje fue para mi? ._. Me siento alagado ._. Ahora que veo el script me doy cuenta que tienes un par de errores , eso hay que hacerlo con un ciclo for para el tipo de vehículo y las posiciones (También hay que crear tablas para estas). Me puedes dar un ejemplo? Link to comment
MTA Team 0xCiBeR Posted April 2, 2014 MTA Team Share Posted April 2, 2014 vehiculos = { [1] = {modelo,x,y,z},--Rellenar los valores [2] = {modelo,x,y,z}--Rellenar los valores } for i, v in ipairs(vehiculos) do local modelo,x,y,z = unpack(v) createVehicle(modelo, x,y,z) end Link to comment
Alexs Posted April 2, 2014 Share Posted April 2, 2014 (edited) Vaya lió que arman con un concepto tan sencillo. En su momento este tutorial me fue de mucha ayuda: http://lua-users.org/wiki/TablesTutorial vehiculos = { [1] = {modelo,x,y,z},--Rellenar los valores [2] = {modelo,x,y,z}--Rellenar los valores } for i, v in ipairs(vehiculos) do local modelo,x,y,z = unpack(v[i]) createVehicle(modelo, x,y,z) end *@.:CiBeR:. tienes un error en ese 'unpack', el debug diría: bad argument #1 to 'unpack' (table expected, got number) Edited April 2, 2014 by Guest Link to comment
Sasu Posted April 2, 2014 Share Posted April 2, 2014 vehiculos = { [1] = {modelo,x,y,z},--Rellenar los valores [2] = {modelo,x,y,z}--Rellenar los valores } for i, v in ipairs(vehiculos) do local modelo,x,y,z = unpack(v) local vehicle = createVehicle(modelo, x,y,z) setVehicleRespawnPosition(vehicle, x, y, z) end addEventHandler("onVehicleExplode", resourceRoot, function() respawnVehicle(source) end) Link to comment
lLinux Posted April 3, 2014 Author Share Posted April 3, 2014 Vaya lió que arman con un concepto tan sencillo.En su momento este tutorial me fue de mucha ayuda: http://lua-users.org/wiki/TablesTutorial vehiculos = { [1] = {modelo,x,y,z},--Rellenar los valores [2] = {modelo,x,y,z}--Rellenar los valores } for i, v in ipairs(vehiculos) do local modelo,x,y,z = unpack(v[i]) createVehicle(modelo, x,y,z) end *@.:CiBeR:. tienes un error en ese 'unpack', el debug diría: bad argument #1 to 'unpack' (table expected, got number) Me puedes explicar para que sirbe "for i, v in ipairs(vehiculos) do" Eso no lo he podido entender Link to comment
Tomas Posted April 3, 2014 Share Posted April 3, 2014 Si la tabla es (vehiculos) returnar a i = index v = value Mi traducción es pésima, lose :3 http://www.lua.org/manual/5.1/manual.html#pdf-ipairs Te recomiendo practicar con "print", te saldrá en la consola Link to comment
Alexs Posted April 3, 2014 Share Posted April 3, 2014 Me puedes explicar para que sirbe "for i, v in ipairs(vehiculos) do"Eso no lo he podido entender Es un bucle (loop) bastante sencillo, ejecuta una instrucción para todos los valores dentro de la tabla y asigna dos variables: I = Indice V= Value *Como variables tienen la capacidad de adquirir cualquier nombre que le asignes (cumpliendo con las reglas de las variables, es decir que solo pueden contener caracteres alfanuméricos y guion_bajo). tabla = { 5, 8, 6, 19 } for Indice, Valor in ipairs( tabla ) do print( Indice..': '..Valor ) end OUTPUT: 1: 5 2: 8 3: 6 4: 19 En el caso de la función 'pairs', esta se utiliza para variables de indice genérico (strings, elementos, otras tablas), por ejemplo: tabla = { Hola = 'Hi', ['Goodbye'] = 'Adios' } for Indice, Valor in pairs( tabla ) do print( Indice..': '..Valor ) end OUTPUT: Hola: Hi Goodbye: Adios Quizá no me explique de la mejor manera, así que siempre puedes agregarme a Skype para hacerme preguntas mas especificas. Link to comment
Recommended Posts