宠物系统
宠物说明:
1.支持宠物蛋生成宠物,
宠物蛋类别是StdMode=201,Anicount字段填对应怪物表里宠物的IDX
2.cfg_petlevel.xls为宠物等级表,配置宠物经验和不同等级宠物属性
2.支持宠物变成道具宠物蛋
3.宠物穿戴装备只支持装备表里的装备,自定义属性
套装等装备不支持,宠物没有装备格子,可以用命令可以获取宠物身上装备清单,显示到面板
4.宠物序号重0开始,删除一个序号的宠物,后面的序号自动补齐上一个序号。比如0-4,共5个宠物,删除3号宠物,4号宠物序号就变成3了
5.召唤宠物方式1:1双击宠物蛋获得宠物功能,然后执行RECALLPET命令召唤出来宠物,宠物死亡后需要用复活命令复活,复活后再用RECALLPET命令召唤
召唤宠物方式2:无需宠物蛋CREATEPET命令直接得宠物功能,然后执行RECALLPET命令召唤出来宠物,宠物死亡后需要用复活命令复活,复活后再用RECALLPET命令召唤
6.支持宠物攻击锁定支持PC,ctrl+a快捷键
【宠物相关M2设置】:
M2-宠物设置-开启宠物系统
【宠物相关表格设置】:
【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 800 7 11
【cfg_petlevel.xls宠物等级表】
表格范例:
1 1459 小狐狸 1 100 1#100|3#10 21 90 500 500
【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
【宠物提示信息设置】
MirServer\Mir200\String.ini文件里配置
NoPet=你在位置[%pos]没有携带宠物!
NewPet=你有了新的宠物%pet[%pos]!目前你有%count个宠物
LostPet=你失去了宠物%pet[%pos]!目前你有%count个宠物
PetIsCall=你的宠物%pet[%pos]不需要重复召唤!
PetIsAlive=你的宠物%pet[%pos]还活着!
PetIsDead=你的宠物%pet[%pos]已经死亡!
PetIsUnCall=你的宠物%pet[%pos]不需要重复收回!
PetReAlive=你的宠物%pet[%pos]复活成功!
PetIsSleep=你的宠物%pet[%pos]还在沉睡中,请%second秒后召唤!
PetItemDesc=%lvl级%pet,转生%relvl级
RecallPetsLaterMsg=你的宠物还比较虚弱,请在%d秒后再次召唤。
【宠物常量】:
格式:<$Pet序号.人物常量>(序号从0开始)
范例:
宠物名字<$Pet0.USERNAME>
, 血量<$Pet1.HP>/<$Pet1.MAXHP> ,
DC <$Pet0.DC>/<$Pet0.MAXDC> ,
经验:<$Pet4.EXP>/<$Pet4.MAXEXP>
注意:SetCurPet 命令设定当前宠物后,所有宠物接口中的宠物序号可使用 X
表示当前宠物序号;<$Pet0.Level>等常量中的的0,使用X代替,<$PetX.Level>
表示当前宠物等级。
当前宠物att表30号属性值<$PetX. Attr[30]> ,当前宠物坐标<$PetX.
X>、<$PetX. Y>
宠物状态常量:<$PETX.PetState>
宠物血量百分比常量: <$PetX.HPRATE>
注:X 表示当前宠物序号
宠物状态常量例子:
[@宠物状态]
#if
EQUAL <$PET0.PetState>
0
#act
SENDMSG 9 宠物0在回收状态
#if
EQUAL <$PET0.PetState>
1
#act
SENDMSG 9 宠物0召唤出状态状态
#if
EQUAL <$PET0.PetState> 2
#act
SENDMSG 9
宠物0在死亡状态
检测命令:========================================
CHECKPETEXIST
参数1
检测X号宠物是否存在 参数1:宠物序号
CHECKPETRECALL 参数1
检测X号宠物是否在召唤出状态
参数1:宠物序号
CHECKPETATTACTEFF 参数1 参数2
检测当前攻击模式
参数1:宠物序号
参数2:0-正常,1-暴击,2-格挡
执行命令:==========================================
SetCurPet 参数1
设定为当前宠物
设定为当前宠物后,所有宠物接口中的宠物序号可使用 X 表示当前宠物序号;如
<$Pet0.Level>等常量中的的0,使用X代替,<$PetX.Level>
表示当前宠物等级。
参数1:宠物序号,设定当前脚本指定的宠物序号,供脚本和常量使用;
RECALLPET 参数1
召唤宠物
召唤XX号宠物,如宠物不存在或已经召唤出,系统会自动提示 参数1:宠物序号
UNRECALLPET 参数1
收回宠物
收回XX号宠物,如宠物不存在或已经收回,系统会自动提示 参数1:宠物序号
REALIVEPET 参数1 参数2 参数3
复活指定宠物
参数1:宠物序号
参数2:复活后的HP量
参数3:0-绝对值,1-百分比
CREATEPET 参数1 参数2
根据指定怪物(名称=参数1,类型=156)生成宠物
参数1:自定义怪物名称
参数2:怪物等级
DELPET 参数1
删除XX号宠物
参数1:宠物序号
RETRACTPETTOITEM 参数1
收回宠物为物品,存入背包,如背包满则删除宠物 参数1:宠物序号
PETTAKEON 参数1 参数2
宠物穿装备
参数1:宠物序号
参数2:装备名称,多个装备用#分隔
此接口不会增加物品,仅将物品的属性添加到宠物身上,并保存到数据库。
PETTAKEOFF 参数1 参数2
宠物脱装备
参数1:
宠物序号
参数2: 装备名称,多个装备用#分隔,-1表示脱下全部装备
此接口不扣减物品,仅扣减宠物身上对应装备属性。
GETPETBODYITEM 参数1 参数2
获取宠物身上装备列表
参数1:宠物序号
参数2:保存装备的变量名 (装备名称,多个装备用#号分隔)
PETLEVEL 参数1 参数2 参数3 参数4
设置宠物等级
参数1:宠物序号
参数2:+、-、=
参数3:等级点数
参数4:0-等级,1-转生等级
PETEXP 参数1 参数2 参数3
设置宠物经验
参数1:宠物序号
参数2:+、-、=
参数3:经验点数
PETMON 参数1 参数2
将指定序号宠物基础属性置换成其它宠物(宠物换形象属性全部继承保留)
说明:只置换基础属性:形象、怪物表配置,原宠物其它属性全部保留,包括序号,
比如0序号宠物置换5号,只将0号宠
怪物表里的属性置换成新宠物形象的怪物IDX
参数1:宠物序号
参数2:怪物IDX
PETSTATE 参数1 参数2
获取宠物状态
参数1:宠物序号
参数2:状态保存到指定的人物变量,0-收回状态,1-召唤出状态,2-死亡状态
PetEggLevel 参数1 参数2 参数3 参数4
获得宠物蛋的等级以及转生等级存入变量
参数1:宠物蛋物品的MakeIndex
参数2:将等级信息存入的变量
参数3:将转生等级存入的变量
参数4:将宠物经验值存入的变量
ADDPETATTLIST 参数1 参数2 参数3 参数4 参数5
增加宠物对应属性值
参数1:宠物序号
参数2:自定义属性组名称
参数3:操作符(+、-、=)
参数4:属性字符串(3#1#100|3#2#100|3#3#10|3#4#10)
参数5:0或为空=计算套装属性增加
1=增加固定值;不计算套装属性(属性加成类无效)
DELPETATTLIST 参数1 参数2
清除宠物属性
参数1:宠物序号
参数2:空=清除所有自定义属性组,否则输入对应的自定义属性组名称
SETPETMODE 参数1
设置宠物状态
参数1: 宠物状态 1-跟随,2-攻击,3-被动(只有被攻击时才设定目标)
4-休息
注:设置宠物是针对所有宠物同时生效,如果主人有宝宝,则宝宝同步生效(宝宝也支持此命令)
setPetEggLevel 参数1 参数2 参数3 参数4
设置宠物蛋等级
参数1:宠物蛋物品的MakeIndex
参数2:宠物蛋转生等级,-1表示不修改值
参数3:宠物蛋等级,-1表示不修改值
参数4:宠物蛋经验值,-1表示不修改值
SETPETATKEFFTYPE 参数1 参数2
设置宠物飘字特效
参数1:宠物序号
参数2:飘字特效ID
SETPETAPPR 参数1 参数2
改变宠物外观命令
参数1:宠物序号,X表示当前宠物
参数2: 怪物外观ID(
怪物Appr),0=还原
触发:======================================
@PETLEVELUP 宠物升级触发
param1:宠物序号,param2:宠物升级后的等级,
param3:宠物升级后的转生等级
@GetNewPet 获得宠物触发,人物上线首次加载宠物时也会触发
Param1: 宠物序号,从0开始
@UsePetItem 使用宠物蛋触发
Param1:
物品MakeIndex
Param2: 物品Idx
@PetDie 宠物死亡触发
param1:宠物序号
@AttackByPet 宠物攻击触发
param1:
宠物序号
其他可用常量可以参考 人物宝宝攻击触发
@PetToItem 宠物变蛋触发
param1:
宠物蛋MakeIndex
@AttackDamagePet 宠物攻击伤害前触发
触发中当前宠物为触发的宠物,支持修改伤害值以及设置宠物当前攻击飘血样式
宠物攻击伤害前触发返回参数 <$param1>=技能ID,<$param2>=伤害值,
<$param3>是否是主目标
@StruckOfPet 宠物被物理攻击触发
@MagicStruckOfPet 宠物被魔法攻击触发
@StruckDamagePet 宠物被攻击前触发
根据指定物品唯一ID生成宠物命令
说明:1物品必须是StdMode=201的物品才能创建宠物
说明:2因为是异步的,无法紧跟召唤和获取序号(创建后不能马上加召唤命令)
格式:NEWPETFROMITEM
参数1
参数1:宠物道具唯一ID
例子:
[@生成宠物]
#IF
#ACT
NEWPETFROMITEM
<$STR(N1)>
SENDMSG 9 宠物道具唯一ID<$STR(N1)>
增加宠物攻击表现删除宠物攻击表现命令
增加宠物攻击表现 addpetskill参数1 参数2
参数1:宠物序号,或X表示当前宠物
参数2:增加的攻击表现ID,为cfg_monattack表中的ID
删除宠物攻击表现 delpetskill参数1 参数2
参数1:宠物序号,或X表示当前宠物
参数2:删除的攻击表现ID,为cfg_monattack表中的ID
[@宠物加技能]
#if
#act
addpetskill X 19
SENDMSG 9 当前宠物增加了19的攻击表现
[@宠物删技能]
#if
#act
delpetskill X 19
SENDMSG 9 当前宠物删除了19的攻击表现
宠物加血命令
PETHP 参数1
参数2 参数3 参数4
参数1:宠物序号
参数2:+-=
参数3:值
参数4:飘血特效ID(可以不填
不填走默认的)
范例:
[@加血]
#if
#act
PETHP x + 9 120
SENDMSG 9
宠物加血