配置表

Base_基础属性公式
  • 调整移动速度、攻击速度。最低100毫秒,可调整一步移动的格子数,如果一步移动一格,人物在转向的相应要快一些。
  • 调整人物死亡装备掉落几率,万分比
  • 暴击几率、暴击伤害、普攻伤害以及命中公式计算
    相关函数:
    Random(0,10000)—-随机0-100000之间的数值
    GetPanel(0,500)—-获取面板属性,第一个参数是人物(0是自己,1是对方)第二个参数是面板属性表中的属性ID
    GetDamage()—-获取伤害
    SetDamage()—-设置伤害
    表中的逻辑判断格式:if(判断条件,条件成立返回值,条件失败返回值)
    GetDC(0)获取攻击随机值 包含幸运算法
    GetAC(1)获取防御随机值 不包含幸运算法
    这里的GetDC、GetAC方法是EntityObject类的成员函数,可在LuaLibDefine.d文件中查询
Base_基础显示规则
  • 角色名字显示内容以及颜色设置 包括宝宝名字颜色设置
Game_设置、Gulid_行会
  • 常用游戏设置,行会设置。表内有详细说明,请务必仔细查看。
Item_物品类型
  • 引擎定义物品分为4个大类,为引擎内置类型,在实际操作中不需要对其操作
  • 每个大类中可以自定义小类型,小类型ID前50为引擎内置预留类型,在自定义类型的时候则从ID:50 开始
  1. 其他类(ID:0)
    这个种类属于杂物类,无特殊属性或要求的

  2. 道具类(ID:1)
    “脚本”类:触发类道具,可双击使用。
    “药品”类:缓慢恢复类型药水,例如”金创药”、”魔法药”。
    “特效药”类:瞬间恢复类型药水,例如”太阳水”、”万年雪霜”、”疗伤药”。
    “回城”类:回城卷
    “随机”类:随机传送卷

  3. 货币类(ID:2)
    “金币”类:为内置货币。
    “元宝、金刚石、灵符”等等货币,都是自定义货币,可以随便更改
    在脚本中可以用以下函数对货币进行操作
    lualib.AddCurrency—-添加货币
    lualib.DelCurrency—-删除货币
    lualib.GetCurrency—-获取货币
    “表”中的Limit项可以设置角色携带货币上限。注意这个存储是long型的,数值支持很大。
    如果不填那就按long来装了,这里建议设个上限,引擎未做溢出处理。
    如果设了上限货币超额有两种情况:
    1、怪物爆出货币拾取超额,则引擎会提示超额了。
    2、通过脚本AddCurrency添加货币超额,则会强制将货币数量设置为限制的额度。

  4. 装备类(ID:3)
    可穿戴在角色身上的物品都属于装备类,包括称号
    虽然类型ID自定义,但是建议将ID设在100以上,便于管理。

  • 表格项填写详细说明
  1. ID:装备类型ID (必填)
  2. Name:类型名称 (必填)
  3. Limit:货币数量上限 。
  4. EquipList:装备栏位。就是物品穿戴在身上的位置代码编号,这个编号自定义填写 (必填)
  5. DamageDura:装备受伤掉耐久,装备掉持久的方式,一般防具使用
  6. AttackDura:装备攻击掉耐久,装备掉持久的方式,一般武器使用
  7. Bind:类型的物品规则,和物品表中的物品规则叠加。例如:不能交易,不能出售的填写方式 DontTrade|DontSell
  8. LookGroup:外观分组
  9. LookLevel:外观优先级。
    外观分组和外观优先级是一起的。分组的原因也是为了在同一个外观显示处进行优先显示设置。
    想要两个类型外观同一组,就将数值设置为一样。然后设置一个优先显示顺序。数值最大的优先显示,其余会被隐藏。
    举个例子:引擎没有内置裸模样式,所以我们需要将裸模也做成一件装备穿在身上,但是裸模不能跟衣服用一个类型,不然穿衣服的时候就会被替换掉,那么内观没有头的衣服看起来就不行。所以我们要创建一个新的类型跟衣服在同一位置上,衣服和裸模就需要分在一组,当角色没穿衣服时就显示裸模,但是角色穿上衣服了,就应该优先显示衣服。所以衣服优先级就需要比裸模的高。
  10. LookLayer:外观层级
    在外观不同组会有遮挡情况,这里常见的体现在武器外观和衣服外观,在人物转向的时候.
    由角色方向朝下,我们将视角从头往下看。
(-1,-1,0) (0,-1,0) (1,-1,0)
(-1,0,0) ↓(0,0,0) (1,0,0)
(-1,1,0) (0,1,0) (1,1,0)

将外观显示分为(x,y,z)三个维度,
默认将衣服或者裸模设置(0,0,0)在中间,武器在右手则是(-1,0,0),
引擎在渲染素材的时候,是按从小到大的顺序渲染,先渲染的会被后渲染的遮挡
比较大小是的顺序是x->y->z,也就是先从x轴开始。
至于z轴,由于我们是从头往下看。而且因为衣服是0,那么头盔就是1,鞋子就是-1,坐骑应该就是-2了。
这样就会从下往上渲染,头盔就在最上方。

头盔 z=1
衣服 z=0
鞋子 z=-1
坐骑 z=-2
  1. UseSound:使用音效,就是双击穿戴时的音效!
  2. HitSound:击中音效,就是武器命中目标时的音效!
  3. AttackSound:攻击音效,就是武器挥刀时的音效!
Panel_面板属性
  • 将角色的属性进行汇总计算得出最终值,便于前端和后端获取。
  • 对以下几个表格项进行详细说明:
  1. Hide:是否下发,下发就是通知给前端,如果某个面板属性不需要在前端显示,只是用于计算使用,就可以不下发来节省包资源。默认是下发的,不下发就得填”1”.
  2. Type:面板属性来源类型。表格中有说明,这里重点说一下,第4、5类。PrivateVariable-个人变量关联 和 SystemVariable-系统变量关联,这两个类型主要是来实现【实时变量】,通过Hide下发至前端显示使用的。如果来源类型中填这两个,Formula中就只需要填 变量名 就行了,不支持计算。
  3. Formula:面板属性的计算公式项。表格中需要用到的数据可通过以下内置函数获取,
    GetStats(int key) –获取基本属性
    GetPanel(int key) –获取面板属性
    SetPanel(int key,int value) –设置面板属性
    PanelLimt(key,min,max) –算法限制属性最大最小值
    If(bool,float,float)
    基础版本中有详细的计算例子,这里就不举例了。
  4. Max:公式计算结果得出的最大值。如果超出了强制设为这个值
  5. Min:公式计算结果得出的最小值。如果超出了强制设为这个值
  6. Limit:有区间的属性强制修正最小值不得大于最大值,比如攻击、魔法、道术、防御、魔御。这种有最小最大值的。用上方公式 PanelLimt(key,min,max) 来修正。如果要实现修罗那种诅咒效果,那这里就不需要去修正,引擎内置的幸运与诅咒是同一个变量,最大幸运(Game_设置)与最大诅咒也是对应的,最大幸运+9刀刀最大攻击,那么最大诅咒也是+9刀刀最小攻击。
  7. Change:是否广播。广播的意思就是通知其他玩家
Player_角色等级设置
  • 升级所需经验设置,设置有两种方式。
    第一种:跟其他引擎一样,每个等级设置一个经验值,可以直接搬过来。
    第二种:用公式进行计算。这里有个常用函数 GetLv()获取当前等级。公式可以分阶段,如下表:
    表中的意思是 0-5级都是用的“100GetLv()”这个公式,5-10级用的“5000GetLv()”公式,10-10000级需要的经验都是4200000000。
level formula
5 100*GetLv()
10 5000*GetLv()
10000 4200000000

这个两种方式可以混合使用。版本最高等级在表中必须要有设置。
第二种如果不能理解直接用第一种。

Player_角色升级属性
  • 与等级设置表一样,也是用两种方式。
    第一种:每个等级设置一个属性集。在BaseStats基础属性中填写,Formulas成长属性公式不用填。
    第二种:分段公式。在BaseStats中填写基础属性,再在Formulas填写成长属性公式集。
    属性和公式中用到的属性ID是Stat_基础属性表中的属性ID。比如Stat_基础属性表中,ID为0的属性是基础最小防御,想将这条属性的值设置为10,就用以写成 “0|10”。多条属性,可以写成”0|10,4|20”,属性集表示的意思就是,最小防御10,最高防御20。也就是 防御10-20。
Stat_基础属性
  • 属性ID 500之前为内置或预留ID,自定义属性用500以上的ID。可以通过面板属性表(Panel_面板属性)的公式中加上或减去自定义属性来实现属性应用。也可在各种脚本中获取此属性的值来实现应用。
  • 引擎没有元素属性,也可以通过上述方法来实现
  • 此表中的属性,可以通过lualib.SetItemStat来添加到装备上,或者通过lualib.GiveBuff给角色附加表中的属性。来实现其他引擎中的自定义属性。
作者:yilin01  创建时间:2025-08-01 15:23
最后编辑:yilin01  更新时间:2025-08-20 18:55