传奇内功修炼脚本范例:打怪泡点加经验升级技能全流程完整版详细

来源: 作者: 点击:
内功修炼脚本的核心就三件事:给经验、升级、加属性或开技能。引擎若自带内功系统,直接用原生命中令;引擎不带就用自定义变量模拟。下面以GOM/GEE风格脚本写一套通用模拟方案,其他引擎把命令名替换成自己的即可。

一、准备变量与文件

在QuestDiary下建目录“内功”,建文件“内功数据.txt”存玩家数据。变量用HUMAN系列,登录时读取,下线前保存。

变量规划:

NGLevel内功等级
NGExp当前内功经验
NGNeed当前等级升级所需经验
NGPower内功值
NGSkillLevel技能等级

登录读取:

QManage.txt登录段:

[@Login]
IF

ACT

LOADVARHUMANNGLevel..\QuestDiary\内功\内功数据.txt
LOADVARHUMANNGExp..\QuestDiary\内功\内功数据.txt
LOADVARHUMANNGPower..\QuestDiary\内功\内功数据.txt
LOADVARHUMANNGSkillLevel..\QuestDiary\内功\内功数据.txt
GOTO@内功升级检测

首次登录变量为空时,用默认值。可在升级检测里补0。

二、打怪获得内功经验

在QFunction-0.txt写怪物死亡触发。若引擎支持@OnKillMon,或没有原生触发,可用MapQuest或机器人扫描。最常用的是在QFunction里加:

[@OnKillMon]
IF

ACT

MOVD0100
CALCVARHUMANNGExp+<$D0>
SAVEVARHUMANNGExp..\QuestDiary\内功\内功数据.txt
GOTO@内功升级检测

若引擎没有@OnKillMon,改用怪物名字判断:

[@OnKillMon]
IF

EQUAL<$MONSTERNAME>白野猪
ACT

CALCVARHUMANNGExp+200
SAVEVARHUMANNGExp..\QuestDiary\内功\内功数据.txt
GOTO@内功升级检测

不同引擎的怪物名变量可能是<CURRRTARGETNAME>或<MONSTER_NAME>,按实际修改。

三、升级检测与属性提升

内功升级检测脚本:

[@内功升级检测]
IF

ACT

GOTO@判断是否需要升级

[@判断是否需要升级]
IF

CHECKVARHUMANNGExp><$HUMAN(NGNeed)>
ACT

CALCVARHUMANNGExp-<$HUMAN(NGNeed)>
CALCVARHUMANNGLevel+1
CALCVARHUMANNGNeed=<$HUMAN(NGLevel)>*1000
GOTO@判断是否需要升级
ELSESAY

ACT

GOTO@内功等级加成

[@内功等级加成]
IF

ACT

MOVD0<$HUMAN(NGLevel)>
MOVD1<$D0>*10
CHANGEHPMAX+<$D1>
CHANGEMAGICMAX+<$D1>
SENDMSG6内功提升至<HUMAN(NGLevel)>级,HP和MP上限各增加<D1>。

这里要注意循环升级用GOTO自身容易死循环,但内功经验一般一次不会升太多级,可以接受。严谨做法用多段判断或引擎循环命令,按实际版本调整。

四、内功技能修炼

内功技能修炼有两种:一是使用特定技能时加技能熟练度,二是使用内功技能书直接学。示例:

使用雷电术时增加内功技能经验:

[@MagSelfFunc]
IF

EQUAL<$USESKILL>雷电术
ACT

CALCVARHUMANNGSkillLevel+1
SAVEVARHUMANNGSkillLevel..\QuestDiary\内功\内功数据.txt
SENDMSG6内功技能熟练度+1

技能升级检测:

[@技能升级检测]
IF

CHECKVARHUMANNGSkillLevel>10
ACT

CALCVARHUMANNGSkillLevel-10
SENDMSG6内功技能升级,效果增强!

具体触发段名随引擎而变,如@UseSkill、@MagSelfFunc、@Attack等。

五、泡点加内功经验

机器人定时给在线玩家加经验,AutoRunRobot.txt:

AutoRunNPCRUNONDAY10:00:00@内功泡点

RobotManage.txt:

[@内功泡点]
IF

ACT

MOVD050
CALCVARHUMANNGExp+<$D0>
SAVEVARHUMANNGExp..\QuestDiary\内功\内功数据.txt
SENDMSG6内功泡点增加<$D0>经验。
GOTO@内功升级检测

若机器人不能只对玩家执行,则用在线定时器或地图触发。

六、内功修炼NPC

Market_Def建“内功大师-0.txt”:

[@main]
查看内功状态/status
修炼内功技能/skill
重置内功/reset

[@status]
IF

ACT

SENDMSG6当前内功等级<HUMAN(NGLevel)>,经验<HUMAN(NGExp)>/<HUMAN(NGNeed)>,技能等级<HUMAN(NGSkillLevel)>。

[@skill]
IF

ACT

@@InPutString输入要修炼的技能名称
GOTO@修炼技能

[@修炼技能]
IF

CHECKITEM内功技能书1
ACT

TAKE内功技能书1
CALCVARHUMANNGSkillLevel+1
SAVEVARHUMANNGSkillLevel..\QuestDiary\内功\内功数据.txt
SENDMSG6内功技能修炼成功!
ELSESAY

SENDMSG6缺少内功技能书。

[@reset]
IF

CHECKITEM回生神水1
ACT

TAKE回生神水1
CALCVARHUMANNGLevel=0
CALCVARHUMANNGExp=0
CALCVARHUMANNGPower=0
CALCVARHUMANNGSkillLevel=0
SAVEVARHUMANNGLevel..\QuestDiary\内功\内功数据.txt
SAVEVARHUMANNGExp..\QuestDiary\内功\内功数据.txt
SAVEVARHUMANNGPower..\QuestDiary\内功\内功数据.txt
SAVEVARHUMANNGSkillLevel..\QuestDiary\内功\内功数据.txt
SENDMSG6内功已重置。
ELSESAY

SENDMSG6需要回生神水才能重置。

七、内功值消耗

使用内功技能时消耗内功值,例如:

[@内功技能触发]
IF

CHECKVARHUMANNGPower>10
ACT

CALCVARHUMANNGPower-10
SAVEVARHUMANNGPower..\QuestDiary\内功\内功数据.txt
SENDMSG6内功技能发动,消耗10点内功。
ELSESAY

SENDMSG6内功不足,技能无法发动。

内功值通过打怪或吃药补充,可另做一个补内功值的药品和脚本。

八、引擎原生命令适配

若引擎自带内功系统,把CALCVARHUMANNGLevel换成引擎命令。GOM没有内功,GEE有内功但命令版本不同;Hero用ChangeNGExp、CheckNGLevel;3K用内功经验相关命令。具体命令查M2命令帮助,找不到就用上面的自定义变量模拟。

九、排错

不涨经验:检查怪物死亡触发段是否被占用,命令名是否拼对。
升级不加属性:升级检测GOTO跳转层级不对,或CHECKVAR写错。
不保存:SAVEVAR路径不存在,先建目录和文本。
技能不触发:QFunction的段名与引擎触发器不匹配,换成实际可用的技能触发段。

这套脚本适合任何引擎,只要把命令替换成你服务器实际支持的写法即可。
[顶部]