108 lines
3.0 KiB
Go
108 lines
3.0 KiB
Go
package practice
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/pb"
|
|
"go_dreamfactory/sys/configure"
|
|
"go_dreamfactory/utils"
|
|
"time"
|
|
)
|
|
|
|
// 参数校验
|
|
func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.PracticeInfoReq) (errdata *pb.ErrorData) {
|
|
|
|
return
|
|
}
|
|
|
|
// /练功请求
|
|
func (this *apiComp) Info(session comm.IUserSession, req *pb.PracticeInfoReq) (errdata *pb.ErrorData) {
|
|
var (
|
|
err error
|
|
open bool
|
|
room *pb.DBPracticeRoom
|
|
update map[string]interface{} = make(map[string]interface{})
|
|
)
|
|
if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
if !utils.IsToday(room.Pillar1.Lastusetime) { //上一次训练不是今天
|
|
room.Pillar1.Usenum = 0
|
|
}
|
|
if !utils.IsToday(room.Pillar2.Lastusetime) { //上一次训练不是今天
|
|
room.Pillar2.Usenum = 0
|
|
}
|
|
if !utils.IsToday(room.Pillar3.Lastusetime) { //上一次训练不是今天
|
|
room.Pillar3.Usenum = 0
|
|
}
|
|
|
|
if room.Npcstate == 0 && room.Currnpc == 0 {
|
|
this.module.modelPandata.refreshnpc(room)
|
|
update["currnpc"] = room.Currnpc
|
|
update["captain"] = room.Captain
|
|
update["formation"] = room.Formation
|
|
}
|
|
|
|
for i := 0; i < len(room.Statuers); {
|
|
if configure.Now().After(time.Unix(room.Statuers[i].End, 0)) {
|
|
room.Statuers = append(room.Statuers[:i], room.Statuers[i+1:]...)
|
|
update["statuers"] = room.Statuers
|
|
} else {
|
|
i++
|
|
}
|
|
}
|
|
|
|
if room.Npcstate == -1 { //未开启 检查是否开启
|
|
if open, errdata = this.module.ModuleSys.CheckOpenCondCfgById(session.GetUserId(), "pavilion_kick"); errdata != nil {
|
|
return
|
|
}
|
|
if open {
|
|
if err = this.module.modelPandata.refreshnpc(room); err != nil {
|
|
this.module.Errorln(err)
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_SystemError,
|
|
Title: pb.ErrorCode_SystemError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
update["currnpc"] = room.Currnpc
|
|
update["npcstate"] = room.Npcstate
|
|
update["refresh"] = room.Refresh
|
|
update["battlenum"] = room.Battlenum
|
|
update["captain"] = room.Captain
|
|
update["formation"] = room.Formation
|
|
}
|
|
}
|
|
|
|
if room.Npcstate == 3 { //CD中
|
|
cd := int32(configure.Now().Sub(time.Unix(room.Refresh, 0)).Seconds())
|
|
if cd >= this.module.ModuleTools.GetGlobalConf().PandamasChallengeCd {
|
|
if err = this.module.modelPandata.refreshnpc(room); err != nil {
|
|
this.module.Errorln(err)
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_ConfigNoFound,
|
|
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
update["currnpc"] = room.Currnpc
|
|
update["npcstate"] = room.Npcstate
|
|
update["refresh"] = room.Refresh
|
|
update["battlenum"] = room.Battlenum
|
|
update["captain"] = room.Captain
|
|
update["formation"] = room.Formation
|
|
}
|
|
}
|
|
if len(update) > 0 {
|
|
this.module.modelPandata.Change(session.GetUserId(), update)
|
|
}
|
|
session.SendMsg(string(this.module.GetType()), "info", &pb.PracticeInfoResp{Info: room})
|
|
return
|
|
}
|