收获系统(HS) {{ currentPage ? currentPage.title : "" }}

收获系统:HarvestSystem

用途:用于野外植物、树木、岩石的采集

  • APrimalHarvest:收获实体Actor,带有血量、交互组件(UUltimateCommandComponent)与收获组件(UHarvestComponent)

变量/函数

说明

bDestroyed

是否已毁坏,毁坏后将无法再次进行收获

Health/MaxHealth

血量/最大血量

SavedDamage

储存伤害,用于储存玩家或怪物给与植物的伤害,达到最大血量*0.1f后将会清空储存的伤害并且给与按伤害类型给予物品

BreakSound

破坏音效,当植物被破坏后播放该音效

PickupSound

捡起音效,E键交互捡起地上物品或捡起灌木丛播放的音效

DestructableActorClass

毁坏实体类型,用于被破坏后播放树木倒下或岩石消散效果的实体,该实体仅在非专用服务器上生成(客户端上生成),无碰撞,原实体将会隐藏并且移除碰撞,并不会销毁(一段时间后将会恢复,恢复代码暂时没写)

MulticastBreak(FVector Location, FVector Direction)

组播被销毁,随后调用OnBreak进行移除碰撞播放音效以及生成DestructableActor操作

MulticastOnHit(FVector Location, FVector Direction)

组播被伤害,随后调用OnHit

  • ASmallHarvest(继承APrimalHarvest):可捡起的实体Actor,例如小石子、树枝以及灌木丛

变量/函数

说明

Meshs

静态网格体数组,该实体将会随机使用列表中的网格体

OnPickup(ACharacter* Character)

捡起物品,随后调用OnPickupInternal来给该实体应用伤害,默认一次给与10.f伤害,该函数为玩家手动交互,非使用工具进行直接伤害

  • ADestructableHarvest/ADestructable_Tree:毁坏实体,用于显示收获植物被破坏所生成的实体,仅在客户端上生成,用于装饰

变量/函数

说明

Mesh

静态网格体

ForceDirection

力的方向,用于树木倒下时的受力方向

AddForce

添加受力,已在BeginPlay中调用

  • EHarvestAdditionType:加成类型,例如斧头伤害类型拥有砍伐木头的加成,十字镐拥有铁矿加成

  • FHarvestAddition:加成类型结构,伤害类型(UPrimalDamageType)中使用

变量

说明

HarvestAdditionType

加成类型,例如加成木头、铁矿等

ProbabilityMultiplication

加成几率,例如斧头将会更容易收获到木头

AddtionMultiplication

加成倍率,例如斧头将会收获到更多的木头

  • FHarvestResource:收获的材料,用于收获数据列表(FTableHarvest)

变量

说明

Resource

材料物品基础(UPrimalItemBasic)

Quantity

数量

Probability

几率

Empty

是否为空,例如采集灌木丛有几率不给予物品

AdditionType

加成类型

  • FTableHarvest:收获表格的结构,你需要创建一个表格,添加例如:灌木丛1(浆果、树枝)的材料表,每次收获将从材料表中随机获得一个材料(按几率随机)

  • 收获组件(UHarvestComponent):组件无需联网、用于选择收获材料表格与经验、给予物品

变量/函数

说明

HarvestResourceTable

收获表格,结构FTableHarvest

BaseExp

经验值

bCanPickup

可否捡起,例如小石子与灌木丛能捡起,树木与岩石无法捡起,只能使用工具或拳头给与伤害

GiveHarvestResource(UPrimalDamageType* DamageType,ACharacter* Character)

给予收获材料,DamageType中包含加成数据

GetCanPickup

是否可捡起

{{{ content }}}