传奇矿物纯度脚本全攻略:多矿检测、参数逻辑与纯度生成机制

来源: 作者: 点击:
在传奇私人服务器中,矿物(如黑铁矿、铜矿等)是装备强化、武器升级的关键材料,其纯度直接影响成功率与属性加成。然而,NPC脚本中关于矿物纯度的检测与操作常因参数逻辑不清晰、循环检测机制复杂等问题困扰开发者。本文将从多矿检测脚本编写、`checkduraeva`参数规则解析、矿物纯度生成原理三方面,深度剖析传奇私人服务器矿物系统的技术实现。

---

###一、多矿物纯度检测与扣除脚本实现
####1.**需求场景分析**
需实现:检测玩家背包中存在**至少3块纯度≥15的铜矿**,并一次性扣除这些矿石。

####2.**脚本逻辑设计**
-**循环检测思路**:传奇脚本不支持传统编程中的`FOR`循环,需通过**变量计数**与**条件跳转**模拟循环逻辑。
-**关键命令**:
-`CHECKBAGITEMS`(检测背包物品列表)
-`checkduraeva`(检测指定矿物纯度)
-`TAKE`(扣除物品)

####3.**完整脚本示例**
```lua
[@main]
需要3块纯度≥15的铜矿进行熔炼。\
<开始检测/@check_ore>\
<离开/@exit>

[@check_ore]
#IF
CHECKBAGITEMS铜矿.txt0S1//检测背包是否存在铜矿.txt列表中的矿(此处列表仅含“铜矿”)
#ACT
MOVD10//初始化计数器
GOTO@check_purity_loop

[@check_purity_loop]
#IF
CHECKITEM铜矿1//检测是否存在1块铜矿
checkduraeva铜矿>=15//检测纯度≥15
#ACT
TAKE铜矿1//扣除1块
INCD11//计数器+1
#IF
EQUALD13//是否已扣满3块
#ACT
SAY成功扣除3块高纯度铜矿!
BREAK
#ELSEACT
GOTO@check_purity_loop//继续循环检测
#ELSESAY
背包中高纯度铜矿不足3块!
```


####4.**脚本解析**
-**循环机制**:通过`GOTO`跳转实现循环检测,`D1`变量记录已扣除数量,达到3块时终止。
-**纯度检测精度**:`checkduraeva`命令的`>=`操作符确保纯度达标。
-**列表文件调用**:`铜矿.txt`需在`QuestDiary`目录下,内容为单行`铜矿`,用于批量检测同名矿物。

---

###二、`checkduraeva`参数逻辑深度解析
####1.**参数异常现象**
用户反馈:`checkduraeva铜矿12`实际检测纯度≥15,`checkduraeva铜矿8`检测纯度≥9。

####2.**底层规则揭秘**
-**纯度单位换算**:
传奇引擎中,**1点纯度参数对应实际纯度5%**。例如:
-`checkduraeva铜矿12`→检测纯度≥12×1.25=15%(引擎可能存在1.25倍系数)
-`checkduraeva铜矿8`→检测纯度≥8×1.125=9%(部分引擎版本采用此换算)
-**引擎差异**:不同M2版本可能采用不同换算规则(如1:1或1:1.25),需通过实测校准。

####3.**校准建议**
-**测试脚本**:
```lua
[@test]
#ACT
give铜矿1//给予1块已知纯度的测试矿(如纯度15)
checkduraeva铜矿12
#SAY
{检测通过/@pass}{失败/@fail}

[@pass]
#SAY
当前引擎参数规则:12→15(系数1.25)

[@fail]
#SAY
需调整参数值或检查M2版本
```

-**版本适配**:若使用1.25倍引擎,建议参数值=目标纯度÷1.25。

---

###三、矿物纯度生成机制与制作方法
####1.**矿物生成原理**
-**默认行为**:`@make铜矿`生成的矿物纯度由**M2引擎的挖矿配置**决定,通常为固定值或随机范围。
-**配置文件路径**:
-`Mir200\Envir\OreSetting.txt`:定义矿物名称、爆率、纯度范围。
-**示例配置**:
```
铜矿501-20//爆率50%,纯度随机1-20
```


####2.**定制高纯度矿物方法**
-**方案1:修改OreSetting.txt**
调整纯度范围字段(如`1-20`改为`15-20`),重启M2生效。
-**方案2:脚本强制指定纯度**
使用`give`命令时附加纯度参数(部分引擎支持):
```lua
#ACT
give铜矿115//给予1块纯度15的铜矿
```

-**方案3:合成系统**
通过NPC脚本将低纯度矿熔炼为高纯度:
```lua
[@melt]
#IF
CHECKITEM铜矿5//需要5块任意纯度铜矿
#ACT
TAKE铜矿5
GIVE铜矿115//产出1块纯度15的铜矿
SAY熔炼成功!
```


####3.**M2设置与脚本联动的注意事项**
-**优先级**:脚本中`give`命令的纯度参数会覆盖`OreSetting.txt`的随机范围。
-**版本兼容性**:部分老版本引擎不支持纯度参数附加,需通过`OreSetting.txt`全局控制。

---

###四、常见问题与进阶技巧
####1.**多矿物混合检测**
若需同时检测铜矿与铁矿,可扩展`CHECKBAGITEMS`列表文件:
-**列表文件**:`矿.txt`(内容:铜矿、铁矿)
-**脚本修改**:
```lua
CHECKBAGITEMS矿.txt0S1
```


####2.**纯度范围检测**
实现“纯度10-20”的区间检测:
```lua
#IF
checkduraeva铜矿>=10
checkduraeva铜矿<=20
```


####3.**矿物持久度与纯度关系**
-**持久损耗**:纯度越高,武器升级时持久损耗越低(需在`OreSetting.txt`配置衰减公式)。
-**脚本引用**:通过`CHECKDURAEVA`检测纯度后,可联动`TAKEDURAEVA`扣除指定耐久。
[顶部]