参考学习资料 AI 制作 饥荒debuff使用及自定义.pdfVIP

  • 0
  • 0
  • 约3.86千字
  • 约 5页
  • 2026-01-28 发布于广西
  • 举报

参考学习资料 AI 制作 饥荒debuff使用及自定义.pdf

饥荒debuff使⽤及⾃定义

作者:绯世⾏

1.饥荒debuffable和debuff组件

饥荒的buff是通过创建不同的预制体来添加不同的buff,这些buff预制体都有debuff组件,使⽤

EntityScript对象的AddDebuff和RemoveDebuff快速添加和删除buff效果。

优点:

1.使⽤便捷,buff⽅法在EntityScript对象⾝上,按需添加组件,⾃动添加debuffable组件,并且在

重新加载游戏会⾃动添加该组件添加buff效果

2.⾃由,buff效果都在buff预制体⾥实现,纯主机预制体、含特效动画的预制体都⾏

缺点:

1.局限性:debuffable组件有⼀个enable变量,控制所有buff效果的开关,玩家死亡就会设置为

false,移除所有的buff效果,虽然我很想让enable永远为true,但可能会影响其他mod

2.⿇烦:添加buff时data需要⾃⼰⼿动保存,预制体的移除也需要⾃⼰处理,有时候2感觉预制体的

存在就是多余的

1.1使⽤⽅法

1ThePlayer:AddDebuff(spawnprotetionbuff,spawnprotetionbuff)

buff预制体模板:

ptribe_buffs.lua

4.14KB

饥荒debuff

2.⾃定义buff组件

我最适应不了的还是debuffable组件的enable变量,玩家⼀死就会移除所有buff效果,因此不得

不⾃定义⼀个buff组件。要实现⼀个buff系统,需要的以下功能:

•buff:buff的类型,选择什么样的buff效果

•key:键,允许同时存在多个同类型buff

•time:buff存在时间

•onDeathKeep:死亡时是移除buff还是保留buff

•isSave:退出游戏再进是否继续buff效果

•data:buff需要的各种参数,⽐如回⾎需要间隔、回⾎量、每次回⾎⽣成的特效,这部分数据在

OnSave时会保存,以便加载的时候能复刻buff效果

•vars:buff实现时需要的临时变量,⽐如开启的定时任务,会在Start中定义,在Stop中取消

•Start:开启⼀个buff效果

•Stop:结束⼀个buff效果

下⾯是由timer组件改装实现的⾃定义debuffable组件,不再使⽤预制体,⽽是⼏个函数和变量控

制buff。

⾃定义buff由于两个⽂件组成:

•buffmanager.lua:组件⽂件,管理buff拥有者的各种buff,类似debuffable组件

•buffmanagerutils.lua:buff定义表,定义各种buff效果。

ptribe_buffmanager.lua

5.10KB

饥荒debuff

ptribe_buffmanagerutils.lua

9.69KB

饥荒debuff

两个⽂件,⼀个组件,⼀个script⽬录下⽂件,修改⽂件前缀即可,不过⾥⾯Utils、

GetPrefab、Shapes⽂件是⼯具函数⾥的⽂件,如果不⽤删除相关代码即可。

2.1使⽤⽅法

下⾯使⽤的前缀是ptribe_,使⽤时换成⾃⼰的前缀即可。

1.⾸先注册⼀下EntityScript的⽅法,便捷的添加buff

1loalBuffManagerUtils=require(ptribe_buffmanagerutils)

2BuffManagerUtils.RegisterMethod()

2.使⽤

1--⼀秒⼀滴的⾎量恢复效果,⼀直回复

2ThePlayer:ptribe_AddDebuff(health,nil,{amount=1,period=1,fx=

battlesong_healthgain_fx})

3

4--持续时间60秒,重新上线也⽣效

5ThePlayer:ptribe_AddDebuff(health,key2,{time=60,isSave=true,

amount=1,period=1,fx=battlesong_healthgain_fx})

文档评论(0)

1亿VIP精品文档

相关文档