当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇禁止攻击怪物检测脚本制作方法详细实操教程

热度:
传奇禁止攻击怪物检测脚本,核心是通过脚本命令检测玩家攻击行为,当玩家攻击指定禁止怪物时,触发拦截、提示或惩罚机制,全程无需复杂编程,新手可按步骤实操,适配所有常规传奇服务端,不影响服务端正常运行。
制作前需明确核心需求:脚本需实现“检测玩家攻击指定怪物→拦截攻击行为→提示玩家”,可额外添加惩罚(如扣除金币、传送回城),核心依赖传奇脚本基础命令,无需额外安装工具,仅需通过服务端脚本文件编辑即可完成。
首先准备工作,打开传奇服务端主目录MirServer,进入Mir200文件夹,找到Envir文件夹,重点关注两个核心脚本文件:QManage.txt(全局触发脚本)和Monster.txt(怪物配置脚本),前者用于设置检测触发机制,后者用于确认禁止攻击的怪物名称和编号,两个文件配合使用,确保检测生效。
第一步,确认禁止攻击的怪物信息,打开Envir文件夹下的Monster.txt,双击用记事本打开,该文件记录了所有游戏内怪物的名称、编号、属性等信息,找到需要禁止攻击的怪物,记录其“怪物名称”和“怪物编号”,比如“鹿”“鸡”“稻草人”等新手怪物,假设禁止攻击“鹿”,其编号为1001,名称为“鹿”,记录好备用。
注意,Monster.txt中怪物名称和编号需精准对应,不可出现拼写错误,若不确定怪物编号,可通过搜索怪物名称快速定位,比如Ctrl+F输入“鹿”,即可找到对应行,明确编号后,关闭Monster.txt,避免误修改其他内容。
第二步,编辑QManage.txt脚本,该脚本是全局触发脚本,可设置玩家攻击怪物时的检测机制,打开Envir文件夹,找到QManage.txt,右键选择“编辑”打开,在脚本末尾添加检测脚本,无需修改原有脚本内容,避免破坏其他功能。
添加的核心检测脚本分为基础版(仅拦截+提示)和进阶版(拦截+提示+惩罚),玩家可根据需求选择,先从基础版开始,脚本代码如下,直接复制粘贴至QManage.txt末尾,无需修改格式,仅替换怪物名称和编号即可:
[@AttackMonster]
#IF
CheckMonsterName鹿
#ACT
StopAttack
Messagebox禁止攻击鹿,请选择其他怪物!
BREAK
#ELSEACT
Return
逐行解释脚本含义:[@AttackMonster]是触发条件,玩家攻击任何怪物时都会触发该脚本;#IF是条件判断,CheckMonsterName鹿表示检测玩家攻击的怪物名称是否为“鹿”;#ACT是满足条件后执行的操作,StopAttack表示拦截玩家的攻击行为,让玩家无法攻击该怪物,Messagebox是弹出提示文字,BREAK表示结束脚本;#ELSEACT是不满足条件时,返回正常攻击状态,不影响玩家攻击其他怪物。
若需要禁止攻击多个怪物,可在基础版脚本中添加多个条件判断,修改后的脚本如下,以禁止攻击“鹿”“鸡”“稻草人”为例,替换对应的怪物名称即可,无需修改其他命令:
[@AttackMonster]
#IF
CheckMonsterName鹿
#ACT
StopAttack
Messagebox禁止攻击鹿,请选择其他怪物!
BREAK
#IF
CheckMonsterName鸡
#ACT
StopAttack
Messagebox禁止攻击鸡,请选择其他怪物!
BREAK
#IF
CheckMonsterName稻草人
#ACT
StopAttack
Messagebox禁止攻击稻草人,请选择其他怪物!
BREAK
#ELSEACT
Return
第三步,进阶版脚本制作(添加惩罚机制),若玩家多次尝试攻击禁止怪物,可添加扣除金币、传送回城等惩罚,修改脚本如下,以禁止攻击“鹿”并扣除1000金币为例,可根据需求调整惩罚力度:
[@AttackMonster]
#IF
CheckMonsterName鹿
#ACT
StopAttack
Messagebox禁止攻击鹿,本次扣除1000金币作为警告!
GAMEGOLD-1000
#IF
CHECKGAMEGOLD<0
GAMEGOLD=0
#ACT
SendCenterMsg2500【警告】<$USERNAME>多次尝试攻击禁止怪物,已扣除所有金币!
BREAK
#ELSEACT
Return
进阶版脚本额外添加了金币扣除命令(GAMEGOLD-1000),同时增加了金币不足时的判断,避免玩家金币出现负数,还添加了全服提示,警示其他玩家,惩罚机制可灵活调整,比如替换为“MOVEMAP盟重330330”(传送至盟重安全区),无需修改核心检测逻辑。
第四步,用怪物编号检测(适配部分服务端),部分传奇服务端不支持怪物名称检测,可改用怪物编号检测,脚本核心命令替换为CheckMonsterID,以禁止攻击编号为1001的“鹿”为例,脚本如下,替换对应的怪物编号即可:
[@AttackMonster]
#IF
CheckMonsterID1001
#ACT
StopAttack
Messagebox禁止攻击该怪物,请选择其他目标!
BREAK
#ELSEACT
Return
怪物编号检测的优势是精准度更高,避免因怪物名称重复导致检测失效,适合怪物名称较多、存在重名的服务端,使用前需再次核对Monster.txt中的怪物编号,确保编号无误。
第五步,脚本保存与测试,添加完脚本后,点击保存按钮,关闭QManage.txt编辑窗口,重点检查保存是否成功,避免因未保存导致脚本失效,保存后重启传奇服务端,打开M2Server.exe,等待服务端完全启动,不要强行关闭程序,避免脚本文件损坏。
测试步骤:进入游戏,找到禁止攻击的怪物(如鹿),点击攻击,若弹出提示文字、无法攻击该怪物,说明基础检测生效;若设置了惩罚机制,攻击后查看金币是否扣除、是否被传送回城,全服是否有警告提示,确保所有功能正常。
常见问题及解决方法:若攻击禁止怪物无反应,未弹出提示,大概率是QManage.txt脚本未保存,或脚本命令拼写错误,重新打开脚本,核对CheckMonsterName、StopAttack等命令是否拼写正确,怪物名称是否与Monster.txt一致,保存后重启服务端即可。
若出现脚本报错,提示命令无效,说明服务端不支持该命令,可将怪物名称检测改为怪物编号检测,替换CheckMonsterName为CheckMonsterID,核对怪物编号后重新测试;若惩罚机制未生效,检查金币扣除命令(GAMEGOLD-1000)是否正确,确保变量无错误。
另外,可根据需求调整提示文字内容,比如改为“禁止攻击新手保护怪物,违者将受到惩罚!”,无需修改脚本命令,仅替换Messagebox后的文字即可;若需要取消禁止攻击,直接删除QManage.txt末尾添加的检测脚本,保存后重启服务端即可,不影响其他脚本功能。
还有一个实用细节,制作脚本时,建议先备份QManage.txt和Monster.txt文件,复制一份存放至其他文件夹,若脚本修改失误,可直接替换回原文件,避免因修改错误导致服务端无法正常运行,备份步骤简单,右键复制文件,粘贴至桌面即可。
若需要禁止攻击全地图特定类型怪物(如所有新手怪物),可在脚本中添加多个怪物名称或编号,按基础版脚本的格式依次添加,无需额外添加其他命令,确保每个条件判断独立,避免脚本冲突。
总结来说,禁止攻击怪物检测脚本制作核心是“确认怪物信息→编辑全局触发脚本→添加检测与拦截命令→保存测试”,全程无需专业编程知识,按步骤复制脚本、替换怪物信息即可完成,基础版满足拦截提示需求,进阶版可添加惩罚机制,适配不同服务端和玩家需求,自己就能轻松制作并生效。
[顶部]