传奇legendm2引擎扩展Give命令实用脚本范例详解

来源: 作者: 点击:
legendm2引擎对传统Give命令进行了大幅扩展,支持在发放物品的同时附加指定属性。这一功能在传奇服务端脚本编写中非常实用,尤其是需要给玩家发放带有特定属性的装备时,无需再依赖复杂的合成脚本或数据库预设,直接通过NPC脚本即可精确控制物品的每一项属性。以下从命令格式、参数含义、脚本范例和属性代码表四个方面展开说明。

##扩展Give命令的基本格式

legendm2引擎扩展后的Give命令完整格式为:物品名数量属性位置属性值(普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴)。

这个格式在传统Give命令的基础上增加了多个参数段。传统Give只需要“物品名数量”两个参数,扩展后可以在发放的同时指定装备的鉴定属性、特殊属性、神技和鉴定次数。

一个完整的命令示例:

```plaintext
Give霸者之刃1001=112=123=139=15|6=1110=1211=1312=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炼狱10=111=122=133=151=112=123=139=15|6=1110=1211=1312=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霸者之刃1001=112=123=139=15|6=1110=1211=1312=15|67|127|2
SENDMSG0恭喜玩家[%s]获得竞技奖励:霸者之刃(附带特殊属性)
MAPMOVE3333333
#ELSESAY
你的等级不足50级,无法领取该奖励。\

[@领炼狱]
#IF
CHECKLEVELEX>50
#ACT
GiveEx炼狱10=111=122=133=151=112=123=139=15|6=1110=1211=1312=15|67|127|2
SENDMSG0恭喜玩家[%s]获得竞技奖励:炼狱(多属性附加)
MAPMOVE3333333
```

脚本中使用`CHECKLEVELEX`命令判断玩家等级,满足条件后执行扩展Give命令发放带有完整属性配置的装备。发放完成后通过`SENDMSG`命令发送全服公告,并通过`MAPMOVE`将玩家传送回盟重省。

##属性位置代码对照表

扩展Give命令中使用的属性位置数字对应以下属性类型:

|数字|属性类型|起作用的StdMode|
|------|----------|-----------------|
|1|攻击|通用|
|2|魔法|通用|
|3|道术|通用|
|4|物防|561920212324|
|5|魔防|561920212324|
|6|准确|562024|
|7|敏捷|2024|
|8|魔法躲避|1920212324|
|9|幸运|561920212324|
|10|诅咒|56|
|11|攻击速度|56|
|12|神圣|56|
|13|魔法回复|2123|
|14|体力回复|2123|
|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霸者之刃1001=112=123=139=15|6=1110=1211=1312=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数据库中的物品名完全一致,包括空格和标点符号。如果物品名中包含括号或其他特殊字符,需要确保数据库中使用了相同的字符。
[顶部]