diff --git a/logic/service/fight/loop.go b/logic/service/fight/loop.go index 1c163ec8..62908977 100644 --- a/logic/service/fight/loop.go +++ b/logic/service/fight/loop.go @@ -132,6 +132,12 @@ func (f *FightC) battleLoop() { f.callback(f.FightOverInfo) //先执行回调,再执行返回信息,在回调内修改战斗判断 } + f.Broadcast(func(ff *input.Input) { + + if p, ok := ff.Player.(*player.Player); ok { + p.Service.Info.Save(*p.Info) + } + }) close(f.over) diff --git a/modules/player/model/info.go b/modules/player/model/info.go index f38fdbf0..b7472aed 100644 --- a/modules/player/model/info.go +++ b/modules/player/model/info.go @@ -15,12 +15,9 @@ type Player struct { *cool.Model PlayerID uint64 `gorm:"not null;index:idx_pet_by_player_id;comment:'所属玩家ID'" json:"player_id"` LastResetTime *gtime.Time `struc:"skip" json:"last_reset_time"` // 重置时间,比如电池和每日任务 - Data string `gorm:"type:jsonb;not null;comment:'全部数据'" json:"data"` -} -type PlayerEX struct { - Player - Data PlayerInfo `orm:"data" json:"data"` + Data PlayerInfo `gorm:"type:jsonb;not null;comment:'全部数据'" json:"data"` } + type Pos struct { X uint32 `struc:"uint32" default:"0"` Y uint32 `struc:"uint32" default:"0"` @@ -227,11 +224,9 @@ func (*Player) GroupName() string { } // NewPlayerInfo create a new PlayerInfo -func NewPlayer() *PlayerEX { - return &PlayerEX{ - Player: Player{ - Model: cool.NewModel(), - }, +func NewPlayer() *Player { + return &Player{ + Model: cool.NewModel(), } } diff --git a/modules/player/service/info.go b/modules/player/service/info.go index 2de3a2d8..d9a076de 100644 --- a/modules/player/service/info.go +++ b/modules/player/service/info.go @@ -52,7 +52,7 @@ func (s *InfoService) Reg(nick string, color uint32) *model.PlayerInfo { return &t.Data } -func (s *InfoService) Person(userid uint32) (out *model.PlayerEX) { +func (s *InfoService) Person(userid uint32) (out *model.Player) { cool.DBM(s.Model).Where("player_id", userid).Scan(&out) @@ -73,7 +73,7 @@ func (s *InfoService) GetCache() *model.PlayerInfo { func (s *InfoService) SetLogin() *model.PlayerInfo { m := cool.DBM(s.Model).Where("player_id", s.userid) - var tt *model.PlayerEX + var tt *model.Player m.Scan(&tt) if tt == nil { return nil @@ -190,7 +190,7 @@ func (s *InfoService) Save(data model.PlayerInfo) { return } m := s.PModel(s.Model) - var tt *model.PlayerEX + var tt *model.Player m.Scan(&tt) if tt == nil { return