当前脚本逻辑存在判断冲突:因CHECKPKPOINT条件为“等于或大于指定值”,当PK值为1500时,同时满足>1200与>300,导致优先执行第一条匹配([@yaoyuan]),但实际需求是仅当PK≤1200且≥300时走金币清洗。需使用“范围判断”结构,通过组合CHECKPKPOINT与数值比较实现精确区间控制。
一、核心问题解析
CHECKPKPOINT X 实际检测的是“当前PK值 ≥ X×100”。因此:
CHECKPKPOINT 12 → PK ≥ 1200
CHECKPKPOINT 3 → PK ≥ 300
当PK=1500时,两条条件均成立,脚本按顺序执行首条匹配,无法区分“300≤PK
2. 中低PK值处理(300 ≤ PK
!CHECKPKPOINT 12 表示“PK
三、完整修正脚本(QFunction-0.txt内嵌用法)
将以下代码放入QFunction-0.txt的[@会员洗红名]标签下(假设NPC触发此标签):
[@会员洗红名]
IF
CHECKPKPOINT 12
ACT
goto @yaoyuan
SAY
IF
CHECKPKPOINT 3
!CHECKPKPOINT 12
ACT
goto @buyaoyuan
SAY
IF
!CHECKPKPOINT 3
SAY
当前PK值不足300,无法使用清洗服务。
[@yaoyuan]
IF
CHECKGAMEGOLD > 999
ACT
GAMEGOLD - 1000
CHANGEPKPOINT - 50000
GMEXECUTE TestStatus 4 0
GuildNoticeMsg 9 72 ぐ【诅咒】:倒霉蛋“『』”终于解除了自己身上的诅咒.从此可以重新做人了!!
CLOSE
ELSESAY
元宝不足1000个!
[@buyaoyuan]
IF
checkgold 1000000
ACT
take 金币 1000000
CHANGEPKPOINT - 100
SAY
我已经帮你减轻你的罪孽!
ELSESAY
金币不足100万,或你的PK值已超过1200,需使用元宝清洗!
四、关键机制说明
条件顺序不可颠倒:高PK值判断必须置于中低PK值之前,否则PK≥1200会误入金币分支;
!符号作用:!CHECKPKPOINT X 等效于“PK值 < X×100”,是实现上限判断的核心;
会员专属调用:确保该脚本仅通过会员NPC触发(如[@会员洗红名]),避免普通玩家绕过限制;
PK值单位统一:CHANGEPKPOINT -50000 对应减少500点PK值(因PK值存储单位为0.01点),与CHECKPKPOINT的12=1200一致。
按此方案调整后,PK≥1200强制使用元宝,300≤PK<1200消耗金币,PK<300禁止操作,完全匹配仿盛大传奇的洗红名逻辑。

