MMORPGKIT Release 1.57

Released 07/22/20


Changes

New UI Components

  • Add UIOwningAmmoAmount component, which will set an event to update UIAmmoAmount when owning character's data which relates to weapon ammo amount changes. So we could attach this component to the same game object with UIAmmoAmount which intended to show ammo amount of character which player controls, and we also won't have to set the UIAmmoAmount to UISceneGameplay -> uiAmmoAmount field to set an event.
  • Add UIOwningCharacter component, which will set an event to update UICharacter when owning character's data which relates to character changes. So we could attach this component to the same game object with UICharacter which intended to show information of character which player controls, and we also won't have to set the UIOwningCharacter to UISceneGameplay -> uiCharacters field to set an event.
  • Add UIOwningEquipItems component, which will set an event to update UIEquipItems when owning character's data which relates to character's equip items changes. So we could attach this component to the same game object with UIEquipItems which intended to show equip items of character which player controls, and we also won't have to set the UIOwningEquipItems to UISceneGameplay -> uiCharacterEquipItems field to set an event.
  • Add UIOwningHotkeys component, which will set an event to update UICharacterHotkeys when owning character's data which relates to character's hotkeys changes. So we could attach this component to the same game object with UICharacterHotkeys which intended to show hotkeys of character which player controls, and we also won't have to set the UIOwningHotkeys to UISceneGameplay -> uiCharacterHotkeys field to set an event.
  • Add UIOwningNonEquipItems component, which will set an event to update UINonEquipItems when owning character's data which relates to character's non-equip items changes. So we could attach this component to the same game object with UINonEquipItems which intended to show non-equip items (inventory items) of character which player controls, and we also won't have to set the UIOwningNonEquipItems to UISceneGameplay -> uiCharacterNonEquipItems field to set an event.
  • Add UIOwningQuests component, which will set an event to update UICharacterQuests when owning character's data which relates to character's quests changes. So we could attach this component to the same game object with UICharacterQuests which intended to show quests of character which player controls, and we also won't have to set the UIOwningQuests to UISceneGameplay -> uiCharacterQuests field to set an event.
  • Add UIOwningSkills component, which will set an event to update UICharacterSkills when owning character's data which relates to character's skills changes. So we could attach this component to the same game object with UICharacterSkills which intended to show skills of character which player controls, and we also won't have to set the UIOwningSkills to UISceneGameplay -> uiCharacterSkills field to set an event.
  • Add UIOwningStorageItems component, which will set an event to update UICharacterStorageItems when owning character's data which relates to character's storage items changes. So we could attach this component to the same game object with UICharacterStorageItems which intended to show storage items of character which player controls, and we also won't have to set the UIOwningStorageItems to UISceneGameplay -> uiCharacterStorageItems field to set an event.
  • Add UIOwningSummons component, which will set an event to update UICharacterSummons when owning character's data which relates to character's summons changes. So we could attach this component to the same game object with UICharacterSummons which intended to show summoned monsters of character which player controls, and we also won't have to set the UIOwningSummons to UISceneGameplay -> uiCharacterSummons field to set an event.
  • Add UIToggler component, can attach to any game object which always active to toggle the UI by defined key. It's alternative of UISceneGameplay -> toggleUis.
  • Add UIBlockController component, can attach to UIs which will block controls while one of them is showing. So while one of block controller UI is showing, player won't be able to control character (made to work with ShooterPlayerCharacterController only for now). It's alternative of UISceneGameplay -> blockControllerUis.
  • Add ReloadButtonActivator component, set reload virtual joystick to activateObjects to make it activate while character equip weapon which can reload and dectivate while character equip weapon which cannot reload.

New Components

  • Add CharacterAlignOnGround component which will align character animation on ground slope, attach it to your horse entity then set skinned mesh's root bone's transform to rootBoneTransform field.

Bugs Fixes

  • Fix missing using TMPro; in GenericUtils.
  • Fix NpcDialogConditionData not being saved.
  • Fix WeaponItem -> EquipType its value is invalid.
  • Fix UIArmorAmounts not update correctly when un-equip an items.
  • Fix UIAttributeAmounts not update correctly when un-equip an items.
  • Fix UIDamageElementAmounts not update correctly when un-equip an items.
  • Fix UIResistanceAmounts not update correctly when un-equip an items.
  • Fix ShooterPlayerCharacterController find entities in front of owning character incorrectly.
  • Fix HarvestableEntity multiple respawning when it destroy.
  • Fix HarvestableEntity multiple trigger OnHarvestableDestroy event when it destroy.
  • Fix BuildingEntity multiple trigger OnBuildingDestroy event when it destroy.
  • Fix PlayerCharacterController do action on target (activate building, NPC and so on) repeatly.
  • Fix AnimatorCharacterModel playing action/cast skill incorrectly by add actionStateNames and castSkillStateNames settings to force it play action animation and cast skill animation by state name. For developer who made custom animator controller for AnimatorCharacterModel, please read Note section.

Improvements

  • Add onActivateBuilding event to BasePlayerCharacterController, developer may add event to the action with dev extension to do something when activate custom buildings.
  • Add onBuildingConstruct event to BuildingEntity, which will trigger when building just constructed.
  • Add applyJumpForceMode and applyJumpForceFixedDuration settings to LegacyRigidBodyEntityMovement and RigidBodyEntityMovement. applyJumpForceFixedDuration will be used while applyJumpForceMode is ApplyAfterFixedDuration to apply jump force after define duration. While applyJumpForceMode is ApplyAfterJumpDuration it will apply jump force after played jump animation.
  • Add play clip speed rate settings to AnimatorCharacterModel and AnimationCharacterModel. For developer who made custom animator controller for AnimatorCharacterModel, please read Note section.
  • Add amount to CraftItem, min value is 1, so when it was <= 0 it will set to 1.
  • Add function to get value of cached attribute, skill, resistance, armor, increase damage and equipment set easier to CharacterDataCache.
  • Draw entity bounds when select the entity only.
  • Move avatar mask named TopMask from Demo folder to CORE's resource.
  • Improve find ground function for drop item and spawn entities.

Note

  • For developer who made custom animator controller for AnimatorCharacterModel, you have to add HurtSpeedMultiplier(float, default = 1.0) and set it to hurt state -> speed multiplier. Add DeadSpeedMultiplier(float, default = 1.0) and set it to dead state -> speed multiplier. Add JumpSpeedMultiplier(float, default = 1.0) and set it to jump state -> speed multiplier. Add FallSpeedMultiplier(float, default = 1.0) and set it to fall state -> speed multiplier. Add PickupSpeedMultiplier(float, default = 1.0) and set it to pickup state -> speed multiplier. Other than this, you have to set action and cast skill state names for each layers to actionStateNames and castSkillStateNames settings.

Documentation

https://suriyun-production.github.io/mmorpg-kit-docs/#/pages/000-changelog?id=_157-2020-07-22