Difference between revisions of "User talk:Lisselli"
Jump to navigation
Jump to search
m
no edit summary
imported>Lisselli |
imported>Lisselli m |
||
Line 1: | Line 1: | ||
<source lang="papyrus"> | <source lang="papyrus"> | ||
Function SetActorValueCap(Actor akActor, String asValueName, Float afValueCap = 100.0) | |||
; Store the base and current value. | |||
Float BaseValue = akActor.GetBaseActorValue(asValueName) | |||
Float CurrentValue = akActor.GetActorValue(asValueName) | |||
; Cap default is 100. If checking for attributes, adjust the desired cap accordingly. | |||
; Check if the current value is over the cap. | |||
if (BaseValue <= afValueCap && CurrentValue > afValueCap) | |||
;Unless the base is also over the cap, we\ll assume it\s not. | |||
akActor.ForceActorValue(asValueName, afValueCap) | |||
elseif BaseValue > afValueCap && CurrentValue > BaseValue | |||
; bring the base and current back down to the cap. | |||
BaseValue = BaseValue - (BaseValue - afValueCap) | |||
akActor.SetActorValue(asValueName, BaseValue) | |||
akActor.ForceActorValue(asValueName, afValueCap) | |||
else | |||
return | |||
endif | |||
EndFunction | |||
EndFunction | |||
</source> | </source> |