diff --git a/logic/controller/task.go b/logic/controller/task.go index 0b2721cb..5a1c31c4 100644 --- a/logic/controller/task.go +++ b/logic/controller/task.go @@ -18,8 +18,8 @@ func (h Controller) AcceptTask(data *task.AcceptTaskInboundInfo, c *service.Play // //isdaliy = true // } - if c.Info.TaskList[data.TaskId] == 0 { - c.Info.TaskList[data.TaskId] = 1 + if c.Info.TaskList[data.TaskId-1] == 0 { + c.Info.TaskList[data.TaskId-1] = 1 } result = &task.AcceptTaskOutboundInfo{} @@ -66,12 +66,12 @@ func randInt0To24() int { */ func (h Controller) Complete_Task(data *task.CompleteTaskInboundInfo, c *service.Player) (result *task.CompleteTaskOutboundInfo, err errorcode.ErrorCode) { - if c.Info.TaskList[data.TaskId] != 1 { //如果任务没有接受或者已经完成Complete_Task + if c.Info.TaskList[data.TaskId-1] != 1 { //如果任务没有接受或者已经完成Complete_Task return result, 0 } - c.Info.TaskList[data.TaskId] = 3 + c.Info.TaskList[data.TaskId-1] = 3 result = &task.CompleteTaskOutboundInfo{} result.ItemList = make([]task.ItemInfo, 0) result.TaskId = data.TaskId diff --git a/logic/service/fightc.go b/logic/service/fightc.go index b46bdebe..26734f29 100644 --- a/logic/service/fightc.go +++ b/logic/service/fightc.go @@ -95,6 +95,19 @@ func (f *FightC) Escape(c PlayerI) { f.actionChan <- ret } +// 玩家掉线 +func (f *FightC) Offline(c PlayerI) { + ret := &info.PlayerOfflineAction{ + PlayerID: c.ID(), + Reason: info.FightOverInfo{ + + Reason: uint32(info.BattleOverReason.PlayerOffline), + }, + } + + f.actionChan <- ret +} + // 切换精灵 主动和被驱逐 func (f *FightC) ChangePet(c PlayerI, id int32) { ret := &info.ActiveSwitchAction{ diff --git a/logic/service/player.go b/logic/service/player.go index 45a48e59..cb0efc9b 100644 --- a/logic/service/player.go +++ b/logic/service/player.go @@ -218,6 +218,11 @@ func (f *Player) SetFightC(ff *FightC) { // Save 保存玩家数据 func (p *Player) Save() { + if p.FightC != nil { + p.FightC.Escape(p) //玩家逃跑 + + } + p.Info.TimeToday = p.Info.TimeToday + uint32(time.Now().Unix()) - uint32(p.Onlinetime) //保存电池时间 p.Onlinetime = uint32(time.Now().Unix())