传奇单机版上线自动赋予多倍攻击属性通过QFunction-0.txt触发[@Login]用CHANGEITEMADD

来源: 作者: 点击:
想在角色每次上线(登录或进入游戏选完角色)自动获得多倍攻击、魔法、道术,不需要改数据库永久写死属性,而是在人物上线触发脚本里用ChangeAttRage/ChangeItemAddValue或给角色变量乘倍率再写入DC/MC/SC。不同引擎写法不同,下面按GOM/GEE和Hero引擎分别说明,最通用的是上线给佩戴武器临时追加倍率或用H.ADDATT加点。

一、找到上线触发脚本文件

服务端目录 MirServer\Mir200\Envir\QuestDiary\ ,打开或新建 QFunction-0.txt(部分版本叫 QFunction.txt 或放在 Default 子目录下的 QFunction-0.txt)。这是全局事件触发脚本,其中 [@Login] 段在角色选完角色进入游戏瞬间执行一次。

若文件是新建的,首行可空或写备注,直接贴 [@Login] 段即可。

二、GOM/GEE引擎——上线给多倍属性(三种做法)

做法A:给人物基础属性直接加固定值(推荐,简单稳定)
在QFunction-0.txt写入:

[@Login]
#IF
#ACT
H.ADDATTACK 50
H.ADDMAGIC 50
H.ADDTAOIST 50
SENDMSG 6 上线获得多倍加成:攻击/魔法/道术+50!

说明:
• H.ADDATTACK / H.ADDMAGIC / H.ADDTAOIST 是GOM对英雄及主号的附加属性(部分版本主号直接用 ADDATTACK 不加H.前缀,先试ADDATTACK)。

- 数值50表示额外加在面板上的白字攻击值,下线再上线重新加一次不影响(引擎自动管理上线附加,不会叠加翻倍)。
• 想做"倍率"效果(如主号原始DC×2)需先读人物DC存变量再SET,较复杂,固定附加值对单机够用。

若ADDATTACK不识别(少数精简版),改用:

CHANGEHUMABIL DC 50
CHANGEHUMABIL MC 50
CHANGEHUMABIL SC 50

CHANGEHUMABIL 字段可为 DC/MC/SC/AC/MAC/MAXHP/MAXMP,数值为加值。

做法B:给身上武器追加强化点数模拟倍率
适合你想让刷出来的武器看起来数值暴涨:

[@Login]
#IF
CheckTakeOnItem 1
#ACT
ChangeItemAddValue 1 0 30
ChangeItemAddValue 1 1 30

1=武器部位,0=攻击下限追加值,1=攻击上限追加值,30即武器攻击上下限各+30。只对当前穿戴武器生效,脱下再穿需配合[@TakeOn]段再执行一次。

做法C:用变量算倍率(进阶,需HumanDecVar支持)

[@Login]
#IF
#ACT
GETHUMANINFO DC MYDC
CALCVAR HUMAN MYDC * 2 MYNEWDC
SETHUMANINFO DC MYNEWDC

部分新版GOM支持GETHUMANINFO/SETHUMANINFO,不支持则此段忽略用做法A。

三、Hero引擎——上线加多倍属性

Hero版QFunction-0.txt写法:

[@Login]
#IF
#ACT
DEC HUMAN DC 0 100
DEC HUMAN MC 0 80
DEC HUMAN SC 0 60
SENDMSG 6 已激活上线多倍属性!

DEC HUMAN DC 下限加成 上限加成 — Hero引擎用此格式给主号加临时基础属性(下线清除,重登重加不会叠加)。部分Hero用:

CHANGEHUMABIL DC 100
CHANGEHUMABIL MC 80
CHANGEHUMABIL SC 60


若想让英雄也加:

HERO.ADDATTACK 50
HERO.ADDMAGIC 50
HERO.ADDTAOIST 50


四、配合穿戴/卸下武器保持加成(防脱装失效)

只做[@Login]时若你要求武器追加值(做法B),脱下再穿武器会丢追加,需补写穿戴触发:

[@TakeOn1]
#IF
CheckTakeOnItem 1
#ACT
ChangeItemAddValue 1 0 30
ChangeItemAddValue 1 1 30

[@TakeOff1]
#IF
#ACT
;脱下不做处理,引擎自动清追加


[@TakeOn1]中1指武器位(2=衣服等),确保与[@Login]中武器追加值一致。

五、重载与测试

保存QFunction-0.txt为ANSI编码,M2Server点"控制→重新加载→QM脚本(或所有脚本)"。完全退出游戏角色再重新登录,角色进入瞬间应收到黄字提示且面板攻击/魔法/道术数值明显上涨。

验证:输入 @getinfo 或F10看属性面板,对比未加时的基础DC/MC/SC确认已加值;小退重登确认数值不翻倍叠加(正常只加一次)。

六、常见错误排查

• 上线无任何提示也不加属性:QFunction-0.txt文件名错(必须严格是QFunction-0.txt且放QuestDiary\Default\或根QuestDiary\下,看版本),编码非ANSI导致引擎不读,M2日志有无"加载QFunction失败"。

- 提示命令未知:引擎太老不支持CHANGEHUMABIL或H.ADDATTACK,换DEC HUMAN DC 0 数值写法(Hero)或升级引擎。
• 数值显示一登入有退出重进消失:确认写在[@Login]而非[@NewCharacter](新角色创建才触发),[@Login]每次进游戏都执行。

- 想做"攻击×2倍"而非固定加值:先确认引擎支持GETHUMANINFO,不支持建议估算主号满级大概DC值直接加等量固定值模拟倍率(如满级战士DC约80,加80等同×2效果)。
• 英雄没加上:Hero引擎确认英雄已召唤出,部分版本英雄未出征时H.ADDATTACK不生效,出征后再小退重登即可。

按以上改完保存重载,每次上线自动带多倍攻击属性,不需要手动输命令也不需要改StdItems.DB。