"> Foro - Scoreboard y puntuación en Bloques de comandos - Page 1 of 1
Noviembre 22, 2024, 04:19:16 pm
Visitante

Autor Tema:  Scoreboard y puntuación  (Leído 3105 veces)

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

Mayo 04, 2015, 11:21:22 pm

JFMLIN




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Muy buenas, me gustaría saber si se puede crear un scoreboard que por cada mob distinto que mates te sume distintos puntos . Es decir que si mato zombies me dan 1 punto pero si mato arañas me den 2 puntos.
Saludos!!

Linkback: https://minecraftmin.net/index.php?topic=9945.0


Respuesta #1 Mayo 06, 2015, 10:03:18 pm

KaliNuska




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Si mal no entiendo tu petición, has ido directo a uno de los temas más complicados que se pueden hacer con scoreboards.
Intentaré explicarte, de la mejor forma posible, cómo se lleva a cabo el mecanismo que te permitirá hecer esto.


Para que puedas ir probándolo te dejo el mecanismo entero en forma de One Command:
Código: (One Command) [Seleccionar]
/summon FallingSand ~ ~1 ~ {Block:redstone_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~ ~0 ~1 ~ ~-20 ~1 redstone_block},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:setblock ~ ~3 ~1 stone},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:setblock ~ ~4 ~ command_block 0 replace {Command:fill ~ ~2 ~ ~ ~-24 ~1 air}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @a mobsKilled 0},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @a spKilled 0},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @a zbKilled 0},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @a spKillValue 2},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @a zbKillValue 1},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add mobsKilled dummy Total de Mobs Matados},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add finalSpValue dummy Valor de Muertes de Arañas},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add finalZbValue dummy Valor de Muertes de Zombies},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add spKillValue dummy Valor de una Araña},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add zbKillValue dummy Valor de un Zombie},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add spKilled stat.killEntity.Spider Arañas Matadas},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add zbKilled stat.killEntity.Zombie Zombies Matados},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/summon FallingSand ~2 ~ ~-1 {Block:command_block,TileEntityData:{Command:/scoreboard players reset @p spKilled},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players operation @p mobsKilled += @p finalSpValue},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players operation @p finalSpValue += @p spKilled},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players operation @p spKilled *= @p spKillValue},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players reset @p mobsKilled},Time:1,}}}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/summon FallingSand ~2 ~ ~1 {Block:command_block,TileEntityData:{Command:/scoreboard players reset @p zbKilled},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players operation @p mobsKilled += @p finalZbValue},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players operation @p finalZbValue += @p zbKilled},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players operation @p zbKilled *= @p zbKillValue},Time:1,}}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:gamerule commandBlockOutput false},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~2 ~-2 ~ ~2 ~3 ~ redstone_block},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:setblock ~2 ~-1 ~-1 command_block 0 replace {Command:fill ~ ~ ~1 ~ ~5 ~1 stone 0 replace redstone_block}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:setblock ~2 ~ ~1 command_block 0 replace {Command:fill ~ ~ ~-1 ~ ~5 ~-1 redstone_block 0 replace stone}},Time:1,Riding:{id:FallingSand,Block:stone,Time:1}}}}}}}}}}}}}}}}}}}}}}}
Comenzaré con la explicación mencionando que todo funciona gracias a la función operation que permiten los scoreboards.

Al igual que en el mecanismo generado por el comando anterior, debes comenzar creando tantos comandos como el triple de mobs a incluir más uno adicional:
Número de mobs:   
Número de scores:   
1   
4
2   
7
3   
10
4   
13
5   
16
Yo he decidido nombrar cada score con el mob al que se va a referir y con el origen del valor que contendrá:
Spoiler para Scoreboards:
Código: (Zombies) [Seleccionar]
/scoreboard objectives add zbKilled stat.killEntity.Zombie Zombies Matados
Código: (Arañas) [Seleccionar]
/scoreboard objectives add spKilled stat.killEntity.Spider Arañas Matadas
Código: (Zombies) [Seleccionar]
/scoreboard objectives add zbKillValue dummy Valor de un Zombie
Código: (Arañas) [Seleccionar]
/scoreboard objectives add spKillValue dummy Valor de una Araña
Código: (Zombies) [Seleccionar]
/scoreboard objectives add finalZbValue dummy Valor de Muertes de Zombies
Código: (Arañas) [Seleccionar]
/scoreboard objectives add finalSpValue dummy Valor de Muertes de Arañas
Código: [Seleccionar]
/scoreboard objectives add mobsKilled dummy Total de Mobs Matados
Una vez tengas los scoreboards creados, cuando comiences a matar cualquiera de los mobs incluidos, aumentarán los valores de los que no sean dummy, es decir, de los que cuentan las veces que los has matado.
Éstos valores se multiplican por otro scoreboard, que contiene el número de puntos que aporta cada mob:
Spoiler para Multiplicaciones:
Código: [Seleccionar]
/scoreboard players operation @p zbKilled *= @p zbKillValue
Código: [Seleccionar]
/scoreboard players operation @p spKilled *= @p spKillValue
Para ir acumulando los puntos de cada mob en un scoreborad sólo hará falta pasarlos a otro:
Spoiler para ocultar:
Código: [Seleccionar]
/scoreboard players operation @p finalZbValue += @p zbKilled
Código: [Seleccionar]
/scoreboard players operation @p finalSpValue += @p spKilled
Como paso final, para calcular el total de puntos obtenidos por matar los mobs, tendrán que sumarse estos valores del scoreboard anterior a un mismo scoreboard:
Spoiler para Sumas:
Código: [Seleccionar]
/scoreboard players operation @p mobsKilled += @p finalZbValue
Código: [Seleccionar]
/scoreboard players operation @p mobsKilled += @p finalSpValue
Todo el rato tendrán que resetearse los primeros scoreboards para que no esté constantemente añadiendo puntos, al igual que sucede con el correspondiente con el recuento total:
Spoiler para Resets:
Código: [Seleccionar]
/scoreboard players reset @p zbKilled
Código: [Seleccionar]
/scoreboard players reset @p spKilled
Código: [Seleccionar]
/scoreboard players reset @p mobsKilled

Con todo, los puntos se añadirán directamente al scoreboard final y también será posible extraerlos de los finales de cada mob.
Espero que sea esto lo que pedías y te haya servido. Pregunta cualquier duda que te la responderé con gusto.



Respuesta #2 Mayo 06, 2015, 11:13:06 pm

JFMLIN




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Muchísimas gracias, era justo lo que quería y no esperaba que fuera tan complejo (Vaya minijuego de matar mobs más difícil quería crear para jugar con los colegas xD).

Gracias a los comandos que has puesto y tras solucionar unos pocos errores (me faltaba la puntuación de los mobs y no me daba cuenta xD) he puesto a funcionar esto y por las pruebas que he hecho parece ir bien, de nuevo muchísimas gracias.

PD: El código en forma de "One Command" no se como ponerlo porque es muy largo para escribirlo por el "chat" y cuando lo ponía en un bloque de comandos caigan bloques del cielo y luego desaparecían algunos, además de que algunos bloques de redstone se convertían en bloques de piedra cuando me acercaba. No había visto cosa más rara en minecraft sin contar sus bugs xD
« Última modificación: Mayo 06, 2015, 11:16:18 pm por JFMLIN »


Respuesta #3 Mayo 07, 2015, 12:16:45 am

KaliNuska




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Muchísimas gracias, era justo lo que quería y no esperaba que fuera tan complejo (Vaya minijuego de matar mobs más difícil quería crear para jugar con los colegas xD).

Gracias a los comandos que has puesto y tras solucionar unos pocos errores (me faltaba la puntuación de los mobs y no me daba cuenta xD) he puesto a funcionar esto y por las pruebas que he hecho parece ir bien, de nuevo muchísimas gracias.

PD: El código en forma de "One Command" no se como ponerlo porque es muy largo para escribirlo por el "chat" y cuando lo ponía en un bloque de comandos caigan bloques del cielo y luego desaparecían algunos, además de que algunos bloques de redstone se convertían en bloques de piedra cuando me acercaba. No había visto cosa más rara en minecraft sin contar sus bugs xD
En principio, los One Command son un método de compartir un sistema completo de comandos fácilmente (para el que lo hace, no tan fácil). Es muy útil en situaciones como esta porque sólo hace falta un comando para ponerlo en marcha.
Es normal que, siendo el primero que has visto, te parezca rara la forma que tiene de crearse, pero es bastante lógica cuando la llegas a entender.
Los mayores problemas que pueden causar son debidos, casi siempre, a la variación entre la versión de Minecraft del creador y la del que lo ejecuta. Éste, en concreto, requiere la 1.8 para funcionar.
Hay algunos que vienen con una caja externa que evita el contacto con otros mecanismos y embellece tu creación, pero no es el caso. El que tienes en la respuesta del post es algo como esto:


También es muy común compartir creaciones como esta mediante un schematic (leído e importado utilizando McEdit).
Pondré también la descarga del schematic por si finalmente lo pruebas así: github.com/KaliNuska/Minecraft/releases/download/0.0.0/Custom.points.mob.schematic (sigue requiriendo la 1.8).




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
Effect a un usuario con una puntuación de scoreboard

Iniciado por Workod

4 Respuestas
2392 Vistas
Último mensaje Septiembre 24, 2014, 03:25:12 pm
por Workod
xx
scoreboard puntuación por matar mobs en multijugador

Iniciado por Chirisxd

0 Respuestas
2515 Vistas
Último mensaje Abril 21, 2020, 06:51:37 pm
por Chirisxd
xx
Ayuda con testfor en la puntuacion

Iniciado por HroS

2 Respuestas
1625 Vistas
Último mensaje Noviembre 03, 2015, 05:44:19 pm
por HroS
xx
Como ver solo mi puntuacion con scoreboards

Iniciado por EneKnight

0 Respuestas
922 Vistas
Último mensaje Enero 27, 2021, 03:00:01 am
por EneKnight