mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-01-26 15:02:54 +08:00
fix achievement proto (#507)
* fix achievement proto TakeAchievementRewardReq tells client the achievements achieved or not and it's progress. * add import
This commit is contained in:
parent
823040be56
commit
022dcf60ad
17
proto/AchievementInfo.proto
Normal file
17
proto/AchievementInfo.proto
Normal file
@ -0,0 +1,17 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
message AchievementInfo {
|
||||
enum AchievementInfoStatus {
|
||||
ACHIEVEMENT_INVALID = 0;
|
||||
ACHIEVEMENT_UNFINISHED = 1;
|
||||
ACHIEVEMENT_FINISHED = 2;
|
||||
ACHIEVEMENT_POINT_TAKEN = 3;
|
||||
}
|
||||
|
||||
uint32 id = 1;
|
||||
AchievementInfoStatus status = 2;
|
||||
uint32 current = 3;
|
||||
uint32 goal = 4;
|
||||
uint32 achievedate = 5;
|
||||
}
|
17
proto/TakeAchievementRewardReq.proto
Normal file
17
proto/TakeAchievementRewardReq.proto
Normal file
@ -0,0 +1,17 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AchievementInfo.proto";
|
||||
message TakeAchievementRewardReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 2677;
|
||||
}
|
||||
|
||||
repeated AchievementInfo a_list = 1;
|
||||
}
|
@ -10,6 +10,7 @@ import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.game.GameSession.SessionState;
|
||||
import emu.grasscutter.server.packet.send.PacketPlayerLoginRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketTakeAchievementRewardReq;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerLoginReq) // Sends initial data packets
|
||||
public class HandlerPlayerLoginReq extends PacketHandler {
|
||||
@ -47,6 +48,7 @@ public class HandlerPlayerLoginReq extends PacketHandler {
|
||||
|
||||
// Final packet to tell client logging in is done
|
||||
session.send(new PacketPlayerLoginRsp(session));
|
||||
session.send(new PacketTakeAchievementRewardReq(session));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AchievementInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.AchievementInfoOuterClass.AchievementInfo;
|
||||
import emu.grasscutter.net.proto.TakeAchievementRewardReqOuterClass.TakeAchievementRewardReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketTakeAchievementRewardReq extends BasePacket {
|
||||
|
||||
public PacketTakeAchievementRewardReq(GameSession session) {
|
||||
super(PacketOpcodes.TakeAchievementRewardReq);
|
||||
|
||||
List<AchievementInfo> a_list = new ArrayList<>();
|
||||
a_list.add(AchievementInfo.newBuilder().setId(82044).setStatusValue(2).setCurrent(0).setGoal(1).build());
|
||||
a_list.add(AchievementInfo.newBuilder().setId(81205).setStatusValue(2).setCurrent(0).setGoal(1).build());
|
||||
|
||||
|
||||
TakeAchievementRewardReq proto = TakeAchievementRewardReq.newBuilder()
|
||||
.addAllAList(a_list)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user