basic GetQuestData

This commit is contained in:
Hiro
2023-11-30 09:23:54 +02:00
parent 89acec994a
commit e6647b04f8
8 changed files with 1517 additions and 1 deletions

View File

@@ -60,6 +60,7 @@ public class GameData {
private static Int2ObjectMap<PhoneThemeExcel> phoneThemeExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MonsterDropExcel> monsterDropExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MonsterExcel> monsterExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<QuestExcel> questExcelMap = new Int2ObjectLinkedOpenHashMap<>();
private static Int2ObjectMap<PlayerLevelExcel> playerLevelExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<ExpTypeExcel> expTypeExcelMap = new Int2ObjectOpenHashMap<>();
@@ -141,6 +142,17 @@ public class GameData {
return allIds;
}
public static List<Integer> getAllQuestIds() {
List<Integer> allIds = new ArrayList<>();
for (Int2ObjectMap.Entry<QuestExcel> entry : questExcelMap.int2ObjectEntrySet()) {
QuestExcel questExcel = entry.getValue();
allIds.add(questExcel.getId());
}
return allIds;
}
public static List<Integer> getAllMonsterIds() {
List<Integer> allIds = new ArrayList<>();

View File

@@ -0,0 +1,17 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import lombok.Getter;
@Getter
@ResourceType(name = {"QuestData.json"}, loadPriority = LoadPriority.NORMAL)
public class QuestExcel extends GameResource {
private int QuestID;
@Override
public int getId() {
return QuestID;
}
}

View File

@@ -19,7 +19,8 @@ public class CmdIdUtils {
CmdId.PlayerHeartBeatCsReq,
CmdId.PlayerHeartBeatScRsp,
CmdId.SceneEntityMoveCsReq,
CmdId.SceneEntityMoveScRsp
CmdId.SceneEntityMoveScRsp,
CmdId.GetQuestDataScRsp
);
private static Int2ObjectMap<String> opcodeMap;

View File

@@ -0,0 +1,16 @@
package emu.lunarcore.server.packet.recv;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketGetQuestDataScRsp;
@Opcodes(CmdId.GetQuestDataCsReq)
public class HandlerGetQuestDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetQuestDataScRsp());
}
}

View File

@@ -0,0 +1,32 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.GetQuestDataScRspOuterClass.GetQuestDataScRsp;
import emu.lunarcore.proto.QuestOuterClass.Quest;
import emu.lunarcore.proto.QuestOuterClass.Quest.QuestStatus;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.data.GameData;
public class PacketGetQuestDataScRsp extends BasePacket {
public PacketGetQuestDataScRsp() {
super(CmdId.GetQuestDataScRsp);
var allIds = GameData.getAllQuestIds();
var data = GetQuestDataScRsp.newInstance()
.setTotalAchievementExp(69);
for (int questId : allIds) {
var questItem = Quest.newInstance()
.setId(questId)
.setStatus(QuestStatus.QUEST_FINISH)
.setFinishTime(10000L)
.setProgress(1);
data.addQuestList(questItem);
}
this.setData(data);
}
}