"> Foro - [Resuelto] Detectar si una entidad o un jugador salta en Bloques de comandos - Page 1 of 1
Noviembre 22, 2024, 06:50:58 am
Visitante

Autor Tema: [Resuelto] Detectar si una entidad o un jugador salta  (Leído 3724 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Agosto 01, 2016, 10:49:21 pm

SrLuisPatapalo




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    tachanka is 2op
  • Actividad

  • 0%
  • Logros

Más información

Buenas, quisiera saber si hay alguna forma de detectar cuando un jugador o una entidad (un @e o un @a) salta. Y no me sirve el siguiente comando:

Código: [Seleccionar]
/execute @e ~ ~ ~ detect ~ ~-1 ~ air 0 <comando en cuestión>
No me sirve ya que si saltas directamente a un bloque no detecta un bloque entero de aire.

Espero tu ayuda pronto y gracias por tu atención.


Linkback: https://minecraftmin.net/index.php?topic=13578.0
« Última modificación: Agosto 02, 2016, 12:34:58 am por SrLuisPatapalo »
click the slime
:I


Respuesta #1 Agosto 01, 2016, 11:09:36 pm

Davimen




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MapBreaker Profesional!
  • Actividad

  • 0%
  • Logros

Más información

existe un scoreboard que detecta el salto creo que era algo como stat.jump o algo asi




Respuesta #2 Agosto 01, 2016, 11:16:19 pm

SrLuisPatapalo




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    tachanka is 2op
  • Actividad

  • 0%
  • Logros

Más información

existe un scoreboard que detecta el salto creo que era algo como stat.jump o algo asi

Gracias por responder, pero es que no sé como estructurar un socreboard.
Si fueras tan amable de darme el comando ya estructurado te lo agradecería muchísimo.

¡Un saludo!


Respuesta #3 Agosto 01, 2016, 11:49:22 pm

KaliNuska




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    KaliNuska = comandos y redstone de calidad :D
  • Actividad

  • 0%
  • Logros

Más información

existe un scoreboard que detecta el salto creo que era algo como stat.jump o algo asi
Como bien dice @Davimen, existe un criterio para el scoreboard que muestra el stat de saltos que realizan los jugadores, es: stat.jump.
Creando un scoreboard que utilice este criterio, cada vez que un jugador salte se le añadirá un punto a ese scoreboard al jugador que ha saltado. Lamentablemente esto no se puede aplicar a otras entidades que no sean jugadores, por lo que para mobs u otro tipo de criaturas deberás utilizar otro método diferente, que al no estar incluido dentro del código de Minecraft, podrá dar lugar a fallos leves y no tan leves y a la ralentización del juego cuando se compruebe el salto de demasiadas entidades a la vez.

De cualquier forma, los comandos que te harán falta son de lo más sencillo de preparar y poner en marcha.
En primer lugar, necesitarás crear un scoreboard que utilice el criterio stat.jump:
Código: (Scoreboard con stat.jump) [Seleccionar]
/scoreboard objectives add salto stat.jump SaltoSi lo deseas puedes mostrarlo en el slot del sidebar para estudiar su comportamiento:
Código: ((OPCIONAL) Sidebar) [Seleccionar]
/scoreboard objectives setdisplay sidebar salto
Con un solo comando podrás comprobar el salto de los jugadores. Tendrás que ponerlo en un comando de repetición, o en su defecto, en un reloj:
Código: (Detección de salto) [Seleccionar]
/execute @a[score_salto_min=1] ~ ~ ~ /title @p[r=0,c=1] title ["OUTPUT"]Te lo he dejado en forma de execute por si el comando que quieres utilizar no posee un selector de objetivo propio.
Si lo posee, no hace falta que te compliques con el /execute, pues puedes indicarlo directamente con @a[score_salto_min=1] en el mismo selector de tu comando.


La forma más sencilla de que el sistema sea capaz de detectar más de 1 salto por jugador, consiste en resetear el score de aquellos que ya hayan saltado. Puedes hacerlo insertando el siguiente comando en un bloque de comandos de cadena siempre activo, que suceda al de repetición:
Código: (Reset del score) [Seleccionar]
/scoreboard players reset @e[score_salto_min=1] salto
Con todo lo anterior el sistema ya sería capaz de ejecutar un OUTPUT cada vez que un jugador salte (además es relativo a cada jugador), pero si deseas que haga los mismo con los mobs, puedes añadir el siguiente comando. Con él, cada mob que comience a tener los pies en contacto con un bloque de aire (esta no es la definición estricta de salto, pues también detectará a los que se dejan caer, por ejemplo) se verá reflejado con un 1 en el mismo scoreboard de salto:
Código: (Salto para otras entidades) [Seleccionar]
/execute @e[type=!Player] ~ ~ ~ detect ~ ~-.001 ~ minecraft:air 0 /scoreboard players set @e[r=0,c=1] salto 1
Por si tienes alguna duda, los comandos deberán quedar colocados de forma similar a ésta (los comandos que se activan mediante el botón son de una única ejecución, crear el scoreboard y mostrarlo en el sidebar):

Responde con tus preguntas, si aún te queda alguna, para que podamos ayudarte.



Respuesta #4 Agosto 02, 2016, 12:34:22 am

SrLuisPatapalo




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    tachanka is 2op
  • Actividad

  • 0%
  • Logros

Más información

existe un scoreboard que detecta el salto creo que era algo como stat.jump o algo asi
Como bien dice @Davimen, existe un criterio para el scoreboard que muestra el stat de saltos que realizan los jugadores, es: stat.jump.
Creando un scoreboard que utilice este criterio, cada vez que un jugador salte se le añadirá un punto a ese scoreboard al jugador que ha saltado. Lamentablemente esto no se puede aplicar a otras entidades que no sean jugadores, por lo que para mobs u otro tipo de criaturas deberás utilizar otro método diferente, que al no estar incluido dentro del código de Minecraft, podrá dar lugar a fallos leves y no tan leves y a la ralentización del juego cuando se compruebe el salto de demasiadas entidades a la vez.

De cualquier forma, los comandos que te harán falta son de lo más sencillo de preparar y poner en marcha.
En primer lugar, necesitarás crear un scoreboard que utilice el criterio stat.jump:
Código: (Scoreboard con stat.jump) [Seleccionar]
/scoreboard objectives add salto stat.jump SaltoSi lo deseas puedes mostrarlo en el slot del sidebar para estudiar su comportamiento:
Código: ((OPCIONAL) Sidebar) [Seleccionar]
/scoreboard objectives setdisplay sidebar salto
Con un solo comando podrás comprobar el salto de los jugadores. Tendrás que ponerlo en un comando de repetición, o en su defecto, en un reloj:
Código: (Detección de salto) [Seleccionar]
/execute @a[score_salto_min=1] ~ ~ ~ /title @p[r=0,c=1] title ["OUTPUT"]Te lo he dejado en forma de execute por si el comando que quieres utilizar no posee un selector de objetivo propio.
Si lo posee, no hace falta que te compliques con el /execute, pues puedes indicarlo directamente con @a[score_salto_min=1] en el mismo selector de tu comando.


La forma más sencilla de que el sistema sea capaz de detectar más de 1 salto por jugador, consiste en resetear el score de aquellos que ya hayan saltado. Puedes hacerlo insertando el siguiente comando en un bloque de comandos de cadena siempre activo, que suceda al de repetición:
Código: (Reset del score) [Seleccionar]
/scoreboard players reset @e[score_salto_min=1] salto
Con todo lo anterior el sistema ya sería capaz de ejecutar un OUTPUT cada vez que un jugador salte (además es relativo a cada jugador), pero si deseas que haga los mismo con los mobs, puedes añadir el siguiente comando. Con él, cada mob que comience a tener los pies en contacto con un bloque de aire (esta no es la definición estricta de salto, pues también detectará a los que se dejan caer, por ejemplo) se verá reflejado con un 1 en el mismo scoreboard de salto:
Código: (Salto para otras entidades) [Seleccionar]
/execute @e[type=!Player] ~ ~ ~ detect ~ ~-.001 ~ minecraft:air 0 /scoreboard players set @e[r=0,c=1] salto 1
Por si tienes alguna duda, los comandos deberán quedar colocados de forma similar a ésta (los comandos que se activan mediante el botón son de una única ejecución, crear el scoreboard y mostrarlo en el sidebar):

Responde con tus preguntas, si aún te queda alguna, para que podamos ayudarte.

Muchísimas gracias por resolver esta duda.

Lo que quiero hacer es detectar si un jugador salta y si lo hace pues penalizarle (en este caso matarle) para un minijuego en un servidor.

Código: [Seleccionar]
execute @a[score_salto_min=1] ~ ~ ~ /kill <usuario es cuestión>
Tras haber creado el scoreboard que amablemente me has estructurado, gracias de nuevo.

Un saludo ^^




Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

question
Detectar a la entidad mas cercana, no un jugador

Iniciado por NickSplat

4 Respuestas
2473 Vistas
Último mensaje Febrero 23, 2019, 05:12:49 pm
por MrAnsk
xx
Comando: determinar el nickname de la entidad o jugador

Iniciado por GikeT

2 Respuestas
2076 Vistas
Último mensaje Diciembre 25, 2017, 09:27:46 pm
por GikeT
xx
Como hacer que un mob hostil ataque a una entidad especifica y no al jugador

Iniciado por artur3112

0 Respuestas
1095 Vistas
Último mensaje Septiembre 23, 2020, 08:03:37 am
por artur3112
xx
Como hacer que un mob hostil ataque a una entidad especifica y no al jugador

Iniciado por artur3112

0 Respuestas
1053 Vistas
Último mensaje Septiembre 23, 2020, 08:06:44 am
por artur3112