UE求职Demo开发日志#13 完善所有伤害判定

1 相关思路

1.1 添加相关倍率属性和完善工具函数

        添加了这四个要用到的变量:

                SpecialSkill_1_Multi

                SpecialSkill_2_Multi

                PowerSkillSumMulti

                DodgeAttackSumMulti

1.2 普攻第五段有四段伤害,四段平分总倍率(也可以按比例分)

1.3 SpecialSkill在强化的动画里加入通知,一个在开头重置cnt,一个在第一段结束后cnt++,没强化的动画开头也要重置

1.4 终结技动画通知状态开始检测一次,记录范围内的敌人的引用,然后通过通知的总时间和伤害段数SetTimer来延时应用伤害,暂时还是均分总倍率

1.5 DodgeAttack放五次isAttacking通知状态来应用伤害

2 实现过程

2.1 添加相关倍率属性和完善工具函数

        过程跟之前一样,还是添加到AS里,就不贴了

2.2 实现1.2

        if(comboCnt==0)
        {
            return Cast<UMyPlayerAttributeSet>(AttributeSet)->NA_5_Multi.GetCurrentValue()/4.0;
        }

2.3 实现1.3 

添加计数变量:

UPROPERTY(EditDefaultsOnly, BlueprintReadWrite,Category = "MyPlayer|SpecialSkill")
int SpecialSkill_Cnt=0;

添加两个动画通知:

 重载接收通知:

 在GetCurrentAttackMulti里加入这几行:

    if(myAttackType==EMyAttackType::SpecialSkill)
    {
        UE_LOG(LogTemp,Warning,TEXT("GetCurrentAttackMulti-->SpeciallSkill"));
        if(SpecialSkill_Cnt==0)
        {
            return Cast<UMyPlayerAttributeSet>(AttributeSet)->SpecialSkill_1_Multi.GetCurrentValue();
        }
        if(SpecialSkill_Cnt==1)
        {
            return Cast<UMyPlayerAttributeSet>(AttributeSet)->SpecialSkill_2_Multi.GetCurrentValue();
        }
    }

两段攻击之间AddCnt 

 

测试一下倍率没啥问题:

 2.4 实现1.4

添加变量记录目标:

UPROPERTY(EditAnywhere, BlueprintReadWrite,Category = "MyPlayer|PowerAttack")
	TArray<AActor*> Targets;

 添加一个状态通知来管理Targets,开始时检测并加入Array,结束时清空数组:

Begin:

 

 End:

再添加一个动画通知,应用伤害:

 经过测试多个敌人都正常扣血,这个0.1的倍率是测试的时候改的

 2.5 实现1.5

添加五段动画通知:

效果:

 好的到这终于每种攻击的伤害判定就完善了,除了一些特殊的需求,比如按比例来分每段的伤害

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值