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

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

一、准备变量与文件

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

变量规划:

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

登录读取:

QManage.txt登录段:

[@Login]
IF

ACT

LOADVAR HUMAN NGLevel ..\QuestDiary\内功\内功数据.txt
LOADVAR HUMAN NGExp ..\QuestDiary\内功\内功数据.txt
LOADVAR HUMAN NGPower ..\QuestDiary\内功\内功数据.txt
LOADVAR HUMAN NGSkillLevel ..\QuestDiary\内功\内功数据.txt
GOTO @内功升级检测

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

二、打怪获得内功经验

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

[@OnKillMon]
IF

ACT

MOV D0 100
CALCVAR HUMAN NGExp + <$D0>
SAVEVAR HUMAN NGExp ..\QuestDiary\内功\内功数据.txt
GOTO @内功升级检测

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

[@OnKillMon]
IF

EQUAL <$MONSTERNAME> 白野猪
ACT

CALCVAR HUMAN NGExp + 200
SAVEVAR HUMAN NGExp ..\QuestDiary\内功\内功数据.txt
GOTO @内功升级检测

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

三、升级检测与属性提升

内功升级检测脚本:

[@内功升级检测]
IF

ACT

GOTO @判断是否需要升级

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

CHECKVAR HUMAN NGExp > <$HUMAN(NGNeed)>
ACT

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

ACT

GOTO @内功等级加成

[@内功等级加成]
IF

ACT

MOV D0 <$HUMAN(NGLevel)>
MOV D1 <$D0> * 10
CHANGEHP MAX + <$D1>
CHANGEMAGIC MAX + <$D1>
SENDMSG 6 内功提升至<HUMAN(NGLevel)>级,HP和MP上限各增加<D1>。

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

四、内功技能修炼

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

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

[@MagSelfFunc]
IF

EQUAL <$USESKILL> 雷电术
ACT

CALCVAR HUMAN NGSkillLevel + 1
SAVEVAR HUMAN NGSkillLevel ..\QuestDiary\内功\内功数据.txt
SENDMSG 6 内功技能熟练度+1

技能升级检测:

[@技能升级检测]
IF

CHECKVAR HUMAN NGSkillLevel > 10
ACT

CALCVAR HUMAN NGSkillLevel - 10
SENDMSG 6 内功技能升级,效果增强!

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

五、泡点加内功经验

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

AutoRun NPC RUNONDAY 10:00:00 @内功泡点

RobotManage.txt:

[@内功泡点]
IF

ACT

MOV D0 50
CALCVAR HUMAN NGExp + <$D0>
SAVEVAR HUMAN NGExp ..\QuestDiary\内功\内功数据.txt
SENDMSG 6 内功泡点增加<$D0>经验。
GOTO @内功升级检测

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

六、内功修炼NPC

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

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

[@status]
IF

ACT

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

[@skill]
IF

ACT

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

[@修炼技能]
IF

CHECKITEM 内功技能书 1
ACT

TAKE 内功技能书 1
CALCVAR HUMAN NGSkillLevel + 1
SAVEVAR HUMAN NGSkillLevel ..\QuestDiary\内功\内功数据.txt
SENDMSG 6 内功技能修炼成功!
ELSESAY

SENDMSG 6 缺少内功技能书。

[@reset]
IF

CHECKITEM 回生神水 1
ACT

TAKE 回生神水 1
CALCVAR HUMAN NGLevel = 0
CALCVAR HUMAN NGExp = 0
CALCVAR HUMAN NGPower = 0
CALCVAR HUMAN NGSkillLevel = 0
SAVEVAR HUMAN NGLevel ..\QuestDiary\内功\内功数据.txt
SAVEVAR HUMAN NGExp ..\QuestDiary\内功\内功数据.txt
SAVEVAR HUMAN NGPower ..\QuestDiary\内功\内功数据.txt
SAVEVAR HUMAN NGSkillLevel ..\QuestDiary\内功\内功数据.txt
SENDMSG 6 内功已重置。
ELSESAY

SENDMSG 6 需要回生神水才能重置。

七、内功值消耗

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

[@内功技能触发]
IF

CHECKVAR HUMAN NGPower > 10
ACT

CALCVAR HUMAN NGPower - 10
SAVEVAR HUMAN NGPower ..\QuestDiary\内功\内功数据.txt
SENDMSG 6 内功技能发动,消耗10点内功。
ELSESAY

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

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

八、引擎原生命令适配

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

九、排错

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

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