马勒隔壁是雅典版本里一个谐音命名的特色地图,玩法上属于限时进入的打宝场,入口挂在盟重传送员身上,每天固定时段开放,其余时间点不动。它本身不是引擎自带的地图,是靠配置文件加脚本拼出来的,下面把这套东西从上到下拆开讲,能直接照着填。
一、地图在配置文件里怎么登记
打开服务端 Envir 目录下的 MapInfo.txt,在最下面加一行。格式是方括号开头,先写地图代码,空格后面跟地图名字,最后挂参数。这张地图一般都调用现成的 map 文件,写法和重复调用一张地图一样,用竖线把代码和实际 map 文件隔开:
[MLGB|D3001 马勒隔壁] ONKILLMON NORECALL NOGUILDRECALL NODEARRECALL NORECONNECT(3) NORANDOMMOVE
方括号里 MLGB 是自己起的调用代码,竖线后面的 D3001 是真正读取的 map 文件名,服务端 Mir200\Map 目录里得有 D3001.map,客户端补丁的 Map 目录里也要放一份,缺一边进去就是黑屏。马勒隔壁是游戏里显示的名字,跟代码是两回事,代码只给脚本调用,名字给玩家看。ONKILLMON 意思是杀人加 PK 点,NORECALL 挡住行会召集令,NODEARRECALL 挡住结婚戒指召唤,NORECONNECT(3) 是掉线以后不许原地重连,直接踹回 3 号地图也就是盟重。这几条参数建议都带上,不然玩家站在里面挂机被拉走,地图就成公共传送点了。NORANDOMMOVE 是禁止随机飞,防止有人用随机卷摸进来。按自己版本的玩法删减也行,但 NORECALL 这类防召唤的参数留着更省心。
二、小地图要补一行
地图能进了,右上角小地图如果是黑的,是 MiniMap.txt 里没登记。打开 Envir\MiniMap.txt,加一行,前面写 MapInfo.txt 里那个调用代码,后面跟小地图文件序号:
MLGB 10302
序号算法各引擎不一样。用 mmap.wil 的,序号是图片序号加一。用扩展 pak 包的,从 10001 开始加。雅典版本多数走的是扩展读取,具体序号看自己补丁里那张图落在第几帧,算错就会显示成别人的小地图。登记完重载一次资源再看。
三、NPC 进入脚本
入口脚本挂在传送员的调用文件里,比如 Market_Def 下面的传送员.txt。做个菜单按钮,点进去先检测条件。这张地图通常设成等级加一个入场凭证,双条件:
[@马勒隔壁]
#IF
CHECKLEVELEX > 45
CHECKITEM 雅典通行证 1
#ACT
TAKE 雅典通行证 1
MAPMOVE MLGB 30 30
SENDMSG 6 你已进入马勒隔壁,停留时间30分钟。
BREAK
#ELSESAY
进入需要46级以上并携带雅典通行证。\
CHECKLEVELEX 是检测等级,CHECKITEM 检测背包里有没有那个道具,1 是数量。条件都成立才走 #ACT,把凭证收掉再传送,MAPMOVE 后面跟地图代码和自己定的落点坐标。BREAK 是结束这一段,不加会把下面的提示也一起执行,玩家会同时收到传送成功和条件不足两条消息,看着像脚本坏了。凭证这个物品得先在物品数据库里建好,加上触发编号,不然 CHECKITEM 永远判不过。想省掉凭证只留等级,把 CHECKITEM 和 TAKE 两行删掉就行。
有版本用转生等级当门槛,检测转生的命令各引擎叫法不一样,换成自己引擎手册里的那条,和 45 级判断替换即可,写法一样。
四、双条件其实能压成一行
上面那个写法条件要逐条列,条目一多就长。用 or 关键字能把检测合成一句。比如要等级不到 3 转的玩家必须带凭证,3 转以上免费进:
#IF
OR
CHECKRENEWLEVEL < 3
CHECKITEM 雅典通行证 1
#ACT
...
#ELSEACT
条件不足,无法进入马勒隔壁。
or 的意思是两条里任意一条成立就通过,看着和上面相反,实际是把免费那批人先放走,剩下的走凭证。这类关键字换着写的好处是条件多了不用一层层套,新手容易在这里写乱,重载后拿小号实测一遍最稳妥。
五、地图里自动送回和进出连接
马勒隔壁是限时地图,进图后要在 MapInfo.txt 那行补 TimeRecall 参数,玩家超时引擎自己把人传回去:
[MLGB|D3001 马勒隔壁] ... TimeRecall(30|3)
30 是允许停留的分钟数,3 是到点送回的地图号。玩家超过时限,引擎自己把人传回盟重,不用另写脚本。想加提示,就在 QFunction 里挂个进图事件,落地那一刻弹一句剩余时间。
入口走出去的连接也要写全,不然人在里面找不到出口。在 MapInfo.txt 底部加双向坐标:
MLGB 12 40 -> 3 334 334
3 334 334 -> MLGB 12 40
两边都写才走得通,只写一边会出现能进不能出,或者踩上去弹回原地。坐标对不上,人物在门口来回弹,改完在游戏里走两趟确认。
六、脚本不生效常见原因
地图代码写对、名字写错,玩家看到的还是旧名,一般是 MapInfo.txt 里那行没被重载,M2 控制台点控制再点重新加载所有 NPC。map 文件缺失或客户端补丁没同步,进图黑屏或落地成空气墙。小地图序号算错,右上角显示的是别的地图缩略图。凭证物品没加进物品数据库或者没加触发编号,CHECKITEM 判不过,表现得像条件明明满足也进不去。掉线重连被拉回主城,是 NORECONNECT 生效,属于正常。参数里漏了 NORECALL,行会成员用召集令能把整队人拉进限时地图,等于白送。
改动前把 MapInfo.txt、MiniMap.txt、传送员脚本、物品数据库各留一份备份,出错能立刻回退。几处配置对得上,这张谐音地图就算装好了。
5月爆火雅典传奇版本马勒隔壁地图脚本完整写法与地图配置详解篇
来源:
作者:
点击:

