传奇雇佣兵脚本配置与功能使用详解

来源: 作者: 点击:
雇佣兵脚本通过添加智能NPC伙伴,增强角色战斗与辅助能力。核心脚本通常由 Merchant.txt 定义NPC,配套脚本文件控制逻辑,数据库条目设定属性。

雇佣兵脚本核心组成部分
1. NPC脚本:定义雇佣交互界面。基础模板如下,需放置于 Merchant.txt:

雇佣兵管理员 3 333 333 雇佣兵使者 0 2013 0 0 0 0 0

此行代码在盟重省(333,333)创建名为“雇佣兵使者”的NPC,外观代码2013。
2. 对话脚本:控制交互选项,文件为 雇佣兵管理员.txt,存放于 Market_Def。内容示例:

[@main]
雇佣兵助你征战沙场!\ \
<雇佣战士/@hire_warrior> 拥有高生命与物理攻击\ \
<雇佣法师/@hire_mage> 拥有远程魔法与群体伤害\ \
<雇佣道士/@hire_taoist> 拥有治疗与施毒能力\ \
<查看状态/@status> <提升等级/@upgrade>\ \
<解散雇佣兵/@dismiss>

3. 数据库设置:在 Monster.DB 中创建雇佣兵怪物数据,设定基础属性如生命值、攻击力、防御力。关键字段 Race 需设置为 188 或类似值,标识为友方单位。
4. 核心功能脚本:实现雇佣、升级、解散等逻辑。需处理等级、忠诚度、经验值增长及战斗AI。

雇佣兵完整功能脚本示例
以下为带注释的 QFunction-0.txt 脚本片段,实现雇佣与管理:

;---雇佣战士---
[@hire_warrior]
#if
check [310] 1 ;检测是否已雇佣
#act
messagebox 你已拥有雇佣兵!
break
#elseact
set [310] 1 ;设置雇佣标志
MonGen 雇佣兵战士 1 0 ;在NPC旁刷新雇佣兵
SetMerchantName 雇佣兵战士 我的战士 ;为其命名
SetMerchantLevel 雇佣兵战士 1 ;设置初始等级
SetMerchantLoyalty 雇佣兵战士 100 ;设置初始忠诚度
SetMerchantExp 雇佣兵战士 0 ;设置初始经验
SetMerchantAttackMode 雇佣兵战士 主动攻击 ;设置攻击模式
messagebox 雇佣成功!你的战士已就位。
break

;---查看状态---
[@status]
#if
check [310] 1
#act
GetMerchantLevel 雇佣兵战士 <$OUTPUT(Level)> ;获取等级
GetMerchantLoyalty 雇佣兵战士 <$OUTPUT(Loyalty)> ;获取忠诚度
GetMerchantExp 雇佣兵战士 <$OUTPUT(Exp)> ;获取经验
messagebox 等级:<$OUTPUT(Level)>\忠诚度:<$OUTPUT(Loyalty)>\经验值:<$OUTPUT(Exp)>
#elseact
messagebox 你尚未雇佣任何士兵。
break

;---提升等级(消耗金币)---
[@upgrade]
#if
check [310] 1
checkgold 500000 ;检查是否有50万金币
#act
take 金币 500000
IncMerchantLevel 雇佣兵战士 1 ;等级+1
IncMerchantLoyalty 雇佣兵战士 5 ;忠诚度+5
messagebox 你的雇佣兵等级提升了!
#elseact
messagebox 金币不足或雇佣兵不存在。
break

;---解散雇佣兵---
[@dismiss]
#if
check [310] 1
#act
set [310] 0
MonClear 雇佣兵战士 ;清除该雇佣兵
messagebox 雇佣兵已解散。
break


高级参数配置与战斗AI
在数据库或脚本中定义雇佣兵行为:
1. 属性成长:每次升级,通过脚本提升 DC(物理攻击)、MC(魔法攻击)、SC(道术)、AC(防御)、MAC(魔防)、MaxHP(生命值)。
2. 忠诚度系统:雇佣兵受伤或死亡降低忠诚度,使用特定物品或金币可恢复。忠诚度过低可能导致临阵脱逃。
3. 战斗指令:通过聊天框命令控制,如 @雇佣兵攻击、@雇佣兵守护、@雇佣兵休息。
4. 经验共享:击杀怪物后,雇佣兵按比例获得经验,经验满则自动升级。脚本需监听 KillMon 事件并分配经验值。
5. 装备佩戴(可选):高级脚本允许为雇佣兵佩戴装备,需在数据库增加 Need 字段识别,并通过脚本命令实现穿戴。

安装与调试步骤
1. 将 Merchant.txt 条目添加至服务端 Mir200\Envir\Merchant.txt。
2. 将 雇佣兵管理员.txt 放入 Mir200\Envir\Market_Def\。
3. 将雇佣兵怪物数据添加至 DBServer\Monster.DB。
4. 将功能脚本片段合并至 Mir200\Envir\Market_Def\QFunction-0.txt。
5. 重启游戏服务器 M2Server.exe,在指定坐标找到NPC测试功能。
6. 调试:若雇佣兵不出现,检查 MonGen 坐标与地图代码;若不攻击,检查 Race 代码与攻击模式;若属性无增长,检查升级脚本触发与数据库字段。

注意事项
不同游戏引擎命令可能有差异,需根据 M2Server 版本调整。忠诚度与经验值数据需使用变量存储,防止重置。为避免影响平衡,需合理设定雇佣兵属性成长系数与雇佣成本。