第 19 课：属性与任务：收集三颗能量晶石

请先阅读对应网页。这里按章节提供代码，可能包含先后替换的实验版本，不要全部同时运行。
.luau 文件内容请复制到指定 Script / LocalScript / ModuleScript；.txt 是层级或说明，不是可执行代码。
第 25 课默认 PRACTICE=true，不连接云端，也不跨 Stop 保存。第 28 课包含明确标注的故意错误实验。

01 · 用 Folder 把任务物品放一起
在 Workspace 创建 Folder：Crystals。
在里面创建 CrystalA、CrystalB、CrystalC，Size=3,3,3，Position 分别为 -10,3,-10；0,3,-20；10,3,-10。
每颗晶石 Anchored=true、CanCollide=false、CanTouch=true；颜色各不相同。
在 ServerScriptService 创建 CrystalQuest。

02 · 先认清两个进度标签
在 Play 的服务器视角选择 Player，找到 Properties 下的 Attributes。
开始时应看到 Crystals=0、QuestComplete=false。

03 · 用“玩家 → 已领晶石”表防止重复
把完整代码放入 CrystalQuest。
按 A、A、B、C 的顺序触碰，预计进度为 1、1、2、3。
注意目标数量 TARGET 必须与本课计划一致，不把装饰算作任务物品。

文件：03-script.luau
位置与用途：ServerScriptService > CrystalQuest · 完整脚本

04 · 看得见的物体，不一定还可领取
A 碰到 CrystalA 后，B 再碰同一颗，两人都应各得 1。
A 重生后再碰 CrystalA，不应再加 1。
Stop 后重新开始才会清空整个任务记录。

05 · 检查“不同三颗”的含义
连续触碰同一颗至少五次，进度仍为 1。
按不同顺序收集三颗，仍可完成。
确认没有其他脚本同时改 Crystals。

