JugonesTop

Permitir que todos tengan acceso al comando de teletransporte en Minecraft servidor minecraft minecraft-commands minecraft-server

Acabo de crear un servidor Minecraft 1.13.1 y me preguntaba si había alguna forma de dar a todos el comando de teleport incluso si no son op. Si no es así, ¿hay alguna manera de que pueda hacerlas funcionar pero solo tener acceso al comando de teletransporte?

Gracias, cualquier ayuda es apreciada.

Respuestas

Teletransportarse requiere op permisos. No hay manera de permitir que la teleportación sin otros órdenes de truco (sin mods externos).

Si conoces a toda la gente en el servidor, o si conoce todos los lugares que usted desea para teletransportarse a, usted podría tener una serie de bloques de comandos que pueden ser activados. Aquí están algunas ideas:

Un bloque de comandos que teletransporta al jugador a:

  • un determinado nombre de usuario en el servidor (un bloque de comandos por jugador).
  • el jugador más cercano
  • un jugador aleatorio
  • coordenadas específicas, tales como la base de una persona o punto de referencia (un bloque de comandos por punto de referencia).

A continuación, puede colocar un bloque de comandos en cada persona de la base de que los llevaría de regreso a desovar, donde se podía elegir dónde les gustaría ir. No es tan flexible como una de comandos /tp, pero un par de bloques de comandos debe ser capaz de tomar el cuidado de la mayoría de los escenarios en los que los jugadores quieren teleport.

No se puede conceder acceso sólo a la /teleport comando, pero se puede preparar un /trigger para ellas.

Primero crear tres marcadores para las coordenadas:

/scoreboard objectives add x trigger
/scoreboard objectives add y trigger
/scoreboard objectives add z trigger

El trigger tipo es lo que les permite ser fijado por los no-OPs.

A continuación, habilite para su uso por todo el mundo:

/scoreboard players enable @a x
/scoreboard players enable @a y
/scoreboard players enable @a z

Esto debe hacerse en un reloj, porque el uso de un disparador desactiva automáticamente para ese jugador.

Ahora los jugadores pueden usar comandos como estos para establecer su meta de coordenadas:

/trigger x
/trigger x add 123
/trigger x set 456

El primero de ellos añade 1 a la tabla de indicadores de valor para que el jugador, el resto debería ser obvio.

Lo siguiente que necesita algo para iniciar la teletransportación. Usted puede usar esto con otro desencadenante de que usted comprobar constantemente si alguien lo establece en 1 para sí mismo, usted puede usar la clásica cambiado el nombre del elemento en el suelo, puede hacerlo cada vez que alguien salta de 100 veces en el lugar, etc. Instrucciones para todos estos se pueden encontrar en otros lugares.

Ahora a la actual de la teletransportación: no Se puede decir /teleport @p <his_scoreboard_value_x> etc., así que hay que utilizar una entidad de la que puede establecer las coordenadas en NBT. Una armadura de pie es un buen ficticio de la entidad:

/execute at @p[tag=toTeleport] run summon armor_stand ~ ~ ~ {Marker:1,NoGravity:1,NoAI:1,Invisible:1,Tags:["teleportHelper"]}

Esto supone que cualquiera que sea el sistema de detección que utiliza para inicializar la teletransportación le da al jugador la toTeleport etiqueta.

Y este es el truco: a Diferencia de los jugadores, otras entidades puede ser transportado a cualquier lugar utilizando su Pos NBT etiqueta, en la que puede establecer arbitraria de números usando /execute store:

/execute store result entity @e[tag=teleportHelper,limit=1] Pos[0] double 1 run scoreboard players get @p x
/execute store result entity @e[tag=teleportHelper,limit=1] Pos[1] double 1 run scoreboard players get @p y
/execute store result entity @e[tag=teleportHelper,limit=1] Pos[2] double 1 run scoreboard players get @p z

Estos tres comandos de estar en una cadena (de preferencia habitual de su bucle de bloque de comando de la cadena), seguido por este comando:

/tp @p[tag=toTeleport] @e[tag=teleportHelper,limit=1]

Es importante que te teletransporta al jugador a la armadura de pie en el mismo garrapata que se establece el Pos etiqueta, de lo contrario, el fragmento puede descargar y la teletransportación sería un fracaso.

Entonces usted acaba de limpiar todo:

/kill @e[tag=teleportHelper]
/tag remove @a[tag=toTeleport] toTeleport

Este sistema debería funcionar bien en modo multijugador, incluso si dos jugadores activar en el exacto mismo tiempo, uno simplemente va a ser teletransportado a un juego de la garrapata más tarde.

Gracias a vdvman1 en el Eigencraft Discordia chat que me dijo que /trigger trabaja con números, y que puede teletransportarse a lejos entidades si se cargan en el inicio de la garrapata.


Esta es una versión optimizada de la anterior, usando las funciones que también se encargará de la mejor multijugador, que permitirá a cualquier número de jugadores para teletransportarse en el mismo garrapata, a sus propios destinos. Escrito por vdvman1.

# run once
scoreboard objectives add x trigger
scoreboard objectives add y trigger
scoreboard objectives add z trigger
scoreboard objectives add tp trigger

# run every tick
execute as @a run function tp_trigger

# tp_trigger.mcfunction
scoreboard players enable @s x
scoreboard players enable @s y
scoreboard players enable @s z
execute if score @s tp matches 1.. run function tp_activate

# tp_activate.mcfunction
scoreboard players set @s tp 0
scoreboard players enable @s tp
scoreboard players operation #current x = @s x
scoreboard players operation #current y = @s y
scoreboard players operation #current z = @s z
tag @s add tp_trigger_source
summon area_effect_cloud ~ ~ ~ {Tags:["tp_trigger_target"]}
execute as @e[type=area_effect_cloud,tag=tp_trigger_target,limit=1] run function set_pos.mcfunction
tag @s remove tp_trigger_source

# set_pos.mcfunction
execute store result entity @s Pos[0] double 1 run scoreboard players get #current x
execute store result entity @s Pos[1] double 1 run scoreboard players get #current y
execute store result entity @s Pos[2] double 1 run scoreboard players get #current z
execute at @s run tp @a[tag=tp_trigger_source,limit=1] ~ ~ ~