JuanM27 Posted January 10, 2012 Share Posted January 10, 2012 hola que tal, bueno tengo un problema que no puedo resolver ni con los ejemplos de la wiki y no se a quien preguntar mas que en este foro. bueno le comento, estoy queriendo poner la barrera en la entrada del garage de la comisaria de LS, ya tengo el id del objecto las posiciones y rotaciones. pero cuando hago el codigo para que se mueva si un player tiene un skin se levante o se baje la barrera. dejo el codigo que tengo en mi script, para que vean y me puedan dicir que es lo que tengo mal PoliBarraObj1 = createObject ( 968, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 90, 89) PoliBarra1 = createColTube ( 1541, -1630, 12.5, 25, 10) function BARRA1 ( player ) if ( getElementType ( player ) == "player" ) then local skin = getElementModel ( player ) if skin == 280 or skin == 281 or skin == 282 or skin == 283 or skin == 284 or skin == 285 or skin == 286 or skin == 287 or skin == 288 or skin == 265 or skin == 266 or skin == 267 then setTimer ( function () moveObject ( PoliBarraObj1, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 0, 89) end, 500, 1 ) else setTimer ( function () -- outputChatBox ( "Usted no es Policia!!, alejese YA!", player, 0,0,200 ) end, 100, 1 ) end local seat = getPedOccupiedVehicleSeat(player) if seat == 0 then local car = getPedOccupiedVehicle(player) local skin = getElementModel ( player ) if skin == 280 or skin == 281 or skin == 282 or skin == 283 or skin == 284 or skin == 285 or skin == 286 or skin == 287 or skin == 288 or skin == 265 or skin == 266 or skin == 267 then setTimer ( function () moveObject ( PoliBarraObj1, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 90, 89) end, 500, 1 ) end end end end addEventHandler( "onColShapeHit", PoliBarra1, BARRA1 ) function Barra1Close () setTimer ( function () moveObject ( PoliBarraObj1, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 90, 89) end, 500, 1 ) end addEventHandler( "onColShapeLeave", PoliBarra1, Barra1Close ) esto lo tengo del lado server muchas gracias Link to comment
Castillo Posted January 10, 2012 Share Posted January 10, 2012 PoliBarraObj1 = createObject ( 968, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 90, 89) PoliBarra1 = createColTube ( 1541, -1630, 12.5, 25, 10) local policeSkins = {[265] = true, [266] = true, [267] = true} for i=280, 288 do policeSkins[i] = true end function BARRA1 ( player ) if ( getElementType ( player ) == "player" ) then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 11544.5999755859,-1630.8000488281, 13.300000190735, 0, 0, 89) else outputChatBox ( "Usted no es Policia!!, alejese YA!", player, 0,0,200 ) end elseif ( getElementType ( player ) == "vehicle" ) then local player = getVehicleController(player) local seat = getPedOccupiedVehicleSeat(player) if (seat == 0 )then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 90, 89) end end end end addEventHandler( "onColShapeHit", PoliBarra1, BARRA1 ) function Barra1Close () moveObject ( PoliBarraObj1, 3000, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 90, 89) end addEventHandler( "onColShapeLeave", PoliBarra1, Barra1Close ) Tienes algo mal en la posicion al abrirse, porque no se abre, es como si se teleportase a otra parte. Link to comment
JuanM27 Posted January 10, 2012 Author Share Posted January 10, 2012 PoliBarraObj1 = createObject ( 968, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 90, 89) PoliBarra1 = createColTube ( 1541, -1630, 12.5, 25, 10) local policeSkins = {[265] = true, [266] = true, [267] = true} for i=280, 288 do policeSkins[i] = true end function BARRA1 ( player ) if ( getElementType ( player ) == "player" ) then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 11544.5999755859,-1630.8000488281, 13.300000190735, 0, 0, 89) else outputChatBox ( "Usted no es Policia!!, alejese YA!", player, 0,0,200 ) end elseif ( getElementType ( player ) == "vehicle" ) then local player = getVehicleController(player) local seat = getPedOccupiedVehicleSeat(player) if (seat == 0 )then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 90, 89) end end end end addEventHandler( "onColShapeHit", PoliBarra1, BARRA1 ) function Barra1Close () moveObject ( PoliBarraObj1, 3000, 1544.5999755859,-1630.8000488281, 13.300000190735, 0, 90, 89) end addEventHandler( "onColShapeLeave", PoliBarra1, Barra1Close ) Tienes algo mal en la posicion al abrirse, porque no se abre, es como si se teleportase a otra parte. Ah, gracias por ejemplo lo probe y asi anda pero no se sube la barrera, sino que se baja (osea se me mete abajo del suelo) tenia mal esta posicion 11544.5999755859 ? Pd: yo las posiciones las tome del map edit, esta bien que use esas posiciones? saludos y gracias Link to comment
Castillo Posted January 10, 2012 Share Posted January 10, 2012 Yo ni idea, nada mas te arregle el script, las posiciones las tendras que conseguir vos . Link to comment
JuanM27 Posted January 10, 2012 Author Share Posted January 10, 2012 disculpame que sea molesto, es que de verdad no entiendo. las posiciones son esta Barrera Baja = 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 90, 89 Barrera Levantada = 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 0, 89 pero yo pongo esas posiciones, pero en vez de levantar o bajar la barrera gira a 90º busque en la wiki sobre moveObject pero la verdad no explican bien y solo da 3 ejemplos en comandos, pero ninguno me sirbio saludos Link to comment
RekZ Posted January 10, 2012 Share Posted January 10, 2012 creo que para hacerla mover no tienes que poner la rotacion solo se pone en la parte donde creas el objeto en los demas apartados no Link to comment
Castillo Posted January 10, 2012 Share Posted January 10, 2012 Para este tipo de puerta si necesita la rotacion, pero tenes que calcularlo bien. Link to comment
JuanM27 Posted January 10, 2012 Author Share Posted January 10, 2012 listo amigos ya lo descubri como es el tema del moveobject para que la barrera levante es moveObject ( PoliBarraObj1, 3000, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, -90, 0) y para que se baje es moveObject ( PoliBarraObj1, 3000, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 90, 0) la verdad me costo entenderlo. pero muchas gracias por su tiempo saludos Link to comment
JuanM27 Posted January 11, 2012 Author Share Posted January 11, 2012 hola de nuevo, ya se que anda pero tengo una duda se le podria poner algo a este codigo para que siempre este en el mismo punto final e inicial? osea un tope le explico por que, si yo paso la barrera sube y baja bien, pero si pasan 2 jugadores, y 1 se detiene la barrera cuando baja se baja mas del suelo y despues cuando pasa otro la barrera no se levanta hasta donde se tiene que levantar, y tengo que estar reiniciando el script para que la barrera se quede en su lugar. ejemplo yo paso con un auto y no dejo que la barrera se levante los -90 que yo tengo en el scrip, pongalen que se levanta solo -60, pero al bajarse se baja los 90, y queda bajo el nivel de altura que yo le di. pero cuando alguien vuelve a pasar, la barrera no se levanta los -90, sino que su rotacion vuelve a ser -60 nose si me entiende como me estoy dando a esplicar, ami me gustaria que sea como por ejemplo el server cit o sx entre otros que la barrera se levanta siempre lo mismo y no importa si el jugador paso saltando, en bici, o corriendo. asi es como yo lo tengo. function BARRA1 ( player ) if ( getElementType ( player ) == "player" ) then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, -85, 0) -- else -- outputChatBox ( "Usted no es Policia!!, alejese YA!", player, 0,0,200 ) end elseif ( getElementType ( player ) == "vehicle" ) then local player = getVehicleController(player) local seat = getPedOccupiedVehicleSeat(player) if (seat == 0 )then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, -85, 0) end end end end addEventHandler( "onColShapeHit", PoliBarra1, BARRA1 ) function Barra1Close (player) if ( getElementType ( player ) == "player" ) then local skin = getElementModel ( player ) if (policeSkins[skin]) then moveObject ( PoliBarraObj1, 3000, 1544.5999755859, -1630.8000488281, 13.300000190735, 0, 85, 0) end end end addEventHandler( "onColShapeLeave", PoliBarra1, Barra1Close ) que me faltaria agregarle para que funcione bien? saludos y muchas gracias Link to comment
Castillo Posted January 11, 2012 Share Posted January 11, 2012 Te sugiero que verifiques la rotacion al intentar abrirla/cerrarla. Yo lo hice en este topic: viewtopic.php?f=145&t=38373&p=394623 Link to comment
JuanM27 Posted January 11, 2012 Author Share Posted January 11, 2012 Te sugiero que verifiques la rotacion al intentar abrirla/cerrarla.Yo lo hice en este topic: viewtopic.php?f=145&t=38373&p=394623 listo muchas gracias, me fue util ese post saludos Link to comment
Recommended Posts