87 lines
2.4 KiB
Go
87 lines
2.4 KiB
Go
package moonfantasy
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/pb"
|
|
cfg "go_dreamfactory/sys/configure/structs"
|
|
"math/big"
|
|
"time"
|
|
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
//参数校验
|
|
func (this *apiComp) TriggerCheck(session comm.IUserSession, req *pb.MoonfantasyTriggerReq) (code pb.ErrorCode) {
|
|
return
|
|
}
|
|
|
|
///获取本服聊天消息记录
|
|
func (this *apiComp) Trigger(session comm.IUserSession, req *pb.MoonfantasyTriggerReq) (code pb.ErrorCode, data proto.Message) {
|
|
var (
|
|
globalconf *cfg.GameGlobalData
|
|
uexpand *pb.DBUserExpand
|
|
boss *cfg.GameDreamlandBoosData
|
|
mdata *pb.DBMoonfantasy
|
|
chat *pb.DBChat
|
|
issucc bool
|
|
err error
|
|
)
|
|
|
|
|
|
if code = this.TriggerCheck(session, req); code != pb.ErrorCode_Success {
|
|
return
|
|
}
|
|
globalconf = this.module.configure.GetGlobalConf()
|
|
n, _ := rand.Int(rand.Reader, big.NewInt(100))
|
|
if int32(n.Int64()) < globalconf.DreamlandPro {
|
|
issucc = true
|
|
} else {
|
|
issucc = false
|
|
}
|
|
if issucc {
|
|
if uexpand, err = this.module.ModuleUser.GetUserExpand(session.GetUserId()); err != nil {
|
|
code = pb.ErrorCode_DBError
|
|
this.module.Errorln(err)
|
|
return
|
|
}
|
|
if time.Unix(uexpand.MoonfantasyLastTrigger, 0).Day() != time.Now().Day() {
|
|
uexpand.MoonfantasyTriggerNum = 0
|
|
}
|
|
|
|
if uexpand.MoonfantasyTriggerNum >= globalconf.DreamlandTriggernum {
|
|
return
|
|
}
|
|
|
|
if boss, err = this.module.configure.GetMonster(); err != nil {
|
|
code = pb.ErrorCode_ConfigNoFound
|
|
return
|
|
}
|
|
|
|
if mdata, err = this.module.modelDream.addDreamData(session.GetUserId(), boss); err != nil {
|
|
code = pb.ErrorCode_DBError
|
|
return
|
|
}
|
|
|
|
this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), map[string]interface{}{
|
|
"moonfantasyTriggerNum": uexpand.MoonfantasyTriggerNum + 1,
|
|
"moonfantasyLastTrigger": time.Now().Unix(),
|
|
})
|
|
chat = &pb.DBChat{
|
|
Ctype: pb.ChatType_Moonfantasy,
|
|
Suid: session.GetUserId(),
|
|
Avatar: req.Avatar,
|
|
Uname: req.Uname,
|
|
Slv: req.Ulv,
|
|
Stag: session.GetServiecTag(),
|
|
Content: mdata.Monster,
|
|
AppendStr: mdata.Id,
|
|
}
|
|
this.module.modelDream.noticeuserfriend(session.GetServiecTag(), session.GetUserId(), chat)
|
|
session.SendMsg(string(this.module.GetType()), "trigger", &pb.MoonfantasyTriggerResp{Issucc: true, Mid: mdata.Id, Monster: mdata.Monster})
|
|
} else {
|
|
session.SendMsg(string(this.module.GetType()), "trigger", &pb.MoonfantasyTriggerResp{Issucc: false})
|
|
}
|
|
return
|
|
}
|