传奇红名武器配置方法及PK点数脚本修正

来源: 作者: 点击:
红名武器指攻击后增加角色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
SENDMSG6你使用火龙剑攻击玩家,PK值+300!

若需通过变量判断,应使用:
[@HitPlayer]
IF
EQUAL火龙剑
ACT
CHANGEPKPOINT+300


三、原命令错误解析
.pkpoint+300存在三处问题:
语法错误:传奇脚本不支持“对象.属性”式写法;
命令缺失:未使用CHANGEPKPOINT或SETPKPOINT等有效指令;
变量误用:S0通常用于字符串存储,不能直接操作PK值。

正确变更PK值仅有两种方式:
CHANGEPKPOINT+数值(累加)
SETPKPOINT数值(直接设定)

四、按武器名称批量配置
若多把武器需红名效果,可在StdItems.txt中统一标记,脚本中用CHECKITEM属性检测:
[Item1001]
Name=噬魂杖
...
DuraMax=50
RedName=1

[Item1002]
Name=屠魔刀
...
RedName=1

脚本中:
[@HitPlayer]
if
CHECKITEMATTRRedName1
act
CHANGEPKPOINT+200

需确保引擎支持自定义物品属性(如Hero引擎)。

五、红名状态触发条件
系统默认规则:
PK值≥200:角色变红名,可被自由攻击;
PK值≥500:地图显示为深红;
PK值=0:白名。
可通过!Setup.txt修改阈值:
[GameConfig]
RedNamePkPoint=200
DeepRedPkPoint=500

六、避免误伤平民的处理
若仅对主动攻击者加PK,需记录攻击行为。例如:
[@Attack]
act
SETHUMAN(主动攻击)1

[@HitPlayer]
if
EQUAL1
CHECKITEMNAME血饮
act
CHANGEPKPOINT+300
RESETHUMAN(主动攻击)


七、测试与验证
使用@变量PKPOINT查看当前PK值;
攻击稻草人不会触发PK增加(因非玩家目标);
确保M2日志无“无效命令”报错;
红名后检查角色头顶颜色及安全区驱逐逻辑是否正常。

红名武器的核心是准确调用PK变更命令,而非修改不存在的属性字段。所有PK操作必须通过标准服务端指令完成,不可使用类编程语法。
[顶部]