mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-13 12:54:36 +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<DailyQuestActiveDef> DailyQuestActiveDataTable = new DataTable<>();
|
||||
|
||||
// Achievements
|
||||
@Getter private static DataTable<AchievementDef> AchievementDataTable = new DataTable<>();
|
||||
|
||||
// Tutorial
|
||||
@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.NetMsgId;
|
||||
import emu.nebula.proto.Public.Achievement;
|
||||
import emu.nebula.proto.Public.Achievements;
|
||||
import emu.nebula.proto.Public.QuestProgress;
|
||||
import emu.nebula.net.HandlerId;
|
||||
import emu.nebula.data.GameData;
|
||||
import emu.nebula.net.GameSession;
|
||||
|
||||
@HandlerId(NetMsgId.achievement_info_req)
|
||||
@@ -11,8 +14,24 @@ public class HandlerAchievementInfoReq extends NetHandler {
|
||||
|
||||
@Override
|
||||
public byte[] handle(GameSession session, byte[] message) throws Exception {
|
||||
// Build response
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user