配置表
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 开始
其他类(ID:0)
这个种类属于杂物类,无特殊属性或要求的道具类(ID:1)
“脚本”类:触发类道具,可双击使用。
“药品”类:缓慢恢复类型药水,例如”金创药”、”魔法药”。
“特效药”类:瞬间恢复类型药水,例如”太阳水”、”万年雪霜”、”疗伤药”。
“回城”类:回城卷
“随机”类:随机传送卷货币类(ID:2)
“金币”类:为内置货币。
“元宝、金刚石、灵符”等等货币,都是自定义货币,可以随便更改
在脚本中可以用以下函数对货币进行操作
lualib.AddCurrency—-添加货币
lualib.DelCurrency—-删除货币
lualib.GetCurrency—-获取货币
“表”中的Limit项可以设置角色携带货币上限。注意这个存储是long型的,数值支持很大。
如果不填那就按long来装了,这里建议设个上限,引擎未做溢出处理。
如果设了上限货币超额有两种情况:
1、怪物爆出货币拾取超额,则引擎会提示超额了。
2、通过脚本AddCurrency添加货币超额,则会强制将货币数量设置为限制的额度。装备类(ID:3)
可穿戴在角色身上的物品都属于装备类,包括称号。
虽然类型ID自定义,但是建议将ID设在100以上,便于管理。
- 表格项填写详细说明
- ID:装备类型ID (必填)
- Name:类型名称 (必填)
- Limit:货币数量上限 。
- EquipList:装备栏位。就是物品穿戴在身上的位置代码编号,这个编号自定义填写 (必填)
- DamageDura:装备受伤掉耐久,装备掉持久的方式,一般防具使用
- AttackDura:装备攻击掉耐久,装备掉持久的方式,一般武器使用
- Bind:类型的物品规则,和物品表中的物品规则叠加。例如:不能交易,不能出售的填写方式 DontTrade|DontSell
- LookGroup:外观分组
- LookLevel:外观优先级。
外观分组和外观优先级是一起的。分组的原因也是为了在同一个外观显示处进行优先显示设置。
想要两个类型外观同一组,就将数值设置为一样。然后设置一个优先显示顺序。数值最大的优先显示,其余会被隐藏。
举个例子:引擎没有内置裸模样式,所以我们需要将裸模也做成一件装备穿在身上,但是裸模不能跟衣服用一个类型,不然穿衣服的时候就会被替换掉,那么内观没有头的衣服看起来就不行。所以我们要创建一个新的类型跟衣服在同一位置上,衣服和裸模就需要分在一组,当角色没穿衣服时就显示裸模,但是角色穿上衣服了,就应该优先显示衣服。所以衣服优先级就需要比裸模的高。 - 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 |
- UseSound:使用音效,就是双击穿戴时的音效!
- HitSound:击中音效,就是武器命中目标时的音效!
- AttackSound:攻击音效,就是武器挥刀时的音效!
Panel_面板属性
- 将角色的属性进行汇总计算得出最终值,便于前端和后端获取。
- 对以下几个表格项进行详细说明:
- Hide:是否下发,下发就是通知给前端,如果某个面板属性不需要在前端显示,只是用于计算使用,就可以不下发来节省包资源。默认是下发的,不下发就得填”1”.
- Type:面板属性来源类型。表格中有说明,这里重点说一下,第4、5类。PrivateVariable-个人变量关联 和 SystemVariable-系统变量关联,这两个类型主要是来实现【实时变量】,通过Hide下发至前端显示使用的。如果来源类型中填这两个,Formula中就只需要填 变量名 就行了,不支持计算。
- Formula:面板属性的计算公式项。表格中需要用到的数据可通过以下内置函数获取,
GetStats(int key) –获取基本属性
GetPanel(int key) –获取面板属性
SetPanel(int key,int value) –设置面板属性
PanelLimt(key,min,max) –算法限制属性最大最小值
If(bool,float,float)
基础版本中有详细的计算例子,这里就不举例了。 - Max:公式计算结果得出的最大值。如果超出了强制设为这个值
- Min:公式计算结果得出的最小值。如果超出了强制设为这个值
- Limit:有区间的属性强制修正最小值不得大于最大值,比如攻击、魔法、道术、防御、魔御。这种有最小最大值的。用上方公式 PanelLimt(key,min,max) 来修正。如果要实现修罗那种诅咒效果,那这里就不需要去修正,引擎内置的幸运与诅咒是同一个变量,最大幸运(Game_设置)与最大诅咒也是对应的,最大幸运+9刀刀最大攻击,那么最大诅咒也是+9刀刀最小攻击。
- 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-20 18:55