Jump to content

Bugs Teleports


Recommended Posts

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 by Juan_Camilo
Link to comment

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

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.

  • Like 1
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...