Files
bl/common/core/info/login/LoginUserInfo.java
昔念 f081150178 refactor(common): 重构宠物相关信息结构
- 修改 PetInfo 和 PetEffectInfo 结构体,统一字段命名规范
- 更新 SkillInfo 结构体,增加技能等级字段
- 删除未使用的 LoginUserInfo 和 ServerInfo 结构体
- 引入 google/uuid 包,用于后续可能的唯一标识生成
2025-06-22 12:32:19 +08:00

173 lines
9.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package org.nieo.seerproject.common.net.info.login;
import lombok.Data;
import org.nieo.seerproject.common.annotations.FieldDescription;
import org.nieo.seerproject.common.annotations.OutboundMessageType;
import org.nieo.seerproject.common.annotations.serialize.ArraySerialize;
import org.nieo.seerproject.common.annotations.serialize.AutoCodec;
import org.nieo.seerproject.common.annotations.serialize.UInt;
import org.nieo.seerproject.common.annotations.serialize.UShort;
import org.nieo.seerproject.common.net.MessageCommandIDRegistry;
import org.nieo.seerproject.common.net.OutboundMessage;
import org.nieo.seerproject.common.net.info.item.PeopleItemInfo;
import org.nieo.seerproject.common.net.info.pet.PetInfo;
import org.nieo.seerproject.common.net.info.team.TeamInfo;
import org.nieo.seerproject.common.net.info.team.TeamPKInfo;
import org.nieo.seerproject.common.net.serialize.ArraySerializeType;
import org.nieo.seerproject.common.structs.Point;
import org.nieo.seerproject.common.util.ArrayUtilities;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("SpellCheckingInspection")
@Data
@AutoCodec
@FieldDescription("登录信息")
@OutboundMessageType(MessageCommandIDRegistry.Login_In)
public class LoginUserInfo implements OutboundMessage {
@FieldDescription("米米号 通过sid拿到")
private @UInt long userId;
@FieldDescription("注册时间(按秒的时间戳)")
private @UInt long registerTime;
@FieldDescription("16字节昵称")
@ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 16)
private String nick;
@FieldDescription("暂时不明建议先给固定值0")
private @UShort int vip;
@FieldDescription("暂时不明建议先给固定值15")
private @UShort int viped = 15;
@FieldDescription("暂时不明建议先给固定值0")
private @UInt long dsFlag;
@FieldDescription("机器人人物颜色 00 rgb")
private @UInt long color;
@FieldDescription("暂时不明建议先给固定值0")
private @UInt long texture;
@FieldDescription("暂时不明建议先给固定值3000")
private @UInt long energy = 3000;
@FieldDescription("赛尔豆")
private @UInt long coins;
@FieldDescription("暂时不明建议先给固定值0")
private @UInt long fightBadge;
@FieldDescription("上线的地图id")
private @UInt long mapID;
@FieldDescription("上线的坐标 2个uint")
private Point pos = new Point();
@FieldDescription("已经消耗掉的时间(秒为单位)")
private @UInt long timeToday;
@FieldDescription("总电池限制(秒为单位)")
private @UInt long timeLimit;
@FieldDescription("暂时不明感觉是某种活动建议先给固定值0(只能0或1)")
private byte isClothHalfDay;
@FieldDescription("暂时不明感觉是某种活动建议先给固定值0(只能0或1)")
private byte isRoomHalfDay;
@FieldDescription("暂时不明感觉是某种活动建议先给固定值0(只能0或1)")
private byte iFortressHalfDay;
@FieldDescription("暂时不明感觉是某种活动建议先给固定值0(只能0或1)")
private byte isHQHalfDay;
@FieldDescription("暂时不明建议先给固定值0")
private @UInt long loginCount;
@FieldDescription("邀请活动建议先给固定值0")
private @UInt long inviter;
@FieldDescription("邀请活动建议先给固定值0")
private @UInt long newInviteeCount;
@FieldDescription("超no等级建议固定8")
private @UInt long vipLevel = 8;
@FieldDescription("超no的vip值建议固定80000")
private @UInt long vipValue = 80000;
@FieldDescription("超no的外形等级建议固定1(暂定)")
private @UInt long vipStage = 1;
@FieldDescription("nono是否自动充电 建议固定1")
private @UInt long autoCharge = 1;
@FieldDescription("超no的结束时间建议尽可能大")
private @UInt long vipEndTime = Integer.MAX_VALUE;
@FieldDescription("邀请活动建议先给固定值0")
private @UInt long freshManBonus;
@FieldDescription("超no芯片列表*(80字节)")
@ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 80)
private byte[] nonoChipList = new byte[80];
@FieldDescription("50字节默认值为3")
@ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 50)
private byte[] dailyResArr
= ArrayUtilities.generateByteArrayWithInitialValueAndLength((byte) 3, 50);
@FieldDescription("教官id")
private @UInt long teacherID;
@FieldDescription("学员id")
private @UInt long studentID;
@FieldDescription("毕业人数")
private @UInt long graduationCount;
@FieldDescription("默认值为0")
private @UInt long maxPuniLv;
@FieldDescription("精灵的最高等级")
private @UInt long petMaxLevel;
@FieldDescription("所有的精灵的数量")
private @UInt long allPetNumber;
@FieldDescription("精灵王之战胜场")
private @UInt long monKingWin;
@FieldDescription("勇者之塔当前到达的层数")
private @UInt long currentStage;
@FieldDescription("试炼之塔最大胜利的层数")
private @UInt long maxStage;
@FieldDescription("试炼之塔当前到达的层数")
private @UInt long currentFreshStage;
@FieldDescription("试炼之塔最大胜利的层数")
private @UInt long maxFreshStage;
@FieldDescription("星际擂台连胜")
private @UInt long maxArenaWins;
@FieldDescription("未知默认0")
private @UInt long twoTimes;
@FieldDescription("未知默认0")
private @UInt long threeTimes;
@FieldDescription("是否自动战斗(未知默认值0)")
private @UInt long autoFight;
@FieldDescription("自动战斗剩余的场次(未知默认值0)")
private @UInt long autoFightTime;
@FieldDescription("能量吸收仪剩余次数(未知待定默认值0)")
private @UInt long energyTime;
@FieldDescription("学习力吸收仪剩余次数(未知待定默认值0)")
private @UInt long learnTimes;
@FieldDescription("未知默认0")
private @UInt long monBattleMedal;
@FieldDescription("未知默认0")
private @UInt long recordCount;
@FieldDescription("未知默认0")
private @UInt long obtainTm;
@FieldDescription("当前在孵化的元神珠id")
private @UInt long soulBeadItemID;
@FieldDescription("未知默认0")
private @UInt long expireTm;
@FieldDescription("未知默认0")
private @UInt long fuseTimes;
@FieldDescription("玩家有没有nono")
private @UInt long hasNono = 1;
@FieldDescription("玩家有没有超能nono")
private @UInt long superNono = 1;
@FieldDescription("默认值-1")
private @UInt long nonoState = 0xFFFFFFFFL;
@FieldDescription("nono的颜色")
private @UInt long nonoColor;
@FieldDescription("nono的名字 必须要补齐到16位")
@ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 16)
private String nonoNick = "nono";
@FieldDescription("猜测为战队信息24字节")
private TeamInfo teamInfo = new TeamInfo();
@FieldDescription("8字节")
private TeamPKInfo teamPkInfo = new TeamPKInfo();
@FieldDescription("1字节 无内容")
private byte reserved;
@FieldDescription("默认值为0")
private @UInt long badge;
@FieldDescription("未知(27字节默认值为3)")
@ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 27)
private byte[] reserved1
= ArrayUtilities.generateByteArrayWithInitialValueAndLength((byte) 3, 27);
@FieldDescription("任务状态数组(500字节3为已经完成建议默认值为3)")
@ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 500)
private byte[] taskList
= ArrayUtilities.generateByteArrayWithInitialValueAndLength((byte) 3, 500);
@FieldDescription("精灵背包内的信息由于特性精灵的存在精灵背包不定长 如果有特性占199字节 如果没特性 一个精灵占175字节")
private List<PetInfo> petList = new ArrayList<>();
@FieldDescription("穿戴装备 8字节")
private List<PeopleItemInfo> clothes = new ArrayList<>();
}