Files
bl/logic/service/maps/mapin.go

158 lines
4.8 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 maps
import (
"blazing/logic/service/common"
"blazing/logic/service/player"
"blazing/logic/service/space"
"blazing/modules/blazing/model"
"github.com/creasty/defaults"
)
type InInfo struct {
Head player.TomeeHeader `cmd:"2001" struc:"[0]pad"` //切换地图
// 地图类型
MapType uint32
MapId uint32
// Point: 直接给坐标xy
Point model.Pos `fieldDesc:"直接给坐标xy"`
// Reverse2: 暂定 占位字符2
//Reverse2 string `struc:"[2]byte"`
}
func (t *InInfo) Broadcast(mapid uint32, o OutInfo) {
space.GetSpace(mapid).Range(func(playerID uint32, player common.PlayerI) bool {
t.Head.Result = 0
player.SendPack(t.Head.Pack(&o))
return true
})
}
// 这里存储星球的map
//var planetmap utils.SyncMap[] //= space.NewSyncMap()
// PeopleInfo PeopleInfo类实现OutboundMessage接口
type OutInfo struct {
UserID uint32 `struc:"uint32" fieldDesc:"米米号" json:"user_id"`
// 16字节昵称
Nick string `struc:"[16]byte" fieldDesc:"16字节昵称" json:"nick"`
// 机器人人物颜色 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 飞行
ActionType uint32 `struc:"uint32" fieldDesc:"人物状态 =0 步行 !=0 飞行" json:"action_type"`
// 上线的地图id
Pos model.Pos `fieldDesc:"上线的地图id" json:"pos"`
// 暂时不明给0
Action uint32 `struc:"uint32" fieldDesc:"暂时不明给0" json:"action"`
// 暂时不明给2
Direction uint32 `struc:"uint32" default:"2" fieldDesc:"暂时不明给2" json:"direction"`
// 暂时不明给0
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"`
// 宠物闪光暂时无法测试,给 0
PetShiny uint32 `struc:"uint32" fieldDesc:"宠物闪光暂时无法测试, 给0" json:"pet_shiny"`
// 宠物皮肤暂时无法测试,给 0
PetSkin uint32 `struc:"uint32" fieldDesc:"宠物皮肤暂时无法测试, 给0" json:"pet_skin"`
// 填充字符
Reserved uint32 `struc:"uint32" fieldDesc:"填充字符" json:"reserved"`
// 填充字符
Reserved1 uint32 `struc:"uint32" fieldDesc:"填充字符" json:"reserved1"`
// 填充字符
Reserved2 uint32 `struc:"uint32" fieldDesc:"填充字符" json:"reserved2"`
// 暂时不明给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() *OutInfo {
l := &OutInfo{}
// 自动填充 struct tag 里的 default 值
if err := defaults.Set(l); err != nil {
panic(err) // 方便发现 default 设置错误
}
return l
}