社区
游戏开发
帖子详情
游戏技能、buff的代码如何架构
yanx8844
2010-10-21 03:52:10
RPG游戏中的大量技能、buff如何设计、架构呢。
面对各种不同的技能、buff如何用比较好的模式编写出来呢,现在头绪比较混乱,请教各位了。
...全文
1499
15
打赏
收藏
游戏技能、buff的代码如何架构
RPG游戏中的大量技能、buff如何设计、架构呢。 面对各种不同的技能、buff如何用比较好的模式编写出来呢,现在头绪比较混乱,请教各位了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jobot
2010-11-16
打赏
举报
回复
[Quote=引用 4 楼 sunny352 的回复:]
技能和buff的全套架构不算小,源码就不放了,给你些思路吧
首先一个技能并不只是对对方造成HP伤害,产生的效果会有很多,比如消耗自身MP,给对方/自己加buff等等很多种结果,所以在设计的时候需要设计很多种结果类。而结果ID可以直接填写在外部资源当中,比如表格等。
其次,技能在进行结算的时候会受到buff的处理,比如目标身上有个伤害加深的buff,技能产生的伤害结果通过这个buff的……
[/Quote]
yanx8844
2010-11-15
打赏
举报
回复
[Quote=引用 13 楼 osoon 的回复:]
楼主我真想送你一把剪刀。
[/Quote]什么意思啊⊙﹏⊙b汗
点点吃得太多了
2010-11-10
打赏
举报
回复
楼主我真想送你一把剪刀。
yanx8844
2010-11-10
打赏
举报
回复
[Quote=引用 10 楼 kevinyuen 的回复:]
状态和技能的数量和逻辑处理无关
所有这些操作的最终结果是影响了参数某种操作运算所需要的数值。
万变不离其宗~
[/Quote]
不仅仅是数值吧,有的时候还影响到了逻辑
KevinYuen
2010-11-09
打赏
举报
回复
状态和技能的数量和逻辑处理无关
所有这些操作的最终结果是影响了参数某种操作运算所需要的数值。
万变不离其宗~
java4003
2010-11-09
打赏
举报
回复
高人 我是初学者
yanx8844
2010-11-05
打赏
举报
回复
顶起一下buff就是附加属性啥的
zhaogang001
2010-11-01
打赏
举报
回复
我是新来的,顶起~
做游戏的小明
2010-10-31
打赏
举报
回复
技能和buff的全套架构不算小,源码就不放了,给你些思路吧
首先一个技能并不只是对对方造成HP伤害,产生的效果会有很多,比如消耗自身MP,给对方/自己加buff等等很多种结果,所以在设计的时候需要设计很多种结果类。而结果ID可以直接填写在外部资源当中,比如表格等。
其次,技能在进行结算的时候会受到buff的处理,比如目标身上有个伤害加深的buff,技能产生的伤害结果通过这个buff的处理后数值会改变。而且buff效果的种类也会有很多,在目标身上会记录一个buff列表,技能效果会通过这个buff列表来进行处理,所以buff部分直接用责任链就可以实现了。
然后,技能效果在受到buff处理之后就可以执行了,执行部分需要根据不同的效果进行不同的执行,最简单的设计方法就是子类实现基类的纯虚函数的方式,由外部代码统一调用执行。
最后提醒一下,技能产生的效果会有很多,生成的会是一个树形结构而不是一个简单的链。
qq7959501
2010-10-31
打赏
举报
回复
什么是 buff 啊, 求教
yanx8844
2010-10-31
打赏
举报
回复
[Quote=引用 4 楼 sunny352 的回复:]
技能和buff的全套架构不算小,源码就不放了,给你些思路吧
首先一个技能并不只是对对方造成HP伤害,产生的效果会有很多,比如消耗自身MP,给对方/自己加buff等等很多种结果,所以在设计的时候需要设计很多种结果类。而结果ID可以直接填写在外部资源当中,比如表格等。
其次,技能在进行结算的时候会受到buff的处理,比如目标身上有个伤害加深的buff,技能产生的伤害结果通过这个buff的……
[/Quote]谢谢,至少有点想法了。做的过程中再慢慢完善了。
大家尽量再多给点意见:)
双杯献酒
2010-10-27
打赏
举报
回复
找一个游戏的源代码看看吧。
一般是把技能抽象出来统一实现,每个技能的不同数字用表哥配置。
假设我们不同的攻击技能只有命中概率和攻击力不一样,
则可以设计如下:
// 技能使用的伤害
int SkillAttack(int iSkill)
{
int r = GetSkillR(iSkill);
int d = GetSkillD(iSkill);
if( rand()%100 < r)
{
// 命中
return d;
}
else
{
// 技能失手
return 0;
}
}
GetSkillR和GetSkillD分别从表格里取编号为iSkill的技能的命中和伤害
技能定义大致如下:
1 100 1000 // “精确一击”, 命中100%, 伤害1000
2 80 1500 // “愤怒一击”, 命中80%, 伤害1500
3 30 800 // “瞎抓”, 命中30%, 伤害800
等等
yanx8844
2010-10-27
打赏
举报
回复
大家再多给给意见吧
yanx8844
2010-10-25
打赏
举报
回复
自己顶一个,咕~~(╯﹏╰)b
游戏
服务器
架构
:如何设计开发战斗系统的
技能
和
buff
系统
转自:
游戏
服务器
架构
:如何设计开发战斗系统的
技能
和
buff
系统 - 掘金 战斗系统中
buff
和skill如何配合 在网络
游戏
中的战斗形式多种多样,不同
游戏
的战斗逻辑也有很大的差异。但是一般都会涉及
技能
系统和
buff
系统,两种之间相互关联,
技能
可以产生
buff
作用在目标上,影响目标。同时
buff
也会影响
技能
的释放效果,两者都可以算得上
游戏
战斗系统最重要的元素。 在
游戏
战斗中有许多各种各样复杂的
buff
和
技能
,这些
buff
和
技能
是由基础的
buff
和
技能
效果机制组合形成的。通过基础的机制效果的组合,形成各种
Unity3D MMORPG核心技术:基于ECS的
技能
释放与
Buff
管理详解
通过使用ECS
架构
,我们可以将
游戏
对象(Entity)分解为不同的组件(Component),并通过系统(System)来管理这些组件的关系和逻辑。在传统的面向对象的设计模式中,
游戏
对象(Entity)通常是一个包含了很多属性和行为的复杂对象。ECS
架构
是一种将
游戏
对象(Entity)分解为不同的组件(Component),并通过系统(System)来管理这些组件的设计模式。
Buff
组件(
Buff
Component)描述了一个
Buff
的属性,如
Buff
的名称、
Buff
的类型、
Buff
的持续时间等。
Unity3D MMORPG技术分享: 基于ECS的
技能
释放与
Buff
管理详解
Buff
系统需要监听实体上的
Buff
组件,当有新的
Buff
加入时,系统会根据
Buff
效果组件来更新实体的属性。
技能
释放系统需要监听玩家的输入,当玩家按下
技能
键时,系统会根据
技能
组件的信息来释放
技能
。接下来,需要定义一个
Buff
效果组件,用来存储
Buff
对实体属性的影响。首先,需要定义一个
Buff
组件,用来存储
Buff
的基本信息,比如
Buff
名称、
Buff
图标、
Buff
持续时间、
Buff
效果等等。首先,需要定义一个
技能
组件,用来存储
技能
的基本信息,比如
技能
名称、
技能
图标、
技能
等级、
技能
消耗等等。
如何实现一个强大的MMO
技能
系统
文章目录如何实现一个强大的MMO
技能
系统——序章前言如何实现一个强大的MMO
技能
系统——AOI前言正文总结如何实现一个强大的MMO
技能
系统——
技能
前言正文总结示例如何实现一个强大的MMO
技能
系统——
BUFF
前言正文第一节:
Buff
定义第二节:
Buff
执行流程第三节:
Buff
修改状态(ModifyState)第四节:
Buff
修改属性(ModifyAttribute)第五节:
Buff
修改运动(ModifyMotion)第六节:
Buff
监听事件总结示例如何实现一个强大的MMO
技能
系统——子弹前言正文总结示例如何实
Buff
系统框架设计
Buff
的配置文件 BufType: 1: 精神类Buf 2: 物理类Buf 3.元素类Buf 4.其他类Buf 5.被动类Buf BufSubType: 1000-1999 精神子类 2000-2999.物理子类 3000-3999.元素子类 4000-4999.其他子类 5000-5999.被动子类。所以子类可以唯一标识一个
Buff
的类别 OppGroupId: 表明该Grou
游戏开发
8,305
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章