一、本节课要解决的核心问题
- 镜像副本只能进一层,第二层黑屏。
- 不知道“第二层地图”到底在哪做、怎么做。
- 刷怪、定时、传送、奖励、掉层等逻辑怎么串起来。
二、最终交付物(已测试通过)
① 入口 NPC:@真男人挑战
② 副本核心脚本:man100.txt(含摇骰子、清怪、计时、奖励)
③ 100 层伪无限循环模板:用 U1 变量+地图名后缀实现“同一张图,不同层”。
三、技术要点与对应命令
-
镜像地图编号 ≠ 镜像副本编号错误做法:把镜像地图号直接当副本号 → 黑屏。正确做法:先写“源地图编号”(任意真实地图),再用人物名字当副本编号,保证 1 人 1 副本。
-
伪多层原理同一张源地图,副本名 = 源地图 + “” + 人物名 + “” + 层数(U1)。玩家视觉:层层不同;服务器:只存在一张图,变量决定刷怪与事件。
-
临时 NPC 生命周期创建:CREATEMAPNPC 地图名 X Y 外观 脚本名删除:DELMAPNPC 地图名 NPC名规则:
- 脚本重载/保存时全部临时 NPC 自动清除;
- 人物下线、副本销毁时 NPC 消失;
- 因此“进入下一层”必须先删旧 NPC → 建新 NPC。
-
定时刷怪与活动结束使用计时器或跑步触发:
- 08:00 开启,每 3 min 刷一波怪;
- 08:15 刷 boss;
- 08:20 点击 NPC 可进二层;
- 08:40 二层刷 boss;
- 09:00 所有怪强制消失并传出地图。
命令:SETTIMER、KILLMONSTER、MAPMOV、DELMAP。
-
摇骰子捷径系统需求:让玩家花元宝可“跳层”。实现:
- 随机 1–6:RANDOM 6 → MOV N$touzi
- 层数叠加:INC U1 N$touzi
- 防溢出:IF U1 ≥ 100 MOV U1 100
- 界面:MESSAGEBOX + CLOSE 窗口。
-
奖励发放
当 U1 = 100 且点击“领取真男人奖励”时:
IF EQUAL U1 100
GIVE 屠龙 1
SENDMSG 5 “恭喜成为真男人!”
ELSE
SENDMSG 5 “请先到达 100 层!”
四、完整逻辑流程图(文字版)
玩家点击入口 NPC → 创建副本“源地图_角色名_0” → U1=0 → 刷 1 层怪
↙ 每 3 min 继续刷怪
↘ 08:15 刷 boss
玩家击杀 boss 后对话“勇闯下一层”NPC → 删除当前副本与 NPC → U1+1 → 创建新副本“源地图_角色名_U1” → 在新副本重新刷怪
…循环直到 U1=100→ 出现奖励 NPC→ 领取屠龙→ 传出地图→ 删除副本。
五、脚本文件清单(已发学生 QQ)
- 入口 NPC 脚本:zhennanren_start.txt
- 副本主逻辑:man100.txt(含摇骰子、层数控制、奖励)
- 临时 NPC 脚本:next_layer.txt(只负责“进入下一层”)
六、常见坑一览
- 65535 秒 ≈ 7 天,写错成 655355 → 直接当 0 秒,地图秒删。
- 用原地图编号当副本号 → 黑屏。
- 忘记 DEL 旧副本 → 服务器刷出一堆垃圾图。
- 临时 NPC 名字重复 → 后创建的会把前一个顶掉。
- 脚本保存一次,临时 NPC 全消失 → 正常现象,重新进副本即可。
课程入口