传奇单机架设新增职业脚本:数据库配置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
CHECKJOBWARR
ACT
SENDMSG6当前职业:战士
BREAK

IF
CHECKJOBWIZARD
ACT
SENDMSG6当前职业:法师
BREAK

IF
CHECKJOBTAOS
ACT
SENDMSG6当前职业:道士
BREAK

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

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

[@job3]
IF
CHECKLEVEL35
CHECKGOLD100000
ACT
MOVP03
TAKE金币100000
GIVE影刃之刃1
GIVE影刃战衣1
CHANGEJOB3
SENDMSG6已转职为影刃
BREAK
ELSESAY
等级不足35级或金币不足10万

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

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

[@PlayLevelUp40]
IF
EQUALP03
CHECKLEVEL40
ACT
GIVE影刃秘卷1
SENDMSG6影刃40级奖励已发放
BREAK

[@PlayLevelUp50]
IF
EQUALP03
CHECKLEVEL50
ACT
GIVE影刃战甲1
SENDMSG6影刃50级奖励已发放
BREAK

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

[@TakeOn]
IF
CHECKITEM影刃之刃1
EQUALP03
ACT
SENDMSG6影刃武器已装备
BREAK
ELSESAY
该装备仅限影刃职业使用

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

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

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