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 }