En este tutorial aprenderemos cómo crear puertas que se abran mediante un comando o al acercarse a ellas, además de agregar la validación de la Lista de Control de Acceso (ACL) a cualquiera de las dos opciones.
Primera Puerta
Para crear una puerta, comenzaremos por crear un objeto con la funcion
createObject en la posición deseada y una bandera que nos indicará si la puerta está abierta o cerrada. Dependiendo del estado de la puerta, se ejecutará un código que moverá el objeto creado, ya sea horizontal o verticalmente, según la preferencia. Posteriormente, la bandera se modificará para que se ejecute el código opuesto al cerrar o abrir la puerta. Finalmente, con la función
addCommandHandler, asignaremos un comando para abrir y cerrar la puerta según la dirección deseada.
Segunda Puerta
En este caso, seguiremos el mismo proceso que con la puerta anterior, pero añadiremos una validación adicional con la función
isObjectInACLGroup. Esta validación verificará si el jugador que emite el comando pertenece al grupo ACL definido en el código. Solo si se cumple esta condición, se permitirá el movimiento de la puerta.
Tercera Puerta
Para esta puerta, el proceso es diferente, ya que no necesitamos una bandera. En su lugar, crearemos una colisión utilizando
createColRectangle con el tamaño adecuado para que la puerta se abra y cierre. Para detectar cuando un jugador entra o sale de la colisión creada, utilizaremos los eventos
onColShapeHit y
onColShapeLeave. Además, implementaremos dos funciones, una para cada uno de estos eventos, donde podremos validar si el jugador pertenece al grupo ACL, si es necesario, antes de continuar con el movimiento del objeto mediante la función
moveObject
Conclusión
Cualquiera de estas puertas te puede ayudar a tener mejores sistemas en tu servidor, solo necesitas implementarlo de la mejor manera para que veas los resultados.