UE4 TRPG制作日志三

战斗系统:需要贴合TRPG的要素,那就是掷骰子,问题来了。掷骰子对人物的影响?是玩家事先选择技能进行发动掷骰子决定伤害效果,还是根据掷骰子决定玩家的技能呢?第一种掷骰子的影响比较小,第二种骰子的影响比较大。而且TRPG的要素之一就是玩家掷出的点数影响游戏进程。(欢迎就掷骰子影响技能发动的问题留言

当下决定:根据掷骰子决定给玩家的技能阶级。

1、使用GAS

启用插件,添加 "GameplayAbilities", "GameplayTags", "GameplayTasks" ,"AIModule"等模块到build.cs中

为了使得能够使用技能,需要继承接口:IAbilitySystemInterface;该接口没法用蓝图直接继承,需要实现接口中的纯需方法

 2、AttributeSet属性集:生命、法力、攻击、防御、(剔除经验与等级,声望等),尽量简单

在属性被修改之前,PreAttributeChange 函数处理以最大值为限的当前生命值/法力调整。在属性被修改之后,PostGameplayEffectExecute 函数处理限制并将更改告知给其他对象。需要手动定义委托将属性值修改事件广播出去。

FOnAttributeSetChangeDelegate OnHealthChange;
OnHealthChange.BroadCast(Health.GetCurrentValue(), MaxHealth.GetCurrentValue());
AttributeSetComp->OnHealthChange.AddDynamic(this, &ACharacterBase::OnHealthChange);
void ACharacterBase::OnHealthChange(float Health, float MaxHealth)
{
    BP_OnHealthChange(Health, MaxHealth);
}

 3、角色基本属性:

是否死亡、移动步数、是否在己方回合、掷出的骰子数值。

 需要设置装备的staticMesh对NavMesh的影响为false

开发测试阶段动画逻辑尽量简单。(后期再考虑武器的类型,是否有武器,切换武器,负重等等)

TODO:

先实现普攻技能的战斗逻辑。后记,其实这个战斗系统也可以很简单,用不到GAS。但是为了省写一个技能系统并且考虑到复用性还是使用GAS。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值