RPG增容2.尝试使用MMC根据游戏难度自定义更改怪物的属性(二)
前景:捣鼓到半夜头晕,躺床上突然想到原来的做法是根据GameMode的难度来给怪物内的AbilityApplyLevel值。debug的时候发现MMC内的执行顺序在上一步之后。(才注意到这一细节。。。)于是根据这个顺序,在启用MMC给怪物更改属性时,应该是直接从怪物类直接获取AbilityApplyLevel后,可以根据此值来switch难度倍率(后续再改)。
于是先试验。
目前需要达到的目标:当我们在启动游戏、改变难度后,怪物能够实现最大生命值的更改。
继承于上一节的难度顺序1、2、3、4,我们先暂时不更改倍率。难度为easy时倍率为1,normal时倍率为2,依次。
---------------------------------------------------------------------------------------------------------------------------------
1.先进行小修改
打开EnemyBase.cpp,我们需要原来的段落
然后打开MMC_Health
因为在之前有获取到当前发起者的ASC,故从asc内再获取到当前的OwningActor或AvatarActor(因为应用者是自己),再将其转换成EnemyBase即可获取到其中的AbilityApplyLevel。
2。当打上断点后,我们启动游戏。以下按断点的顺序。
一:难度为VeryHard
①:在EnemyBase内,我们获取到了当前gamemode内的难度
此时预期判断ApplyAbilityLevel=4
继续运行
②:下一个断点顺序在MMC_Health内,可以看到ASC内的OwningActor与AvatarActor都是相同的(为了以防万一可以换成OwningActor)
继续运行
③:下一个断点在末尾,因为没有switch倍率,所以预期中level=4,并且基于在GE_Infinced内的系数为100,所以预期敌人的生命值为400
②:此时不需要退出游戏,我们需要在Options内进行难度修改。此时难度为easy,所以预期ApplyAbilityLevel = 1,敌人的最大生命值为100
---------------------------------------------------------------------------------------------------------------------------------
以上为debug的预期,都完成了。
可以把其他不需要的都删除了。
下一步是对怪物全属性进行更改,并且尝试加入玩家的升级系统。