player_enter.mcfunction 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # 当玩家加入游戏时触发
  2. spawnpoint @s -12 7 -102
  3. # TODO: v0.3 升级函数
  4. execute if entity @s[tag=!v02upgrade,scores={stat_total=1..}] run function ltw:main/player_upgrade
  5. tag @s add v02upgrade
  6. advancement revoke @s only lib:damage_dealt
  7. advancement revoke @s only lib:damage_taken
  8. advancement revoke @s only item:container/place
  9. advancement revoke @s only item:special/consume_enchanted_apple
  10. advancement revoke @s only item:special/consume_golden_apple
  11. execute as @a at @s run function lib:sounds/hit
  12. # 存储UUID
  13. execute store result score @s UUID run data get entity @s UUID[0]
  14. # 如果是旁观者或局号不对头:开始旁观
  15. execute if entity @s[team=!playing] run function ltw:main/player_enter_watcher
  16. execute if entity @s[team=playing] unless score @s game_id = $ game_id run function ltw:main/player_enter_watcher
  17. # 如果不是旁观且局号正确:游戏中掉线
  18. execute if entity @s[team=playing] if score @s game_id = $ game_id run function ltw:main/player_enter_rejoin
  19. # 更新 Bossbar
  20. bossbar set ltw:notice players @a
  21. function lib:bossbar/show
  22. # TODO: {土豆} 按存活回合数记分(两个炸弹同时爆炸把两个人炸死可以并列)
  23. # FIXME: 关掉 JourneyMap 的生物雷达
  24. # TODO: 逐个游戏检查中途退出重进是否造成 Bug
  25. # TODO: 逐个游戏检查是否在开始时清理了实体
  26. # TODO: {跑酷} 为已获取的宝藏标识新的粒子,并显示提示*
  27. # TODO: {TNTRun} 有多人汇报存在严重卡顿,检查是否是场地的粒子造成,或者是游戏中的光照更新、实体、方块变化
  28. # FIXME: [LTCat] BGM 可能会双响
  29. # TODO: [LTCat] {幻翼} 在玩家第一次到达半血时显示回血的提示
  30. # TODO: [LTCat] {色彩} 添加音效、修改描述
  31. # TODO: [LTCat] 增加文本可读性
  32. # TODO: [HIM] 重新处理主大厅的物品给予,在格子上显示固定的物品
  33. # TODO: [HIM] 不死图腾的处理
  34. # TODO: [HIM] 改成只锁定最后一个格子
  35. # TODO: [010] {土豆} 将橙子已经制作好的概念地图实装
  36. # TODO: [010] {幻翼} 制作幻翼的成品地图