上传道具代码

This commit is contained in:
liwei1dao 2023-06-02 11:49:44 +08:00
parent 6e69b5fd9b
commit df999ebbd3
9 changed files with 108 additions and 44 deletions

View File

@ -410,10 +410,10 @@ const (
// 门票 // 门票
const ( const (
ArenaTicket string = "100004" //竞技场入场券 // ArenaTicket string = "100004" //竞技场入场券
MoonFantasyTicket string = "100003" //梦境场入场券 // MoonFantasyTicket string = "100003" //梦境场入场券
PhysicalMedicament string = "10017" //体力药剂 // PhysicalMedicament string = "10017" //体力药剂
UnifiedTicket string = "100100" //统一门票 // UnifiedTicket string = "100100" //统一门票
) )
// 红点枚举 // 红点枚举

View File

@ -21,6 +21,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
var ( var (
// global *cfg.GameGlobalData // global *cfg.GameGlobalData
info *pb.DBArenaUser info *pb.DBArenaUser
ticketitem *cfg.Gameatn
need []*cfg.Gameatn need []*cfg.Gameatn
maxbuy, vipbuy int32 maxbuy, vipbuy int32
err error err error
@ -32,6 +33,15 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
} }
return return
} }
if ticketitem = this.module.ModuleTools.GetGlobalConf().ArenaTicketCos; ticketitem == nil {
code = pb.ErrorCode_ConfigNoFound
data = &pb.ErrorData{
Title: code.ToString(),
Message: comm.NewNotFoundConfErr(moduleName, "global.json", "ArenaTicketCos").Error(),
}
return
}
if info, err = this.module.modelArena.queryPlayerInfo(session.GetUserId()); err != nil && err != mgo.MongodbNil { if info, err = this.module.modelArena.queryPlayerInfo(session.GetUserId()); err != nil && err != mgo.MongodbNil {
code = pb.ErrorCode_CacheReadError code = pb.ErrorCode_CacheReadError
data = &pb.ErrorData{ data = &pb.ErrorData{
@ -73,7 +83,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
return return
} }
info.Buynum += req.BuyNum info.Buynum += req.BuyNum
if code = this.module.DispenseRes(session, []*cfg.Gameatn{{A: comm.ItemType, T: comm.ArenaTicket, N: req.BuyNum}}, true); code != pb.ErrorCode_Success { if code = this.module.DispenseRes(session, []*cfg.Gameatn{{A: ticketitem.A, T: ticketitem.T, N: req.BuyNum}}, true); code != pb.ErrorCode_Success {
return return
} }
// info.Ticket += req.BuyNum // info.Ticket += req.BuyNum

View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/mgo" "go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/lego/utils/container/id" "go_dreamfactory/lego/utils/container/id"
"go_dreamfactory/modules" "go_dreamfactory/modules"
@ -397,11 +398,23 @@ func (this *modelArena) integralCompute(red, bule *pb.ArenaPlayer, iswin bool) {
func (this *modelArena) recoverTicket(session comm.IUserSession, info *pb.DBArenaUser) { func (this *modelArena) recoverTicket(session comm.IUserSession, info *pb.DBArenaUser) {
var ( var (
duration time.Duration duration time.Duration
ticketitem *cfg.Gameatn
ticket int32 ticket int32
ticketNum int32 ticketNum int32
) )
if ticketitem = this.module.ModuleTools.GetGlobalConf().ArenaTicketCos; ticketitem == nil {
// code = pb.ErrorCode_ConfigNoFound
// data = &pb.ErrorData{
// Title: code.ToString(),
// Message: comm.NewNotFoundConfErr(moduleName, "global.json", "ArenaTicketCos").Error(),
// }
this.module.Error("竞技场配置未找到!", log.Field{Key: "key", Value: "ArenaTicketCos"})
return
}
global := this.module.ModuleTools.GetGlobalConf() global := this.module.ModuleTools.GetGlobalConf()
ticket = int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.ArenaTicket)) ticket = int32(this.module.ModuleItems.QueryItemAmount(info.Uid, ticketitem.T))
if ticket < global.ArenaTicketMax && info.Lastrtickettime > 0 { if ticket < global.ArenaTicketMax && info.Lastrtickettime > 0 {
duration = configure.Now().Sub(time.Unix(info.Lastrtickettime, 0)) duration = configure.Now().Sub(time.Unix(info.Lastrtickettime, 0))
ticketNum = int32(math.Floor(duration.Minutes() / float64(global.ArenaTicketRecoveryTime))) ticketNum = int32(math.Floor(duration.Minutes() / float64(global.ArenaTicketRecoveryTime)))
@ -409,7 +422,7 @@ func (this *modelArena) recoverTicket(session comm.IUserSession, info *pb.DBAren
if ticketNum+ticket > global.ArenaTicketMax { if ticketNum+ticket > global.ArenaTicketMax {
ticketNum = global.ArenaTicketMax - ticket ticketNum = global.ArenaTicketMax - ticket
} }
this.module.DispenseRes(session, []*cfg.Gameatn{{A: comm.ItemType, T: comm.ArenaTicket, N: ticketNum}}, true) this.module.DispenseRes(session, []*cfg.Gameatn{{A: ticketitem.A, T: ticketitem.T, N: ticketNum}}, true)
// info.Ticket += ticketNum // info.Ticket += ticketNum
// if info.Ticket > global.ArenaTicketMax { // if info.Ticket > global.ArenaTicketMax {
// info.Ticket = global.ArenaTicketMax // info.Ticket = global.ArenaTicketMax
@ -422,6 +435,7 @@ func (this *modelArena) recoverTicket(session comm.IUserSession, info *pb.DBAren
func (this *modelArena) reddot(session comm.IUserSession) bool { func (this *modelArena) reddot(session comm.IUserSession) bool {
var ( var (
info *pb.DBArenaUser info *pb.DBArenaUser
ticketitem *cfg.Gameatn
err error err error
) )
if info, err = this.queryPlayerInfo(session.GetUserId()); err != nil && err != mgo.MongodbNil { if info, err = this.queryPlayerInfo(session.GetUserId()); err != nil && err != mgo.MongodbNil {
@ -434,7 +448,16 @@ func (this *modelArena) reddot(session comm.IUserSession) bool {
} }
return false return false
} }
ticket := int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.ArenaTicket)) if ticketitem = this.module.ModuleTools.GetGlobalConf().ArenaTicketCos; ticketitem == nil {
// code = pb.ErrorCode_ConfigNoFound
// data = &pb.ErrorData{
// Title: code.ToString(),
// Message: comm.NewNotFoundConfErr(moduleName, "global.json", "ArenaTicketCos").Error(),
// }
this.module.Error("竞技场配置未找到!", log.Field{Key: "key", Value: "ArenaTicketCos"})
return false
}
ticket := int32(this.module.ModuleItems.QueryItemAmount(info.Uid, ticketitem.T))
if ticket > this.module.ModuleTools.GetGlobalConf().ArenaTicketCos.N { if ticket > this.module.ModuleTools.GetGlobalConf().ArenaTicketCos.N {
return true return true
} }

View File

@ -20,6 +20,7 @@ func (this *apiComp) BuyPhysical(session comm.IUserSession, req *pb.ItemsBuyPhys
var ( var (
err error err error
user *pb.DBUserExpand user *pb.DBUserExpand
psitem *cfg.Gameatn
needs []*cfg.Gameatn needs []*cfg.Gameatn
haveneeds []*cfg.Gameatn haveneeds []*cfg.Gameatn
sale []*cfg.Gameatn sale []*cfg.Gameatn
@ -48,7 +49,14 @@ func (this *apiComp) BuyPhysical(session comm.IUserSession, req *pb.ItemsBuyPhys
} }
return return
} }
if psitem = this.module.ModuleTools.GetGlobalConf().PsItem; psitem == nil {
code = pb.ErrorCode_ConfigNoFound
data = &pb.ErrorData{
Title: code.ToString(),
Message: comm.NewNotFoundConfErr(modelName, "global.json", "PsItem").Error(),
}
return
}
if time.Unix(user.PhysicalbuyLasttime, 0).Day() != time.Now().Day() { //不是同一天 重置购买次数 if time.Unix(user.PhysicalbuyLasttime, 0).Day() != time.Now().Day() { //不是同一天 重置购买次数
user.Physicalbuynum = 0 user.Physicalbuynum = 0
} }
@ -70,7 +78,7 @@ func (this *apiComp) BuyPhysical(session comm.IUserSession, req *pb.ItemsBuyPhys
return return
} }
sale = []*cfg.Gameatn{{A: comm.ItemType, T: comm.PhysicalMedicament, N: int32(req.Amount)}} sale = []*cfg.Gameatn{{A: psitem.A, T: psitem.T, N: int32(req.Amount)}}
if code = this.module.DispenseRes(session, sale, true); code != pb.ErrorCode_Success { if code = this.module.DispenseRes(session, sale, true); code != pb.ErrorCode_Success {
return return
@ -81,6 +89,6 @@ func (this *apiComp) BuyPhysical(session comm.IUserSession, req *pb.ItemsBuyPhys
"physicalbuynum": user.Physicalbuynum, "physicalbuynum": user.Physicalbuynum,
"physicalbuyLasttime": user.PhysicalbuyLasttime, "physicalbuyLasttime": user.PhysicalbuyLasttime,
}) })
session.SendMsg(string(this.module.GetType()), "buyphysical", &pb.ItemsBuyPhysicalResp{Issucc: true, PhysicalBuyNum: user.Physicalbuynum, Asets: []*pb.UserAssets{{A: comm.ItemType, T: comm.PhysicalMedicament, N: int32(req.Amount)}}}) session.SendMsg(string(this.module.GetType()), "buyphysical", &pb.ItemsBuyPhysicalResp{Issucc: true, PhysicalBuyNum: user.Physicalbuynum, Asets: []*pb.UserAssets{{A: psitem.A, T: psitem.T, N: int32(req.Amount)}}})
return return
} }

View File

@ -531,10 +531,21 @@ func (this *ModelItemsComp) recoverTicket(session comm.IUserSession) (code pb.Er
user *pb.DBUser user *pb.DBUser
info *pb.DBUserExpand info *pb.DBUserExpand
duration time.Duration duration time.Duration
ticketitem *cfg.Gameatn
ticket int32 ticket int32
ticketNum int32 ticketNum int32
err error err error
) )
if ticketitem = this.module.ModuleTools.GetGlobalConf().CopsBuyGet; ticketitem == nil {
code = pb.ErrorCode_ConfigNoFound
// data = &pb.ErrorData{
// Title: code.ToString(),
// Message: comm.NewNotFoundConfErr(modelName, "global.json", "PsItem").Error(),
// }
return
}
if user = this.module.ModuleUser.GetUser(session.GetUserId()); user == nil { if user = this.module.ModuleUser.GetUser(session.GetUserId()); user == nil {
code = pb.ErrorCode_CacheReadError code = pb.ErrorCode_CacheReadError
return return
@ -549,7 +560,7 @@ func (this *ModelItemsComp) recoverTicket(session comm.IUserSession) (code pb.Er
} }
global := this.module.ModuleTools.GetGlobalConf() global := this.module.ModuleTools.GetGlobalConf()
playerlv := this.module.configure.GetPlayerlvConf(user.Lv) playerlv := this.module.configure.GetPlayerlvConf(user.Lv)
ticket = int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), comm.UnifiedTicket)) ticket = int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), ticketitem.T))
if ticket < global.DreamlandFightnum && info.Recovertimeunifiedticket > 0 { if ticket < global.DreamlandFightnum && info.Recovertimeunifiedticket > 0 {
duration = configure.Now().Sub(time.Unix(info.Recovertimeunifiedticket, 0)) duration = configure.Now().Sub(time.Unix(info.Recovertimeunifiedticket, 0))
ticketNum = int32(math.Floor(duration.Seconds() / float64(global.CopsRecoveryTime))) ticketNum = int32(math.Floor(duration.Seconds() / float64(global.CopsRecoveryTime)))
@ -557,7 +568,7 @@ func (this *ModelItemsComp) recoverTicket(session comm.IUserSession) (code pb.Er
if ticketNum+ticket > playerlv.CopsPsCeiling { if ticketNum+ticket > playerlv.CopsPsCeiling {
ticketNum = playerlv.CopsPsCeiling - ticket ticketNum = playerlv.CopsPsCeiling - ticket
} }
this.module.DispenseRes(session, []*cfg.Gameatn{{A: comm.ItemType, T: comm.UnifiedTicket, N: ticketNum}}, true) this.module.DispenseRes(session, []*cfg.Gameatn{{A: ticketitem.A, T: ticketitem.T, N: ticketNum}}, true)
info.Recovertimeunifiedticket = time.Unix(info.Recovertimeunifiedticket, 0).Add(time.Duration(ticketNum) * time.Minute).Unix() info.Recovertimeunifiedticket = time.Unix(info.Recovertimeunifiedticket, 0).Add(time.Duration(ticketNum) * time.Minute).Unix()
} }
} }

View File

@ -20,6 +20,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.MoonfantasyBuyReq) (
var ( var (
info *pb.DBUserMFantasy info *pb.DBUserMFantasy
challengeD *cfg.GameDreamlandChallengeData challengeD *cfg.GameDreamlandChallengeData
ticketitem *cfg.Gameatn
need []*cfg.Gameatn need []*cfg.Gameatn
maxbuy, vipbuy int maxbuy, vipbuy int
err error err error
@ -27,6 +28,16 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.MoonfantasyBuyReq) (
if code = this.BuyCheck(session, req); code != pb.ErrorCode_Success { if code = this.BuyCheck(session, req); code != pb.ErrorCode_Success {
return return
} }
if ticketitem = this.module.ModuleTools.GetGlobalConf().CopsBuyGet; ticketitem == nil {
code = pb.ErrorCode_ConfigNoFound
data = &pb.ErrorData{
Title: code.ToString(),
Message: comm.NewNotFoundConfErr(modelName, "global.json", "CopsBuyGet").Error(),
}
return
}
if info, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil && err != mgo.MongodbNil { if info, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil && err != mgo.MongodbNil {
code = pb.ErrorCode_CacheReadError code = pb.ErrorCode_CacheReadError
return return
@ -57,7 +68,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.MoonfantasyBuyReq) (
} }
info.BuyNum += req.BuyNum info.BuyNum += req.BuyNum
// info.Ticket += req.BuyNum // info.Ticket += req.BuyNum
if code = this.module.DispenseRes(session, []*cfg.Gameatn{{A: comm.ItemType, T: comm.MoonFantasyTicket, N: req.BuyNum}}, true); code != pb.ErrorCode_Success { if code = this.module.DispenseRes(session, []*cfg.Gameatn{{A: ticketitem.A, T: ticketitem.T, N: req.BuyNum}}, true); code != pb.ErrorCode_Success {
return return
} }
this.module.modelUserMF.Change(session.GetUserId(), map[string]interface{}{ this.module.modelUserMF.Change(session.GetUserId(), map[string]interface{}{

View File

@ -7,8 +7,6 @@ import (
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"math"
"time" "time"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
@ -73,27 +71,27 @@ func (this *modelUserMF) updateUserInfo(info *pb.DBUserMFantasy) (err error) {
func (this *modelUserMF) recoverTicket(session comm.IUserSession, info *pb.DBUserMFantasy) { func (this *modelUserMF) recoverTicket(session comm.IUserSession, info *pb.DBUserMFantasy) {
var ( var (
duration time.Duration // duration time.Duration
ticket int32 // ticket int32
ticketNum int32 // ticketNum int32
) )
if time.Unix(info.LastTrigger, 0).Day() < configure.Now().Day() { if time.Unix(info.LastTrigger, 0).Day() < configure.Now().Day() {
info.TriggerNum = 0 info.TriggerNum = 0
info.LastTrigger = configure.Now().Unix() info.LastTrigger = configure.Now().Unix()
info.BuyNum = 0 info.BuyNum = 0
} }
// this.module.ModuleItems.RecoverTicket(session) this.module.ModuleItems.RecoverTicket(session)
global := this.module.ModuleTools.GetGlobalConf() // global := this.module.ModuleTools.GetGlobalConf()
ticket = int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.MoonFantasyTicket)) // ticket = int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.MoonFantasyTicket))
if ticket < global.DreamlandFightnum && info.Lastrtickettime > 0 { // if ticket < global.DreamlandFightnum && info.Lastrtickettime > 0 {
duration = configure.Now().Sub(time.Unix(info.Lastrtickettime, 0)) // duration = configure.Now().Sub(time.Unix(info.Lastrtickettime, 0))
ticketNum = int32(math.Floor(duration.Minutes() / float64(global.ArenaTicketRecoveryTime))) // ticketNum = int32(math.Floor(duration.Minutes() / float64(global.ArenaTicketRecoveryTime)))
if ticketNum > 0 { // if ticketNum > 0 {
if ticketNum+ticket > global.ArenaTicketMax { // if ticketNum+ticket > global.ArenaTicketMax {
ticketNum = global.ArenaTicketMax - ticket // ticketNum = global.ArenaTicketMax - ticket
} // }
this.module.DispenseRes(session, []*cfg.Gameatn{&cfg.Gameatn{A: comm.ItemType, T: comm.MoonFantasyTicket, N: ticketNum}}, true) // // this.module.DispenseRes(session, []*cfg.Gameatn{&cfg.Gameatn{A: comm.ItemType, T: comm.MoonFantasyTicket, N: ticketNum}}, true)
info.Lastrtickettime = time.Unix(info.Lastrtickettime, 0).Add(time.Duration(ticketNum) * time.Minute).Unix() // info.Lastrtickettime = time.Unix(info.Lastrtickettime, 0).Add(time.Duration(ticketNum) * time.Minute).Unix()
} // }
} // }
} }

View File

@ -16,6 +16,8 @@ import (
"math/big" "math/big"
) )
const modelName = "月之秘境"
/* /*
模块名:月子秘境 模块名:月子秘境
描述:随机世界副本 描述:随机世界副本

View File

@ -84,6 +84,7 @@ func (a *apiComp) Accept(session comm.IUserSession, req *pb.WorldtaskAcceptReq)
//判断是否要结束任务 //判断是否要结束任务
if ((len(curTaskConf.Completetask) == 1 && curTaskConf.Completetask[0] == 0) || if ((len(curTaskConf.Completetask) == 1 && curTaskConf.Completetask[0] == 0) ||
len(curTaskConf.Completetask) == 0) && curTaskConf.DeliverNpc == 0 { len(curTaskConf.Completetask) == 0) && curTaskConf.DeliverNpc == 0 {
//结束任务 //结束任务
a.module.modelWorldtask.taskFinish(session, req.GroupId, req.TaskId, myWorldtask, curTaskConf) a.module.modelWorldtask.taskFinish(session, req.GroupId, req.TaskId, myWorldtask, curTaskConf)
a.module.modelWorldtask.taskFinishPush(session, req.GroupId, myWorldtask, curTaskConf) a.module.modelWorldtask.taskFinishPush(session, req.GroupId, myWorldtask, curTaskConf)