mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-13 04:45:02 +01:00
Add completed dummy achievements because the client needs them for random things
This commit is contained in:
@@ -97,6 +97,9 @@ public class GameData {
|
|||||||
@Getter private static DataTable<DailyQuestDef> DailyQuestDataTable = new DataTable<>();
|
@Getter private static DataTable<DailyQuestDef> DailyQuestDataTable = new DataTable<>();
|
||||||
@Getter private static DataTable<DailyQuestActiveDef> DailyQuestActiveDataTable = new DataTable<>();
|
@Getter private static DataTable<DailyQuestActiveDef> DailyQuestActiveDataTable = new DataTable<>();
|
||||||
|
|
||||||
|
// Achievements
|
||||||
|
@Getter private static DataTable<AchievementDef> AchievementDataTable = new DataTable<>();
|
||||||
|
|
||||||
// Tutorial
|
// Tutorial
|
||||||
@Getter private static DataTable<TutorialLevelDef> TutorialLevelDataTable = new DataTable<>();
|
@Getter private static DataTable<TutorialLevelDef> TutorialLevelDataTable = new DataTable<>();
|
||||||
|
|
||||||
|
|||||||
26
src/main/java/emu/nebula/data/resources/AchievementDef.java
Normal file
26
src/main/java/emu/nebula/data/resources/AchievementDef.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package emu.nebula.data.resources;
|
||||||
|
|
||||||
|
import emu.nebula.data.BaseDef;
|
||||||
|
import emu.nebula.data.ResourceType;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@ResourceType(name = "Achievement.json")
|
||||||
|
public class AchievementDef extends BaseDef {
|
||||||
|
private int Id;
|
||||||
|
private int Type;
|
||||||
|
private int CompleteCond;
|
||||||
|
private int AimNumShow;
|
||||||
|
private int[] Prerequisites;
|
||||||
|
|
||||||
|
// Reward
|
||||||
|
private int Tid1;
|
||||||
|
private int Qty1;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getId() {
|
||||||
|
return Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,8 +2,11 @@ package emu.nebula.server.handlers;
|
|||||||
|
|
||||||
import emu.nebula.net.NetHandler;
|
import emu.nebula.net.NetHandler;
|
||||||
import emu.nebula.net.NetMsgId;
|
import emu.nebula.net.NetMsgId;
|
||||||
|
import emu.nebula.proto.Public.Achievement;
|
||||||
import emu.nebula.proto.Public.Achievements;
|
import emu.nebula.proto.Public.Achievements;
|
||||||
|
import emu.nebula.proto.Public.QuestProgress;
|
||||||
import emu.nebula.net.HandlerId;
|
import emu.nebula.net.HandlerId;
|
||||||
|
import emu.nebula.data.GameData;
|
||||||
import emu.nebula.net.GameSession;
|
import emu.nebula.net.GameSession;
|
||||||
|
|
||||||
@HandlerId(NetMsgId.achievement_info_req)
|
@HandlerId(NetMsgId.achievement_info_req)
|
||||||
@@ -11,8 +14,24 @@ public class HandlerAchievementInfoReq extends NetHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] handle(GameSession session, byte[] message) throws Exception {
|
public byte[] handle(GameSession session, byte[] message) throws Exception {
|
||||||
|
// Build response
|
||||||
var rsp = Achievements.newInstance();
|
var rsp = Achievements.newInstance();
|
||||||
|
|
||||||
|
for (var data : GameData.getAchievementDataTable()) {
|
||||||
|
var progress = QuestProgress.newInstance()
|
||||||
|
.setCur(data.getAimNumShow())
|
||||||
|
.setMax(data.getAimNumShow());
|
||||||
|
|
||||||
|
var info = Achievement.newInstance()
|
||||||
|
.setId(data.getId())
|
||||||
|
.setStatus(2)
|
||||||
|
.setCompleted(session.getPlayer().getCreateTime())
|
||||||
|
.addProgress(progress);
|
||||||
|
|
||||||
|
rsp.addList(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Encode and send
|
||||||
return session.encodeMsg(NetMsgId.achievement_info_succeed_ack, rsp);
|
return session.encodeMsg(NetMsgId.achievement_info_succeed_ack, rsp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user