diff --git a/src/main/java/emu/grasscutter/data/binout/AbilityModifier.java b/src/main/java/emu/grasscutter/data/binout/AbilityModifier.java index 14c4b8704..9fc62bf70 100644 --- a/src/main/java/emu/grasscutter/data/binout/AbilityModifier.java +++ b/src/main/java/emu/grasscutter/data/binout/AbilityModifier.java @@ -322,6 +322,8 @@ public class AbilityModifier implements Serializable { public String srcTarget, dstTarget; public String srcKey, dstKey; + public int skillID; + public int param1; public int param2; public int param3; diff --git a/src/main/java/emu/grasscutter/game/ability/actions/ActionAvatarSkillStart.java b/src/main/java/emu/grasscutter/game/ability/actions/ActionAvatarSkillStart.java index 6899d2e09..009ffc644 100644 --- a/src/main/java/emu/grasscutter/game/ability/actions/ActionAvatarSkillStart.java +++ b/src/main/java/emu/grasscutter/game/ability/actions/ActionAvatarSkillStart.java @@ -1,17 +1,27 @@ package emu.grasscutter.game.ability.actions; import com.google.protobuf.ByteString; + +import emu.grasscutter.Grasscutter; import emu.grasscutter.data.binout.AbilityModifier.AbilityModifierAction; import emu.grasscutter.game.ability.Ability; +import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.game.quest.enums.QuestContent; @AbilityAction(AbilityModifierAction.Type.AvatarSkillStart) -public final class ActionAvatarSkillStart extends AbilityActionHandler { +public class ActionAvatarSkillStart extends AbilityActionHandler { @Override - public boolean execute( - Ability ability, AbilityModifierAction action, - ByteString abilityData, GameEntity target - ) { - return false; + public boolean execute(Ability ability, AbilityModifierAction action, ByteString abilityData, GameEntity target) { + GameEntity owner = ability.getOwner(); + if(owner instanceof EntityAvatar avatar) { + avatar.getPlayer().getQuestManager().queueEvent(QuestContent.QUEST_CONTENT_SKILL, action.skillID); + } else { + Grasscutter.getLogger().warn("AvatarSkillStart not implemented for other entities than EntityAvatar right now"); + + return false; + } + + return true; } }