mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-15 08:25:21 +01:00
Some fix about scene script and quest (#2029)
* [ScriptLib] Query player when not get entity from scene * Fix NPE when doing quests * Add QUEST_CONTENT_SKILL trigger Q353 need it * Add some missing fields that contain in scene scripts * Add a lua table serializer implement with jackson This do not replace the original one,it is useful when debug * Fix point_array type error * feat: fix space
This commit is contained in:
@@ -132,14 +132,16 @@ public class GameMainQuest {
|
||||
|
||||
// Add rewards
|
||||
MainQuestData mainQuestData = GameData.getMainQuestDataMap().get(this.getParentQuestId());
|
||||
for (int rewardId : mainQuestData.getRewardIdList()) {
|
||||
RewardData rewardData = GameData.getRewardDataMap().get(rewardId);
|
||||
if (mainQuestData != null && mainQuestData.getRewardIdList() != null) {
|
||||
for (int rewardId : mainQuestData.getRewardIdList()) {
|
||||
RewardData rewardData = GameData.getRewardDataMap().get(rewardId);
|
||||
|
||||
if (rewardData == null) {
|
||||
continue;
|
||||
if (rewardData == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
getOwner().getInventory().addItemParamDatas(rewardData.getRewardItemList(), ActionReason.QuestReward);
|
||||
}
|
||||
|
||||
getOwner().getInventory().addItemParamDatas(rewardData.getRewardItemList(), ActionReason.QuestReward);
|
||||
}
|
||||
|
||||
// handoff main quest
|
||||
|
||||
@@ -272,6 +272,7 @@ public class QuestManager extends BasePlayerManager {
|
||||
case QUEST_CONTENT_INTERACT_GADGET:
|
||||
case QUEST_CONTENT_TRIGGER_FIRE:
|
||||
case QUEST_CONTENT_UNLOCK_TRANS_POINT:
|
||||
case QUEST_CONTENT_SKILL:
|
||||
for (GameMainQuest mainQuest : checkMainQuests) {
|
||||
mainQuest.tryFinishSubQuests(condType, paramStr, params);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package emu.grasscutter.game.quest.content;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_CONTENT_SKILL)
|
||||
public class ContentSkill extends BaseContent {
|
||||
@Override
|
||||
public boolean execute(GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
return (condition.getParam()[0] == params[0]) && (condition.getParam()[1] == params[1]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user