aka Blue Posted August 22, 2015 Share Posted August 22, 2015 (edited) Bueno, pues decidí hacer el sistema de tuneos por tablas y pues realmente estoy algo perdido porque nunca trabajé con tablas antes aunque sé algo... Lo que quiero hacer es que si es el vehículo de la tabla, añada al "pane" la upgrade y al darle click se la ponga y le quite el dinero que está en la tabla asignado. No sé si es posible, supongo que sí (? Dejo mi código. local delanteros = { --Nombre, id, precio, vehiculo {"Slamin", 1188, 200, "Savanna"}, {"Chrome", 1189, 200, "Savanna"}, {"Slamin", 1190, 200, "Tornado"}, {"Chrome", 1191, 200, "Tornado"}, {"Slamin", 1185, 200, "Remington"}, {"Chrome", 1179, 200, "Remington"}, {"Slamin", 1181, 200, "Blade"}, {"Chrome", 1182, 200, "Blade"}, {"Chrome", 1176, 200, "Broadway"}, {"Chrome", 1174, 200, "Broadway"}, {"Alien", 1169, 200, "Sultan"}, {"X-Flow", 1170, 200, "Sultan"}, {"Alien", 1171, 200, "Elegy"}, {"X-Flow", 1172, 200, "Elegy"}, {"Alien", 1160, 200, "Jester"}, {"X-Flow", 1173, 200, "Jester"}, {"Alien", 1166, 200, "Uranus"}, {"X-Flow", 1165, 200, "Uranus"}, {"Alien", 1155, 200, "Stratum"}, {"X-Flow", 1157, 200, "Stratum"}, {"Alien", 1153, 200, "Flash"}, {"X-Flow", 1152, 200, "Flash"}, } veh = getPedOccupiedVehicle(source) nombre = getVehicleName(veh) windows.pdelanteros = { { type = "label", text = nombre, font = "bankghotic", alignX = "center", } { type = "panes", panes = {} } } PD: Lo sé, quizás sea un desastre pero es mi primera vez trabajando así con tablas . Edited August 24, 2015 by Guest Link to comment
Pipee20k Posted August 22, 2015 Share Posted August 22, 2015 EDIT: No había leído bien el post, no tenía que ver con tu duda Link to comment
alex17 Posted August 22, 2015 Share Posted August 22, 2015 y que es lo que quieres hacer explicame bien :8 Link to comment
aka Blue Posted August 22, 2015 Author Share Posted August 22, 2015 Pues como ves, en las tablas sale el nombre del upgrade, su ID, el precio y el vehiculo para el cual es compatible. Lo que quiero hacer es que si el vehículo es compatible con x upgrades, aparezcan en unos panes y que al darle click, le quite el dinero del precio (si lo tiene, sino, error) y le ponga pues... el upgrade 290 mensajes Link to comment
alex17 Posted August 22, 2015 Share Posted August 22, 2015 mm y puedes mostrar la parte del panel Link to comment
aka Blue Posted August 22, 2015 Author Share Posted August 22, 2015 El panel lo quiero hacer por tablas también veh = getPedOccupiedVehicle(source) nombre = getVehicleName(veh) windows.pdelanteros = { { type = "label", text = nombre, font = "bankghotic", alignX = "center", } { type = "panes", panes = {} } } Viva Mabako. Link to comment
aka Blue Posted August 22, 2015 Author Share Posted August 22, 2015 Siento doble post. Los panes serían algo como ésto. Es el GUI de los shops de MTA Paradise. --[[ Copyright (c) 2010 MTA: Paradise This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ]] local closeButton = { type = "button", text = "Cerrar", onClick = function( key ) if key == 1 then hide( ) windows.shop = { closeButton } end end, } windows.shop = { closeButton } function updateShopContent( content, name ) -- scrap what we had before windows.shop = { onClose = function( ) triggerServerEvent( "shops:close", getLocalPlayer( ) ) windows.shop = { closeButton } end, { type = "label", text = name, font = "bankgothic", alignX = "center", }, { type = "pane", panes = { } } } -- let's add all items for k, value in ipairs( content ) do local description = value.description or exports.items:getDescription( value.itemID ) table.insert( windows.shop[2].panes, { image = exports.items:getImage( value.itemID, value.itemValue, value.name ) or ":players/images/skins/-1.png", title = value.name or exports.items:getName( value.itemID ), text = "Cuesta $" .. value.price .. ( description and description ~= "" and ( " - " .. description ) or "" ), onHover = function( cursor, pos ) dxDrawRectangle( pos[1], pos[2], pos[3] - pos[1], pos[4] - pos[2], tocolor( unpack( { 0, 255, 0, 31 } ) ) ) end, onClick = function( key ) if key == 1 then triggerServerEvent( "shops:buy", getLocalPlayer( ), k ) end end, wordBreak = true, } ) end -- add a close button as well table.insert( windows.shop, closeButton ) end Link to comment
alex17 Posted August 23, 2015 Share Posted August 23, 2015 para obtener el nombre id precio y el vehículo deberás usar un loop for index, node in pairs ( delanteros ) do local nombre = node[1] local id = node[2] local precio = node[3] local vehiculo = node[4] end Link to comment
Kilfwan Posted August 23, 2015 Share Posted August 23, 2015 para obtener el nombre id precio y el vehículo deberás usar un loop for index, node in pairs ( delanteros ) do local nombre = node[1] local id = node[2] local precio = node[3] local vehiculo = node[4] end Mmm de pudieras pasar la página completa de donde sacastes el loop, lo andaba buscando pero quiero leer para entender mas, Te lo agradecería, venadHD hizo un loop en un post mio pero a veces no entiendo solo viendo, tengo que leer su concepto, gracias . Link to comment
aka Blue Posted August 23, 2015 Author Share Posted August 23, 2015 Existen los PM's, kilfmwan... Míralo en la página de LUA. Link to comment
Kilfwan Posted August 24, 2015 Share Posted August 24, 2015 Existen los PM's, kilfmwan... Míralo en la página de LUA. Jaja, lo siento andaba en mi teléfono. Link to comment
aka Blue Posted August 24, 2015 Author Share Posted August 24, 2015 Abro nuevamente el tema porque tengo un pequeño problemilla. Resulta que ya me aparecen los upgrades, todo perfecto (gracias, Alex ), pero no se actualizan. Me explico. Como veis, en la tabla aparecen diferentes mejoras, su nombre, su precio blabla, pues lo que pasa es que por ejemplo me subo a un savanna y no me aparece nada, le doy a /restart y me aparecen sus mejoras. Acto seguido, me subo a un sultán y me aparecen las mejoras del savanna, hago /restart y ya me aparecen las de Sultán y así. local delanteros = { --Nombre, id, precio, vehiculo {"Slamin", 1188, 200, "Savanna"}, {"Chrome", 1189, 200, "Savanna"}, {"Slamin", 1190, 200, "Tornado"}, {"Chrome", 1191, 200, "Tornado"}, {"Slamin", 1185, 200, "Remington"}, {"Chrome", 1179, 200, "Remington"}, {"Slamin", 1181, 200, "Blade"}, {"Chrome", 1182, 200, "Blade"}, {"Chrome", 1176, 200, "Broadway"}, {"Chrome", 1174, 200, "Broadway"}, {"Alien", 1169, 200, "Sultan"}, {"X-Flow", 1170, 200, "Sultan"}, {"Alien", 1171, 200, "Elegy"}, {"X-Flow", 1172, 200, "Elegy"}, {"Alien", 1160, 200, "Jester"}, {"X-Flow", 1173, 200, "Jester"}, {"Alien", 1166, 200, "Uranus"}, {"X-Flow", 1165, 200, "Uranus"}, {"Alien", 1155, 200, "Stratum"}, {"X-Flow", 1157, 200, "Stratum"}, {"Alien", 1153, 200, "Flash"}, {"X-Flow", 1152, 200, "Flash"}, } windows.meca1 = { { type = "label", text = "Paragolpes", font = "bankgothic", alignX = "center", }, { type = "pane", panes = {} } } for index, node in ipairs ( delanteros ) do local veh = getPedOccupiedVehicle(getLocalPlayer()) if getVehicleName(veh) == node[4] then table.insert( windows.meca1[2].panes, { image = ":players/images/skins/-1.png", title = "Parachoques "..node[1], text = "Cuesta "..node[3].."\nUn bonito parachoques para tu coche a un precio económico.", onHover = function( cursor, pos ) dxDrawRectangle( pos[1], pos[2], pos[3] - pos[1], pos[4] - pos[2], tocolor( unpack( { 0, 255, 120, 31 } ) ) ) end, onClick = function( key ) if key == 1 then --AQUI LA MEJORA A AÑADIR end end, wordBreak = true, } ) end end Link to comment
Kilfwan Posted August 24, 2015 Share Posted August 24, 2015 Pone la Id del vehículo en vez de su nombre. Link to comment
aka Blue Posted August 24, 2015 Author Share Posted August 24, 2015 No creo que sea por eso Link to comment
alex17 Posted August 24, 2015 Share Posted August 24, 2015 tal ves sea por que no ejecutas ningun evento y solo se inicia el loop al iniciar el script usa onClientVehicleEnter Link to comment
aka Blue Posted August 24, 2015 Author Share Posted August 24, 2015 Ahora sí. El problema es que se van acumulando cuando te subes a un coche. Osea, yo me subo a un Savanna y me pone Slammin y Chrome, luego, cuando me subo a un Sultan, me sale, Slammin y Chrome + Alien y X-Flow. Dependiendo de las veces que te subas me va agregando más y más... PD: Ahora subo una SS para que se vea. local delanteros = { --Nombre, id, precio, vehiculo {"Slamin", 1188, 200, "Savanna"}, {"Chrome", 1189, 200, "Savanna"}, {"Slamin", 1190, 200, "Tornado"}, {"Chrome", 1191, 200, "Tornado"}, {"Slamin", 1185, 200, "Remington"}, {"Chrome", 1179, 200, "Remington"}, {"Slamin", 1181, 200, "Blade"}, {"Chrome", 1182, 200, "Blade"}, {"Chrome", 1176, 200, "Broadway"}, {"Chrome", 1174, 200, "Broadway"}, {"Alien", 1169, 200, "Sultan"}, {"X-Flow", 1170, 200, "Sultan"}, {"Alien", 1171, 200, "Elegy"}, {"X-Flow", 1172, 200, "Elegy"}, {"Alien", 1160, 200, "Jester"}, {"X-Flow", 1173, 200, "Jester"}, {"Alien", 1166, 200, "Uranus"}, {"X-Flow", 1165, 200, "Uranus"}, {"Alien", 1155, 200, "Stratum"}, {"X-Flow", 1157, 200, "Stratum"}, {"Alien", 1153, 200, "Flash"}, {"X-Flow", 1152, 200, "Flash"}, } windows.meca1 = { { type = "label", text = "Paragolpes", font = "bankgothic", alignX = "center", }, { type = "pane", panes = {} }, { type = "button", text = "Cerrar", alignX = "center", onClick = function() hide() showCursor(false) destroyElement() end, } } addEventHandler("onClientVehicleEnter", getRootElement(), function() for index, node in ipairs ( delanteros ) do if getVehicleName(source) == node[4] then table.insert( windows.meca1[2].panes, { image = ":players/images/skins/-1.png", title = "Parachoques "..node[1], text = "Cuesta "..node[3].."\nUn bonito parachoques para tu coche a un precio económico.", onHover = function( cursor, pos ) dxDrawRectangle( pos[1], pos[2], pos[3] - pos[1], pos[4] - pos[2], tocolor( unpack( { 0, 255, 120, 31 } ) ) ) end, onClick = function( key ) if key == 1 then hide() showCursor(false) end end, wordBreak = true, } ) end end end ) Link to comment
Sensacion Posted August 24, 2015 Share Posted August 24, 2015 Limpia la tabla cada vez que entren al vehículo Link to comment
aka Blue Posted August 24, 2015 Author Share Posted August 24, 2015 ¿Y cómo se puede hacer eso? Link to comment
Sensacion Posted August 24, 2015 Share Posted August 24, 2015 Agregando esto: windows.meca1[2].panes = {} debajo de: if getVehicleName(source) == node[4] then Link to comment
aka Blue Posted August 24, 2015 Author Share Posted August 24, 2015 Ahora solo aparece 1 de las mejoras del vehículo. ¿Se puede arreglar? Link to comment
Sensacion Posted August 24, 2015 Share Posted August 24, 2015 (edited) Reemplaza esa función por esto: addEventHandler("onClientVehicleEnter", getRootElement(), function() windows.meca1[2].panes = {} for index, node in ipairs ( delanteros ) do if getVehicleName(source) == node[4] then table.insert( windows.meca1[2].panes, { image = ":players/images/skins/-1.png", title = "Parachoques "..node[1], text = "Cuesta "..node[3].."\nUn bonito parachoques para tu coche a un precio económico.", onHover = function( cursor, pos ) dxDrawRectangle( pos[1], pos[2], pos[3] - pos[1], pos[4] - pos[2], tocolor( unpack( { 0, 255, 120, 31 } ) ) ) end, onClick = function( key ) if key == 1 then hide() showCursor(false) end end, wordBreak = true, } ) end end end ) Edited August 24, 2015 by Guest Link to comment
aka Blue Posted August 24, 2015 Author Share Posted August 24, 2015 Ahora no aparecen. Link to comment
Sensacion Posted August 24, 2015 Share Posted August 24, 2015 copialo de nuevo, me olvidé de borrar windows.meca1[2].panes = {} Link to comment
Recommended Posts