player_enter.mcfunction 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # 当玩家加入游戏时触发
  2. spawnpoint @s -12 7 -102
  3. advancement revoke @s only lib:damage_dealt
  4. advancement revoke @s only lib:damage_taken
  5. advancement revoke @s only item:container/place
  6. advancement revoke @s only item:special/consume_enchanted_apple
  7. advancement revoke @s only item:special/consume_golden_apple
  8. execute as @a at @s run function lib:sounds/hit
  9. # 存储UUID
  10. execute store result score @s UUID run data get entity @s UUID[0]
  11. # 如果是旁观者或局号不对头:开始旁观
  12. execute if entity @s[team=!playing] run function ltw:main/player_enter_watcher
  13. execute if entity @s[team=playing] unless score @s game_id = $ game_id run function ltw:main/player_enter_watcher
  14. # 如果不是旁观且局号正确:游戏中掉线
  15. execute if entity @s[team=playing] if score @s game_id = $ game_id run function ltw:main/player_enter_rejoin
  16. # 更新 Bossbar
  17. bossbar set ltw:notice players @a
  18. function lib:bossbar/show
  19. # ——————————————
  20. # 小游戏最佳实践
  21. # ——————————————
  22. # 需要有玩家交互
  23. # 即使是间接交互也比没有好,PVP 击退可能是不错的选项,但最好不要纯 PVP 砍人
  24. # 必须能体现玩家的技术或策略
  25. # 单纯的狂点左键或长按 W 是没有意思的,至少要给玩家发挥的空间
  26. # 结果不能仅依靠玩家的熟练度
  27. # 全靠玩家水平不是说不行,而是这不适合“派对游戏”,跑酷就是一个负面例子
  28. # 规则应该尽量简单易学
  29. # 除非必要,不要增加单个游戏的规则复杂度,这会提高学习成本,让新人难以入门
  30. # 在制作时考虑给道具留下发挥空间
  31. # 玩家有远程攻击,有鞘翅,有金苹果,有护甲和剑,有击退棒,让它们可以得到应用