package info import ( "blazing/common/data" "blazing/modules/player/model" "github.com/creasty/defaults" ) type ListMapPlayerOutboundInfo struct { PlayersLen uint32 `struc:"sizeof=Player" json:"player_len"` // 穿戴装备的信息 Player []SimpleInfo ` json:"player"` } // PeopleWalkOutboundInfo PeopleWalkOutboundInfo类,实现OutboundMessage接口 type WalkOutInfo struct { // Flag: 0为走,1为飞行模式 Flag uint32 `fieldDesc:"0为走,1为飞行模式" codec:"uint"` // UserID: 走动的人的米米号 UserID uint32 `fieldDesc:"走动的人的米米号" codec:"uint"` // Point: 直接给坐标x,y Point model.Pos `fieldDesc:"直接给坐标x,y"` PathLen uint32 `struc:"sizeof=Path" ` Path string } type MapBossSInfo struct { InfoLen uint32 `struc:"sizeof=INFO" json:"info_len"` INFO []MapBossInfo } type MapBossInfo struct { Id uint32 `json:"id" protobuf:"1,req,name=id"` // 需要刷新的BOSS精灵ID Region uint32 `json:"region" protobuf:"2,req,name=region"` // 刷新区域(蘑菇怪为0) Hp int32 `struc:"uint32" json:"hp" protobuf:"3,req,name=hp"` // HP值(蘑菇怪为A,其他BOSS暂未明确用途,可能无实际作用) Pos int `struc:"uint32" json:"pos" protobuf:"4,req,name=pos"` // 刷新坐标(类似野怪的位置ID,蘑菇怪初始为2; pos==200时候将会删除boss显示 } // 这里存储星球的map //var planetmap utils.SyncMap[] //= space.NewSyncMap() // PeopleInfo PeopleInfo类,实现OutboundMessage接口 type SimpleInfo struct { UserID uint32 `struc:"uint32" fieldDesc:"米米号" json:"user_id"` // 16字节昵称 Nick string `struc:"[16]byte" fieldDesc:"16字节昵称" json:"nick"` Title uint32 `struc:"uint32" json:"title"` // 称号 // 机器人人物颜色 00 rgb Color uint32 `struc:"uint32" fieldDesc:"机器人人物颜色 00 rgb" json:"color"` // 固定值0 Texture uint32 `struc:"uint32" fieldDesc:"固定值0" json:"texture"` // 暂时不明建议先给固定值0 Vip uint16 ` json:"vip"` // 暂时不明建议先给固定值15 Viped uint16 ` default:"15" json:"viped"` // 暂时不明建议先给固定值1 VipStage uint32 `struc:"uint32" fieldDesc:"暂时不明建议先给固定值1" json:"vip_stage"` // 人物状态 =0 步行 !=0 飞行 Flag uint32 `struc:"uint32" fieldDesc:"人物状态 =0 步行 !=0 飞行" json:"action_type"` // 上线的地图id Pos model.Pos `fieldDesc:"上线的地图id" json:"pos"` // 动作, 大于10000时为蹲下 Action uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"action"` // 动作, 默认情况下为2, 蹲下为3 Direction uint32 `struc:"uint32" default:"2" fieldDesc:"暂时不明给2" json:"direction"` // 变形套装ID ChangeShape uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"change_shape"` // 暂时不明给0 SpiritTime uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"spirit_time"` // 暂时不明给0 SpiritID uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"spirit_id"` // 宠物 ID 暂时无法测试,给 0 PetDV uint32 `struc:"uint32" fieldDesc:"宠物ID暂时无法测试, 给0" json:"pet_dv"` // 是否闪光(@UInt long → uint32,0=否,1=是) ShinyLen uint32 `json:"-" struc:"sizeof=ShinyInfo"` ShinyInfo []data.GlowFilter `json:"ShinyInfo,omitempty"` // 宠物皮肤暂时无法测试,给 0 PetSkin uint32 `struc:"uint32" fieldDesc:"宠物皮肤暂时无法测试, 给0" json:"pet_skin"` // 填充字符 Reserved [3]uint32 // 暂时不明给0 FightFlag uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"fight_flag"` // 教官ID TeacherID uint32 `struc:"uint32" fieldDesc:"教官ID" json:"teacher_id"` // 学员ID StudentID uint32 `struc:"uint32" fieldDesc:"学员ID" json:"student_id"` // nono状态 固定值-1 NonoState uint32 `struc:"uint32" default:"0xFFFFFFFF" fieldDesc:"nono状态 固定值-1" json:"nono_state"` // nono颜色 00 FF FF FF NonoColor uint32 `struc:"uint32" fieldDesc:"nono颜色 00 FF FF FF" json:"nono_color"` // 是不是超能nono 固定值1 SuperNono uint32 `struc:"uint32" default:"1" fieldDesc:"是不是超能nono 固定值1" json:"super_nono"` // 暂时不明给0 PlayerForm uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"player_form"` // 暂时不明给0 TransTime uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"trans_time"` // 暂时不明给0 TeamID uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"team_id"` // 暂时不明给0 TeamCoreCount uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"team_core_count"` // 暂时不明给0 TeamIsShow uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"team_is_show"` // 暂时不明给0 LogoBg uint16 `json:"logo_bg"` // 暂时不明给0 LogoIcon uint16 ` json:"logo_icon"` // 暂时不明给0 LogoColor uint16 `json:"logo_color"` // 暂时不明给0 TxtColor uint16 `json:"txt_color"` // 4字节 LogoWord [4]byte `struc:"[4]byte" fieldDesc:"4字节" json:"logo_word"` ClothesLen uint32 `struc:"sizeof=Clothes" fieldDesc:"穿戴装备的信息" json:"clothes_len"` // 穿戴装备的信息 Clothes []model.PeopleItemInfo `fieldDesc:"穿戴装备的信息" json:"clothes"` } func NewOutInfo() *SimpleInfo { l := &SimpleInfo{} // 自动填充 struct tag 里的 default 值 if err := defaults.Set(l); err != nil { panic(err) // 方便发现 default 设置错误 } return l } type LeaveMapOutboundInfo struct { // 米米号 UserID uint32 `struc:"uint32" fieldDesc:"米米号" json:"user_id"` } type S2C_50004 struct { Id uint32 `json:"id" protobuf:"1,req,name=id"` // 天气0没有,1是雨.2是雪 } type S2C_2022 struct { Flag uint32 `json:"flag" protobuf:"1,req,name=flag"` ID uint32 `json:"id" protobuf:"2,req,name=id"` }