传奇单机架设新增职业脚本:数据库配置NPC对话与触发脚本全流程

来源: 作者: 点击:
传奇里添加一个“新职业”不能只靠一段脚本完成,需要先确认引擎是否支持第四职业,再改数据库、职业参数、装备技能,最后才用脚本做转职、升级奖励和职业判定。常见引擎如GOM、GEE、Blue、翎风、996、V8,老引擎多数默认只支持战士、法师、道士,强行加第四职业需要引擎本身开放职业位;如果引擎不支持,只能用脚本做“伪职业”,也就是用变量、称号、套装或技能组合模拟。

先确认引擎版本和职业位。打开M2Server或引擎配置器,查看角色创建界面、职业列表、数据库职业字段。如果只有WARR、WIZARD、TAOS三类,说明默认不支持新增职业。此时可以做伪职业:玩家选择职业后,用变量记录职业类型,再通过脚本发放对应装备、技能和属性。

数据库部分主要改物品和技能。物品数据库通常位于StdItems.DB或引擎对应的物品表,新增职业装备时,需要设置名称、StdMode、Shape、Looks、属性、使用等级和使用职业。如果引擎支持职业代码,战士一般为0,法师为1,道士为2,所有职业为3;新增职业需要看引擎是否提供第4个职业标识。技能数据库同样要新增技能条目,否则角色无法学习新职业技能。

职业属性成长文件也要处理。多数引擎的人物等级属性写在LevelAbilitys0.ini或类似配置里,战士、法师、道士各自有独立分区。如果要加新职业,可以在文件里新增对应职业段,设置血量、魔法、攻击、防御、道术或自定义属性成长。修改前要关闭M2Server主引擎,避免文件占用,改完重启生效。

脚本部分常用CHECKJOB做职业判定。经典写法是:

IF
CHECKJOB WARR
ACT
SENDMSG 6 当前职业:战士
BREAK

IF
CHECKJOB WIZARD
ACT
SENDMSG 6 当前职业:法师
BREAK

IF
CHECKJOB TAOS
ACT
SENDMSG 6 当前职业:道士
BREAK

如果新增的是伪职业,就不能完全依赖CHECKJOB,需要改用变量。例如用P0记录职业类型,0为战士,1为法师,2为道士,3为新职业。转职NPC可以这样写:

[@main]
IF
CHECKLEVEL 35
ACT
FORMATSTR 请选择转职职业
SAY
<战士/@job0>\
<法师/@job1>\
<道士/@job2>\
<影刃/@job3>\
<关闭/@exit>\

[@job3]
IF
CHECKLEVEL 35
CHECKGOLD 100000
ACT
MOV P0 3
TAKE 金币 100000
GIVE 影刃之刃 1
GIVE 影刃战衣 1
CHANGEJOB 3
SENDMSG 6 已转职为影刃
BREAK
ELSESAY
等级不足35级或金币不足10万

这里CHANGEJOB是否能用,要看引擎是否开放第四职业。如果引擎不支持,就用MOV P0 3代替,再配合装备发放和技能学习。

升级触发脚本可以放在QFunction-0.txt里。例如新职业每10级领取一次奖励:

[@PlayLevelUp40]
IF
EQUAL P0 3
CHECKLEVEL 40
ACT
GIVE 影刃秘卷 1
SENDMSG 6 影刃40级奖励已发放
BREAK

[@PlayLevelUp50]
IF
EQUAL P0 3
CHECKLEVEL 50
ACT
GIVE 影刃战甲 1
SENDMSG 6 影刃50级奖励已发放
BREAK

装备限制也要用脚本补全。可以在穿戴触发里判断:

[@TakeOn]
IF
CHECKITEM 影刃之刃 1
EQUAL P0 3
ACT
SENDMSG 6 影刃武器已装备
BREAK
ELSESAY
该装备仅限影刃职业使用

伪职业还需要处理技能问题。新职业技能通常要新建技能ID,并在技能数据库里配置伤害、消耗、冷却、图标。如果引擎不支持第四职业技能表,可以用通用技能加变量控制,例如只有P0等于3时才允许释放该技能。

登录和创建角色也要改。创建角色脚本里增加新职业选项,登录脚本里读取P0值,发放对应新手包。沙巴克、行会、PK伤害、怪物爆率、套装触发、假人系统如果依赖职业判断,都要逐一检查,否则会出现新职业无法攻沙、无法触发套装或假人报错的情况。

调试时先备份数据库和脚本,改一项重载一项。物品库改完重载物品,技能库改完重载技能,脚本改完重载NPC或QFunction,等级属性改完重启M2Server。如果改完进游戏看不到新职业,优先检查数据库职业字段、登录器版本、客户端补丁和引擎是否真正支持第四职业。