This commit is contained in:
liwei1dao 2022-09-15 19:28:05 +08:00
commit 38227a1982
16 changed files with 171 additions and 431 deletions

View File

@ -16,3 +16,11 @@ services:
sid: "dfmxf" sid: "dfmxf"
name: 梅雄风 name: 梅雄风
url: ws://10.0.0.85:7891/gateway url: ws://10.0.0.85:7891/gateway
- service:
sid: "dflw"
name: 李伟
url: ws://10.0.0.85:7891/gateway
- service:
sid: "0"
name: 广告位
url:

View File

@ -91,14 +91,10 @@ func (ui *MainWindowImpl) createWindowContainer() {
widget.NewToolbarAction(theme.DocumentIcon(), func() { widget.NewToolbarAction(theme.DocumentIcon(), func() {
openApp2(common.TOOLBAR_TESTER) openApp2(common.TOOLBAR_TESTER)
}), }),
widget.NewToolbarSeparator(), widget.NewToolbarSpacer(),
widget.NewToolbarAction(theme.FileIcon(), func() { widget.NewToolbarAction(theme.FileIcon(), func() {
newLogViewer().Win.Show() newLogViewer().Win.Show()
}), }),
widget.NewToolbarSpacer(),
widget.NewToolbarAction(theme.HelpIcon(), func() {
showAbout()
}),
) )
ui.tb = newToolBar(toolbar) ui.tb = newToolBar(toolbar)

View File

@ -462,6 +462,19 @@ var (
MainType: string(comm.ModuleFriend), MainType: string(comm.ModuleFriend),
SubType: friend.FriendSubTypeRandList, SubType: friend.FriendSubTypeRandList,
Enabled: true, Enabled: true,
Print: func(rsp proto.Message) string {
var formatStr strings.Builder
if in, ok := rsp.(*pb.UserMessage); ok {
out := &pb.FriendRandlistResp{}
if !comm.ProtoUnmarshal(in, out) {
return errors.New("unmarshal err").Error()
}
for i, v := range out.List {
formatStr.WriteString(fmt.Sprintf("%d- %v\n", (i + 1), v))
}
}
return formatStr.String()
},
}, },
ff(comm.ModuleFriend, friend.FriendSubTypeList): { ff(comm.ModuleFriend, friend.FriendSubTypeList): {
NavLabel: "好友列表", NavLabel: "好友列表",

View File

@ -23,7 +23,7 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject {
paramsInput.PlaceHolder = "多个数值使用,分隔" paramsInput.PlaceHolder = "多个数值使用,分隔"
condiInput := widget.NewEntry() condiInput := widget.NewEntry()
condiInput.PlaceHolder = "条件配置ID" condiInput.PlaceHolder = "条件ID为空时走触发逻辑否则走校验逻辑"
this.form.AppendItem(widget.NewFormItem("任务类型", rtaskTypeInput)) this.form.AppendItem(widget.NewFormItem("任务类型", rtaskTypeInput))
this.form.AppendItem(widget.NewFormItem("参数", paramsInput)) this.form.AppendItem(widget.NewFormItem("参数", paramsInput))

View File

@ -13,57 +13,64 @@ func (this *apiComp) RandlistCheck(session comm.IUserSession, req *pb.FriendRand
} }
func (this *apiComp) Randlist(session comm.IUserSession, req *pb.FriendRandlistReq) (code pb.ErrorCode, data proto.Message) { func (this *apiComp) Randlist(session comm.IUserSession, req *pb.FriendRandlistReq) (code pb.ErrorCode, data proto.Message) {
var (
self *pb.DBFriend
)
//在线玩家
cu, err := this.moduleFriend.ModuleUser.UserOnlineList()
if err != nil {
code = pb.ErrorCode_DBError
return
}
// 只随机选择5个在线玩家
var randOnlineUsers []string
if len(cu) > 5 {
randArr := utils.Numbers(0, len(cu), 5)
for _, v := range randArr {
if cu[v] != nil {
randOnlineUsers = append(randOnlineUsers, cu[v].Uid)
}
}
}
// 当前玩家好友数据 // 当前玩家好友数据
self = this.moduleFriend.modelFriend.GetFriend(session.GetUserId()) self := this.moduleFriend.modelFriend.GetFriend(session.GetUserId())
if self == nil { if self == nil {
code = pb.ErrorCode_FriendSelfNoData code = pb.ErrorCode_FriendSelfNoData
return return
} }
var userList []*pb.FriendBase //在线玩家列表
cuList, err := this.moduleFriend.ModuleUser.UserOnlineList()
if err != nil {
code = pb.ErrorCode_DBError
return
}
for _, uid := range randOnlineUsers { //过滤
var newList []*pb.CacheUser
for _, v := range cuList {
// 将自己从在线玩家中过滤掉 // 将自己从在线玩家中过滤掉
if uid == session.GetUserId() { if v.Uid == session.GetUserId() {
continue continue
} }
// 将自己的好友从在线玩家中过滤掉 // 将自己的好友从在线玩家中过滤掉
if _, ok := utils.Findx(self.FriendIds, uid); ok { if _, ok := utils.Findx(self.FriendIds, v.Uid); ok {
continue continue
} }
newList = append(newList, v)
}
// 只随机选择5个在线玩家
var randOnlineUsers []string
if len(newList) > 5 {
randArr := utils.Numbers(0, len(newList), 5)
for _, v := range randArr {
if newList[v] != nil {
randOnlineUsers = append(randOnlineUsers, newList[v].Uid)
}
}
} else {
for _, v := range newList {
randOnlineUsers = append(randOnlineUsers, v.Uid)
}
}
var userList []*pb.FriendBase
for _, uid := range randOnlineUsers {
// 判断当前在线好友是否在自己的申请列表中,如果存在也过滤掉
target := this.moduleFriend.modelFriend.GetFriend(uid) target := this.moduleFriend.modelFriend.GetFriend(uid)
if target == nil { if target == nil {
continue continue
} }
// 获取在线好友的信息 // // 获取在线好友的信息
user := this.moduleFriend.ModuleUser.GetUser(uid) // user := this.moduleFriend.ModuleUser.GetUser(uid)
if user == nil { // if user == nil {
continue // continue
} // }
base := this.setDefaultFriendUserBaseInfo(uid) base := this.setDefaultFriendUserBaseInfo(uid)
if base == nil { if base == nil {

View File

@ -198,8 +198,8 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
for _, star := range szStar { for _, star := range szStar {
sz[star]++ sz[star]++
} }
for k, v := range sz { for k, _ := range sz {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype17, k, v) this.module.ModuleRtask.SendToRtask(session, comm.Rtype17, 1, k)
} }
} }
this.module.ModuleRtask.SendToRtask(session, comm.Rtype14, req.DrawCount) this.module.ModuleRtask.SendToRtask(session, comm.Rtype14, req.DrawCount)

View File

@ -44,11 +44,9 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChalle
code = pb.ErrorCode_MainlineNotFindChapter code = pb.ErrorCode_MainlineNotFindChapter
return return
} }
if v == int32(req.MainlineId) {
break
} }
if node.Previoustage != curChapter.MainlineId {
code = pb.ErrorCode_MainlineNotFindChapter
return
} }
code, record := this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ code, record := this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{

View File

@ -49,10 +49,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
code = pb.ErrorCode_MainlineNotFindChapter code = pb.ErrorCode_MainlineNotFindChapter
return return
} }
if v == int32(req.MainlineId) {
break
} }
if node.Previoustage != mainline.MainlineId {
code = pb.ErrorCode_MainlineNotFindChapter
return
} }
res = append(res, node.Award...) res = append(res, node.Award...)

View File

@ -1,6 +1,7 @@
package pagoda package pagoda
import ( import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/modules" "go_dreamfactory/modules"
) )
@ -17,6 +18,7 @@ type apiComp struct {
modules.MCompGate modules.MCompGate
service core.IService service core.IService
module *Pagoda module *Pagoda
chat comm.IChat
} }
//组件初始化接口 //组件初始化接口
@ -30,6 +32,10 @@ func (this *apiComp) Init(service core.IService, module core.IModule, comp core.
func (this *apiComp) Start() (err error) { func (this *apiComp) Start() (err error) {
err = this.MCompGate.Start() err = this.MCompGate.Start()
var module core.IModule
if module, err = this.service.GetModule(comm.ModuleChat); err != nil {
return
}
this.chat = module.(comm.IChat)
return return
} }

View File

@ -81,6 +81,12 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
code = this.module.ModifyPagodaData(session.GetUserId(), mapData) code = this.module.ModifyPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda}) session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda})
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
this.chat.SendSysChatToWorld(comm.EquipmentUpgradeNotice, pagoda.PagodaId, user.Name)
} else {
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
}
// 普通塔通关了 // 普通塔通关了
Nomalcfg := this.module.configure.GetPagodaConfigData(comm.PagodaType, pagoda.PagodaId+1) Nomalcfg := this.module.configure.GetPagodaConfigData(comm.PagodaType, pagoda.PagodaId+1)
if Nomalcfg == nil { // 创建赛季塔数据 if Nomalcfg == nil { // 创建赛季塔数据

View File

@ -60,21 +60,21 @@ func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals
return return
} }
case 2: case 2:
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2)) { if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) {
return return
} }
case 3: case 3:
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2) && soGreatThan(vals[2], cfg.Data3)) { if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) {
return return
} }
case 4: case 4:
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2) && if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
soGreatThan(vals[2], cfg.Data3) && soGreatThan(vals[3], cfg.Data4)) { soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) {
return return
} }
case 5: case 5:
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2) && if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
soGreatThan(vals[2], cfg.Data3) && soGreatThan(vals[3], cfg.Data4) && soGreatThan(vals[4], cfg.Data5)) { soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) {
return return
} }
default: default:
@ -101,21 +101,21 @@ func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals
return return
} }
case 2: case 2:
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2)) { if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) {
return return
} }
case 3: case 3:
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2) && soLessThan(vals[2], cfg.Data3)) { if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) {
return return
} }
case 4: case 4:
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2) && if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
soLessThan(vals[2], cfg.Data3) && soLessThan(vals[3], cfg.Data4)) { soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) {
return return
} }
case 5: case 5:
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2) && if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
soLessThan(vals[2], cfg.Data3) && soLessThan(vals[3], cfg.Data4) && soLessThan(vals[4], cfg.Data5)) { soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) {
return return
} }
default: default:

View File

@ -16,6 +16,7 @@ func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error)
return return
} else { } else {
n = len(vals) n = len(vals)
return
} }
} }
@ -25,6 +26,7 @@ func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error)
return return
} else { } else {
n = len(vals) n = len(vals)
return
} }
} }
@ -34,6 +36,7 @@ func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error)
return return
} else { } else {
n = len(vals) n = len(vals)
return
} }
} }
@ -43,6 +46,7 @@ func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error)
return return
} else { } else {
n = len(vals) n = len(vals)
return
} }
} }
@ -52,6 +56,7 @@ func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error)
return return
} else { } else {
n = len(vals) n = len(vals)
return
} }
} }

View File

@ -132,42 +132,14 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype12: case comm.Rtype12, comm.Rtype13, comm.Rtype14, comm.Rtype15:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.greatThanParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype13:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.lessThanParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype14:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
find: this.modelRtaskRecord.lessThanParams, find: this.modelRtaskRecord.lessThanParams,
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.addUpdate, update: this.modelRtaskRecord.addUpdate,
}) })
case comm.Rtype15: case comm.Rtype16, comm.Rtype17, comm.Rtype19:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.lessThanParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.addUpdate,
})
case comm.Rtype16:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype17:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
find: this.modelRtaskRecord.equalParams, find: this.modelRtaskRecord.equalParams,
@ -181,13 +153,6 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype19:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype20: case comm.Rtype20:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
@ -210,86 +175,25 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
case comm.Rtype23: case comm.Rtype23:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
find: this.modelRtaskRecord.equalParams, find: this.modelRtaskRecord.lessThanParams,
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.addUpdate,
}) })
case comm.Rtype24: case comm.Rtype24, comm.Rtype25, comm.Rtype26, comm.Rtype27,
comm.Rtype28, comm.Rtype29, comm.Rtype30, comm.Rtype31,
comm.Rtype32, comm.Rtype33, comm.Rtype34, comm.Rtype36,
comm.Rtype37, comm.Rtype38, comm.Rtype39, comm.Rtype41,
comm.Rtype42, comm.Rtype43, comm.Rtype45,
comm.Rtype46, comm.Rtype47, comm.Rtype48, comm.Rtype49,
comm.Rtype50, comm.Rtype51, comm.Rtype52, comm.Rtype53,
comm.Rtype54, comm.Rtype55, comm.Rtype56, comm.Rtype57,
comm.Rtype58, comm.Rtype60, comm.Rtype62, comm.Rtype64,
comm.Rtype65, comm.Rtype66, comm.Rtype67, comm.Rtype69:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
find: this.modelRtaskRecord.equalParams, find: this.modelRtaskRecord.lessThanParams,
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.addUpdate,
})
case comm.Rtype25:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype26:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype27:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype28:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype29:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype30:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype31:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype32:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype33:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype34:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype35: case comm.Rtype35:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
@ -298,34 +202,6 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype36:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype37:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype38:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype39:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype40: case comm.Rtype40:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
@ -333,140 +209,7 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype41: case comm.Rtype44, comm.Rtype59:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype42:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype43:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype44:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype45:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype46:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype47:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype48:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype49:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype50:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype51:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype52:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype53:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype54:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype55:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype56:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype57:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype58:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype59:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype60:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
find: this.modelRtaskRecord.equalParams, find: this.modelRtaskRecord.equalParams,
@ -480,46 +223,11 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype62:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype63: case comm.Rtype63:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
verify: this.modelRtask.verifyRtype63, verify: this.modelRtask.verifyRtype63,
}) })
case comm.Rtype64:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype65:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype66:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype67:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype68: case comm.Rtype68:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
@ -527,13 +235,6 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
verify: this.modelRtaskRecord.verifyFromDb, verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate, update: this.modelRtaskRecord.overrideUpdate,
}) })
case comm.Rtype69:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtaskRecord.equalParams,
verify: this.modelRtaskRecord.verifyFromDb,
update: this.modelRtaskRecord.overrideUpdate,
})
case comm.Rtype70: case comm.Rtype70:
this.registerVerifyHandle(v.Id, &rtaskCondi{ this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg, cfg: typeCfg,
@ -550,6 +251,7 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
} }
func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) { func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
log.Debugf("Rtask params: %v", params)
var ( var (
condiId int32 condiId int32
condi *rtaskCondi condi *rtaskCondi
@ -572,7 +274,7 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
if condiId == 0 { if condiId == 0 {
log.Debugf("condi not found, typeId: %v params: %v", rtaskType, params) log.Debugf("condi not found, typeId: %v params: %v", rtaskType, params)
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_RtaskCondiNoFound
return return
} }

View File

@ -71,11 +71,6 @@ func (this *ModelRtaskRecord) overrideUpdate(uid string, cfg *cfg.GameRdtaskCond
// 累计更新 - 招募等 // 累计更新 - 招募等
func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) { func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) {
var paramLen int
if paramLen, err = verifyParam(cfg, vals...); err != nil {
return err
}
record := &pb.DBRtaskRecord{} record := &pb.DBRtaskRecord{}
err = this.Get(uid, record) err = this.Get(uid, record)
if err != nil { if err != nil {
@ -96,14 +91,13 @@ func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData
return errors.Wrapf(err, "添加玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) return errors.Wrapf(err, "添加玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
} }
} else { } else {
//查找任务数据 //查找任务数据
if v, ok := record.Vals[cfg.Id]; ok { if v, ok := record.Vals[cfg.Id]; ok {
// 只有第一个参数为累加数值 count := v.Data[0]
if paramLen == 1 { count += vals[0]
v.Data[0] += vals[0] vals[0] = count
v.Data = toMap(vals...)
v.Timestamp = time.Now().Unix() v.Timestamp = time.Now().Unix()
}
update := map[string]interface{}{ update := map[string]interface{}{
"vals": record.Vals, "vals": record.Vals,
@ -111,11 +105,8 @@ func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData
err = this.Change(uid, update) err = this.Change(uid, update)
} else { } else {
data := map[int32]int32{
0: vals[0],
}
record.Vals[cfg.Id] = &pb.RtaskData{ record.Vals[cfg.Id] = &pb.RtaskData{
Data: data, Data: toMap(vals...),
Rtype: cfg.Type, Rtype: cfg.Type,
Timestamp: time.Now().Unix(), Timestamp: time.Now().Unix(),
} }

View File

@ -11,7 +11,6 @@ import (
"github.com/spf13/cast" "github.com/spf13/cast"
) )
// Deprecated
func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
var rd *pb.RtaskData var rd *pb.RtaskData
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil { if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
@ -23,11 +22,16 @@ func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiD
if paramLen, err = verifyParam(cfg, toArr(rd.Data)...); err == nil { if paramLen, err = verifyParam(cfg, toArr(rd.Data)...); err == nil {
switch paramLen { switch paramLen {
case 1: case 1:
return nil, rd.Data[0] == cfg.Data1 return nil, soEqual(rd.Data[0], cfg.Data1)
case 2: case 2:
return nil, rd.Data[0] == cfg.Data1 && rd.Data[1] == cfg.Data2 return nil, soEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2)
case 3: case 3:
return nil, rd.Data[0] == cfg.Data1 && rd.Data[1] == cfg.Data2 && rd.Data[2] == cfg.Data3 return nil, soEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3)
case 4:
return nil, soEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) && soEqual(rd.Data[3], cfg.Data4)
case 5:
return nil, soEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) &&
soEqual(rd.Data[3], cfg.Data4) && soEqual(rd.Data[4], cfg.Data5)
} }
} }
} }

View File

@ -162,6 +162,7 @@ const (
ErrorCode_RtaskPreNoFinish ErrorCode = 2205 //前置未完成 ErrorCode_RtaskPreNoFinish ErrorCode = 2205 //前置未完成
ErrorCode_RtaskCondiNoReach ErrorCode = 2206 //未达到限定条件 ErrorCode_RtaskCondiNoReach ErrorCode = 2206 //未达到限定条件
ErrorCode_RtaskNoLastOne ErrorCode = 2207 //不是最后一个任务 ErrorCode_RtaskNoLastOne ErrorCode = 2207 //不是最后一个任务
ErrorCode_RtaskCondiNoFound ErrorCode = 2208 //未找到符合的条件配置
// viking // viking
ErrorCode_VikingLvErr ErrorCode = 2301 // 关卡难度不匹配 ErrorCode_VikingLvErr ErrorCode = 2301 // 关卡难度不匹配
ErrorCode_VikingBoosType ErrorCode = 2302 // BOSS 类型不对 ErrorCode_VikingBoosType ErrorCode = 2302 // BOSS 类型不对
@ -314,6 +315,7 @@ var (
2205: "RtaskPreNoFinish", 2205: "RtaskPreNoFinish",
2206: "RtaskCondiNoReach", 2206: "RtaskCondiNoReach",
2207: "RtaskNoLastOne", 2207: "RtaskNoLastOne",
2208: "RtaskCondiNoFound",
2301: "VikingLvErr", 2301: "VikingLvErr",
2302: "VikingBoosType", 2302: "VikingBoosType",
2303: "VikingBuyMaxCount", 2303: "VikingBuyMaxCount",
@ -460,6 +462,7 @@ var (
"RtaskPreNoFinish": 2205, "RtaskPreNoFinish": 2205,
"RtaskCondiNoReach": 2206, "RtaskCondiNoReach": 2206,
"RtaskNoLastOne": 2207, "RtaskNoLastOne": 2207,
"RtaskCondiNoFound": 2208,
"VikingLvErr": 2301, "VikingLvErr": 2301,
"VikingBoosType": 2302, "VikingBoosType": 2302,
"VikingBuyMaxCount": 2303, "VikingBuyMaxCount": 2303,
@ -512,7 +515,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0xf8, 0x18, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0x90, 0x19, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -682,37 +685,39 @@ var file_errorcode_proto_rawDesc = []byte{
0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e,
0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e,
0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f,
0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e,
0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b,
0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56,
0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11,
0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69,
0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f,
0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61,
0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10,
0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73,
0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f,
0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10,
0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73,
0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12,
0x6e, 0x10, 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13,
0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63,
0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74,
0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53,
0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa,
0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61,
0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
0x0a, 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76,
0x65, 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e,
0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12,
0x18, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75,
0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x42, 0x06, 0x5a, 0x04, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x10, 0x90, 0x15, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (