红名武器指攻击后增加角色PK值(pkpoint)的装备,触发红名状态。其核心在于通过HitMagic或HitMonster事件调用PK点数变更命令。原脚本 .pkpoint + 300 格式错误,正确写法如下。
一、红名武器基础配置流程
在 StdItems.txt 中定义武器属性,添加自定义标签(如 RedNameWeapon=1);
在 QFunction-0.txt 的 [@HitMonster] 或 [@HitPlayer] 事件中检测该武器;
调用 CHANGEPKPOINT 命令增加PK值;
系统自动根据PK值判定是否红名(通常PK≥200为红名)。
二、正确脚本格式示例
在 [@HitPlayer] 中实现攻击玩家时加PK点:
[@HitPlayer]
if
CHECKITEMNAME 火龙剑
act
CHANGEPKPOINT +300
SENDMSG 6 你使用火龙剑攻击玩家,PK值+300!
若需通过变量判断,应使用:
[@HitPlayer]
IF
EQUAL 火龙剑
ACT
CHANGEPKPOINT +300
三、原命令错误解析
.pkpoint + 300 存在三处问题:
语法错误:传奇脚本不支持“对象.属性”式写法;
命令缺失:未使用 CHANGEPKPOINT 或 SET PKPOINT 等有效指令;
变量误用:S0 通常用于字符串存储,不能直接操作PK值。
正确变更PK值仅有两种方式:
CHANGEPKPOINT +数值(累加)
SET PKPOINT 数值(直接设定)
四、按武器名称批量配置
若多把武器需红名效果,可在StdItems.txt中统一标记,脚本中用CHECKITEM属性检测:
[Item1001]
Name=噬魂杖
...
DuraMax=50
RedName=1
[Item1002]
Name=屠魔刀
...
RedName=1
脚本中:
[@HitPlayer]
if
CHECKITEMATTR RedName 1
act
CHANGEPKPOINT +200
需确保引擎支持自定义物品属性(如Hero引擎)。
五、红名状态触发条件
系统默认规则:
PK值 ≥ 200:角色变红名,可被自由攻击;
PK值 ≥ 500:地图显示为深红;
PK值 = 0:白名。
可通过 !Setup.txt 修改阈值:
[GameConfig]
RedNamePkPoint=200
DeepRedPkPoint=500
六、避免误伤平民的处理
若仅对主动攻击者加PK,需记录攻击行为。例如:
[@Attack]
act
SET HUMAN(主动攻击) 1
[@HitPlayer]
if
EQUAL 1
CHECKITEMNAME 血饮
act
CHANGEPKPOINT +300
RESET HUMAN(主动攻击)
七、测试与验证
使用 @变量 PKPOINT 查看当前PK值;
攻击稻草人不会触发PK增加(因非玩家目标);
确保M2日志无“无效命令”报错;
红名后检查角色头顶颜色及安全区驱逐逻辑是否正常。
红名武器的核心是准确调用PK变更命令,而非修改不存在的属性字段。所有PK操作必须通过标准服务端指令完成,不可使用类编程语法。

