用 HeroM2 引擎的传奇,怎么写加入门派和加敏捷的脚本?

来源: 作者: 点击:
在玩传奇私人服务器时,用 HeroM2 引擎的话,想给游戏加些新玩法,比如让玩家加入门派后自动加敏捷,其实可以通过写脚本来实现。下面就一步步教你怎么弄,不用太复杂的操作,跟着步骤来就行。
先说说怎么写加入门派的基础脚本
加入门派的脚本主要是让玩家能选择门派,然后系统记录下这个信息。一般可以在 NPC 脚本里设置,比如找个 “门派管理员” 的 NPC,在它的对话脚本里加这些内容:
#say
欢迎来到门派登记处,想加入哪个门派?
<加入战士门派/@joinwarrior>
<加入法师门派/@joinmage>

[@joinwarrior]
#act
SET [1000] 1 //用变量1000记录玩家加入了战士门派,1代表战士
SENDMSG 6 你已成功加入战士门派!
break

[@joinmage]
#act
SET [1000] 2 //变量1000等于2时代表法师门派
SENDMSG 6 你已成功加入法师门派!
break

这里的 “SET [1000] 1” 是用变量记录门派信息,不同数字代表不同门派,方便后面给不同门派加属性。玩家点对应的门派选项,就会触发加入操作,聊天框还会提示成功信息。
再讲核心:给人物加自身敏捷属性的脚本怎么写
你提到的 “USEBONUSPOINT1+ 20” 是加攻击的写法,加敏捷的话,HeroM2 引擎里有专门的命令,常用的是 “ADDSKILL” 或者直接修改属性值的命令,具体可以这么写:
加入门派时直接加敏捷
如果想让玩家加入门派后马上获得 20 点敏捷,可以在上面的门派脚本里接着加命令:
[@joinwarrior]
#act
SET [1000] 1
ADDSKILL 敏捷 20 //直接给人物的敏捷属性加20点
SENDMSG 6 你已加入战士门派,获得20点敏捷加成!
break

这里的 “ADDSKILL 敏捷 20” 就是给敏捷属性加 20 点的意思,不同引擎可能 wording 略有不同,但核心是 “敏捷” 这个属性名称和数值。
用变量判断门派后加敏捷
如果想让不同门派加的敏捷不一样,比如战士加 20,法师加 15,可以用变量判断:
#say
检查你的门派属性加成...
<领取敏捷加成/@getagility>

[@getagility]
#act
IF [1000] = 1 //如果是战士门派
ADDSKILL 敏捷 20
SENDMSG 6 战士门派专属:敏捷+20!
ELSEIF [1000] = 2 //如果是法师门派
ADDSKILL 敏捷 15
SENDMSG 6 法师门派专属:敏捷+15!
ELSE
SENDMSG 6 你还没加入任何门派哦!
ENDIF
break

这样玩家点 “领取敏捷加成” 时,脚本会先看变量记录的门派,再给对应的敏捷点数,灵活又方便。
脚本要放在哪个文件夹里?
这些脚本和之前改回城的脚本位置类似,加入门派的 NPC 脚本放在 “MirServer\Mir200\Envir\Market_Def” 文件夹,用 “门派管理员 - 地图编号.txt” 这样的文件名保存。
如果是全局生效的属性加成脚本,也可以放在 “MapQuest_def” 文件夹里的 “QManage.txt” 中,作为全局任务的一部分触发。
修改后怎么让脚本生效?
写完脚本保存后,和之前一样,在服务器的 M2 控制器里点 “脚本”→“重新加载所有脚本”,或者在游戏里用管理员命令 “@reloadscript”,不用重启服务器就能生效。
试的时候最好建个测试号,加入门派后打开人物属性面板看看敏捷是不是真的加上了,万一没反应,可能是命令里的 “敏捷” 属性名称和引擎里的不一样,比如有的引擎写 “Agility” 或者 “敏”,可以查一下你用的 HeroM2 版本的命令手册。
几个实用小提醒
加敏捷的数值别太夸张,不然游戏平衡容易乱,先从小数值试起。
写脚本时符号要英文状态,比如括号、逗号,中文符号可能导致脚本失效。
最好备份原来的脚本文件,改坏了还能恢复。
其实不管是加敏捷还是其他属性,核心就是找到对应属性的命令,再结合门派的判断条件就行。多试几次,看着自己写的脚本让游戏里的人物属性变化,还是挺有成就感的。如果某个命令没效果,换个类似的命令试试,HeroM2 引擎的兼容性比较好,总有能用的写法。