depato123 Posted November 12, 2013 Share Posted November 12, 2013 Hola tengo un problema con esto modShops[ 1 ] = { } --modShops[ 1 ].colShape = createColTube( -2723.7060, 217.2689, 4.0, 200, 1000 ) modShops[ 1 ].veh = false modShops[ 1 ].marker = createMarker( -2275.7241210938, 2413.0808105469, 4.4324097633362, "cylinder", 4.5, 255, 0, 0, 100 ) modShops[ 1 ].name = "Wheel Arch Angles" --createBlipAttachedTo( modShops[ 1 ].colShape, 27 ) createBlipAttachedTo( modShops[ 1 ].marker, 27, 2, 0,0,0,255, 0, 180 ); function markerHit (hitPlayer, matchingDimension) if dimension and getElementType( player ) == "player" then outputChatBox ("Para mejorar el auto decir /mejorarcoche", hitPlayer, 255, 0, 0, false) addCommandHandler( "an", HitMarker ) end end addEventHandler ("onMarkerHit", getRootElement(), markerHit) function markerHit (leavePlayer, matchingDimension) if dimension and getElementType( player ) == "player" then removeCommandHandler ( "an", HitMarker ) end end addEventHandler ("onMarkerLeave", getRootElement(), markerHit) function HitMarker(thePlayer, commandName, ...) if dimension and getElementType( player ) == "player" then local vehicle = getPedOccupiedVehicle( player ) if vehicle then local driver = getVehicleController( vehicle ) if driver == player and not getVehicleInModShop( source ) then for k,v in ipairs( modShops ) do if modShops[ k ].marker == source and getElementType( vehicle ) == "vehicle" then timers[ vehicle ] = setTimer( unfreezeVehicleInModShop, 60000 * TIME_IN_MODSHOP, 1, vehicle ) timersClient[ vehicle ] = setTimer( triggerClientEvent, 60000 * TIME_IN_MODSHOP - 200, 1, driver, "modShop_clientResetVehicleUpgrades", driver ) setModShopBusy( source, vehicle ) freezVehicleInModShop( vehicle, modShops[ k ].marker ) triggerClientEvent( driver, "onClientPlayerEnterModShop", player, vehicle, getPlayerMoney( player ), modShops[ k ].name ) end end end end end end addEventHandler( "onMarkerHit", getResourceRootElement( getThisResource( ) ),) Lo que tendria que pasar en el script es que al pasar con un auto por arriba del marker apareciera un mensaje diciendo "Para mejorar el auto decir /mejorarcoche" y apareciera un comando /mejorarcoche. y al salir del marker el comando desapareciera. El problema es que cuando quise probar el resource no se crea el marker y aparece esto en el debug script [2013-11-12 18:02:24] SCRIPT ERROR: modshop\server.lua:103: unexpected symbol near ')' [2013-11-12 18:02:24] ERROR: Loading script failed: modshop\server.lua:103: unexpected symbol near ')' ayudaaa por favor Link to comment
Castillo Posted November 12, 2013 Share Posted November 12, 2013 Ese codigo no tiene 103 lineas, y el error esta en esa linea. A que linea corresponde la linea 103 en el codigo que posteaste? Link to comment
depato123 Posted November 12, 2013 Author Share Posted November 12, 2013 Ese codigo no tiene 103 lineas, y el error esta en esa linea.A que linea corresponde la linea 103 en el codigo que posteaste? Perdon. lo olvide. Es la linea 46 el addEventHandler Link to comment
Castillo Posted November 12, 2013 Share Posted November 12, 2013 addEventHandler( "onMarkerHit", getResourceRootElement( getThisResource( ) ),) Cambialo por: addEventHandler ( "onMarkerHit", getResourceRootElement( getThisResource( ) ), HitMarker ) Link to comment
depato123 Posted November 12, 2013 Author Share Posted November 12, 2013 Otra pregunta. ¿Como se llama el marker? modShops[ 1 ].marker = createMarker( -2275.7241210938, 2413.0808105469, 4.4324097633362, "cylinder", 4.5, 255, 0, 0, 100 ) Porque tengo esto if (source == modShops) then pero no me sirve, como que no me reconoce el marker Link to comment
Castillo Posted November 12, 2013 Share Posted November 12, 2013 El marker es: modShops[ 1 ].marker Link to comment
depato123 Posted November 12, 2013 Author Share Posted November 12, 2013 (edited) Ya lo cambie por if (source == modShops[ 1 ].marker) then ¿Para que sirve esto? if dimension and getElementType( player ) == "player" then Pero no ocurre la funcion esta al usar el comando function HitMarker(thePlayer, commandName, ...) if dimension and getElementType( player ) == "player" then local vehicle = getPedOccupiedVehicle( player ) if vehicle then local driver = getVehicleController( vehicle ) if driver == player and not getVehicleInModShop( source ) then for k,v in ipairs( modShops ) do if modShops[ k ].marker == source and getElementType( vehicle ) == "vehicle" then timers[ vehicle ] = setTimer( unfreezeVehicleInModShop, 60000 * TIME_IN_MODSHOP, 1, vehicle ) timersClient[ vehicle ] = setTimer( triggerClientEvent, 60000 * TIME_IN_MODSHOP - 200, 1, driver, "modShop_clientResetVehicleUpgrades", driver ) setModShopBusy( source, vehicle ) freezVehicleInModShop( vehicle, modShops[ k ].marker ) triggerClientEvent( driver, "onClientPlayerEnterModShop", player, vehicle, getPlayerMoney( player ), modShops[ k ].name ) end end end end end end PD: el resource original venia así addEventHandler( "onMarkerHit", getResourceRootElement( getThisResource( ) ),) function( player, dimension ) if dimension and getElementType( player ) == "player" then local vehicle = getPlayerOccupiedVehicle( player ) if vehicle then local driver = getVehicleController( vehicle ) if driver == player and not getVehicleInModShop( source ) then for k,v in ipairs( modShops ) do if modShops[ k ].marker == source and getElementType( vehicle ) == "vehicle" then timers[ vehicle ] = setTimer( unfreezeVehicleInModShop, 60000 * TIME_IN_MODSHOP, 1, vehicle ) timersClient[ vehicle ] = setTimer( triggerClientEvent, 60000 * TIME_IN_MODSHOP - 200, 1, driver, "modShop_clientResetVehicleUpgrades", driver ) setModShopBusy( source, vehicle ) freezVehicleInModShop( vehicle, modShops[ k ].marker ) triggerClientEvent( driver, "onClientPlayerEnterModShop", player, vehicle, getPlayerMoney( player ), modShops[ k ].name ) end end end end end end ) Yo lo cambie para que al pasar por el marker se creara un comando y al usar ese comando se ejecutara las funciones pero al usar el comando no ejecuta las funciones Edited November 13, 2013 by Guest Link to comment
Chaz-CR Posted November 13, 2013 Share Posted November 13, 2013 Que muestra el debugscript 3??? De paso no crees que seria mejor solo usar un hitElement y que cuando pases por el marker te abra el panel? De igual manera postea el error del debug, porque no veo el addCommandHandler ahi. Link to comment
depato123 Posted November 13, 2013 Author Share Posted November 13, 2013 Intenté poner la funcion por comandos envez de marcador y al poner el comando no funciona function HitMarker(player, dimension) if dimension and getElementType( player ) == "player" then local vehicle = getPedOccupiedVehicle( player ) if vehicle then local driver = getVehicleController( vehicle ) if driver == player and not getVehicleInModShop( source ) then for k,v in ipairs( modShops ) do if modShops[ k ].marker == source and getElementType( vehicle ) == "vehicle" then timers[ vehicle ] = setTimer( unfreezeVehicleInModShop, 60000 * TIME_IN_MODSHOP, 1, vehicle ) timersClient[ vehicle ] = setTimer( triggerClientEvent, 60000 * TIME_IN_MODSHOP - 200, 1, driver, "modShop_clientResetVehicleUpgrades", driver ) setModShopBusy( source, vehicle ) freezVehicleInModShop( vehicle, modShops[ k ].marker ) triggerClientEvent( driver, "onClientPlayerEnterModShop", player, vehicle, getPlayerMoney( player ), modShops[ k ].name ) end end end end end end addCommandHandler( "mejorarcoche", HitMarker ) Link to comment
Recommended Posts