This commit is contained in:
liwei1dao 2023-01-06 14:27:58 +08:00
commit ea8b278d1c
24 changed files with 2377 additions and 131 deletions

View File

@ -5,7 +5,16 @@
"key": "opencond_name_10002",
"text": "英雄"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -22,7 +31,16 @@
"key": "opencond_name_10006",
"text": "背包"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -39,7 +57,16 @@
"key": "opencond_name_10003",
"text": "购物"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -56,7 +83,16 @@
"key": "opencond_name_10004",
"text": "好友"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -73,7 +109,16 @@
"key": "opencond_name_10003",
"text": "商城"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -90,7 +135,16 @@
"key": "opencond_name_10003",
"text": "随机任务总览"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -107,7 +161,16 @@
"key": "opencond_name_10003",
"text": "充值"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -124,7 +187,16 @@
"key": "opencond_name_10007",
"text": "活动"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -141,7 +213,16 @@
"key": "opencond_name_10005",
"text": "任务"
},
"main": 10,
"main": [
{
"key": "platlv",
"param": 10
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -158,7 +239,16 @@
"key": "num_1001",
"text": "主线入口"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -175,7 +265,16 @@
"key": "num_1002",
"text": "招募"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -192,7 +291,16 @@
"key": "num_1003",
"text": "剧情副本"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -209,7 +317,16 @@
"key": "num_1004",
"text": "武馆入口"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -226,7 +343,16 @@
"key": "num_1005",
"text": "主题活动入口"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -243,7 +369,16 @@
"key": "num_1006",
"text": "迷雾岛屿"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -260,7 +395,16 @@
"key": "num_1007",
"text": "装备副本"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -277,7 +421,16 @@
"key": "num_1007",
"text": "武器副本"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -294,7 +447,16 @@
"key": "num_1007",
"text": "饰品副本"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -311,7 +473,16 @@
"key": "num_1008",
"text": "心魔塔"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -328,7 +499,16 @@
"key": "num_1009",
"text": "捕羊大赛"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -345,7 +525,16 @@
"key": "num_1010",
"text": "黑暗料理大赛"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -362,7 +551,16 @@
"key": "num_1011",
"text": "地下角斗场"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -379,7 +577,16 @@
"key": "num_1012",
"text": "疯狂竞技赛"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -396,7 +603,16 @@
"key": "num_1013",
"text": "五侠擂台"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -413,7 +629,16 @@
"key": "num_1014",
"text": "藏书馆"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -430,7 +655,16 @@
"key": "num_1015",
"text": "篝火舞会"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -447,7 +681,16 @@
"key": "num_1016",
"text": "商队"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -464,7 +707,16 @@
"key": "num_1017",
"text": "美食馆"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -481,7 +733,16 @@
"key": "num_1018",
"text": "戈伯铁匠铺"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -498,7 +759,16 @@
"key": "num_1019",
"text": "狩猎"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -515,7 +785,16 @@
"key": "num_2020",
"text": "聊天"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -532,7 +811,16 @@
"key": "num_2021",
"text": "世界"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -549,7 +837,16 @@
"key": "num_2022",
"text": "公会"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -566,7 +863,16 @@
"key": "num_2023",
"text": "私聊"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -583,7 +889,16 @@
"key": "num_2024",
"text": "跨服"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -600,7 +915,16 @@
"key": "num_2025",
"text": "系统"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -617,7 +941,16 @@
"key": "num_2026",
"text": "公会"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -634,7 +967,16 @@
"key": "num_2027",
"text": "竞技场"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -651,7 +993,16 @@
"key": "num_2028",
"text": "签到"
},
"main": 999,
"main": [
{
"key": "platlv",
"param": 999
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -668,7 +1019,16 @@
"key": "num_2029",
"text": "红点集成"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -685,7 +1045,16 @@
"key": "num_2030",
"text": "月卡"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -702,7 +1071,16 @@
"key": "num_2031",
"text": "日周月礼包"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -719,7 +1097,16 @@
"key": "num_2032",
"text": "主角"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -736,7 +1123,16 @@
"key": "num_2033",
"text": "月之秘境"
},
"main": 2,
"main": [
{
"key": "platlv",
"param": 2
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 2,
"kqbx": 0,
@ -753,7 +1149,16 @@
"key": "num_2034",
"text": "收益统计"
},
"main": 3,
"main": [
{
"key": "platlv",
"param": 3
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -770,7 +1175,16 @@
"key": "num_2035",
"text": "卡牌融合"
},
"main": 13,
"main": [
{
"key": "platlv",
"param": 13
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -787,7 +1201,16 @@
"key": "num_2036",
"text": "成长之路"
},
"main": 1,
"main": [
{
"key": "platlv",
"param": 1
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 1,
"kqbx": 0,
@ -804,7 +1227,16 @@
"key": "num_2030",
"text": "战斗退出"
},
"main": 5,
"main": [
{
"key": "platlv",
"param": 5
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -821,7 +1253,16 @@
"key": "num_2030",
"text": "战斗倍速"
},
"main": 4,
"main": [
{
"key": "platlv",
"param": 4
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -838,7 +1279,16 @@
"key": "num_2030",
"text": "自动战斗"
},
"main": 5,
"main": [
{
"key": "platlv",
"param": 5
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -848,5 +1298,83 @@
"text": "功能暂未开启"
},
"uiid": 0
},
{
"id": "equip_compose",
"name": {
"key": "num_2030",
"text": "装备铸造"
},
"main": [
{
"key": "platlv",
"param": 5
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
"img": "zc_icon_01",
"prompt": {
"key": "opencond_prompt_equip_compose",
"text": "功能暂未开启"
},
"uiid": 0
},
{
"id": "equip_compose_middle",
"name": {
"key": "num_2030",
"text": "装备铸造-中级"
},
"main": [
{
"key": "platlv",
"param": 4
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
"img": "zc_icon_01",
"prompt": {
"key": "opencond_prompt_equip_compose_middle",
"text": "功能暂未开启"
},
"uiid": 0
},
{
"id": "equip_compose_high",
"name": {
"key": "num_2030",
"text": "装备铸造-高级"
},
"main": [
{
"key": "platlv",
"param": 5
},
{
"key": "maxmapid",
"param": 1
}
],
"optional": "",
"wkqbx": 0,
"kqbx": 0,
"img": "zc_icon_01",
"prompt": {
"key": "opencond_prompt_equip_compose_high",
"text": "功能暂未开启"
},
"uiid": 0
}
]

View File

@ -8,8 +8,6 @@ import (
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"strings"
"time"
"fyne.io/fyne/v2"
@ -133,49 +131,49 @@ func (app *perfChoose) LazyInit(ptService service.PttService, obs observer.Obser
closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE)
openApp3(perfWin.tabs, common.TOOLBAR_PERF_RES)
if tables, err := cfg.NewTables(common.Loader); err != nil {
println(err.Error())
} else {
for _, v := range tables.TestFlow.GetDataList() {
p, ok := pbMap[v.Route]
if !ok {
logrus.WithField("route", v.Route).Debug("未注册")
continue
}
routeStr := strings.SplitN(v.Route, ".", 2)
for _, account := range app.binduids {
rq := ReqParams{
Sid: app.conf.SId,
Account: account,
PbReq: p,
MainType: routeStr[0],
SubType: routeStr[1],
}
b, err := app.buildReq(rq)
if err != nil {
logrus.Error(err)
return
}
app.handler.SetReq(b, true)
}
// if tables, err := cfg.NewTables(common.Loader); err != nil {
// println(err.Error())
// } else {
// for _, v := range tables.TestFlow.GetDataList() {
// p, ok := pbMap[v.Route]
// if !ok {
// logrus.WithField("route", v.Route).Debug("未注册")
// continue
// }
// routeStr := strings.SplitN(v.Route, ".", 2)
// for _, account := range app.binduids {
// rq := ReqParams{
// Sid: app.conf.SId,
// Account: account,
// PbReq: p,
// MainType: routeStr[0],
// SubType: routeStr[1],
// }
// b, err := app.buildReq(rq)
// if err != nil {
// logrus.Error(err)
// return
// }
// app.handler.SetReq(b, true)
// }
param := lib.ParamMgr{
Caller: app.handler,
Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond,
Lps: uint32(app.conf.Pressure.Concurrency),
Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second,
ResultCh: make(chan *lib.CallResult, 50),
}
a, err := lib.NewAssistant(obs, param)
if err != nil {
logrus.Error(err)
}
// param := lib.ParamMgr{
// Caller: app.handler,
// Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond,
// Lps: uint32(app.conf.Pressure.Concurrency),
// Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second,
// ResultCh: make(chan *lib.CallResult, 50),
// }
// a, err := lib.NewAssistant(obs, param)
// if err != nil {
// logrus.Error(err)
// }
a.Start()
// a.Start()
a.ShowResult()
}
}
// a.ShowResult()
// }
// }
}
//上一步

View File

@ -1,7 +1,6 @@
package ui
import (
"fmt"
"go_dreamfactory/cmd/v2/lib"
"go_dreamfactory/cmd/v2/lib/common"
"go_dreamfactory/cmd/v2/lib/storage"
@ -20,7 +19,6 @@ import (
"fyne.io/fyne/v2/widget"
"github.com/Pallinder/go-randomdata"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
"google.golang.org/protobuf/proto"
)
@ -47,18 +45,18 @@ func (app *perfPb) LazyInit(ptService service.PttService, obs observer.Observer)
app.itemList.ItemList = app.itemList.CreateList()
app.pbList = func() {
if tables, err := cfg.NewTables(common.Loader); err != nil {
println(err.Error())
} else {
for _, v := range tables.TestFlow.GetDataList() {
item := common.Item{
Id: cast.ToString(v.Id),
Text: fmt.Sprintf("%-6d %-20s %-20s %s", v.Id, v.Msg, v.Route, v.Params),
Data: v,
}
app.itemList.AddItem(item)
}
}
// if tables, err := cfg.NewTables(common.Loader); err != nil {
// println(err.Error())
// } else {
// for _, v := range tables.TestFlow.GetDataList() {
// item := common.Item{
// Id: cast.ToString(v.Id),
// Text: fmt.Sprintf("%-6d %-20s %-20s %s", v.Id, v.Msg, v.Route, v.Params),
// Data: v,
// }
// app.itemList.AddItem(item)
// }
// }
}
defer app.pbList()

View File

@ -14,6 +14,7 @@ import (
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
@ -25,8 +26,6 @@ type appPing struct {
func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observer) error {
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PING, theme.DownloadIcon(), nil)
this.resultCh = make(chan int)
content := container.NewMax()
content.Objects = []fyne.CanvasObject{}
@ -36,18 +35,41 @@ func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observe
portEntry := widget.NewMultiLineEntry()
portEntry.Text = "80,3306,6379"
form := widget.NewForm(
widget.NewFormItem("主机", targetHost),
widget.NewFormItem("端口", portEntry),
)
// result
result := widget.NewMultiLineEntry()
form.OnSubmit = func() {
result.Text = ""
if portEntry.Text == "" {
return
}
this.resultCh = make(chan int)
ports := strings.Split(portEntry.Text, ",")
this.ping(targetHost.Text, ports)
var msgs []string
for p := range this.resultCh {
fmt.Println(p, "ok")
for _, v := range ports {
if cast.ToInt(v) == p {
msgs = append(msgs, fmt.Sprintf("端口:%d OK", p))
} else {
msgs = append(msgs, fmt.Sprintf("端口:%s ERR", v))
}
result.Text = strings.Join(msgs, "\n")
result.Refresh()
}
}
}
form.Items[1].HintText = "多个端口使用英文,号分隔"
content.Objects = append(content.Objects, form)
result.OnChanged = func(s string) {
result.Refresh()
}
content.Objects = append(content.Objects, container.NewBorder(form, nil, nil, nil, result))
this.tabItem.Content = content
return nil
}
@ -61,6 +83,8 @@ func (this *appPing) ping(targetHost string, ports []string) {
_, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, p), time.Millisecond*500)
if err == nil {
this.resultCh <- p
} else {
logrus.Error(err)
}
}(cast.ToInt(port))
}

View File

@ -53,7 +53,7 @@ func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow {
openApp2(mw.at, common.TOOLBAR_TERM)
}),
widget.NewToolbarAction(theme.MailSendIcon(), func() {
widget.NewToolbarAction(theme.ComputerIcon(), func() {
openApp2(mw.at, common.TOOLBAR_PING)
}),

View File

@ -102,7 +102,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
}
hunting.Boss[req.BossType] += 1
mapData["boss"] = hunting.Boss
}
mapData["bossTime"] = hunting.BossTime
@ -112,6 +111,22 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
// 随机任务统计
this.module.ModuleRtask.SendToRtask(session, comm.Rtype81, req.Difficulty, req.BossType)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype82, req.BossType)
// 狩猎副本掉落觉醒材料
for _, v := range reward {
if _conf, err := this.configure.GetItemConfigureData(v.T); err == nil {
if _conf.Usetype == 8 {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype154, v.N)
}
}
}
if newChallenge && bWin {
for _, v := range cfgHunting.Firstprize {
if _conf, err := this.configure.GetItemConfigureData(v.T); err == nil {
if _conf.Usetype == 8 {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype154, v.N)
}
}
}
}
return
}

View File

@ -52,7 +52,6 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChalle
}
}
if curChapter.Ps != 0 {
if code = this.module.ConsumeRes(session, node.PsMg, true); code != pb.ErrorCode_Success { // 扣1点
return
}

34
modules/mline/api.go Normal file
View File

@ -0,0 +1,34 @@
package mline
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
const (
MainlineGetListResp = "getlist"
MainlineChallengeResp = "challenge"
MainlineChallengeOverResp = "challengeover"
MainlineGetRewardResp = "getreward"
MainlineNewChapterPush = "newchapter"
)
type apiComp struct {
modules.MCompGate
service core.IService
module *Mainline
}
//组件初始化接口
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompGate.Init(service, module, comp, options)
this.module = module.(*Mainline)
this.service = service
return
}
func (this *apiComp) Start() (err error) {
err = this.MCompGate.Start()
return
}

View File

@ -0,0 +1,108 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode) {
if req.MainlineId == 0 || req.ChapterObj == "" || req.Leadpos >= 5 || len(req.Teamids) != 5 || req.Leadpos < 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
///挑战主线关卡
func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode, data proto.Message) {
var (
curChapter *pb.DBMainline // 当前章节信息
ps int32
psAnt *cfg.Gameatn
)
code = this.ChallengeCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
// 校验关卡存不存在
curChapter = this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj)
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFound
return
}
node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId), curChapter.Intensity)
if node == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
for _, v := range curChapter.BranchID {
if v == int32(req.MainlineId) { // 重复挑战
code = pb.ErrorCode_MainlineNotFindChapter
return
}
if v == int32(req.MainlineId) {
break
}
}
if curChapter.Ps != 0 {
if code = this.module.ConsumeRes(session, node.PsMg, true); code != pb.ErrorCode_Success { // 扣1点
return
}
} else {
for _, v := range node.PsConsume {
if v.A == "attr" && v.T == "ps" {
ps += v.N
}
}
for _, v := range node.PsMg {
if v.A == "attr" && v.T == "ps" {
ps += v.N
}
}
psAnt = &cfg.Gameatn{
A: "attr",
T: "ps",
N: ps,
}
if code = this.module.ConsumeRes(session, []*cfg.Gameatn{psAnt}, true); code != pb.ErrorCode_Success {
return
}
curChapter.Ps = ps
update := map[string]interface{}{
"ps": ps,
}
err := this.module.modelMainline.modifyMainlineData(session.GetUserId(), curChapter.Id, update)
if err != nil {
code = pb.ErrorCode_DBError
return
}
}
code, record := this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{
Ptype: pb.PlayType_mainline,
Title: "",
Format: &pb.BattleFormation{
Leadpos: req.Leadpos,
Format: req.Teamids,
},
Mformat: node.FormatList,
})
if code != pb.ErrorCode_Success {
return
}
session.SendMsg(string(this.module.GetType()), MainlineChallengeResp, &pb.MainlineChallengeResp{
Info: &pb.BattleInfo{Id: record.Id, Title: record.Title, Btype: record.Btype, Ptype: record.Ptype, RedCompId: record.RedCompId, Redflist: record.Redflist, BlueCompId: record.BlueCompId, Buleflist: record.Buleflist},
ChapterObj: req.ChapterObj,
MainlineId: req.GetMainlineId(),
})
return
}

View File

@ -0,0 +1,153 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ChallengeOverCheck(session comm.IUserSession, req *pb.MainlineChallengeOverReq) (code pb.ErrorCode) {
if req.MainlineId == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
///挑战主线关卡
func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineChallengeOverReq) (code pb.ErrorCode, data proto.Message) {
var (
mainline *pb.DBMainline // 当前章节信息
res []*cfg.Gameatn // 小章节奖励
isWin bool
user *pb.DBUser
hero []string //新的英雄
newhero []string //新的英雄
)
res = make([]*cfg.Gameatn, 0)
hero = make([]string, 0)
newhero = make([]string, 0)
code = this.ChallengeOverCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
// 校验关卡存不存在
mainline = this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj)
if mainline == nil {
code = pb.ErrorCode_MainlineNotFound
return
}
node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId), mainline.Intensity)
if node == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
for _, v := range mainline.BranchID {
if v == int32(req.MainlineId) { // 重复挑战
code = pb.ErrorCode_MainlineNotFindChapter
return
}
}
// 校验通过
code, isWin = this.module.battle.CheckBattleReport(session, req.Report)
if code != pb.ErrorCode_Success {
return
}
if !isWin { // 战斗失败直接返回
// 返还
mainline.Ps = 0
this.module.modelMainline.modifyMainlineData(session.GetUserId(), mainline.Id, map[string]interface{}{
"ps": 0,
})
if code = this.module.DispenseRes(session, node.PsConsume, true); code != pb.ErrorCode_Success { // 返还预扣体力
return
}
code = pb.ErrorCode_BattleNoWin
return
}
res = append(res, node.Award...)
for _, v := range node.Award {
if v.A == comm.HeroType {
hero = append(hero, v.T)
}
}
if len(hero) > 0 {
ishave := this.module.ModuleUser.CheckTujianHero(session, hero)
for i, v := range ishave {
if !v {
newhero = append(newhero, hero[i])
}
}
}
user = this.module.ModuleUser.GetUser(session.GetUserId())
mainline.MainlineId = int32(req.MainlineId)
mainline.BranchID = append(mainline.BranchID, int32(req.MainlineId))
mainline.Ps = 0 // 重置预扣体力
update := map[string]interface{}{
"mainlineId": req.MainlineId,
"chapterId": mainline.ChapterId,
"branchID": mainline.BranchID,
"ps": 0,
}
if node.Episodetype == comm.MainLineBoss { // 打完boss 设置领奖状态
update["awaredID"] = pb.AwaredType_TypeAvailable
mainline.AwaredID = pb.AwaredType_TypeAvailable
}
err := this.module.modelMainline.modifyMainlineData(session.GetUserId(), mainline.Id, update)
if err != nil {
code = pb.ErrorCode_DBError
return
}
if node.Episodetype == comm.MainLineBoss { // 挑战完成 boss关
_data := &pb.DBMainline{}
conf := this.module.configure.GetMainlineChapter(mainline.ChapterId + 1)
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = mainline.ChapterId + 1
_data.Intensity = mainline.Intensity
if conf == nil { // 这里就是切换下一个难度了
if mainline.Intensity < comm.MaxMainlineIntensity {
_data.Intensity = mainline.Intensity + 1 // 难度+1
_data.ChapterId = 1 // 默认第一章节
}
}
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
session.SendMsg(string(this.module.GetType()), MainlineNewChapterPush, &pb.MainlineNewChapterPush{Data: _data}) // 推送新的章节
}
// 发奖
if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success {
this.module.Debugf("DispenseRes err:+%v", res)
}
// 加经验
if node.Episodetype != 5 && node.Episodetype != 7 {
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
for _, v := range req.Report.Info.Redflist[0].Team {
if node.Exp > 0 && !v.Ishelp { // 助战英雄不加经验
this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp)
}
}
}
}
session.SendMsg(string(this.module.GetType()), MainlineChallengeOverResp, &pb.MainlineChallengeOverResp{Data: mainline, Newheros: newhero, Olv: user.Lv})
// 主线任务统计 Rtype60
this.module.ModuleRtask.SendToRtask(session, comm.Rtype60, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype61, int32(req.MainlineId))
return
}

View File

@ -0,0 +1,65 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetRewardCheck(session comm.IUserSession, req *pb.MainlineGetRewardReq) (code pb.ErrorCode) {
if req.ChapterObj == "" {
code = pb.ErrorCode_ReqParameterError
}
return
}
///获取主线关卡信息
func (this *apiComp) GetReward(session comm.IUserSession, req *pb.MainlineGetRewardReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.MainlineGetRewardResp{}
code = this.GetRewardCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_obj := this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj)
if _obj == nil {
code = pb.ErrorCode_DBError
return
}
if _obj.AwaredID == pb.AwaredType_TypeReceived {
code = pb.ErrorCode_MainlineRepeatReward // 重复领奖
return
}
if _obj.AwaredID != pb.AwaredType_TypeAvailable {
code = pb.ErrorCode_MainlineCompleteReward // 通关才能领奖
return
}
// 校验是不是通关了
chaptConfig := this.module.configure.GetMainlineChapter(int32(_obj.ChapterId)) // 根据配置文件找
if chaptConfig == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
_obj.AwaredID = pb.AwaredType_TypeReceived // 设置领奖标记
update := map[string]interface{}{
"awaredID": _obj.AwaredID,
}
// 发奖
code = this.module.DispenseRes(session, chaptConfig.Award, true)
if code != pb.ErrorCode_Success {
return
}
err := this.module.modelMainline.modifyMainlineData(session.GetUserId(), _obj.Id, update)
if err != nil {
code = pb.ErrorCode_DBError
return
}
rsp.Data = _obj
session.SendMsg(string(this.module.GetType()), MainlineGetRewardResp, rsp)
return
}

View File

@ -0,0 +1,47 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.MainlineGetListReq) (code pb.ErrorCode) {
return
}
///获取主线关卡信息
func (this *apiComp) GetList(session comm.IUserSession, req *pb.MainlineGetListReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.MainlineGetListResp{}
code = this.GetListCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
list, err := this.module.modelMainline.getMainlineList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
if len(list) == 0 { // 如果数量为0 则默认创建一条数据
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = 1 // 默认第一章节
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_data.Intensity = 1 // 难度1
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
list = append(list, _data)
}
rsp.Data = list
session.SendMsg(string(this.module.GetType()), MainlineGetListResp, &pb.MainlineGetListResp{Data: rsp.Data})
return
}

View File

@ -0,0 +1,92 @@
package mline
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"sync"
)
const (
game_mainlinechapter = "game_mainlinechapter.json"
game_mainline = "game_mainline.json"
)
///配置管理基础组件
type configureComp struct {
modules.MCompConfigure
module *Mainline
hlock sync.RWMutex
_mapMainline map[int64]*cfg.GameMainlineData
}
//组件初始化接口
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Mainline)
err = this.LoadMultiConfigure(map[string]interface{}{
game_mainlinechapter: cfg.NewGameMainlineChapter,
})
this._mapMainline = make(map[int64]*cfg.GameMainlineData, 0)
configure.RegisterConfigure(game_mainline, cfg.NewGameMainline, this.GetMainline)
return
}
func (this *configureComp) GetMainline() {
if v, err := this.GetConfigure(game_mainline); err == nil {
if configure, ok := v.(*cfg.GameMainline); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
for _, value := range configure.GetDataList() {
this._mapMainline[int64(value.Id<<16)+int64(value.Intensity)] = value
}
return
}
} else {
log.Errorf("get game_mainline conf err:%v", err)
}
return
}
// id + intensity
func (this *configureComp) GetMainlineConfigData(id, intensity int32) *cfg.GameMainlineData {
return this._mapMainline[int64(id<<16)+int64(intensity)]
}
//读取配置数据
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name)
}
func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.GameMainlineChapterData) {
if v, err := this.GetConfigure(game_mainlinechapter); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.GameMainlineChapter
ok bool
)
if configure, ok = v.(*cfg.GameMainlineChapter); !ok {
this.module.Errorf("%T no is *cfg.Game_MainlineChapterData", v)
return
}
data = configure.Get(int(id - 1))
}
return
}
// 获取章节数量
func (this *configureComp) GetMaxMainlineChapter() int32 {
if v, err := this.GetConfigure(game_mainlinechapter); err == nil {
if configure, ok := v.(*cfg.GameMainlineChapter); ok {
return int32(len(configure.GetDataList()))
}
}
return 0
}

View File

@ -0,0 +1,63 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
)
type ModelMainline struct {
modules.MCompModel
module *Mainline
}
func (this *ModelMainline) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = comm.TableMainline
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Mainline)
return
}
// 获取章节信息
func (this *ModelMainline) getMainlineList(uid string) (storys []*pb.DBMainline, err error) {
storys = make([]*pb.DBMainline, 0)
err = this.GetList(uid, &storys)
return
}
// 修改章节信息
func (this *ModelMainline) modifyMainlineData(uid string, objid string, data map[string]interface{}) error {
return this.module.modelMainline.ChangeList(uid, objid, data)
}
// 增加新的章节数据
func (this *ModelMainline) addNewChapter(uId string, data map[string]interface{}) (err error) {
if err = this.AddLists(uId, data); err != nil {
this.module.Errorf("err:%v", err)
return
}
return nil
}
// 获取指定章节数据
func (this *ModelMainline) getOneChapterInfo(uid, obj string) *pb.DBMainline {
data := &pb.DBMainline{}
err := this.module.modelMainline.GetListObj(uid, obj, data)
if err != nil {
this.module.Errorf("%v", err)
return nil
}
return data
}
// 增加新的章节数据
func (this *ModelMainline) cleanChapter(uId string) (err error) {
if err = this.DelByUId(uId); err != nil {
this.module.Errorf("err:%v", err)
return
}
return nil
}

201
modules/mline/module.go Normal file
View File

@ -0,0 +1,201 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"sort"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type Mainline struct {
modules.ModuleBase
modelMainline *ModelMainline
service core.IService
api *apiComp
configure *configureComp
battle comm.IBattle
}
func NewModule() core.IModule {
return &Mainline{}
}
func (this *Mainline) GetType() core.M_Modules {
return comm.ModuleMainline
}
func (this *Mainline) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
this.service = service
return
}
func (this *Mainline) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelMainline = this.RegisterComp(new(ModelMainline)).(*ModelMainline)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
// 接口信息 给其他模块调用 用来修改主线关卡信息
func (this *Mainline) ModifyMainlineData(uid string, id int32) (code pb.ErrorCode) {
conf := this.configure.GetMainlineConfigData(id, 1)
list, err := this.modelMainline.getMainlineList(uid)
if err != nil {
code = pb.ErrorCode_DBError
return
}
for _, v := range list {
if v.ChapterId == conf.Chapter {
data := make(map[string]interface{}, 0)
data["mainlineId"] = id
data["chapterId"] = v.ChapterId
this.modelMainline.modifyMainlineData(uid, v.Id, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
}
//add
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = conf.Chapter
_data.MainlineId = conf.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = 1 // 难度1
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
return
}
func (this *Mainline) GetUsermainLineData(uid string) (mainlineId int32) {
_szData, err := this.modelMainline.getMainlineList(uid)
if err == nil {
sort.SliceStable(_szData, func(i, j int) bool { // 排序
return _szData[i].ChapterId > _szData[j].ChapterId
})
}
return
}
func (this *Mainline) Start() (err error) {
err = this.ModuleBase.Start()
var module core.IModule
if module, err = this.service.GetModule(comm.ModuleBattle); err != nil {
return
}
this.battle = module.(comm.IBattle)
return
}
//红点查询
func (this *Mainline) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]bool) {
reddot = make(map[comm.ReddotType]bool)
for _, v := range rid {
if v == comm.Reddot5 {
reddot[comm.Reddot5] = this.CheckPoint(session.GetUserId())
break
}
}
return
}
// 红点检测
func (this *Mainline) CheckPoint(uid string) bool {
list, err := this.modelMainline.getMainlineList(uid)
if err != nil {
return false
}
for _, v := range list {
conf := this.configure.GetMainlineChapter(v.ChapterId)
if conf == nil {
continue
}
if len(conf.Episode) != len(v.BranchID) {
return true
}
}
return false
}
// 参数 难度 + 关卡id
func (this *Mainline) ModifyMainlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode) {
conf := this.configure.GetMainlineConfigData(id, nandu)
if conf == nil {
code = pb.ErrorCode_ConfigNoFound // 找不到配置
return
}
// 已现在设置的为准 删除之前的所有数据
this.modelMainline.cleanChapter(uid)
// 获取当前的章节数据
jumpCap := conf.Chapter
// 先加所有难度小于1 的章节
for ndIndex := 1; ndIndex <= int(nandu)-1; ndIndex++ {
max := this.configure.GetMaxMainlineChapter()
for i := 1; i <= int(max); i++ {
confCap := this.configure.GetMainlineChapter(int32(i))
//_conf := this.configure.GetMainlineConfigData(int32(i), int32(ndIndex))
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = int32(i)
_data.MainlineId = confCap.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = int32(ndIndex) // 难度1
for _, v := range confCap.Episode {
_data.BranchID = append(_data.BranchID, v)
}
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
}
}
// 加当前难度 的章节数据
for i := 1; i <= int(jumpCap-1); i++ {
confCap := this.configure.GetMainlineChapter(int32(i))
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = int32(i)
_data.MainlineId = confCap.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = int32(nandu) // 难度1
for _, v := range confCap.Episode {
_data.BranchID = append(_data.BranchID, v)
}
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
}
// 加当前难度 当前章节的前置关卡数据
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = conf.Chapter
_data.MainlineId = conf.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = int32(nandu) // 难度1
confCap := this.configure.GetMainlineChapter(int32(conf.Chapter))
for _, v := range confCap.Episode {
if v <= id {
_data.BranchID = append(_data.BranchID, v)
}
}
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
return
}

View File

@ -25,8 +25,11 @@ func (this *apiComp) Funclist(session comm.IUserSession, req *pb.SysFuncListReq)
confList := this.moduleSys.configure.getOpencondList()
for _, v := range confList {
// 返回未开启的功能列表
if user.Lv < v.Main {
for _, conf := range v.Main {
if conf.Key == "platlv" && user.Lv < conf.Param {
funcList = append(funcList, v.Id)
continue
}
}
}
rsp.FuncIds = funcList

View File

@ -27,12 +27,14 @@ func (this *ModelSys) IsAccess(funName string, uid string) (code pb.ErrorCode) {
if user != nil {
conf := this.moduleSys.configure.getFuncCfg(funName)
if conf != nil {
if user.Lv < conf.Main{
for _, v := range conf.Main {
if v.Key == "platlv" && user.Lv < v.Param {
code = pb.ErrorCode_NoOpened
return
}
}
}
}
return
}

View File

@ -170,6 +170,6 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.TrollBuyOrSell
this.module.record.AddTrollRecord(session.GetUserId(), gold, trolltrain.TarinPos)
}
this.module.ModuleRtask.SendToRtask(session, comm.Rtype151, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype153, 1)
return
}

View File

@ -78,8 +78,11 @@ func (this *configureComp) FindFunc(lv int32) (funcIds []string) {
return nil
}
for _, d := range data.GetDataList() {
if d.Main == lv {
for _, v := range d.Main {
if v.Key == "platlv" && v.Param == lv {
funcIds = append(funcIds, d.Id)
continue
}
}
}
}

227
pb/mline_db.pb.go Normal file
View File

@ -0,0 +1,227 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: mline/mline_db.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DBMline struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
CType int32 `protobuf:"varint,3,opt,name=cType,proto3" json:"cType" bson:"cType"` //章节ID
ChapterId int32 `protobuf:"varint,4,opt,name=chapterId,proto3" json:"chapterId" bson:"chapterId"` //章节ID
StageId int32 `protobuf:"varint,5,opt,name=stageId,proto3" json:"stageId" bson:"stageId"` //主线关卡ID
Star map[int32]int32 `protobuf:"bytes,6,rep,name=star,proto3" json:"star" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 关卡对应的星级 (key 关卡ID value 星数)
Awared map[int32]bool `protobuf:"bytes,7,rep,name=awared,proto3" json:"awared" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"awared"` //(key 配置表星级)
Ps map[int32]int32 `protobuf:"bytes,8,rep,name=ps,proto3" json:"ps" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 预扣的体力
}
func (x *DBMline) Reset() {
*x = DBMline{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_db_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBMline) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBMline) ProtoMessage() {}
func (x *DBMline) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_db_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBMline.ProtoReflect.Descriptor instead.
func (*DBMline) Descriptor() ([]byte, []int) {
return file_mline_mline_db_proto_rawDescGZIP(), []int{0}
}
func (x *DBMline) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBMline) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBMline) GetCType() int32 {
if x != nil {
return x.CType
}
return 0
}
func (x *DBMline) GetChapterId() int32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *DBMline) GetStageId() int32 {
if x != nil {
return x.StageId
}
return 0
}
func (x *DBMline) GetStar() map[int32]int32 {
if x != nil {
return x.Star
}
return nil
}
func (x *DBMline) GetAwared() map[int32]bool {
if x != nil {
return x.Awared
}
return nil
}
func (x *DBMline) GetPs() map[int32]int32 {
if x != nil {
return x.Ps
}
return nil
}
var File_mline_mline_db_proto protoreflect.FileDescriptor
var file_mline_mline_db_proto_rawDesc = []byte{
0x0a, 0x14, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x4d, 0x6c, 0x69,
0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68,
0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63,
0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67,
0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65,
0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x77,
0x61, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x4d,
0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x61, 0x77, 0x61, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x08,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x50,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x70, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x53, 0x74,
0x61, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x41, 0x77, 0x61, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x35,
0x0a, 0x07, 0x50, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_mline_mline_db_proto_rawDescOnce sync.Once
file_mline_mline_db_proto_rawDescData = file_mline_mline_db_proto_rawDesc
)
func file_mline_mline_db_proto_rawDescGZIP() []byte {
file_mline_mline_db_proto_rawDescOnce.Do(func() {
file_mline_mline_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_mline_mline_db_proto_rawDescData)
})
return file_mline_mline_db_proto_rawDescData
}
var file_mline_mline_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_mline_mline_db_proto_goTypes = []interface{}{
(*DBMline)(nil), // 0: DBMline
nil, // 1: DBMline.StarEntry
nil, // 2: DBMline.AwaredEntry
nil, // 3: DBMline.PsEntry
}
var file_mline_mline_db_proto_depIdxs = []int32{
1, // 0: DBMline.star:type_name -> DBMline.StarEntry
2, // 1: DBMline.awared:type_name -> DBMline.AwaredEntry
3, // 2: DBMline.ps:type_name -> DBMline.PsEntry
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
}
func init() { file_mline_mline_db_proto_init() }
func file_mline_mline_db_proto_init() {
if File_mline_mline_db_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_mline_mline_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBMline); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mline_mline_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mline_mline_db_proto_goTypes,
DependencyIndexes: file_mline_mline_db_proto_depIdxs,
MessageInfos: file_mline_mline_db_proto_msgTypes,
}.Build()
File_mline_mline_db_proto = out.File
file_mline_mline_db_proto_rawDesc = nil
file_mline_mline_db_proto_goTypes = nil
file_mline_mline_db_proto_depIdxs = nil
}

643
pb/mline_msg.pb.go Normal file
View File

@ -0,0 +1,643 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: mline/mline_msg.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 查询关卡进度
type MlineGetListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CType int32 `protobuf:"varint,1,opt,name=cType,proto3" json:"cType"` // 章节类型
}
func (x *MlineGetListReq) Reset() {
*x = MlineGetListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineGetListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineGetListReq) ProtoMessage() {}
func (x *MlineGetListReq) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineGetListReq.ProtoReflect.Descriptor instead.
func (*MlineGetListReq) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{0}
}
func (x *MlineGetListReq) GetCType() int32 {
if x != nil {
return x.CType
}
return 0
}
// 返回进度信息
type MlineGetListResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data []*DBMline `protobuf:"bytes,1,rep,name=data,proto3" json:"data"`
}
func (x *MlineGetListResp) Reset() {
*x = MlineGetListResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineGetListResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineGetListResp) ProtoMessage() {}
func (x *MlineGetListResp) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineGetListResp.ProtoReflect.Descriptor instead.
func (*MlineGetListResp) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{1}
}
func (x *MlineGetListResp) GetData() []*DBMline {
if x != nil {
return x.Data
}
return nil
}
// 领取关卡宝箱
type MlineGetRewardReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CId int32 `protobuf:"varint,1,opt,name=cId,proto3" json:"cId"` // 章节配置表唯一ID
Star int32 `protobuf:"varint,2,opt,name=star,proto3" json:"star"` // 星级奖励
}
func (x *MlineGetRewardReq) Reset() {
*x = MlineGetRewardReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineGetRewardReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineGetRewardReq) ProtoMessage() {}
func (x *MlineGetRewardReq) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineGetRewardReq.ProtoReflect.Descriptor instead.
func (*MlineGetRewardReq) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{2}
}
func (x *MlineGetRewardReq) GetCId() int32 {
if x != nil {
return x.CId
}
return 0
}
func (x *MlineGetRewardReq) GetStar() int32 {
if x != nil {
return x.Star
}
return 0
}
type MlineGetRewardResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBMline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
}
func (x *MlineGetRewardResp) Reset() {
*x = MlineGetRewardResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineGetRewardResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineGetRewardResp) ProtoMessage() {}
func (x *MlineGetRewardResp) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineGetRewardResp.ProtoReflect.Descriptor instead.
func (*MlineGetRewardResp) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{3}
}
func (x *MlineGetRewardResp) GetData() *DBMline {
if x != nil {
return x.Data
}
return nil
}
// 挑战关卡
type MlineChallengeReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StageId int32 `protobuf:"varint,1,opt,name=stageId,proto3" json:"stageId"` // 小关ID
Battle *BattleFormation `protobuf:"bytes,2,opt,name=battle,proto3" json:"battle"`
}
func (x *MlineChallengeReq) Reset() {
*x = MlineChallengeReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineChallengeReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineChallengeReq) ProtoMessage() {}
func (x *MlineChallengeReq) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineChallengeReq.ProtoReflect.Descriptor instead.
func (*MlineChallengeReq) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{4}
}
func (x *MlineChallengeReq) GetStageId() int32 {
if x != nil {
return x.StageId
}
return 0
}
func (x *MlineChallengeReq) GetBattle() *BattleFormation {
if x != nil {
return x.Battle
}
return nil
}
type MlineChallengeResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Info *BattleInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info"`
StageId int32 `protobuf:"varint,2,opt,name=stageId,proto3" json:"stageId"` // 小关ID
}
func (x *MlineChallengeResp) Reset() {
*x = MlineChallengeResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineChallengeResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineChallengeResp) ProtoMessage() {}
func (x *MlineChallengeResp) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineChallengeResp.ProtoReflect.Descriptor instead.
func (*MlineChallengeResp) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{5}
}
func (x *MlineChallengeResp) GetInfo() *BattleInfo {
if x != nil {
return x.Info
}
return nil
}
func (x *MlineChallengeResp) GetStageId() int32 {
if x != nil {
return x.StageId
}
return 0
}
// 客户端通知服务器打赢了
type MlineChallengeOverReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StageId int32 `protobuf:"varint,1,opt,name=stageId,proto3" json:"stageId"` // 小关ID
Report *BattleReport `protobuf:"bytes,3,opt,name=report,proto3" json:"report"` //战报
}
func (x *MlineChallengeOverReq) Reset() {
*x = MlineChallengeOverReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineChallengeOverReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineChallengeOverReq) ProtoMessage() {}
func (x *MlineChallengeOverReq) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineChallengeOverReq.ProtoReflect.Descriptor instead.
func (*MlineChallengeOverReq) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{6}
}
func (x *MlineChallengeOverReq) GetStageId() int32 {
if x != nil {
return x.StageId
}
return 0
}
func (x *MlineChallengeOverReq) GetReport() *BattleReport {
if x != nil {
return x.Report
}
return nil
}
type MlineChallengeOverResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBMline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
}
func (x *MlineChallengeOverResp) Reset() {
*x = MlineChallengeOverResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineChallengeOverResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineChallengeOverResp) ProtoMessage() {}
func (x *MlineChallengeOverResp) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MlineChallengeOverResp.ProtoReflect.Descriptor instead.
func (*MlineChallengeOverResp) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{7}
}
func (x *MlineChallengeOverResp) GetData() *DBMline {
if x != nil {
return x.Data
}
return nil
}
var File_mline_mline_msg_proto protoreflect.FileDescriptor
var file_mline_mline_msg_proto_rawDesc = []byte{
0x0a, 0x15, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x73,
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d,
0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x27, 0x0a, 0x0f, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47,
0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x54, 0x79,
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22,
0x30, 0x0a, 0x10, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74,
0x61, 0x22, 0x39, 0x0a, 0x11, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77,
0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x22, 0x32, 0x0a, 0x12,
0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65,
0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x08, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
0x22, 0x57, 0x0a, 0x11, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e,
0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12,
0x28, 0x0a, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x4f, 0x0a, 0x12, 0x4d, 0x6c, 0x69,
0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x15, 0x4d, 0x6c,
0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72,
0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a,
0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65,
0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x16, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c,
0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44,
0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_mline_mline_msg_proto_rawDescOnce sync.Once
file_mline_mline_msg_proto_rawDescData = file_mline_mline_msg_proto_rawDesc
)
func file_mline_mline_msg_proto_rawDescGZIP() []byte {
file_mline_mline_msg_proto_rawDescOnce.Do(func() {
file_mline_mline_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_mline_mline_msg_proto_rawDescData)
})
return file_mline_mline_msg_proto_rawDescData
}
var file_mline_mline_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_mline_mline_msg_proto_goTypes = []interface{}{
(*MlineGetListReq)(nil), // 0: MlineGetListReq
(*MlineGetListResp)(nil), // 1: MlineGetListResp
(*MlineGetRewardReq)(nil), // 2: MlineGetRewardReq
(*MlineGetRewardResp)(nil), // 3: MlineGetRewardResp
(*MlineChallengeReq)(nil), // 4: MlineChallengeReq
(*MlineChallengeResp)(nil), // 5: MlineChallengeResp
(*MlineChallengeOverReq)(nil), // 6: MlineChallengeOverReq
(*MlineChallengeOverResp)(nil), // 7: MlineChallengeOverResp
(*DBMline)(nil), // 8: DBMline
(*BattleFormation)(nil), // 9: BattleFormation
(*BattleInfo)(nil), // 10: BattleInfo
(*BattleReport)(nil), // 11: BattleReport
}
var file_mline_mline_msg_proto_depIdxs = []int32{
8, // 0: MlineGetListResp.data:type_name -> DBMline
8, // 1: MlineGetRewardResp.data:type_name -> DBMline
9, // 2: MlineChallengeReq.battle:type_name -> BattleFormation
10, // 3: MlineChallengeResp.info:type_name -> BattleInfo
11, // 4: MlineChallengeOverReq.report:type_name -> BattleReport
8, // 5: MlineChallengeOverResp.data:type_name -> DBMline
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
}
func init() { file_mline_mline_msg_proto_init() }
func file_mline_mline_msg_proto_init() {
if File_mline_mline_msg_proto != nil {
return
}
file_mline_mline_db_proto_init()
file_battle_battle_msg_proto_init()
if !protoimpl.UnsafeEnabled {
file_mline_mline_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineGetListReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineGetListResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineGetRewardReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineGetRewardResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineChallengeReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineChallengeResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineChallengeOverReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineChallengeOverResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mline_mline_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 8,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mline_mline_msg_proto_goTypes,
DependencyIndexes: file_mline_mline_msg_proto_depIdxs,
MessageInfos: file_mline_mline_msg_proto_msgTypes,
}.Build()
File_mline_mline_msg_proto = out.File
file_mline_mline_msg_proto_rawDesc = nil
file_mline_mline_msg_proto_goTypes = nil
file_mline_mline_msg_proto_depIdxs = nil
}

View File

@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameOpenedCond struct {
Key string
Param int32
}
const TypeId_GameOpenedCond = -2110428505
func (*GameOpenedCond) GetTypeId() int32 {
return -2110428505
}
func (_v *GameOpenedCond)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["param"].(float64); !_ok_ { err = errors.New("param error"); return }; _v.Param = int32(_tempNum_) }
return
}
func DeserializeGameOpenedCond(_buf map[string]interface{}) (*GameOpenedCond, error) {
v := &GameOpenedCond{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -57,7 +57,6 @@ type Tables struct {
Playerlv *GamePlayerlv
Facemod *GameFacemod
Msgdistrib *GameMsgdistrib
TestFlow *GameTestFlow
Opencond *GameOpencond
Stroy *GameStroy
Pagoda *GamePagoda
@ -435,12 +434,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.Msgdistrib, err = NewGameMsgdistrib(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_testflow") ; err != nil {
return nil, err
}
if tables.TestFlow, err = NewGameTestFlow(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_opencond") ; err != nil {
return nil, err
}

View File

@ -13,7 +13,7 @@ import "errors"
type GameOpencondData struct {
Id string
Name string
Main int32
Main []*GameOpenedCond
Optional string
Wkqbx int32
Kqbx int32
@ -31,7 +31,20 @@ func (*GameOpencondData) GetTypeId() int32 {
func (_v *GameOpencondData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["main"].(float64); !_ok_ { err = errors.New("main error"); return }; _v.Main = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["main"].([]interface{}); !_ok_ { err = errors.New("main error"); return }
_v.Main = make([]*GameOpenedCond, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *GameOpenedCond
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameOpenedCond(_x_); err != nil { return } }
_v.Main = append(_v.Main, _list_v_)
}
}
{ var _ok_ bool; if _v.Optional, _ok_ = _buf["optional"].(string); !_ok_ { err = errors.New("optional error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["wkqbx"].(float64); !_ok_ { err = errors.New("wkqbx error"); return }; _v.Wkqbx = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["kqbx"].(float64); !_ok_ { err = errors.New("kqbx error"); return }; _v.Kqbx = int32(_tempNum_) }