legendm2引擎对传统Give命令进行了大幅扩展,支持在发放物品的同时附加指定属性。这一功能在传奇服务端脚本编写中非常实用,尤其是需要给玩家发放带有特定属性的装备时,无需再依赖复杂的合成脚本或数据库预设,直接通过NPC脚本即可精确控制物品的每一项属性。以下从命令格式、参数含义、脚本范例和属性代码表四个方面展开说明。
## 扩展Give命令的基本格式
legendm2引擎扩展后的Give命令完整格式为:物品名 数量 属性位置 属性值 (普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴)。
这个格式在传统Give命令的基础上增加了多个参数段。传统Give只需要“物品名 数量”两个参数,扩展后可以在发放的同时指定装备的鉴定属性、特殊属性、神技和鉴定次数。
一个完整的命令示例:
```plaintext
Give 霸者之刃 1 0 0 1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2
```
该命令的含义是:给玩家一把霸者之刃,附加普通鉴定属性(攻击+11、魔法+12、道术+13、幸运+15),神秘鉴定属性(准确+11、诅咒+12、攻击速度+13、神圣+15),特殊属性代码67,神技代码127,鉴定次数2。
## 各参数段详细说明
普通鉴定属性段使用“属性位置=属性值”的格式,多个属性之间用逗号分隔,最多可以设置4项。属性位置范围1到30,对应不同的属性类型。属性值范围1到15。例如`1=11`表示攻击属性增加11点,`2=12`表示魔法属性增加12点。
神秘鉴定属性段的格式与普通鉴定属性完全一致,同样最多4项,用逗号分隔,属性位置和值的范围也相同。两段属性之间用竖线分隔。
特殊属性段使用固定代码,多个特殊属性通过代码相加来组合。固定特殊属性代码为:01八卦护身神技、02战意麻痹神技、04重生神技、08探测神技、16传送神技、32麻痹神技、64魔道麻痹神技。如果需要同时包含战意麻痹和探测属性,将代码相加02+08=10,在特殊属性段填入10即可。如果需要八卦护身和战意麻痹,01+02=3,填入3。
神技段同样使用代码相加的方式。固定神技代码为:01五岳独尊、02召唤巨魔、04神龙附体、08倚天劈地。例如要同时赋予五岳独尊和神龙附体,01+04=5,神技段填入5。
最后一个参数是鉴定次数,直接填写数字即可。
## GiveEx命令与Give扩展的区别
legendm2引擎还提供了GiveEx命令,与扩展Give命令的主要区别在于普通属性的数量限制。Give扩展命令只能赋予一种普通属性,而GiveEx可以同时赋予多个普通属性。
GiveEx命令格式为:物品名 数量 (附加属性) (普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴)。
附加属性段的格式为“属性位置=属性值”,多个属性用逗号分隔,属性位置范围0到30,属性值范围1到255。这一段与后面的普通鉴定属性段是独立的,附加属性直接作用于装备的基础属性,而鉴定属性是通过鉴定系统生成的额外属性。
GiveEx的完整示例:
```plaintext
GiveEx 炼狱 1 0=11,1=12,2=13,3=15 1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2
```
该命令给玩家一把炼狱,附加属性设置4项(属性位置0到3分别赋值为11、12、13、15),同时设置普通鉴定属性4项、神秘鉴定属性4项、特殊属性67、神技127、鉴定次数2。
## 脚本中调用扩展Give命令的完整范例
以下是一个NPC脚本中实际调用扩展Give命令的范例,用于发放带有指定属性的竞技奖励装备:
```plaintext
[@main]
恭喜你完成了竞技挑战,可以获得以下奖励\
<领取霸者之刃/@领武器>\
<领取炼狱/@领炼狱>\
[@领武器]
#IF
CHECKLEVELEX > 50
#ACT
Give 霸者之刃 1 0 0 1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2
SENDMSG 0 恭喜玩家[%s]获得竞技奖励:霸者之刃(附带特殊属性)
MAPMOVE 3 333 333
#ELSESAY
你的等级不足50级,无法领取该奖励。\
[@领炼狱]
#IF
CHECKLEVELEX > 50
#ACT
GiveEx 炼狱 1 0=11,1=12,2=13,3=15 1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2
SENDMSG 0 恭喜玩家[%s]获得竞技奖励:炼狱(多属性附加)
MAPMOVE 3 333 333
```
脚本中使用`CHECKLEVELEX`命令判断玩家等级,满足条件后执行扩展Give命令发放带有完整属性配置的装备。发放完成后通过`SENDMSG`命令发送全服公告,并通过`MAPMOVE`将玩家传送回盟重省。
## 属性位置代码对照表
扩展Give命令中使用的属性位置数字对应以下属性类型:
| 数字 | 属性类型 | 起作用的StdMode |
|------|----------|-----------------|
| 1 | 攻击 | 通用 |
| 2 | 魔法 | 通用 |
| 3 | 道术 | 通用 |
| 4 | 物防 | 5,6,19,20,21,23,24 |
| 5 | 魔防 | 5,6,19,20,21,23,24 |
| 6 | 准确 | 5,6,20,24 |
| 7 | 敏捷 | 20,24 |
| 8 | 魔法躲避 | 19,20,21,23,24 |
| 9 | 幸运 | 5,6,19,20,21,23,24 |
| 10 | 诅咒 | 5,6 |
| 11 | 攻击速度 | 5,6 |
| 12 | 神圣 | 5,6 |
| 13 | 魔法回复 | 21,23 |
| 14 | 体力回复 | 21,23 |
| 15 | 目标爆率 | 通用 |
| 16 | 防爆 | 通用 |
| 17 | 吸血上限 | 通用 |
| 18 | 内力恢复 | 通用 |
| 19 | 内力上限 | 通用 |
| 20 | 内功伤害 | 通用 |
| 21 | 内功减免 | 通用 |
| 22 | 内伤等级 | 通用 |
| 23 | 暴击威力 | 通用 |
| 24 | 合击威力 | 通用 |
| 25 | 麻痹抗性 | 通用 |
| 26 | 强身等级 | 通用 |
| 27 | 聚魔等级 | 通用 |
| 28 | 主属性 | 通用 |
| 29 | 毒物躲避 | 通用 |
| 30 | 中毒恢复 | 通用 |
上表中标注为“通用”的属性对任意装备位置都有效,标注了StdMode范围的属性只在对应类型的装备上生效。
## 项链手镯戒指的Shape值差异说明
对于项链、手镯、戒指这三类装备,属性位置对应的实际属性会因DB数据库中Shape值的不同而变化。
项链部分:Shape值为19时,属性位置0对应魔法躲避,属性位置1对应幸运。Shape值为20时,属性位置0对应准确,属性位置1对应敏捷。Shape值为21时,属性位置0对应体力恢复,属性位置1对应魔法恢复。
手镯部分:Shape值为24时,属性位置0对应准确,属性位置1对应敏捷。Shape值为26时,属性位置0对应防御上限,属性位置1对应魔御上限。
戒指部分:Shape值为22时,属性位置0对应防御上限,属性位置1对应魔御上限。Shape值为23时,属性位置0对应毒物躲避,属性位置1对应中毒恢复。
盔甲类:属性位置0对应防御,1对应魔御,2对应攻击,3对应魔法,4对应道术,14对应持久。武器类:属性位置0对应DC2,1对应MC2,2对应SC2,3对应幸运,4对应诅咒,5对应准确,6对应攻击速度,7对应强度,14对应持久。头盔类:属性位置0对应防御,1对应魔御,2对应攻击,3对应魔法,4对应道术,5对应佩带需求,6对应佩带级别,14对应持久。
## 英雄使用扩展Give命令的方法
对英雄操作时,在命令前加H.前缀即可。格式为`H.give 物品名 数量`,扩展参数同样适用。
例如给英雄发放一把带属性的武器:
```plaintext
#ACT
H.Give 霸者之刃 1 0 0 1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2
```
英雄的Give命令与人物Give命令在参数格式上完全一致,只是通过H.前缀区分操作对象。
## 常见问题与注意事项
属性位置0到15的数值范围与属性位置1到30的代码表是两套不同的体系。使用基础扩展格式(属性位置0~15,数值0~255)时,需要参考武器、盔甲、头盔、项链等装备类型的属性位置对照表。使用完整扩展格式(普通鉴定属性+神秘鉴定属性+特殊属性+神技+几鉴)时,普通鉴定属性和神秘鉴定属性中的属性位置使用1~30的代码表。
特殊属性和神技的代码相加必须确保代码之间不重复叠加。如果同时需要八卦护身(01)和重生(04),相加结果为05。如果错误地将两个相同代码相加,例如战意麻痹(02)加战意麻痹(02)等于04,结果会变成重生神技,与预期完全不符。每个代码在同一属性段中只能使用一次。
GiveEx的附加属性段和鉴定属性段功能不同,附加属性直接修改装备的基础属性数值,而鉴定属性是通过鉴定系统生成的可鉴定条目。两者可以同时使用,互不冲突。
属性值范围方面,普通鉴定属性和神秘鉴定属性的属性值范围为1到15,GiveEx的附加属性值范围为1到255。超出范围的值可能导致命令执行失败或属性显示异常。
扩展Give命令仅适用于legendm2引擎,其他引擎如GOM、GEE等不支持相同的参数格式。使用前需要确认服务端引擎类型,避免因命令不兼容导致脚本报错。
脚本中物品名称必须与DB数据库中的物品名完全一致,包括空格和标点符号。如果物品名中包含括号或其他特殊字符,需要确保数据库中使用了相同的字符。
传奇legendm2引擎扩展Give命令实用脚本范例详解
来源:
作者:
点击:

