传奇宠物脚本是控制宠物召唤、属性、行为、技能及交互逻辑的指令集合,通过配置表格与QuestDiary脚本联动,实现宠物获取、升级、战斗等功能,适配主流GOM、HERO、GEE引擎,制作需遵循表格配置、脚本编写、引擎设置三大核心环节。
一、传奇宠物脚本核心认知
宠物脚本本质是衔接玩家操作、引擎规则与宠物行为的桥梁,核心覆盖四大逻辑:宠物召唤与收回、属性成长与升级、战斗模式与技能、特殊触发(死亡、变蛋等)。所有宠物相关玩法,均需通过脚本指令绑定表格配置,实现功能闭环。
制作核心前提:需开启引擎宠物系统,配置对应表格(怪物表、宠物等级表等),脚本命令需适配引擎特性,避免语法冲突导致功能失效。
二、宠物脚本制作前置准备(全引擎通用)
制作前需完成表格配置与引擎设置,为脚本编写搭建基础环境,具体操作如下。
1. 引擎宠物系统开启
登录服务端引擎控制台(M2),找到“宠物设置”选项,勾选“开启宠物系统”,保存设置后无需重启引擎,部分引擎需勾选“允许宠物穿戴装备”“宠物经验叠加”等附加选项,根据玩法需求调整。
2. 核心表格配置(关键步骤)
宠物功能依赖服务端表格数据支撑,需修改3类核心表格,路径通常为服务端/Config文件夹,表格格式为XLS,修改后需重载表格生效。
(1)怪物表(cfg_monster.xls):定义宠物基础属性,宠物race类型需设为156或19,Custommonster字段需填写至少一种攻击形式,示例配置:
1459 小狐狸 156 19 320 80 1 100 3000 3#1#1000|3#3#500|3#4#500 60 45 700 1 0 8007 11
说明:依次对应ID、名称、race类型、血量、魔法值、攻击方式等,攻击形式需与自定义怪物表匹配。
(2)宠物等级表(cfg_petlevel.xls):配置宠物各等级经验需求与属性加成,示例配置:
1 1459 小狐狸 1 100 1#100|3#1021 90 500 500
说明:依次对应等级、宠物ID、名称、所需经验、属性加成(攻击、防御等)、血量上限、魔法上限。
(3)自定义怪物表(cfg_monattack.xls):定义宠物攻击技能与伤害规则,示例配置:
11 20011 30#100#100 0 1 0 0 1 0 100#500 0 1#100#5#100|2#100#1#300
说明:控制宠物攻击范围、伤害倍率、技能触发概率等核心战斗参数。
3. 脚本文件准备
在QuestDiary文件夹新建专属宠物脚本文件(如PetSystem.txt),编码设为ANSI,避免引擎读取乱码。脚本文件需与表格宠物ID对应,确保指令可调用表格数据。
三、宠物脚本核心功能制作(分引擎示例)
宠物脚本核心功能包括宠物获取、召唤收回、升级触发、战斗模式控制,以下为GOM/GEE与HERO引擎适配方案,均采用“#IF-#ACT-#SAY”基础语法。
1. GOM/GEE引擎宠物脚本示例
(1)宠物蛋获取与使用脚本
// 宠物蛋物品ID绑定(假设宠物蛋ID为5000)
(5000)
#ACT
usepetitem ; 触发宠物蛋使用逻辑
CreatePet 1459 1 ; 生成ID为1459的小狐狸宠物,等级1级
SendMsg 9 成功使用宠物蛋,获得小狐狸宠物,输入@召唤宠物即可召唤。
// 召唤宠物指令
(@召唤宠物)
#IF
CheckPetExist 1459 ; 检测是否拥有该宠物
#ACT
RecallPet 0 ; 召唤序号为0的宠物(序号从0开始)
SetPetMode 1 ; 设为攻击模式(1攻击、2防御、3被动)
SendMsg 9 宠物已召唤,当前模式为攻击模式。
#ELSESAY
你尚未拥有该宠物,请先获取对应宠物蛋。
(2)宠物升级触发脚本
// 宠物升级触发(系统自带触发标识petlevelup)
(petlevelup)
#ACT
GetPetAttr 0 Level ; 获取宠物当前等级
SendMsg 9 你的宠物小狐狸升至<$STR(Level)>级,属性大幅提升!
AddPetAttr 0 Attack 5 ; 每级额外增加5点攻击
(3)宠物死亡与复活脚本
// 宠物死亡触发(标识petdie)
(petdie)
#ACT
SendMsg 9 你的宠物已死亡,可使用复活丹复活或等待自动复活。
// 复活宠物脚本(绑定复活丹物品ID5001)
(5001)
#IF
CheckPetDie 0 ; 检测序号0的宠物是否死亡
#ACT
RevivePet 0 ; 复活宠物
SendMsg 9 宠物已成功复活,恢复至满血状态。
#ELSESAY
你的宠物当前状态正常,无需复活。
2. HERO引擎宠物脚本适配调整
HERO引擎部分命令与GOM不同,核心替换召唤、属性调整命令,示例如下:
// 召唤宠物指令替换
(@召唤宠物)
#IF
HasPet 1459
#ACT
CallPet 1459 ; HERO召唤命令,直接指定宠物ID
PetMode 1 ; 设置攻击模式
// 宠物属性增加命令替换
AddPetPower 1459 Attack 5 ; 给小狐狸增加5点攻击
说明:HERO引擎无需指定宠物序号,直接通过宠物ID关联,部分触发标识与GOM通用,可直接复用升级、死亡触发逻辑。
四、宠物脚本进阶功能制作
1. 宠物收回与变蛋功能
// 收回宠物并变蛋
(@宠物变蛋)
#IF
CheckPetSummon 0 ; 检测宠物是否已召唤
#ACT
UnRecallPet 0 ; 收回宠物
PetToItem 0 5000 ; 将宠物变为ID5000的宠物蛋
SendMsg 9 宠物已收回并变为宠物蛋,可再次使用召唤。
2. 宠物战斗模式切换
// 切换为防御模式
(@防御模式)
#ACT
SetPetMode 2 ; 防御模式(仅攻击攻击主人的目标)
SendMsg 9 宠物已切换至防御模式。
// 切换为被动模式
(@被动模式)
#ACT
SetPetMode 3 ; 被动模式(不主动攻击,仅跟随)
SendMsg 9 宠物已切换至被动模式。
五、宠物脚本生效与问题排查
1. 脚本生效步骤
1. 保存表格与脚本文件,登录M2控制台;2. 执行“重载QuestDiary脚本”“重载怪物表格”“重载宠物等级表”;3. 玩家获取宠物蛋并使用,测试各项功能是否正常触发。
2. 常见问题排查
1. 宠物无法召唤:核对表格宠物ID与脚本一致,确认引擎宠物系统已开启,脚本编码为ANSI。
2. 宠物不升级:检查宠物等级表经验配置是否正确,升级触发脚本是否绑定petlevelup标识。
3. 宠物无攻击行为:自定义怪物表攻击形式未配置,或怪物表Custommonster字段为空,补充配置后重载表格。
4. 跨引擎功能失效:替换对应引擎命令,参考引擎命令手册调整语法,避免通用命令混用。
综上,传奇宠物脚本制作核心是表格与脚本的联动适配,先完成基础配置搭建,再按功能需求编写触发指令,结合引擎特性调整命令,即可实现从宠物获取到战斗成长的完整玩法体系。

