马勒隔壁是雅典版本里一个谐音命名的特色地图,玩法上属于限时进入的打宝场,入口挂在盟重传送员身上,每天固定时段开放,其余时间点不动。它本身不是引擎自带的地图,是靠配置文件加脚本拼出来的,下面把这套东西从上到下拆开讲,能直接照着填。
一、地图在配置文件里怎么登记
打开服务端Envir目录下的MapInfo.txt,在最下面加一行。格式是方括号开头,先写地图代码,空格后面跟地图名字,最后挂参数。这张地图一般都调用现成的map文件,写法和重复调用一张地图一样,用竖线把代码和实际map文件隔开:
[MLGB|D3001马勒隔壁]ONKILLMONNORECALLNOGUILDRECALLNODEARRECALLNORECONNECT(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里那个调用代码,后面跟小地图文件序号:
MLGB10302
序号算法各引擎不一样。用mmap.wil的,序号是图片序号加一。用扩展pak包的,从10001开始加。雅典版本多数走的是扩展读取,具体序号看自己补丁里那张图落在第几帧,算错就会显示成别人的小地图。登记完重载一次资源再看。
三、NPC进入脚本
入口脚本挂在传送员的调用文件里,比如Market_Def下面的传送员.txt。做个菜单按钮,点进去先检测条件。这张地图通常设成等级加一个入场凭证,双条件:
[@马勒隔壁]
#IF
CHECKLEVELEX>45
CHECKITEM雅典通行证1
#ACT
TAKE雅典通行证1
MAPMOVEMLGB3030
SENDMSG6你已进入马勒隔壁,停留时间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底部加双向坐标:
MLGB1240->3334334
3334334->MLGB1240
两边都写才走得通,只写一边会出现能进不能出,或者踩上去弹回原地。坐标对不上,人物在门口来回弹,改完在游戏里走两趟确认。
六、脚本不生效常见原因
地图代码写对、名字写错,玩家看到的还是旧名,一般是MapInfo.txt里那行没被重载,M2控制台点控制再点重新加载所有NPC。map文件缺失或客户端补丁没同步,进图黑屏或落地成空气墙。小地图序号算错,右上角显示的是别的地图缩略图。凭证物品没加进物品数据库或者没加触发编号,CHECKITEM判不过,表现得像条件明明满足也进不去。掉线重连被拉回主城,是NORECONNECT生效,属于正常。参数里漏了NORECALL,行会成员用召集令能把整队人拉进限时地图,等于白送。
改动前把MapInfo.txt、MiniMap.txt、传送员脚本、物品数据库各留一份备份,出错能立刻回退。几处配置对得上,这张谐音地图就算装好了。
一、地图在配置文件里怎么登记
打开服务端Envir目录下的MapInfo.txt,在最下面加一行。格式是方括号开头,先写地图代码,空格后面跟地图名字,最后挂参数。这张地图一般都调用现成的map文件,写法和重复调用一张地图一样,用竖线把代码和实际map文件隔开:
[MLGB|D3001马勒隔壁]ONKILLMONNORECALLNOGUILDRECALLNODEARRECALLNORECONNECT(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里那个调用代码,后面跟小地图文件序号:
MLGB10302
序号算法各引擎不一样。用mmap.wil的,序号是图片序号加一。用扩展pak包的,从10001开始加。雅典版本多数走的是扩展读取,具体序号看自己补丁里那张图落在第几帧,算错就会显示成别人的小地图。登记完重载一次资源再看。
三、NPC进入脚本
入口脚本挂在传送员的调用文件里,比如Market_Def下面的传送员.txt。做个菜单按钮,点进去先检测条件。这张地图通常设成等级加一个入场凭证,双条件:
[@马勒隔壁]
#IF
CHECKLEVELEX>45
CHECKITEM雅典通行证1
#ACT
TAKE雅典通行证1
MAPMOVEMLGB3030
SENDMSG6你已进入马勒隔壁,停留时间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底部加双向坐标:
MLGB1240->3334334
3334334->MLGB1240
两边都写才走得通,只写一边会出现能进不能出,或者踩上去弹回原地。坐标对不上,人物在门口来回弹,改完在游戏里走两趟确认。
六、脚本不生效常见原因
地图代码写对、名字写错,玩家看到的还是旧名,一般是MapInfo.txt里那行没被重载,M2控制台点控制再点重新加载所有NPC。map文件缺失或客户端补丁没同步,进图黑屏或落地成空气墙。小地图序号算错,右上角显示的是别的地图缩略图。凭证物品没加进物品数据库或者没加触发编号,CHECKITEM判不过,表现得像条件明明满足也进不去。掉线重连被拉回主城,是NORECONNECT生效,属于正常。参数里漏了NORECALL,行会成员用召集令能把整队人拉进限时地图,等于白送。
改动前把MapInfo.txt、MiniMap.txt、传送员脚本、物品数据库各留一份备份,出错能立刻回退。几处配置对得上,这张谐音地图就算装好了。

