mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-27 12:05:52 +00:00
Fix fetter system
This commit is contained in:
parent
232e9a470d
commit
fb9f6c0bf4
@ -743,9 +743,14 @@ public class GenshinAvatar {
|
||||
}
|
||||
|
||||
public AvatarInfo toProto() {
|
||||
int fetterLevel = this.getFetterLevel();
|
||||
AvatarFetterInfo.Builder avatarFetter = AvatarFetterInfo.newBuilder()
|
||||
.setExpLevel(this.getFetterLevel())
|
||||
.setExpNumber(this.getFetterExp());
|
||||
.setExpLevel(fetterLevel);
|
||||
|
||||
if (fetterLevel != 10) {
|
||||
avatarFetter.setExpNumber(this.getFetterExp());
|
||||
}
|
||||
|
||||
|
||||
if (this.getFetterList() != null) {
|
||||
for (int i = 0; i < this.getFetterList().size(); i++) {
|
||||
@ -757,11 +762,10 @@ public class GenshinAvatar {
|
||||
}
|
||||
}
|
||||
|
||||
int rewardId = this.getNameCardRewardId();
|
||||
int cardId = this.getNameCardId();
|
||||
|
||||
if (this.getPlayer().getNameCardList().contains(cardId)) {
|
||||
avatarFetter.addRewardedFetterLevelList(rewardId);
|
||||
avatarFetter.addRewardedFetterLevelList(10);
|
||||
}
|
||||
|
||||
AvatarInfo.Builder avatarInfo = AvatarInfo.newBuilder()
|
||||
|
@ -9,6 +9,7 @@ import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AvatarFetterLevelRewardReqOuterClass.AvatarFetterLevelRewardReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarDataNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarFetterDataNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarFetterLevelRewardRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketItemAddHintNotify;
|
||||
@ -46,8 +47,9 @@ public class HandlerAvatarFetterLevelRewardReq extends PacketHandler {
|
||||
session.getPlayer().getInventory().addItem(item);
|
||||
session.getPlayer().sendPacket(new PacketItemAddHintNotify(item, ActionReason.FetterLevelReward));
|
||||
session.getPlayer().sendPacket(new PacketUnlockNameCardNotify(cardId));
|
||||
session.send(new PacketAvatarFetterLevelRewardRsp(avatarGuid, req.getFetterLevel(), rewardId));
|
||||
session.send(new PacketAvatarFetterDataNotify(avatar));
|
||||
session.send(new PacketAvatarDataNotify(avatar.getPlayer()));
|
||||
session.send(new PacketAvatarFetterLevelRewardRsp(avatarGuid, req.getFetterLevel(), rewardId));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,9 +13,14 @@ public class PacketAvatarFetterDataNotify extends GenshinPacket {
|
||||
public PacketAvatarFetterDataNotify(GenshinAvatar avatar) {
|
||||
super(PacketOpcodes.AvatarFetterDataNotify);
|
||||
|
||||
int fetterLevel = avatar.getFetterLevel();
|
||||
|
||||
AvatarFetterInfo.Builder avatarFetter = AvatarFetterInfo.newBuilder()
|
||||
.setExpLevel(avatar.getFetterLevel())
|
||||
.setExpNumber(avatar.getFetterExp());
|
||||
.setExpLevel(avatar.getFetterLevel());
|
||||
|
||||
if (fetterLevel != 10) {
|
||||
avatarFetter.setExpNumber(avatar.getFetterExp());
|
||||
}
|
||||
|
||||
if (avatar.getFetterList() != null) {
|
||||
for (int i = 0; i < avatar.getFetterList().size(); i++) {
|
||||
@ -27,11 +32,10 @@ public class PacketAvatarFetterDataNotify extends GenshinPacket {
|
||||
}
|
||||
}
|
||||
|
||||
int rewardId = avatar.getNameCardRewardId();
|
||||
int cardId = avatar.getNameCardId();
|
||||
|
||||
if (avatar.getPlayer().getNameCardList().contains(cardId)) {
|
||||
avatarFetter.addRewardedFetterLevelList(rewardId);
|
||||
avatarFetter.addRewardedFetterLevelList(10);
|
||||
}
|
||||
|
||||
AvatarFetterInfo avatarFetterInfo = avatarFetter.build();
|
||||
|
Loading…
Reference in New Issue
Block a user