上传挑战卷恢复代码
This commit is contained in:
parent
14194c5fca
commit
5a91b06f3d
@ -20,7 +20,7 @@
|
||||
"n": 5
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 32
|
||||
},
|
||||
{
|
||||
@ -44,7 +44,7 @@
|
||||
"n": 7
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 64
|
||||
},
|
||||
{
|
||||
@ -68,7 +68,7 @@
|
||||
"n": 9
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 32
|
||||
},
|
||||
{
|
||||
@ -92,7 +92,7 @@
|
||||
"n": 11
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 16
|
||||
},
|
||||
{
|
||||
@ -116,7 +116,7 @@
|
||||
"n": 13
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 8
|
||||
},
|
||||
{
|
||||
@ -140,7 +140,7 @@
|
||||
"n": 15
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 8
|
||||
},
|
||||
{
|
||||
@ -164,7 +164,7 @@
|
||||
"n": 17
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 8
|
||||
},
|
||||
{
|
||||
@ -188,7 +188,7 @@
|
||||
"n": 19
|
||||
}
|
||||
],
|
||||
"png": "",
|
||||
"png": "wp_icon_bydw02",
|
||||
"k_value": 8
|
||||
}
|
||||
]
|
@ -4,7 +4,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 20
|
||||
}
|
||||
]
|
||||
@ -14,7 +14,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 30
|
||||
}
|
||||
]
|
||||
@ -24,7 +24,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 30
|
||||
}
|
||||
]
|
||||
@ -34,7 +34,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 50
|
||||
}
|
||||
]
|
||||
@ -44,7 +44,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 50
|
||||
}
|
||||
]
|
||||
@ -54,7 +54,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 50
|
||||
}
|
||||
]
|
||||
@ -64,7 +64,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
@ -74,7 +74,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 150
|
||||
}
|
||||
]
|
||||
@ -84,7 +84,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
@ -94,7 +94,7 @@
|
||||
"need": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "diamond",
|
||||
"n": 250
|
||||
}
|
||||
]
|
||||
|
@ -2,7 +2,7 @@
|
||||
{
|
||||
"id": 1,
|
||||
"rank_low": 1,
|
||||
"rank_up": 1,
|
||||
"rank_up": 2,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -19,7 +19,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"rank_low": 2,
|
||||
"rank_up": 2,
|
||||
"rank_up": 3,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -36,7 +36,7 @@
|
||||
{
|
||||
"id": 3,
|
||||
"rank_low": 3,
|
||||
"rank_up": 3,
|
||||
"rank_up": 4,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -53,7 +53,7 @@
|
||||
{
|
||||
"id": 4,
|
||||
"rank_low": 4,
|
||||
"rank_up": 10,
|
||||
"rank_up": 11,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -70,7 +70,7 @@
|
||||
{
|
||||
"id": 5,
|
||||
"rank_low": 11,
|
||||
"rank_up": 20,
|
||||
"rank_up": 21,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -87,7 +87,7 @@
|
||||
{
|
||||
"id": 6,
|
||||
"rank_low": 21,
|
||||
"rank_up": 50,
|
||||
"rank_up": 51,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -104,7 +104,7 @@
|
||||
{
|
||||
"id": 7,
|
||||
"rank_low": 51,
|
||||
"rank_up": 100,
|
||||
"rank_up": 101,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -121,7 +121,7 @@
|
||||
{
|
||||
"id": 8,
|
||||
"rank_low": 101,
|
||||
"rank_up": 200,
|
||||
"rank_up": 201,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -138,7 +138,7 @@
|
||||
{
|
||||
"id": 9,
|
||||
"rank_low": 201,
|
||||
"rank_up": 500,
|
||||
"rank_up": 501,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -155,7 +155,7 @@
|
||||
{
|
||||
"id": 10,
|
||||
"rank_low": 501,
|
||||
"rank_up": 1000,
|
||||
"rank_up": 1001,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -172,7 +172,7 @@
|
||||
{
|
||||
"id": 11,
|
||||
"rank_low": 1001,
|
||||
"rank_up": 99999999,
|
||||
"rank_up": 100000000,
|
||||
"rank_reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
|
@ -210,6 +210,17 @@
|
||||
"ArenaTicket_RecoveryTime": 144,
|
||||
"ArenaTicket_PurchaseRrestrictions": 10,
|
||||
"arena_InitiaIntegral": 1000,
|
||||
"arena_RecordMax": 10
|
||||
"arena_RecordMax": 10,
|
||||
"arena_RefreshCd": 10,
|
||||
"show_male": [
|
||||
100001,
|
||||
100002,
|
||||
100003
|
||||
],
|
||||
"show_female": [
|
||||
200001,
|
||||
200002,
|
||||
200003
|
||||
]
|
||||
}
|
||||
]
|
@ -33,6 +33,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
|
||||
code = pb.ErrorCode_CacheReadError
|
||||
return
|
||||
}
|
||||
this.module.modelArena.recoverTicket(info)
|
||||
global = this.module.configure.GetGlobalConf()
|
||||
if info.Ticket+req.BuyNum > global.ArenaTicketMax {
|
||||
code = pb.ErrorCode_ArenaTicketBuyUp
|
||||
@ -56,10 +57,10 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
|
||||
}
|
||||
info.Buynum += req.BuyNum
|
||||
info.Ticket += req.BuyNum
|
||||
this.module.modelArena.Change(session.GetUserId(), map[string]interface{}{
|
||||
"ticket": info.Ticket,
|
||||
"buynum": info.Buynum,
|
||||
})
|
||||
if err = this.module.modelArena.updateArenaUserInfo(info); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "buy", &pb.MoonfantasyBuyResp{Issucc: true, BattleNum: info.Ticket})
|
||||
return
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package arena
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
"time"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
@ -52,6 +53,9 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.ArenaChallenge
|
||||
|
||||
if red.Ticket > 0 {
|
||||
red.Ticket--
|
||||
if red.Lastrtickettime == 0 {
|
||||
red.Lastrtickettime = time.Now().Unix()
|
||||
}
|
||||
} else {
|
||||
code = pb.ErrorCode_ArenaTicketNotEnough
|
||||
return
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
"go_dreamfactory/sys/db"
|
||||
"math"
|
||||
"time"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
@ -24,6 +25,8 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (code
|
||||
info *pb.DBArenaUser
|
||||
user *pb.DBUser
|
||||
model *db.DBModel
|
||||
duration time.Duration
|
||||
ticketNum int32
|
||||
err error
|
||||
)
|
||||
if code = this.InfoCheck(session, req); code != pb.ErrorCode_Success {
|
||||
@ -52,6 +55,7 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (code
|
||||
Integral: global.ArenaInitiaIntegral,
|
||||
Ticket: 10,
|
||||
Record: make([]*pb.DBArenaBattleRecord, 0),
|
||||
Lastrtickettime: 0,
|
||||
}
|
||||
if info.Dan, err = this.module.modelArena.computedan(info.Integral); err != nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
@ -60,8 +64,19 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (code
|
||||
if err = this.module.modelArena.Add(session.GetUserId(), info); err != nil {
|
||||
this.module.Errorln(err)
|
||||
}
|
||||
} else if info.Ticket < global.ArenaTicketMax && info.Lastrtickettime > 0 {
|
||||
duration = time.Now().Sub(time.Unix(info.Lastrtickettime, 0))
|
||||
ticketNum = int32(math.Floor(duration.Minutes() / float64(global.ArenaTicketRecoveryTime)))
|
||||
if ticketNum > 0 {
|
||||
info.Ticket += ticketNum
|
||||
if info.Ticket > global.ArenaTicketMax {
|
||||
info.Ticket = global.ArenaTicketMax
|
||||
info.Lastrtickettime = 0
|
||||
} else {
|
||||
info.Lastrtickettime = time.Unix(info.Lastrtickettime, 0).Add(time.Duration(ticketNum) * time.Minute).Unix()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
session.SendMsg(string(this.module.GetType()), "info", &pb.ArenaInfoResp{Info: info})
|
||||
return
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import (
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
"go_dreamfactory/sys/db"
|
||||
"math"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
@ -108,6 +109,8 @@ func (this *modelArena) updateArenaUserInfo(info *pb.DBArenaUser) (err error) {
|
||||
"dan": dan,
|
||||
"rank": info.Rank,
|
||||
"ticket": info.Ticket,
|
||||
"buynum": info.Buynum,
|
||||
"lastrtickettime": info.Lastrtickettime,
|
||||
"attack": info.Attack,
|
||||
"defend": info.Defend,
|
||||
"streak": info.Streak,
|
||||
@ -333,3 +336,24 @@ func (this *modelArena) integralCompute(red, bule *pb.ArenaPlayer, iswin bool) {
|
||||
bule.Integral = bule.Integral + bule.Changeintegral
|
||||
}
|
||||
}
|
||||
|
||||
func (this *modelArena) recoverTicket(info *pb.DBArenaUser) {
|
||||
var (
|
||||
duration time.Duration
|
||||
ticketNum int32
|
||||
)
|
||||
global := this.module.configure.GetGlobalConf()
|
||||
if info.Ticket < global.ArenaTicketMax && info.Lastrtickettime > 0 {
|
||||
duration = time.Now().Sub(time.Unix(info.Lastrtickettime, 0))
|
||||
ticketNum = int32(math.Floor(duration.Minutes() / float64(global.ArenaTicketRecoveryTime)))
|
||||
if ticketNum > 0 {
|
||||
info.Ticket += ticketNum
|
||||
if info.Ticket > global.ArenaTicketMax {
|
||||
info.Ticket = global.ArenaTicketMax
|
||||
info.Lastrtickettime = 0
|
||||
} else {
|
||||
info.Lastrtickettime = time.Unix(info.Lastrtickettime, 0).Add(time.Duration(ticketNum) * time.Minute).Unix()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -387,6 +387,7 @@ type DBArenaUser struct {
|
||||
Rank int32 `protobuf:"varint,13,opt,name=rank,proto3" json:"rank"` //排名
|
||||
Buynum int32 `protobuf:"varint,14,opt,name=buynum,proto3" json:"buynum"` //购买次数
|
||||
Record []*DBArenaBattleRecord `protobuf:"bytes,15,rep,name=record,proto3" json:"record"` //战斗记录
|
||||
Lastrtickettime int64 `protobuf:"varint,16,opt,name=lastrtickettime,proto3" json:"lastrtickettime"` //最后领劵时间
|
||||
}
|
||||
|
||||
func (x *DBArenaUser) Reset() {
|
||||
@ -526,6 +527,13 @@ func (x *DBArenaUser) GetRecord() []*DBArenaBattleRecord {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *DBArenaUser) GetLastrtickettime() int64 {
|
||||
if x != nil {
|
||||
return x.Lastrtickettime
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_arena_arena_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_arena_arena_db_proto_rawDesc = []byte{
|
||||
@ -570,7 +578,7 @@ var file_arena_arena_db_proto_rawDesc = []byte{
|
||||
0x0b, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x05,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x42, 0x61,
|
||||
0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
|
||||
0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xaf, 0x03, 0x0a, 0x0b, 0x44, 0x42, 0x41, 0x72, 0x65,
|
||||
0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xd9, 0x03, 0x0a, 0x0b, 0x44, 0x42, 0x41, 0x72, 0x65,
|
||||
0x6e, 0x61, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06,
|
||||
@ -597,15 +605,18 @@ var file_arena_arena_db_proto_rawDesc = []byte{
|
||||
0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65,
|
||||
0x63, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x41,
|
||||
0x72, 0x65, 0x6e, 0x61, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
|
||||
0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2a, 0x73, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74,
|
||||
0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x07, 0x0a,
|
||||
0x03, 0x57, 0x69, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x01,
|
||||
0x12, 0x12, 0x0a, 0x0e, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x76, 0x65, 0x6e,
|
||||
0x67, 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x46,
|
||||
0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x65, 0x6e,
|
||||
0x67, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a,
|
||||
0x0a, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x05, 0x42, 0x06, 0x5a,
|
||||
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74,
|
||||
0x72, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x2a, 0x73, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f,
|
||||
0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x69, 0x6e, 0x10, 0x00,
|
||||
0x12, 0x08, 0x0a, 0x04, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x57, 0x61,
|
||||
0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x10, 0x02, 0x12, 0x11,
|
||||
0x0a, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10,
|
||||
0x03, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x63, 0x63,
|
||||
0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x76, 0x65, 0x6e,
|
||||
0x67, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x05, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
Loading…
Reference in New Issue
Block a user