"> Foro - [Resuelto] Detectar cada vez que el jugador rompe cierto bloque! Ayuda! en Bloques de comandos - Page 1 of 1
Julio 05, 2024, 05:37:15 am
Visitante

Autor Tema: [Resuelto] Detectar cada vez que el jugador rompe cierto bloque! Ayuda!  (Leído 7927 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Febrero 04, 2015, 03:58:41 am

Bleaket


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

Bueno, hola a todos;
Este es mi primer post.. Nunca antes había hecho uno porque creí que había mucha inactividad o nadie iba a responder, pero en este punto de estrés ya me da igual.

Bueno, la duda en cuestión es: ¿Cómo hago para que el juego detecte cada vez que rompo cierto bloque?
- Que cómo? Qué dices? No entendí.

Bueno. Estoy creando un mapa al estilo CookieClicker, un juego de Click n' Click o algo así.
El mapa consiste en minar y minar una roca, con las rocas comprar mejores picos y "Mineros" que vayan dándote cobblestone (dependiendo la calidad del minero y eso).
El proyecto lo empecé hace un par de días cuando de repente me dio nostalgia de aquellos jueguitos sin sentido, y pues ya he desarrollado las tiendas, algunos achievements, unlocks y toda la cosa.

Estoy como que hablando mucho no?


EN CONCLUSIÓN, ESTOY CREANDO UN SISTEMA DE LVLS, SÍ, DE LEVEL.
CONSISTE EN QUE AL MINAR LA ROCA, SE TE DEN UNOS "PUNTOS DE EXP" Y VAS SUBIENDO DE NIVEL. AL SUBIR DE NIVEL VAS OBTENIENDO "SKILLS" COMO EFECTOS DE HASTE (PARA MINAR MOVER TU MANO MÁS RÁPIDO) Y COSAS ASÍ.
EL PROBLEMA, ES QUE HABRÁN PICOS CON EFICIENCIA 15 O QUIZÁS MÁS, Y PARA ELLO CREE UN SISTEMA QUE HACE QUE LA ROCA SPAWNEE DE NUEVO CASI INMEDIATAMENTE QUE LA ROMPES.


Entonces: He intentado de mil y un maneras para que detecte cada vez que rompo la roca me de un nivel (este sistema lo tengo bien planeado, don't worry about that), pero nada funciona.

He intentado con scoreboards, con el stat.mineBlock.minecraft.stone.
He intentado detectando que cuando donde va la stone sea aire, me de tal punto de exp.
He probado cantidad de cosas con el scoreboard y con lo del test del score de un scoreboard pero nada.

He llegado a la conclusión que lo único que puedo hacer es que me detecte cada vez que rompo la roca pero con otro método. Entonces que al romperla 10 veces suba al lvl 1, otras 10 al lvl 2, etc. (Esto así para no complicar las cosas.. Si puedo, luego aumentaré las veces que se tenga que romper la roca para subir de lvl y demás.)

Entonces de nuevo: ¿Cómo hago para que el juego detecte/cuente cada vez que rompo cierto bloque?


Gracias.

Linkback: https://minecraftmin.net/index.php?topic=8154.0
« Última modificación: Febrero 17, 2015, 03:11:40 pm por KaliNuska »


Respuesta #1 Febrero 04, 2015, 05:30:06 am

Daniel_Boy12


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

No se si ya lo intentaste pero yo lo intentaría que cunado se rompe la roca sale su item, así que podrías detectar ese item y que cuando lo detecte le de un nivel de xp al jugador mas ser cano, yo como aprendí hacer eso fue con un vídeo de killercreeper55 se llama diamante explosivo, claro a si es como yo lo intentaría a y cuando terminas me gustaría jugarlo así que su me puedes avisar cuando lo termines me gustaría mucho. Suerte



Respuesta #2 Febrero 04, 2015, 01:30:46 pm

MinatoKuun




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    .w.
  • Actividad

  • 0%
  • Logros

Más información

Con scoreboards debería funcionar bien, no será que lo redactaste mal o algo?


Respuesta #3 Febrero 04, 2015, 10:22:29 pm

Zontie_




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

En la versión 1.8.1 he probado hacerlo con scoreboards y me ha funcionado. Te explicaré como lo he hecho.

Crear el objetivo será lo primero que tengas que hacer.

Código: [Seleccionar]
/scoreboard objectives add <scoreName> stat.mineBlock.minecraft.stone
En este caso yo he puesto al nombre del scoreboard Stone de la siguiente manera, pero tu lo puedes nombrar como quieras.

Código: [Seleccionar]
/scoreboard objectives add Stone stat.mineBlock.minecraft.stone
Ahora, haces un fillclock, esto es un reloj que va lo bastante rápido para que este mecanismo funcione. Y al lado del fillclock le conectas un bloque de comandos con el siguiente código.

Código: [Seleccionar]
testfor @p[score_Stone_min=1]
Donde yo he puesto Stone, tu pon el nombre que le hayas puesto al objetivo. Esto lo que hace es detectar cuando un jugador tiene en el objetivo Stone 1 punto. Al lado del bloque de comandos con el testfor pones un comparador y delante del comparador otro bloque de comandos con el siguiente código.

Código: [Seleccionar]
/xp 1L @p[score_Stone_min=1]
Esto lo que hace es darle un nivel de experiencia al jugador que tiene 1 punto en el objetivo Stone. Encima del bloque con el /xp colocas otro bloque de comandos con un reset, es decir, el siguiente código.

Código: [Seleccionar]
/scoreboard players set @p[score_Stone_min=1] Stone 0
Y en teoria ya está. Espero haberte ayudado, si no te a quedado claro, me lo dices y te adjunto una imagen para que puedas ver como se coloca cada cosa.



Respuesta #4 Febrero 05, 2015, 07:34:31 pm

0Tex


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Youtuber, mapmaker y futuro creador de videojuegos
  • Actividad

  • 0%
  • Logros

Más información

Podria ser:

Código: [Seleccionar]
/scoreboard objectives add Nombre stat.mineBlock.1Ese sirve para detectar el minar de stone. En mi caso, en nombre le puse stone. Quedaria asi:
Código: [Seleccionar]
/scoreboard objectives add stone stat.mineBlock.1El stat.mineBlock.1 sirve para detectar la stone, ya que la ID es 1.
Luego haces un setdisplay (si es que quieres testearlo o editarlo)
Código: [Seleccionar]
/scoreboard objectives setdisplay sidebar stoneY luego haces un reloj (de redstone) y en commands blocks escribes:
Código: [Seleccionar]
/testfor @p[score_stone_min=1]luego un comparador y delante otro CB con el comando:
Código: [Seleccionar]
/xp 1L @aY delante un repetidor con:
Código: [Seleccionar]
/scoreboard players set MisticTex stone 0Espero ayudarte :D


Respuesta #5 Febrero 06, 2015, 02:27:58 am

Bleaket


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

En la versión 1.8.1 he probado hacerlo con scoreboards y me ha funcionado. Te explicaré como lo he hecho.

Crear el objetivo será lo primero que tengas que hacer.

Código: [Seleccionar]
/scoreboard objectives add <scoreName> stat.mineBlock.minecraft.stone

En este caso yo he puesto al nombre del scoreboard Stone de la siguiente manera, pero tu lo puedes nombrar como quieras.

Código: [Seleccionar]
/scoreboard objectives add Stone stat.mineBlock.minecraft.stone
Ahora, haces un fillclock, esto es un reloj que va lo bastante rápido para que este mecanismo funcione. Y al lado del fillclock le conectas un bloque de comandos con el siguiente código.

Código: [Seleccionar]
testfor @p[score_Stone_min=1]Donde yo he puesto Stone, tu pon el nombre que le hayas puesto al objetivo. Esto lo que hace es detectar cuando un jugador tiene en el objetivo Stone 1 punto. Al lado del bloque de comandos con el testfor pones un comparador y delante del comparador otro bloque de comandos con el siguiente código.

Código: [Seleccionar]
/xp 1L @p[score_Stone_min=1]
Esto lo que hace es darle un nivel de experiencia al jugador que tiene 1 punto en el objetivo Stone. Encima del bloque con el /xp colocas otro bloque de comandos con un reset, es decir, el siguiente código.

Código: [Seleccionar]
/scoreboard players set @p[score_Stone_min=1] Stone 0
Y en teoria ya está. Espero haberte ayudado, si no te a quedado claro, me lo dices y te adjunto una imagen para que puedas ver como se coloca cada cosa.
Bueno, antes que nada muchas gracias.. Pero.. Perdona que soy nuevo en esto, pero no entiendo lo del "Fill Clock".
Investigué en internet y foros de minecraft pero nada medianamente lógico me sale.. He intentado con cosas como dos bloques de comando entre una hilera de 11 bloques de redstone y cosas raras, pero sigo sin entender..
Podrías dejarme una imagen o explicármelo?

Muchas gracias de antemano!


Cita de: Editado
Encontré algo extraño y es como un "bug" no tengo ni la menor idea o.o (En bloque de comandos puse /fill ~0 ~+1 ~0 ~+10 ~+1 ~0 stone  y en el de arriba /fill ~0 ~-1 ~0 ~+10 ~-1 ~0 redstone_block.

Essss demaciado extraño esto.. pero parece que lo voy pillando.

Cita de: Editado 2
He aprendido a usar el reloj este, muchas gracias; me ha funcionado hasta los picos de diamante eficiencia 5, pero ese no es mi objetivo como tal. Me gustaría que fuera más rápido, o que detecte cada vez que se mina o qué se yo. Sin embargo muchas gracias, ahora puedo crear más achievements y unlocks con más variedad de enchants (lvl 5 como dije antes).
Saludos!!
« Última modificación: Febrero 06, 2015, 09:57:06 pm por KaliNuska »




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

xx
DETECTAR JUGADOR EN UN BLOQUE

Iniciado por angjosar

6 Respuestas
11855 Vistas
Último mensaje Septiembre 22, 2014, 07:06:46 pm
por angjosar
question
Como detectar donde pone un bloque el jugador

Iniciado por axe005

4 Respuestas
4120 Vistas
Último mensaje Agosto 16, 2017, 02:17:27 am
por KaliNuska
xx
Detectar cuando un jugador este sobre un bloque en especifico

Iniciado por craftator

3 Respuestas
2812 Vistas
Último mensaje Diciembre 31, 2016, 07:05:35 pm
por themaximus09t
exclamation
Ayuda sobre detectar un jugador sobre bloques expecíficos

Iniciado por Vale342

5 Respuestas
3635 Vistas
Último mensaje Marzo 24, 2015, 12:34:22 am
por lol_600