package maps import ( "blazing/logic/service/common" "blazing/logic/service/player" "blazing/logic/service/space" "blazing/modules/blazing/model" "golang.org/x/time/rate" ) type WalkInInfo struct { Head player.TomeeHeader `cmd:"2101" struc:"[0]pad"` //走路包 // Flag: 0为走,1为飞行模式,@UInt long Flag uint32 // Point: 直接给坐标x,y Point model.Pos `fieldDesc:"直接给坐标x,y"` PathLen uint32 `struc:"sizeof=Path" ` Path string } var limiter = rate.NewLimiter(rate.Limit(10), 1) func (t *WalkInInfo) Broadcast(mapid uint32, o WalkOutInfo) { // cool.Limiter.Take() //r := cool.Limiter.Get("Broadcast"+gconv.String(mapid), rate.Limit(10), 5) if !limiter.Allow() { return } space.GetSpace(mapid).User.IterCb(func(playerID uint32, player common.PlayerI) { t.Head.Result = 0 tt := t.Head.Pack(&o) player.SendPack(tt) }) } // 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 }