当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇单机版上线自动赋予多倍攻击属性通过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.ADDATTACK50
H.ADDMAGIC50
H.ADDTAOIST50
SENDMSG6上线获得多倍加成:攻击/魔法/道术+50!

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

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

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

CHANGEHUMABILDC50
CHANGEHUMABILMC50
CHANGEHUMABILSC50

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

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

[@Login]
#IF
CheckTakeOnItem1
#ACT
ChangeItemAddValue1030
ChangeItemAddValue1130

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

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

[@Login]
#IF
#ACT
GETHUMANINFODCMYDC
CALCVARHUMANMYDC*2MYNEWDC
SETHUMANINFODCMYNEWDC

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

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

Hero版QFunction-0.txt写法:

[@Login]
#IF
#ACT
DECHUMANDC0100
DECHUMANMC080
DECHUMANSC060
SENDMSG6已激活上线多倍属性!

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

CHANGEHUMABILDC100
CHANGEHUMABILMC80
CHANGEHUMABILSC60


若想让英雄也加:

HERO.ADDATTACK50
HERO.ADDMAGIC50
HERO.ADDTAOIST50


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

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

[@TakeOn1]
#IF
CheckTakeOnItem1
#ACT
ChangeItemAddValue1030
ChangeItemAddValue1130

[@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,换DECHUMANDC0数值写法(Hero)或升级引擎。
•数值显示一登入有退出重进消失:确认写在[@Login]而非[@NewCharacter](新角色创建才触发),[@Login]每次进游戏都执行。

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

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