From 6448bb1b9bd68284697c7bbca7bfbccacf5ba3d8 Mon Sep 17 00:00:00 2001 From: StartForKiller Date: Wed, 31 May 2023 22:28:53 -0400 Subject: [PATCH] Quick fix for questing, needs more investigation This would make the questing work again --- .../data/binout/AbilityModifier.java | 2 ++ .../actions/ActionAvatarSkillStart.java | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) 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; } }