游戏脚本核心数据结构说明书

一、概述

本文档详细定义了游戏脚本开发中所使用的核心数据结构,包括类、枚举等,涵盖了游戏中角色、物品、地图、技能、触发器等关键模块的属性和关联关系。适用于游戏脚本开发人员、维护人员以及相关测试人员,作为脚本编写、功能扩展和问题排查的参考依据。

二、核心类定义

2.1 基础配置类

2.1.1 lualib 系统配置类

属性名 类型 说明
MaxPets intege 最大宠物数量
Time integer 系统经过时间
RunInterval integer 角色基础跑步间隔
WalkInterval integer 角色基础移动间隔
AttackInterval integer 角色基础攻击间隔
SpeedInterval integer 角色基础施法间隔
SystemNPC MapObject 系统 NPC 对象
ItemNPC MapObject 物品 NPC 对象
SkillNPC MapObject 技能 NPC 对象
QuestNPC MapObject 任务 NPC 对象

2.2 容器与引用类

2.2.1 Ref 引用类

空类,用于对象引用管理,可根据实际需求扩展属性。

2.2.2 Include 包含类

空类,用于模块包含关系定义,可根据实际需求扩展属性。

2.2.3 Point 坐标类

空类,用于表示游戏内的坐标点,可扩展 X、Y 等坐标属性。

2.2.4 MapObjects 地图对象集合

属性名 类型 说明
Count intege 地图对象的数量

2.2.5 EntityObjects 实体对象集合

属性名 类型 说明
Count integer 实体对象的数量

2.2.6 UserItems 用户物品集合

空类,用于存储用户拥有的物品列表,可通过索引访问具体的 UserItem 对象。

2.2.7 HeroInfos 英雄信息集合

属性名 类型 说明
list HeroInfo[] 英雄信息数组
Count integer 英雄的数量

2.3 角色相关类

2.3.1 HeroInfo 英雄对象信息类

属性名 类型 说明
ObjectID integer 英雄对象唯一 ID
Name string 英雄名称
Level integer 英雄等级
IClass integer 英雄职业编码
IGender integer 英雄性别编码
CurrentHero boolean 是否为当前使用的英雄

2.3.2 GuildObject 行会对象类

属性名 类型 说明
Name string 工会名称
Gold integer 工会金币数量
Lv integer 工会等级
Exp integer 工会经验值

2.3.3 MapObject 地图对象基类

属性名 类型 说明
ObjectID intege 对象唯一 ID
Name string 对象名称
CurrentMap Map 当前所在地图
RaceType integer 种族类型编码
CurrentLocation Point 当前坐标
Dir integer 当前朝向
OperateTime integer 操作时间间隔
Blocking boolean 是否为阻挡物

2.3.4 NPCObject NPC 对象类

继承自 MapObject,扩展属性如下:

属性名 类型 说明
HasQuest boolean 是否存在任务
CanDoQuest boolean 是否可接任务
CanFishQuest boolean 是否存在钓鱼任务

2.3.5 EntityObject 实体对象类

继承自 MapObject,涵盖玩家、怪物、英雄等可交互实体,属性如下:

属性名 类型 说明
HP integer 当前血量
MaxHP integer 最大血量
PercentHealth integer 当前血量百分比(不含 %)
MP integer 当前蓝量
MaxMP integer 最大蓝量
Exp integer 当前经验值
MaxExp integer 升级所需最大经验值
Level integer 等级
Gold integer 金币数量
PKPoints integer PK 点数
Gender integer 性别(0 = 男性,1 = 女性)
GetDC integer 攻击随机值(含幸运算法)
GetMC integer 魔法随机值(含幸运算法)
GetSC integer 道术随机值(含幸运算法)
GetMAC integer 魔抗随机值(不含幸运算法)
GetAC integer 防御随机值(不含幸运算法)
IsPlayer boolean 是否为玩家
AsPlayer PlayerObject 转换为玩家对象
IsHero boolean 是否为英雄
AsHero HeroObject 转换为英雄对象
IsMonster boolean 是否为野怪
AsMonster MonsterObject 转换为野怪对象
IsHuman boolean 是否为人型(玩家 / 英雄)
AsHuman HumanObject 转换为人型对象
Dead boolean 是否死亡
CanRegen boolean 是否可自动恢复属性
CanMove boolean 是否可传送
CanAttack boolean 是否可攻击
CanWalk boolean 是否可走动
CanRun boolean 是否可跑动
InTrapRock boolean 是否处于陷阱中
HasMaster boolean 是否有主人
MasterUid integer 主人唯一 ID
CanTame boolean 是否可被驯服(仅怪物有效)

2.3.6 PlayerObject 玩家对象类

继承自 EntityObject,扩展属性如下:

属性名 类型 说明
Class integer 职业编码(对应枚举的整数形式)
MirClass MirClass 职业枚举
BagSize integer 当前背包容量
StorageSize integer 当前仓库容量

2.3.7 MonsterObject 野怪对象类

继承自 EntityObject,无额外扩展属性,可根据实际需求补充。

2.3.8 HeroObject 英雄实体类

继承自 EntityObject,无额外扩展属性,可根据实际需求补充。

2.3.9 HumanObject 人型对象类

继承自 EntityObject,无额外扩展属性,可根据实际需求补充。

2.3.10 EntityCopy 实体属性快照类

属性名 类型 说明
GetDC integer 攻击随机值(含幸运算法)
GetMC integer 魔法随机值(含幸运算法)
GetSC integer 道术随机值(含幸运算法)
GetMAC integer 魔抗随机值(不含幸运算法)
GetAC integer 防御随机值(不含幸运算法)
PK integer PK 点数
Level integer 等级
HP integer 当前血量
MaxHP integer 最大血量
MP integer 当前蓝量
MaxMP integer 最大蓝量

2.4 技能与伤害相关类

2.4.1 BaseData 基础数据类

属性名 类型 说明
Source DamageSource 伤害来源类型
TargetID integer 锁定目标 ID(可修改)
Name string 技能名称
KeyName string 技能索引标识
Value integer 伤害值 / 治疗值
IsCritical boolean 是否暴击
DamageWeapon boolean 是否损伤武器耐久
DelayTime integer 实际技能延迟时间(可修改)
DelayBase integer 基础技能延迟时间(不可修改)
RigidityTime integer 实际技能后摇时间(可修改)
RigidityBase integer 基础技能后摇时间(不可修改)
EntityCopy EntityCopy 施法人属性快照
ID integer 技能 ID
Level integer 技能等级
Radius integer 技能作用范围
Point Point 技能起始坐标
Termination boolean 是否中断技能(中断后不执行后续操作)
MomentDash boolean 野蛮冲撞是否使用瞬移
this integer 属性访问器标识

2.4.2 SkillData 技能数据类

属性名 类型 说明
Source DamageSource 伤害来源类型(固定为技能)
TargetID integer 锁定目标 ID(仅读)
Name string 技能名称
KeyName string 技能索引标识
BaseData BaseData 初始技能基础数据
Value integer 伤害值 / 治疗值
IsCritical boolean 是否暴击
DamageWeapon boolean 是否损伤武器耐久
EntityCopy EntityCopy 施法人属性快照
ID integer 技能 ID
Level integer 技能等级
Radius integer 技能作用范围
Termination boolean 是否中断技能
MomentDash boolean 野蛮冲撞是否使用瞬移
this integer 属性访问器标识

注:MPower 和 Power 的计算方式为 Random (Base, Bonus+Base),即从基础值到基础值加额外值的范围内随机取值。

2.4.3 BuffData Buff 数据类

属性名 类型 说明
Source DamageSource 伤害来源类型(固定为 Buff)
ValueBase integer 基础数值(用于计算匹配)
Value integer 实际数值(增减 HP 等)
Buff Buff 对应的 Buff 对象
IsCritical boolean 是否暴击
this integer 属性访问器标识

2.4.4 DamageData 伤害数据类

属性名 类型 说明
Source DamageSource 伤害来源类型(固定为脚本)
ValueBase integer 基础数值(用于计算匹配)
Value integer 实际伤害值(增减 HP)
IsCritical boolean 是否暴击
this integer 属性访问器标识

2.5 物品相关类

2.5.1 ItemObject 物品基类

空类,作为所有物品对象的父类,可根据实际需求扩展属性。

2.5.2 UserItem 用户物品类

属性名 类型 说明
ObjectID integer 物品唯一 ID
Name string 物品名称
Count integer 当前物品数量
MaxCount integer 最大可堆叠数量
Bind BindMode 物品绑定模式
ItemWhere ItemWhereType 物品所在位置类型
ItemWhereIndex integer 物品所在位置下标
HasDura boolean 是否具有耐久度
CurrentDura integer 当前耐久度
MaxDura integer 最大耐久度
Weight integer 物品总重量(含堆叠)
AddedStats Stats 额外极品属性(可能为空)
ExpireStart boolean 是否已开始计时(无超时 / 未装备的超时装备为 false)
ExpireTime integer 剩余超时时间(毫秒,-1 表示无超时)
Equip integer[] 装备属性数组(可能为空)
Info ItemInfo 物品基础信息

2.5.3 ItemInfo 物品基础信息类

属性名 类型 说明
ID integer 物品表唯一 ID
KeyName string 物品表索引标识
Name string 物品名称
NameColor string 名称显示颜色
Type integer 物品类型编码(对应物品类型表)
Class ItemTypeClass 物品分类枚举
Shape integer 物品形状(如护身符、毒药等专用)
Weight integer 单个物品重量
Sets string[] 所属套装 ID 集合
Buffs string[] 自带 Buff 标识集合
ITags integer[] 标签编码集合
Material integer 物品素材表索引
StackSize integer 最大堆叠数量
Price integer 基础售价(金币)
Bind BindMode 默认绑定模式
Stats Stats 基础属性
ToolTip string 物品描述文本
Durability integer 最大耐久度
InfoType InfoType 物品详细类型
ItemMaterial ItemMaterial 物品素材信息

2.5.4 InfoType 物品类型详情类

属性名 类型 说明
ID integer 类型唯一 ID
Name string 类型名称
Group string 类型分类分组
DamageDura integer 受击时的耐久消耗
AttackDura integer 攻击时的耐久消耗
Equip integer[] 装备属性数组(可能为空)

2.5.5 ItemMaterial 物品素材类

属性名 类型 说明
ID integer 素材唯一 ID
Name string 素材名称
BagLookFileName string 背包显示图片文件名
BagLookID integer 背包显示图片 ID
BagAnyEffect boolean 背包是否仅使用动态图
BagEffectLookStartID integer 背包动态图起始 ID
BagEffectNumber integer 背包动态图总张数
BagEffectJumpNumber integer 背包动态图跳过张数
BagEffectSpeed integer 背包动态图播放速度
BagEffectBlend boolean 背包动态图是否启用混合模式
BagEffectFileName string 背包动态图文件名
InnerLookFileName string 内观显示图片文件名
InnerLookID integer 内观显示图片 ID
InnerAnyEffect boolean 内观是否仅使用动态图
InnerEffectLookStartID integer 内观动态图起始 ID
InnerEffectNumber integer 内观动态图总张数
InnerEffectSpeed integer 内观动态图播放速度
InnerEffectBlend boolean 内观动态图是否启用混合模式
InnerEffectFileName string 内观动态图文件名
ShowFileName string 外观显示文件名称
UseSound string 使用时的音效文件
HitSound string 命中时的音效文件
AttackSound string 攻击时的音效文件

2.6 地图类

2.6.1 Map 地图类

属性名 类型 说明
ID integer 地图唯一下标(用于唯一性判断)
KeyName string 地图唯一标识 ID
Title string 地图名称
Width integer 地图宽度
Height integer 地图高度
NoTeleport boolean 是否禁止传送
NoReincarnation boolean 是否禁止复活

三、枚举定义

3.1 DamageSource 伤害来源枚举

枚举值 说明 附加信息
System = 0 系统伤害 -
Skill = 1 技能伤害 附带技能参数
Buff = 2 Buff 伤害 附带 Buff 参数
Script = 3 脚本伤害 -

3.2 TriggerType 触发器枚举

枚举值 说明 触发参数 返回值
Login = 0 登录触发 (player) -
LoginOut = 1 登出前触发 (player) -
Die = 2 死亡触发 (player, Attacker) -
MonsterDieDropItem = 3 怪物死亡掉落物品触发 (monster, userItem) boolean(确认是否掉落)
Walk = 4 走动触发 (self) -
Run = 5 跑动触发 (self) -
Pushed = 6 被推动触发 (self, target, distance) -
Dying = 7 临死触发 (player, target, IData) -
作者:yilin01  创建时间:2024-12-25 11:32
最后编辑:yilin01  更新时间:2025-12-08 16:49