HeroM2传奇门派脚本 人物自身敏捷属性添加教程

来源: 作者: 点击:
一、核心说明(敏捷属性指令与逻辑)

1. 敏捷属性添加指令解析

用户提及的“USEBONUSPOINT1+ 20”是攻击属性加成指令,HeroM2引擎中,人物自身敏捷属性添加需使用专属指令,核心指令如下:

# 敏捷属性添加核心指令(两种常用格式)
# 格式1:直接添加固定敏捷值(永久生效,死亡/下线不消失)
AddAgility 20 # 给当前人物添加20点自身敏捷
# 格式2:基于等级/门派等级添加敏捷(动态适配)
AddAgility $LEVEL*2 # 按人物等级的2倍添加敏捷(如30级添加60点)
# 说明:
# 指令中数值为敏捷点数,可按需调整(如10、30等)
# 敏捷属性影响人物攻击速度、闪避率,具体效果由服务端属性配置决定

2. 门派脚本核心逻辑

门派脚本需实现“创建门派-加入门派-触发属性加成”三步逻辑:玩家创建或加入门派后,脚本自动触发敏捷属性添加,同时支持门派专属敏捷加成(不同门派加成不同),属性添加后同步给玩家提示,确保效果可视化。

所有脚本均需放在传奇服务端“Mirserver\Mir200\Script”目录,通过主触发文件“QuestDiary.txt”加载,无需改动客户端,仅修改服务端脚本即可生效。

二、前期准备(文件与工具)

1. 必备文件备份

定位服务端核心文件,提前备份以下内容,避免修改失误导致异常:

(1)脚本目录:Mirserver\Mir200\Script(含QuestDiary.txt主触发文件);

(2)属性配置文件:Mirserver\Mir200\Envir\Global.txt(含属性上限配置);

(3)门派数据库:部分服务端含“Faction.db”,无则无需备份(脚本可自动创建门派记录)。

2. 辅助工具

准备脚本编辑器(Notepad++优先,便于查看语法)、HeroM2引擎控制器(用于重启引擎加载脚本)、游戏测试账号(用于验证属性添加效果)。

三、完整门派脚本编写(含敏捷属性添加)

1. 门派创建脚本(基础功能)

新建脚本文件“FactionCreate.txt”,粘贴以下脚本(支持玩家创建门派,创建成功添加10点敏捷):

# HeroM2传奇门派创建脚本(含敏捷属性加成)
# 触发命令:玩家在游戏内输入“@创建门派 门派名称”触发
[@CommandCreateFaction]
#IF
CheckLevel >= 30 # 限制创建门派等级(30级可调整)
CheckGold >= 100000 # 消耗金币10万(可调整)
CheckFactionOwner 0 # 判定玩家未创建过门派(0为无门派)
#ACT
CreateFaction $PARAM1 # 创建门派,名称为玩家输入的“门派名称”
TakeGold 100000 # 扣除创建门派金币
AddAgility 10 # 创建门派成功,添加10点自身敏捷
SendMsg $USERID 255 0 0 【门派】创建“$PARAM1”门派成功!获得10点敏捷加成!
SaveUserData # 保存玩家数据(避免属性丢失)
#ELSESAY
无法创建门派!原因:#IF CheckLevel <30 等级不足30级 #ELSEIF CheckGold <100000 金币不足10万 #ELSE 已创建过门派 #ENDIF

# 玩家查询自身门派与敏捷属性
[@CommandQueryFaction]
#ACT
GetFactionName $USERID FactionName # 获取玩家所在门派名称
GetAgility $USERID CurrentAgility # 获取玩家当前敏捷值
SendMsg $USERID 255 0 0 【门派】你当前所在门派:$FactionName,当前敏捷值:$CurrentAgility
#ELSESAY
你未加入任何门派,当前敏捷值:$CurrentAgility

2. 门派加入脚本(核心:敏捷属性添加)

新建脚本文件“FactionJoin.txt”,粘贴以下脚本(支持玩家加入门派,加入成功添加20点敏捷,不同门派可设置不同加成):

# HeroM2传奇门派加入脚本(含敏捷属性加成)
# 触发命令:玩家输入“@加入门派 门派名称”触发
[@CommandJoinFaction]
#IF
CheckLevel >= 20 # 限制加入门派等级(20级可调整)
CheckFactionExist $PARAM1 # 判定输入的门派是否存在
CheckFactionMember 0 # 判定玩家未加入其他门派
#ACT
JoinFaction $PARAM1 # 加入指定门派
# 不同门派设置不同敏捷加成(示例:3个门派差异化加成)
#IF 加入“风云阁”门派,添加20点敏捷
#IF $PARAM1 = 风云阁
AddAgility 20
SendMsg $USERID 255 0 0 【门派】加入风云阁成功!获得20点敏捷加成!
#ELSEIF 加入“雷霆殿”门派,添加15点敏捷
#ELSEIF $PARAM1 = 雷霆殿
AddAgility 15
SendMsg $USERID 255 0 0 【门派】加入雷霆殿成功!获得15点敏捷加成!
#ELSE 其他门派统一添加10点敏捷
AddAgility 10
SendMsg $USERID 255 0 0 【门派】加入$PARAM1成功!获得10点敏捷加成!
#ENDIF
SaveUserData # 保存属性数据
#ELSESAY
无法加入门派!原因:#IF CheckLevel <20 等级不足20级 #ELSEIF !CheckFactionExist $PARAM1 门派不存在 #ELSE 已加入其他门派 #ENDIF

# 退出门派:移除敏捷加成(可选,避免退门派后仍保留属性)
[@CommandQuitFaction]
#IF
CheckFactionMember 1 # 判定玩家已加入门派
#ACT
GetFactionName $USERID QuitFaction # 获取退出的门派名称
QuitFaction # 退出门派
# 移除对应门派的敏捷加成(与加入时加成一致)
#IF 退出风云阁,移除20点敏捷
#IF $QuitFaction = 风云阁
SubAgility 20
#ELSEIF 退出雷霆殿,移除15点敏捷
#ELSEIF $QuitFaction = 雷霆殿
SubAgility 15
#ELSE 退出其他门派,移除10点敏捷
SubAgility 10
#ENDIF
SendMsg $USERID 255 0 0 【门派】已退出$QuitFaction!移除对应敏捷加成!
SaveUserData
#ELSESAY
你未加入任何门派,无法退出!

3. 门派NPC触发脚本(替代命令触发,可选)

若需通过NPC触发门派加入(更直观,适合新手玩家),新建脚本文件“FactionNPC.txt”,粘贴以下脚本(NPC名称:门派管理员):

# 门派管理员NPC脚本(含敏捷属性添加)
[@Main] # NPC对话主界面
#ACT
SendMsg $USERID 255 0 0 【门派管理员】欢迎光临!请选择操作:
SendMsg $USERID 255 0 0 1.创建门派(30级/10万金币,获10点敏捷)
SendMsg $USERID 255 0 0 2.加入门派(20级,获对应门派敏捷加成)
SendMsg $USERID 255 0 0 3.退出门派(移除敏捷加成)
SendMsg $USERID 255 0 0 4.查询门派与敏捷
SetMenu 1 2 3 4

# 选择“创建门派”
[@Menu1]
#ACT
SendMsg $USERID 255 0 0 【门派管理员】请输入要创建的门派名称(格式:创建 门派名)
SetInputMsg 请输入门派名称 # 弹出输入框
Goto @CreateFactionInput

# 输入门派名称后触发
[@CreateFactionInput]
#IF
CheckLevel >=30 && CheckGold >=100000 && CheckFactionOwner 0
#ACT
CreateFaction $INPUTMSG
TakeGold 100000
AddAgility 10
SendMsg $USERID 255 0 0 【门派管理员】创建“$INPUTMSG”成功!获得10点敏捷!
SaveUserData
#ELSESAY
创建失败!#IF CheckLevel<30 等级不足30级 #ELSEIF CheckGold<100000 金币不足 #ELSE 已创建门派 #ENDIF
Goto @Main

# 选择“加入门派”
[@Menu2]
#ACT
SendMsg $USERID 255 0 0 【门派管理员】请输入要加入的门派名称(格式:加入 门派名)
SetInputMsg 请输入门派名称
Goto @JoinFactionInput

# 输入门派名称后触发
[@JoinFactionInput]
#IF
CheckLevel >=20 && CheckFactionExist $INPUTMSG && CheckFactionMember 0
#ACT
JoinFaction $INPUTMSG
# 差异化敏捷加成
#IF $INPUTMSG = 风云阁
AddAgility 20
SendMsg $USERID 255 0 0 【门派管理员】加入风云阁成功!获20点敏捷!
#ELSEIF $INPUTMSG = 雷霆殿
AddAgility 15
SendMsg $USERID 255 0 0 【门派管理员】加入雷霆殿成功!获15点敏捷!
#ELSE
AddAgility 10
SendMsg $USERID 255 0 0 【门派管理员】加入$INPUTMSG成功!获10点敏捷!
#ENDIF
SaveUserData
#ELSESAY
加入失败!#IF CheckLevel<20 等级不足 #ELSEIF !CheckFactionExist $INPUTMSG 门派不存在 #ELSE 已加入门派 #ENDIF
Goto @Main

# 选择“退出门派”“查询门派”(逻辑同命令触发,略)
[@Menu3]
#ACT
Goto @CommandQuitFaction
[@Menu4]
#ACT
Goto @CommandQueryFaction

4. 脚本加载(核心步骤,必做)

所有脚本需通过主触发文件加载,步骤如下:

第一步:将“FactionCreate.txt”“FactionJoin.txt”“FactionNPC.txt”(若创建)放入服务端“Mirserver\Mir200\Script”目录;

第二步:打开主触发文件“QuestDiary.txt”,在文件末尾添加以下加载指令:

# 加载门派与敏捷属性脚本
#include D:\Mirserver\Mir200\Script\FactionCreate.txt
#include D:\Mirserver\Mir200\Script\FactionJoin.txt
#include D:\Mirserver\Mir200\Script\FactionNPC.txt # 若创建NPC脚本则添加
# 说明:路径需与脚本实际存放路径一致,若服务端在E盘则改为E:\...

第三步:保存“QuestDiary.txt”,打开HeroM2引擎控制器,重启引擎与服务端,脚本即可生效。

四、敏捷属性添加进阶设置(可选)

1. 门派等级解锁敏捷加成

添加门派等级判定,门派等级提升后解锁更高敏捷加成,修改“FactionJoin.txt”中加入门派的敏捷添加逻辑:

# 门派等级解锁敏捷加成示例(风云阁)
#IF $PARAM1 = 风云阁
# 获取门派等级($FACTIONLEVEL为门派等级变量)
GetFactionLevel $PARAM1 FactionLev
# 门派1级加20点,2级加30点,3级加40点
#IF $FactionLev = 1
AddAgility 20
#ELSEIF $FactionLev = 2
AddAgility 30
#ELSEIF $FactionLev >=3
AddAgility 40
#ENDIF
SendMsg $USERID 255 0 0 【门派】风云阁($FactionLev级)加入成功!获得$Agility点敏捷!
#ENDIF

2. 敏捷属性上限调整

若添加敏捷后无效果,可能是属性上限限制,打开“Mirserver\Mir200\Envir\Global.txt”,搜索“MaxAgility”(敏捷上限),修改数值:

# 敏捷属性上限配置
MaxAgility=500 # 默认为100,可调整为500或更高,避免加成后达上限无法显示
# 保存后重启服务端,上限设置即可生效

3. 敏捷属性临时加成(限时生效)

若需设置临时敏捷加成(如加入门派后24小时内生效),使用以下指令替换AddAgility:

# 临时敏捷加成指令(单位:毫秒,86400000为24小时)
AddAgilityTemp 20 86400000 # 加入门派后,获得20点敏捷,持续24小时
SendMsg $USERID 255 0 0 【门派】获得20点临时敏捷(24小时内有效)!

五、常见问题排查(新手必看)

1. 加入门派后无敏捷加成

核心排查点:

(1)脚本加载失败:核对QuestDiary.txt中的加载指令路径,确保与脚本存放路径一致,重启引擎;

(2)敏捷上限不足:打开Global.txt,提高MaxAgility数值,重启服务端;

(3)指令语法错误:检查脚本中AddAgility指令是否小写(Hero引擎指令区分大小写),参数是否正确(无多余空格)。

2. 退出门派后敏捷未移除

原因:退出门派脚本中SubAgility(移除敏捷)指令与加入时AddAgility数值不一致,或未添加该指令。解决方法:确保SubAgility数值与加入时的敏捷加成一致,核对脚本中退出逻辑,补充缺失的SubAgility指令。

3. 门派NPC无对话响应

排查两点:一是NPC脚本未加载,核对加载指令;二是NPC未放置到游戏地图,打开服务端“Mirserver\Mir200\Envir\Map”目录,找到对应地图文件(如D1Map.txt),添加NPC条目:

# 门派管理员NPC放置示例(新手村300,300坐标)
300 300 门派管理员 1 0 0 # 坐标X 坐标Y NPC名称 外观编号 其他参数

4. 脚本加载报错(引擎控制台提示错误)

原因:脚本语法错误(如缺失#、endif,变量错误)。解决方法:逐行核对脚本,确保所有指令小写,条件判断闭合(#IF对应#ENDIF),变量格式正确(如$PARAM1、$INPUTMSG),删除多余空格或换行。

六、关键操作要点(避坑指南)

1. 所有脚本指令需小写(如AddAgility、JoinFaction),HeroM2引擎对大小写敏感,大写指令会导致脚本失效。

2. 敏捷加成数值需合理设置(建议10-40点),过高会导致游戏平衡失衡,可结合服务端其他属性加成调整。

3. 每次修改脚本后,需重启HeroM2引擎与服务端,仅保存脚本不重启,配置无法生效。

4. 测试时优先创建新角色,按“创建/加入门派-查询敏捷-退出门派-查询敏捷”流程测试,确认属性添加与移除正常。

5. 备份脚本与配置文件,修改失误时可快速恢复,避免服务端异常无法启动。

按以上步骤编写脚本,即可实现HeroM2传奇门派加入与人物自身敏捷属性添加功能,核心在于正确使用AddAgility指令、完善门派触发逻辑与脚本加载。新手可按“编写脚本-加载-测试-排查”流程逐步操作,重点核对指令语法与路径,即可确保功能正常生效。