Vic_RattleHead Posted June 30, 2016 Share Posted June 30, 2016 Hola, yo estoy creando un server multigamemode en este momento estoy creando uno en donde no puedes salir de alguna de las 3 zonas, para eso utilice createColCuboid y onColShapeLeave es un panel donde escoges a que zona entrar, si abandonas la zona mueres hasta ahi todo bien, el problema es que cuando selecciono otra zona el jugador muere por que salio de la zona anterior como soluciono esto ? ya intente varias cosas: local AREAA = createColCuboid ( -2882.6452636719, 1897.1723632813, 0, 1000, 1000, 1000 ) function AREAS( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end addEventHandler("onColShapeLeave", AREAA, AREAS ) local AREAB = createColCuboid ( -363.17227172852, -416.40063476563, 0, 1000, 700, 500 ) function AREAS2( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end addEventHandler("onColShapeLeave", AREAB, AREAS2 ) local AREAC = createColCuboid ( -3034.3217773438, -2238.9357910156, 1, 1150, 1300, 900 ) function AREAS3( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end addEventHandler("onColShapeLeave", AREAC, AREAS3 ) Link to comment
Simple0x47 Posted June 30, 2016 Share Posted June 30, 2016 Cuando este en la otra zona remueves el evento de la zona anterior con removeEventHandler y todos felices. Y si no sabes como llevarlo a cabo te puedo indicar unos caminos que puedas tomar como el uso de tablas. Link to comment
Vic_RattleHead Posted July 2, 2016 Author Share Posted July 2, 2016 Hola, gracias por responder, intente remover los eventos pero luego se podía salir de la zona con vida intente lo siguiente para que funcionara, creó las 3 zonas pero solo cumple la función en una zona, la ultima : COLSHAPES = { { -2882.6452636719, 1897.1723632813, 0, 1000, 1000, 1000 }, { -363.17227172852, -416.40063476563, 0, 1000, 700, 500 }, { -3034.3217773438, -2238.9357910156, 1, 1150, 1300, 900 } } for k, data in ipairs( COLSHAPES ) do local x = data[1] local y = data[2] local z = data[3] local px = data[4] local py = data[5] local pz = data[6] COLS = createColCuboid( data[1], data[2], data[3], data[4], data[5], data[6] ) end function AREAS( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end addEventHandler( "onColShapeLeave", COLS, AREAS ) La verdad no se mucho sobre tablas, pero me serviría los consejos Link to comment
Simple0x47 Posted July 2, 2016 Share Posted July 2, 2016 Hola, gracias por responder, intente remover los eventos pero luego se podía salir de la zona con vida intente lo siguiente para que funcionara, creó las 3 zonas pero solo cumple la función en una zona, la ultima : COLSHAPES = { { -2882.6452636719, 1897.1723632813, 0, 1000, 1000, 1000 }, { -363.17227172852, -416.40063476563, 0, 1000, 700, 500 }, { -3034.3217773438, -2238.9357910156, 1, 1150, 1300, 900 } } for k, data in ipairs( COLSHAPES ) do local x = data[1] local y = data[2] local z = data[3] local px = data[4] local py = data[5] local pz = data[6] COLS = createColCuboid( data[1], data[2], data[3], data[4], data[5], data[6] ) end function AREAS( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end addEventHandler( "onColShapeLeave", COLS, AREAS ) La verdad no se mucho sobre tablas, pero me serviría los consejos Necesitas una reestructuración, ya que COLS es un elemento no una tabla que almacene varios elementos, lo que lleva a su cambio continuo en el loop de esa manera provocando que la función solo se ejecute cuando el elemento cumpla el evento definido en el addEventHandler. Una manera "sucia" de hacerlo sería así. COLSHAPES = { { -2882.6452636719, 1897.1723632813, 0, 1000, 1000, 1000 }, { -363.17227172852, -416.40063476563, 0, 1000, 700, 500 }, { -3034.3217773438, -2238.9357910156, 1, 1150, 1300, 900 } } function AREAS( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end for k, data in ipairs( COLSHAPES ) do COLS = createColCuboid( data[1], data[2], data[3], data[4], data[5], data[6] ) addEventHandler( "onColShapeLeave", COLS, AREAS ) end Pero si quieres algo más optimizado puedes usar lo siguiente. C = { COL1 = { -2882.6452636719, 1897.1723632813, 0, 1000, 1000, 1000 }, COL2 = { -363.17227172852, -416.40063476563, 0, 1000, 700, 500 }, COL3 = { -3034.3217773438, -2238.9357910156, 1, 1150, 1300, 900 } } CS = { } for I = 1, #C do CS[I] = createColCuboid( unpack( C[I] ) ) addEventHandler( "onColShapeLeave", CS[I], AREAS ) end function AREAS( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end Link to comment
Vic_RattleHead Posted July 6, 2016 Author Share Posted July 6, 2016 Disculpa la demora, la verdad no me funciono ninguno, logre hacerlo funcionar el problema ahora es que no remueve el evento en algunas ocaciones: -- COMO ME FUNCIONO: COLSHAPES = { { -2882.6452636719, 1897.1723632813, 0, 1000, 1000, 1000 }, { -363.17227172852, -416.40063476563, 0, 1000, 700, 500 }, { -3034.3217773438, -2238.9357910156, 1, 1150, 1300, 900 } } function AREAS( player, matchingDimension ) local DIMENSION = getElementDimension( player ) if getElementType( player ) and DIMENSION == 1 then killPed( player ) outputChatBox( "**FUISTE ASESINADO POR ABANDONAR LA ZONA INFECTADA**", player, 255, 0, 0 ) end end for k, data in ipairs( COLSHAPES ) do local x = data[1] local y = data[2] local z = data[3] local px = data[4] local py = data[5] local pz = data[6] COLS = createColCuboid( x, y, z, px, py, pz ) addEventHandler( "onColShapeLeave", COLS , AREAS ) end -- MARKERS QUE REMUEVEN EL EVENTO DE LAS COLSHAPES AL ENTRAR EN ELLAS NK_MARKERS = { { -2674.0002441406, 1986.3414306641, 62.21745300293, "cylinder",60, 255, 0, 0, 255 }, { -2462.0129394531, 2137.16796875, 11.354687690735, "cylinder",10, 255, 0, 0, 255 }, { 272.48095703125, -380.62576293945, 9.785270690918, "cylinder",10, 255, 0, 0, 255 }, { -112.59156799316, -121.5378036499, 4.1171875, "cylinder",60, 255, 0, 0, 255 }, { -1997.6311035156, -1543.4739990234, 84.066291809082, "cylinder",10, 255, 0, 0, 255 }, { -2259.7023925781, -1555.4602050781, 490.1413269043, "cylinder",10, 255, 0, 0, 255 } } for k, MK in ipairs ( NK_MARKERS ) do local mx = MK[1] local my = MK[2] local mz = MK[3] local mtype = MK[4] local msize = MK[5] local mr = MK[6] local mg = MK[7] local mb = MK[8] local ma = MK[9] NK_MARK = createMarker( mx, my, mz, mtype, msize, mr, mg, mb, ma ) setElementDimension( NK_MARK, 1 ) end function NOKILL( player, matchingDimension ) removeEventHandler( "onColShapeLeave", COLS, AREAS ) end addEventHandler( "onMarkerHit", NK_MARK, NOKILL ) y otra pregunta como logro que al terminar la cancion continue con otra aleatoriamente intente esto pero solo cambia de cancion al reiniciar el recurso: SONG = { [1] = {"SOUNDS/SONGG.mp3"}, [2] = {"SOUNDS/SONGG2.mp3"}, [3] = {"SOUNDS/SONGG3.mp3"}, [4] = {"SOUNDS/SONGG4.mp3"}, [5] = {"SOUNDS/SONGG5.mp3"} } --CANCION addEventHandler("onClientResourceStart", resourceRoot, function(source) local CANCION = playSound3D( unpack ( SONG [ math.random ( #SONG ) ] ) , 899.67602539063, 7366.8427734375, 9.5646343231201, true ) setSoundMaxDistance(CANCION, 190 ) setSoundVolume ( CANCION, 1.0 ) setElementDimension(CANCION, 5) end ) Link to comment
Recommended Posts