Juan_Camilo Posted June 10, 2020 Share Posted June 10, 2020 (edited) hola, tengo una duda acerca de un bug que me surgió, he estado haciendo un script de teleports y he hecho 2 markers de entrada en diferente posicion al mismo interior pero a difrente dimension, al utilizar el maker para salir del interior me manda a la primera salida que asigne que hago en ese caso Edited June 10, 2020 by Juan_Camilo Link to comment
error403 ツ Posted June 11, 2020 Share Posted June 11, 2020 Pensándolo bien a mi también me pasa, creo un market en el interior 3 dimensión 2000, y estando en el mismo interior pero diferente dimensión se abre el panel que coloque en ese market. Ojo el market no se ve, pero abre el panel. Teniendo en cuenta lo siguiente if getElementDimension =~ 2000 end getElementInterior =~ 3 then muestra el panel. Link to comment
jeffry4 Posted June 12, 2020 Share Posted June 12, 2020 Buenas! La solución para este problema, es obtener la dimensión y el interior del jugador y compararla con la del marker. Un breve ejemplo: playerMarker = createMarker(1601, 1212, 12.434, "cylinder", 15, 10, 244, 23, 2) setElementDimension(playerMarker, 43) setElementInterior(playerMarker, 1) addEventHandler("onMarkerHit", playerMarker, function(hitElement, matchingDimension) if getElementDimension(source) == getElementDimension(hitElement) && getElementInterior(source) == getElementDimension(hitElement) then outputChatBox("Estás dentro del marker.", hitElement, 0, 255, 0) end end) Sí que es cierto que en principio, debería de valer simplemente comparando la dimensión del jugador, y no el interior (esto es hilar más fino, nada más). Así, podemos hacerlo sólo comparando la dimensión del jugador respecto del marker, a través del 'matchingDimension' que nos llega. playerMarker = createMarker(1601, 1212, 12.434, "cylinder", 15, 10, 244, 23, 2) setElementDimension(playerMarker, 43) setElementInterior(playerMarker, 1) addEventHandler("onMarkerHit", playerMarker, function(hitElement, matchingDimension) if matchingDimension == true then outputChatBox("Estás dentro del marker.", hitElement, 0, 255, 0) end end) Lo que no va a funcionar nunca, o al menos como esperamos, es esto: playerMarker = createMarker(1601, 1212, 12.434, "cylinder", 15, 10, 244, 23, 2) setElementDimension(playerMarker, 43) setElementInterior(playerMarker, 1) addEventHandler("onMarkerHit", playerMarker, function(hitElement, matchingDimension) if getElementDimension(playerMarker) == 43 && getElementInterior(playerMarker) == 1 then -- Error, comparamos los datos del marker, pero no los del jugador. outputChatBox("Estás dentro del marker.", hitElement, 0, 255, 0) end end) ¿Por qué? Porque cuando un player que esté en la dimensión 50 pase por el marker, el 'getElementDimension(playerMarker)' va a devolver 43, que es donde está creado en teoría el marker, y no el 50 que es donde está el player. Así, le dirá al player que está dentro del marker, cuando en realidad no debería de estarlo. Saludos. 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now