diff --git a/bin/json/game_dispatch_task.json b/bin/json/game_dispatch_task.json
index 9aea54395..eeeb6157e 100644
--- a/bin/json/game_dispatch_task.json
+++ b/bin/json/game_dispatch_task.json
@@ -14,12 +14,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -51,12 +55,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -88,12 +96,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -125,12 +137,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -162,12 +178,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -199,12 +219,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -236,12 +260,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -273,12 +301,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -310,12 +342,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -347,12 +383,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -384,12 +424,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -421,12 +465,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -458,12 +506,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -495,12 +547,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -532,12 +588,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -569,12 +629,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -606,12 +670,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -643,12 +711,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -680,12 +752,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -717,12 +793,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -754,12 +834,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -791,12 +875,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -828,12 +916,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
diff --git a/cmd/v2/ui/views/smithy.go b/cmd/v2/ui/views/smithy.go
index bd6d1f99f..7e989925e 100644
--- a/cmd/v2/ui/views/smithy.go
+++ b/cmd/v2/ui/views/smithy.go
@@ -34,7 +34,21 @@ func (s *SmithyView) CreateView(t *model.TestCase) fyne.CanvasObject {
t.MainType,
"jiaoyi",
&pb.SmithySellReq{
- EquipIds: []string{},
+ EquipIds: []string{},
+ CustomerId: 1,
+ },
+ ); err != nil {
+ logrus.Error(err)
+ return
+ }
+ }
+
+ //拒绝
+ refuse := func() {
+ if err := service.GetPttService().SendToClient(
+ t.MainType,
+ "refuse",
+ &pb.SmithyRefuseReq{
CustomerId: 1,
},
); err != nil {
@@ -43,9 +57,10 @@ func (s *SmithyView) CreateView(t *model.TestCase) fyne.CanvasObject {
}
}
customerBtn := widget.NewButton("顾客", loadCustomer)
+ refuseBtn := widget.NewButton("拒绝", refuse)
jiaoyiBtn := widget.NewButton("交易", jiaoyi)
- btns := container.NewHBox(customerBtn, jiaoyiBtn)
+ btns := container.NewHBox(customerBtn, jiaoyiBtn, refuseBtn)
c := container.NewBorder(btns, nil, nil, nil)
return c
}
diff --git a/comm/weight.go b/comm/weight.go
new file mode 100644
index 000000000..0c08b97ff
--- /dev/null
+++ b/comm/weight.go
@@ -0,0 +1,36 @@
+package comm
+
+import "math/rand"
+
+type WeightItem struct {
+ Id interface{}
+ Weight int
+}
+
+// 权重项目
+type WeightedRandom struct {
+ items []*WeightItem
+ totalWeight int
+}
+
+func NewWeightedRandom(items []*WeightItem) *WeightedRandom {
+ wr := &WeightedRandom{items: items}
+ for _, item := range wr.items {
+ wr.totalWeight += int(item.Weight)
+ }
+ return wr
+}
+
+func (wr *WeightedRandom) Pick() *WeightItem {
+ if wr.totalWeight <= 0 {
+ return nil
+ }
+ randomNumber := rand.Intn(wr.totalWeight)
+ for _, item := range wr.items {
+ if randomNumber < int(item.Weight) {
+ return item
+ }
+ randomNumber -= int(item.Weight)
+ }
+ return nil
+}
diff --git a/modules/dispatch/api_do.go b/modules/dispatch/api_do.go
new file mode 100644
index 000000000..113dbcd44
--- /dev/null
+++ b/modules/dispatch/api_do.go
@@ -0,0 +1,32 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "github.com/golang/protobuf/proto"
+)
+
+// 派遣
+
+func (a *apiComp) DoCheck(session comm.IUserSession, req *pb.DispatchDoReq) (code pb.ErrorCode) {
+ if len(req.HeroId) == 0 || req.TaskId == 0 {
+ return
+ }
+ return
+}
+
+func (a *apiComp) Do(session comm.IUserSession, req *pb.DispatchDoReq) (code pb.ErrorCode, data proto.Message) {
+ if code = a.DoCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+
+ if err := a.module.modelDispatch.dispatch(session.GetUserId(), req.TaskId, req.HeroId); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ rsp := &pb.DispatchDoResp{}
+
+ session.SendMsg(string(a.module.GetType()), "do", rsp)
+ return
+}
diff --git a/modules/dispatch/api_notice.go b/modules/dispatch/api_notice.go
new file mode 100644
index 000000000..fa94e54bf
--- /dev/null
+++ b/modules/dispatch/api_notice.go
@@ -0,0 +1,29 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+// 公告板信息
+
+func (a *apiComp) NoticeCheck(session comm.IUserSession, req *pb.DispatchNoticeReq) (code pb.ErrorCode) {
+ return
+}
+
+func (a *apiComp) Notice(session comm.IUserSession, req *pb.DispatchNoticeReq) (code pb.ErrorCode, data proto.Message) {
+ d := a.module.modelDispatch.getDBDispatch(session.GetUserId())
+
+ if d == nil {
+ d = a.module.modelDispatch.initDispatch(session.GetUserId())
+ return
+ }
+ rsp := &pb.DispatchNoticeResp{
+ Dispatch: d,
+ }
+
+ session.SendMsg(string(a.module.GetType()), "notice", rsp)
+ return
+}
diff --git a/modules/dispatch/api_receive.go b/modules/dispatch/api_receive.go
new file mode 100644
index 000000000..a66ca3e7a
--- /dev/null
+++ b/modules/dispatch/api_receive.go
@@ -0,0 +1,30 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+// 领取派遣奖励
+
+func (a *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.DispatchReceiveReq) (code pb.ErrorCode) {
+ return
+}
+
+func (a *apiComp) Receive(session comm.IUserSession, req *pb.DispatchReceiveReq) (code pb.ErrorCode, data proto.Message) {
+
+ d := a.module.modelDispatch.getDBDispatch(session.GetUserId())
+ if d == nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+
+ a.module.modelDispatch.taskRandom(session.GetUserId(), d.Nb.Lv)
+
+ rsp := &pb.DispatchReceiveResp{}
+
+ session.SendMsg(string(a.module.GetType()), "receive", rsp)
+ return
+}
diff --git a/modules/dispatch/api_refresh.go b/modules/dispatch/api_refresh.go
new file mode 100644
index 000000000..3c38c2583
--- /dev/null
+++ b/modules/dispatch/api_refresh.go
@@ -0,0 +1,21 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+// 刷新
+func (a *apiComp) RefreshCheck(session comm.IUserSession, req *pb.DispatchRefreshReq) (code pb.ErrorCode) {
+ return
+}
+
+func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) (code pb.ErrorCode, data proto.Message) {
+
+ rsp := &pb.DispatchRefreshResp{}
+
+ session.SendMsg(string(a.module.GetType()), "refresh", rsp)
+ return
+}
diff --git a/modules/dispatch/configure.go b/modules/dispatch/configure.go
new file mode 100644
index 000000000..150f8c928
--- /dev/null
+++ b/modules/dispatch/configure.go
@@ -0,0 +1,84 @@
+package dispatch
+
+import (
+ "fmt"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ cfg "go_dreamfactory/sys/configure/structs"
+)
+
+const (
+ gameDispatchLv = "game_dispatch_lv.json"
+ gameDispatchTask = "game_dispatch_task.json"
+)
+
+type configureComp struct {
+ modules.MCompConfigure
+}
+
+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)
+ err = this.LoadMultiConfigure(map[string]interface{}{
+ gameDispatchLv: cfg.NewGameDispatch_Lv,
+ gameDispatchTask: cfg.NewGameDispatch_Task,
+ })
+ return
+}
+
+// 公告栏配置
+func (this *configureComp) getDispatchLvConf(lv int32) (data *cfg.GameDispatch_LvData, err error) {
+ var v interface{}
+
+ if v, err = this.GetConfigure(gameDispatchLv); err != nil {
+ err = fmt.Errorf("%T no is *cfg.GameDispatchLv", v)
+ return
+ } else {
+ d, ok := v.(*cfg.GameDispatch_Lv)
+ if !ok {
+ err = fmt.Errorf("%T is not *cfg.GameDispatchLv", v)
+ return
+ }
+
+ if data, ok = d.GetDataMap()[lv]; ok {
+ return
+ }
+ }
+ return
+}
+
+//任务配置
+func(this *configureComp) getDispatchTaskConf(taskId int32) (data *cfg.GameDispatch_TaskData,err error) {
+ var v interface{}
+
+ if v, err = this.GetConfigure(gameDispatchTask); err != nil {
+ err = fmt.Errorf("%T no is *cfg.GameDispatchTask", v)
+ return
+ } else {
+ d, ok := v.(*cfg.GameDispatch_Task)
+ if !ok {
+ err = fmt.Errorf("%T is not *cfg.GameDispatchTask", v)
+ return
+ }
+
+ if data, ok = d.GetDataMap()[taskId]; ok {
+ return
+ }
+ }
+ return
+}
+
+// 任务列表
+func (this *configureComp) getDispatchListConf() (list []*cfg.GameDispatch_TaskData) {
+ if v, err := this.GetConfigure(gameDispatchTask); err != nil {
+ return
+ } else {
+ d, ok := v.(*cfg.GameDispatch_Task)
+ if !ok {
+ err = fmt.Errorf("%T is not *cfg.GameDispatch_Task", v)
+ return
+ }
+
+ list = d.GetDataList()
+ }
+ return
+}
diff --git a/modules/dispatch/model_dispatch.go b/modules/dispatch/model_dispatch.go
index 347acabc4..a92f66cf8 100644
--- a/modules/dispatch/model_dispatch.go
+++ b/modules/dispatch/model_dispatch.go
@@ -1,9 +1,13 @@
package dispatch
import (
+ "errors"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/sys/configure"
+ "go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
@@ -26,3 +30,177 @@ func (this *modelDispatch) Init(service core.IService, module core.IModule, comp
return
}
+
+func (this *modelDispatch) initDispatch(uid string) (dis *pb.DBDispatch) {
+ taskIds, err := this.taskRandom(uid, 1)
+ if err != nil {
+ return
+ }
+ if len(taskIds) == 0 {
+ return
+ }
+
+ dis = &pb.DBDispatch{
+ Uid: uid,
+ Ticket: 6,
+ Nb: &pb.Noticeboard{
+ Lv: 1,
+ },
+ }
+
+ for _, v := range taskIds {
+ taskConf, err := this.module.configure.getDispatchTaskConf(v)
+ if err != nil {
+ continue
+ }
+ //接续截至时间
+ duration := configure.Now().Unix() + int64(taskConf.Taskcd)
+ dis.Nb.Tasks = append(dis.Nb.Tasks, &pb.DispatchTask{
+ TaskId: v,
+ Duration: duration,
+ })
+ }
+
+ if err := this.Add(uid, dis); err != nil {
+ return
+ }
+
+ return
+}
+
+// 获取派遣数据
+func (this *modelDispatch) getDBDispatch(uid string) *pb.DBDispatch {
+ dis := &pb.DBDispatch{}
+ if err := this.Get(uid, dis); err != nil {
+ return nil
+ }
+ return nil
+}
+
+// 随机任务
+func (this *modelDispatch) taskRandom(uid string, noticeLv int32) (taskIds []int32, err error) {
+ d := this.getDBDispatch(uid)
+ if d == nil {
+ return nil, errors.New("no data")
+ }
+
+ if d.Nb == nil {
+ return nil, errors.New("notice is nil")
+ }
+
+ conf, err := this.module.configure.getDispatchLvConf(noticeLv)
+ if err != nil {
+ return nil, err
+ }
+
+ var items []*comm.WeightItem
+ for i, v := range conf.Probability {
+ items = append(items, &comm.WeightItem{Id: (i + 1), Weight: int(v)})
+ }
+
+ wr := comm.NewWeightedRandom(items)
+ //任务类型
+ var taskType int
+ if c := wr.Pick(); c != nil {
+ taskType = c.Id.(int)
+ }
+
+ confList := this.module.configure.getDispatchListConf()
+ var tIds []int32
+ for _, v := range confList {
+ if int(v.Type) == taskType {
+ tIds = append(tIds, v.Id)
+ }
+ }
+
+ //判断随机数量
+ var n int
+ n = len(d.Nb.Tasks)
+
+ if len(taskIds) > 0 {
+ ids := utils.RandomNumbers(0, len(tIds), n)
+ for i := 0; i < len(ids); i++ {
+ taskIds = append(taskIds, tIds[i])
+ }
+ }
+ return
+}
+
+// 验证英雄的条件
+func (this *modelDispatch) validHeroCond(uid string, taskId int32, heroId string) (ok bool, err error) {
+ //taskConf
+ gd, err := this.module.configure.getDispatchTaskConf(taskId)
+ if err != nil {
+ return
+ }
+
+ //获取英雄信息
+ hero, code := this.module.ModuleHero.GetHeroByObjID(uid, heroId)
+
+ //校验英雄的条件
+ if code == pb.ErrorCode_Success && hero != nil {
+ for _, v := range gd.Taskreq {
+ switch v.Key {
+ case 1: //lv
+ if hero.Lv >= v.Param {
+ ok = true
+ return
+ }
+ case 2: //star
+ if hero.Star >= v.Param {
+ ok = true
+ return
+ }
+ }
+ }
+ }
+
+ //校验英雄是否已被派遣
+ dispatch := this.getDBDispatch(uid)
+ if dispatch == nil {
+ return
+ }
+
+ for _, v := range dispatch.Nb.Tasks {
+ for _, h := range v.HeroIds {
+ if h == heroId {
+ ok = false
+ return
+ }
+ }
+ }
+
+ return
+}
+
+// 派遣
+func (this *modelDispatch) dispatch(uid string, taskId int32, heroIds []string) error {
+ for _, heroId := range heroIds {
+ if ok, err := this.validHeroCond(uid, taskId, heroId); err == nil {
+ if !ok {
+ return comm.NewCustomError(pb.ErrorCode_DispatchHeroNoReached)
+ }
+ } else {
+ return err
+ }
+ }
+
+ d := this.getDBDispatch(uid)
+ if d == nil {
+ return errors.New("no data")
+ }
+
+ for _, v := range d.Nb.Tasks {
+ if v.TaskId == taskId && v.Status == 0 {
+ v.HeroIds = heroIds
+ }
+ }
+
+ update := map[string]interface{}{
+ "nb": d.Nb.Tasks,
+ }
+ if err := this.Change(uid, update); err != nil {
+ return err
+ }
+ return nil
+}
diff --git a/modules/dispatch/module.go b/modules/dispatch/module.go
index 3ab56bfb5..444974531 100644
--- a/modules/dispatch/module.go
+++ b/modules/dispatch/module.go
@@ -9,19 +9,27 @@ import (
// 派遣
type Dispatch struct {
modules.ModuleBase
- api *apiComp
+ api *apiComp
+ configure *configureComp
+ modelDispatch *modelDispatch
}
func NewModule() core.IModule {
return &Dispatch{}
}
-func (this *Dispatch) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error){
+func (this *Dispatch) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
-
func (this *Dispatch) GetType() core.M_Modules {
return comm.ModuleDispatch
}
+
+func (this *Dispatch) OnInstallComp() {
+ this.ModuleBase.OnInstallComp()
+ this.api = this.RegisterComp(new(apiComp)).(*apiComp)
+ this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
+ this.modelDispatch = this.RegisterComp(new(modelDispatch)).(*modelDispatch)
+}
diff --git a/modules/modulebase.go b/modules/modulebase.go
index c81121b03..0709826d0 100644
--- a/modules/modulebase.go
+++ b/modules/modulebase.go
@@ -141,6 +141,7 @@ func (this *ModuleBase) GetCrossTag() string {
func (this *ModuleBase) GetUserSession(uid string) (session comm.IUserSession, ok bool) {
var udata *pb.CacheUser
if udata = this.ModuleUser.GetUserSession(uid); udata == nil {
+ session = this.scomp.GetUserSession(&pb.CacheUser{Uid: uid})
ok = false
return
}
diff --git a/modules/practice/api_expulsion.go b/modules/practice/api_expulsion.go
index 23f1e15e6..8caf2f54e 100644
--- a/modules/practice/api_expulsion.go
+++ b/modules/practice/api_expulsion.go
@@ -3,6 +3,11 @@ package practice
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
+ "go_dreamfactory/sys/configure"
+ cfg "go_dreamfactory/sys/configure/structs"
+ "math"
+ "math/rand"
+ "time"
"google.golang.org/protobuf/proto"
)
@@ -15,7 +20,164 @@ func (this *apiComp) ExpulsionCheck(session comm.IUserSession, req *pb.PracticeE
///练功请求 驱逐
func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpulsionReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ err error
+ ok bool
+ room *pb.DBPracticeRoom
+ pillar *pb.DBPracticePillar
+ pillarconfigure *cfg.GamePandamasMzData
+ tconfigure *cfg.GamePandamasJxData
+ pconfigure *cfg.GamePandamasJxData
+ _session comm.IUserSession
+ filed string
+ exp int32
+ exp1 int32
+ ants1 []*cfg.Gameatn
+ ants2 []*cfg.Gameatn
+ )
+ if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ pillar = room.Pillarf
+ filed = "pillarf"
+ if pillarconfigure, err = this.module.configure.getGamePandamasMz(pillar.Lv); err != nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+ if pillar.Teacher != "" {
+ if tconfigure, err = this.module.configure.getGamePandamasJx(pillar.Teacher); err != nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+ }
+ if pillar.Prop != "" {
+ if pconfigure, err = this.module.configure.getGamePandamasJx(pillar.Prop); err != nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+ }
+
+ //计算经验收益
+ if configure.Now().After(time.Unix(pillar.Expend, 0)) {
+ minutes := int32(time.Unix(pillar.Expend, 0).Sub(time.Unix(pillar.Start, 0)).Minutes())
+ exp = minutes * pillarconfigure.MinExp
+ } else {
+ minutes := int32(configure.Now().Sub(time.Unix(pillar.Start, 0)).Minutes())
+ exp = minutes * pillarconfigure.MinExp
+ }
+ exp1 += exp
+ //是否可以获得额外收益
+ if configure.Now().After(time.Unix(pillar.End, 0)) {
+ if tconfigure != nil {
+ if tconfigure.Exp > 0 { //经验加成
+ exp1 += int32(math.Floor(float64(exp) * (float64(tconfigure.Exp) / float64(100))))
+ }
+ if len(tconfigure.Ants) > 0 { //额外道具加成
+ ants1 = make([]*cfg.Gameatn, 0)
+ r := rand.New(rand.NewSource(time.Now().Unix()))
+ num := r.Int31n(tconfigure.Num[1]-tconfigure.Num[0]) + tconfigure.Num[0]
+ if r.Int31n(100) < tconfigure.Probability { //随机一个道具
+ total := 0
+ for _, v := range tconfigure.Wget {
+ total += int(v)
+ }
+
+ n := rand.Intn(total)
+ for i, v := range tconfigure.Wget {
+ if int32(n) <= v {
+ ants1 = append(ants1, &cfg.Gameatn{
+ A: tconfigure.Ants[i].A,
+ T: tconfigure.Ants[i].T,
+ N: num,
+ })
+ break
+ }
+ }
+ } else { //全部要
+ for _, v := range tconfigure.Ants {
+ ants1 = append(ants1, &cfg.Gameatn{
+ A: v.A,
+ T: v.T,
+ N: 0,
+ })
+ }
+ for i := int32(0); i < num; i++ {
+ index := i % int32(len(ants1))
+ ants1[index].N++
+ }
+ }
+
+ }
+ }
+ if pconfigure != nil {
+ if pconfigure.Exp > 0 { //经验加成
+ exp1 += int32(math.Floor(float64(exp) * (float64(pconfigure.Exp) / float64(100))))
+ }
+ if len(pconfigure.Ants) > 0 { //额外道具加成
+ ants2 = make([]*cfg.Gameatn, 0)
+ r := rand.New(rand.NewSource(time.Now().Unix()))
+ num := r.Int31n(pconfigure.Num[1]-pconfigure.Num[0]) + pconfigure.Num[0]
+ if r.Int31n(100) < pconfigure.Probability { //随机一个道具
+ total := 0
+ for _, v := range pconfigure.Wget {
+ total += int(v)
+ }
+
+ n := rand.Intn(total)
+ for i, v := range pconfigure.Wget {
+ if int32(n) <= v {
+ ants2 = append(ants2, &cfg.Gameatn{
+ A: pconfigure.Ants[i].A,
+ T: pconfigure.Ants[i].T,
+ N: num,
+ })
+ break
+ }
+ }
+ } else { //全部要
+ for _, v := range pconfigure.Ants {
+ ants2 = append(ants2, &cfg.Gameatn{
+ A: v.A,
+ T: v.T,
+ N: 0,
+ })
+ }
+ for i := int32(0); i < num; i++ {
+ index := i % int32(len(ants2))
+ ants2[index].N++
+ }
+ }
+ }
+ }
+ }
+
+ if _session, ok = this.module.GetUserSession(pillar.Uid); ok {
+ if _, code = this.module.ModuleHero.AddHeroExp(_session, pillar.Hero, exp); code != pb.ErrorCode_Success {
+ return
+ }
+ if code = this.module.DispenseRes(_session, append(ants1, ants2...), true); code != pb.ErrorCode_Success {
+ return
+ }
+ } else {
+
+ }
+
+ room.Knapsack[pillar.Teacher] = 0
+ room.Knapsack[pillar.Prop] = 0
+ pillar.Hero = ""
+ pillar.Teacher = ""
+ pillar.Prop = ""
+ pillar.Start = 0
+ pillar.End = 0
+ pillar.Expend = 0
+ this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{
+ filed: pillar,
+ })
+ this.module.modelPandata.Change(pillar.Uid, map[string]interface{}{
+ "knapsack": room.Knapsack,
+ })
session.SendMsg(string(this.module.GetType()), "expulsion", &pb.PracticeExpulsionResp{})
return
}
diff --git a/modules/practice/api_receive.go b/modules/practice/api_receive.go
index a5c2069b9..d3b435e37 100644
--- a/modules/practice/api_receive.go
+++ b/modules/practice/api_receive.go
@@ -192,10 +192,20 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.PracticeReceiveR
pillar.Start = 0
pillar.End = 0
pillar.Expend = 0
- this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{
- "knapsack": room.Knapsack,
- filed: pillar,
- })
+ if req.Friend == "" {
+ this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{
+ "knapsack": room.Knapsack,
+ filed: pillar,
+ })
+ } else {
+ this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{
+ "knapsack": room.Knapsack,
+ })
+ this.module.modelPandata.Change(req.Friend, map[string]interface{}{
+ filed: pillar,
+ })
+ }
+
session.SendMsg(string(this.module.GetType()), "receive", &pb.PracticeReceiveResp{})
return
}
diff --git a/modules/smithy/api_trade.go b/modules/smithy/api_trade.go
index 9b2160a5e..4710c7ae8 100644
--- a/modules/smithy/api_trade.go
+++ b/modules/smithy/api_trade.go
@@ -38,14 +38,14 @@ func (this *apiComp) Sell(session comm.IUserSession, req *pb.SmithySellReq) (cod
return
}
- conf := this.module.configure.GetSmithyCustomerConf(req.CustomerId)
- if conf == nil {
- code = pb.ErrorCode_ConfigNoFound
- return
- }
+ // conf := this.module.configure.GetSmithyCustomerConf(req.CustomerId)
+ // if conf == nil {
+ // code = pb.ErrorCode_ConfigNoFound
+ // return
+ // }
- // 发奖励
- this.module.DispenseRes(session, conf.Reword, true)
+ // // 发奖励
+ // this.module.DispenseRes(session, conf.Reword, true)
rsp := &pb.SmithySellResp{
CustomerId: req.CustomerId,
diff --git a/pb/dispatch_db.pb.go b/pb/dispatch_db.pb.go
new file mode 100644
index 000000000..4b536cae1
--- /dev/null
+++ b/pb/dispatch_db.pb.go
@@ -0,0 +1,349 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: dispatch/dispatch_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 DBDispatch struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"uid"` //
+ Ticket int32 `protobuf:"varint,2,opt,name=ticket,proto3" json:"ticket" bson:"ticket"` //门票
+ Nb *Noticeboard `protobuf:"bytes,3,opt,name=nb,proto3" json:"nb" bson:"nb"` //公告栏
+}
+
+func (x *DBDispatch) Reset() {
+ *x = DBDispatch{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBDispatch) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBDispatch) ProtoMessage() {}
+
+func (x *DBDispatch) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DBDispatch.ProtoReflect.Descriptor instead.
+func (*DBDispatch) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_db_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DBDispatch) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+func (x *DBDispatch) GetTicket() int32 {
+ if x != nil {
+ return x.Ticket
+ }
+ return 0
+}
+
+func (x *DBDispatch) GetNb() *Noticeboard {
+ if x != nil {
+ return x.Nb
+ }
+ return nil
+}
+
+// 公告栏
+type Noticeboard struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Lv int32 `protobuf:"varint,1,opt,name=lv,proto3" json:"lv" bson:"lv"` // 公告栏等级
+ NoticeType int32 `protobuf:"varint,2,opt,name=noticeType,proto3" json:"noticeType" bson:"noticeType"` // 公告栏类型
+ Tasks []*DispatchTask `protobuf:"bytes,3,rep,name=tasks,proto3" json:"tasks" bson:"tasks"` //当前公告任务
+}
+
+func (x *Noticeboard) Reset() {
+ *x = Noticeboard{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Noticeboard) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Noticeboard) ProtoMessage() {}
+
+func (x *Noticeboard) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_db_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 Noticeboard.ProtoReflect.Descriptor instead.
+func (*Noticeboard) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_db_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Noticeboard) GetLv() int32 {
+ if x != nil {
+ return x.Lv
+ }
+ return 0
+}
+
+func (x *Noticeboard) GetNoticeType() int32 {
+ if x != nil {
+ return x.NoticeType
+ }
+ return 0
+}
+
+func (x *Noticeboard) GetTasks() []*DispatchTask {
+ if x != nil {
+ return x.Tasks
+ }
+ return nil
+}
+
+// 派遣任务
+type DispatchTask struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId" bson:"taskId"` //任务ID
+ Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status" bson:"status"` //任务状态 默认0 1任务中 2任务完成
+ Duration int64 `protobuf:"varint,3,opt,name=duration,proto3" json:"duration" bson:"duration"` //持续截至时间
+ LeftTime int64 `protobuf:"varint,4,opt,name=leftTime,proto3" json:"leftTime" bson:"leftTime"` //任务截至时间
+ HeroIds []string `protobuf:"bytes,5,rep,name=heroIds,proto3" json:"heroIds"` //go_tags(`bson:"heroIds"`) 派遣的英雄
+}
+
+func (x *DispatchTask) Reset() {
+ *x = DispatchTask{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchTask) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchTask) ProtoMessage() {}
+
+func (x *DispatchTask) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_db_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 DispatchTask.ProtoReflect.Descriptor instead.
+func (*DispatchTask) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_db_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *DispatchTask) GetTaskId() int32 {
+ if x != nil {
+ return x.TaskId
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetStatus() int32 {
+ if x != nil {
+ return x.Status
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetDuration() int64 {
+ if x != nil {
+ return x.Duration
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetLeftTime() int64 {
+ if x != nil {
+ return x.LeftTime
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetHeroIds() []string {
+ if x != nil {
+ return x.HeroIds
+ }
+ return nil
+}
+
+var File_dispatch_dispatch_db_proto protoreflect.FileDescriptor
+
+var file_dispatch_dispatch_db_proto_rawDesc = []byte{
+ 0x0a, 0x1a, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x54, 0x0a, 0x0a,
+ 0x44, 0x42, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06,
+ 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x69,
+ 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x02, 0x6e, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x02,
+ 0x6e, 0x62, 0x22, 0x62, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x62, 0x6f, 0x61, 0x72,
+ 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c,
+ 0x76, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x0d, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52,
+ 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
+ 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_dispatch_dispatch_db_proto_rawDescOnce sync.Once
+ file_dispatch_dispatch_db_proto_rawDescData = file_dispatch_dispatch_db_proto_rawDesc
+)
+
+func file_dispatch_dispatch_db_proto_rawDescGZIP() []byte {
+ file_dispatch_dispatch_db_proto_rawDescOnce.Do(func() {
+ file_dispatch_dispatch_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_dispatch_dispatch_db_proto_rawDescData)
+ })
+ return file_dispatch_dispatch_db_proto_rawDescData
+}
+
+var file_dispatch_dispatch_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_dispatch_dispatch_db_proto_goTypes = []interface{}{
+ (*DBDispatch)(nil), // 0: DBDispatch
+ (*Noticeboard)(nil), // 1: Noticeboard
+ (*DispatchTask)(nil), // 2: DispatchTask
+}
+var file_dispatch_dispatch_db_proto_depIdxs = []int32{
+ 1, // 0: DBDispatch.nb:type_name -> Noticeboard
+ 2, // 1: Noticeboard.tasks:type_name -> DispatchTask
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_dispatch_dispatch_db_proto_init() }
+func file_dispatch_dispatch_db_proto_init() {
+ if File_dispatch_dispatch_db_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_dispatch_dispatch_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBDispatch); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Noticeboard); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchTask); 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_dispatch_dispatch_db_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_dispatch_dispatch_db_proto_goTypes,
+ DependencyIndexes: file_dispatch_dispatch_db_proto_depIdxs,
+ MessageInfos: file_dispatch_dispatch_db_proto_msgTypes,
+ }.Build()
+ File_dispatch_dispatch_db_proto = out.File
+ file_dispatch_dispatch_db_proto_rawDesc = nil
+ file_dispatch_dispatch_db_proto_goTypes = nil
+ file_dispatch_dispatch_db_proto_depIdxs = nil
+}
diff --git a/pb/dispatch_msg.pb.go b/pb/dispatch_msg.pb.go
new file mode 100644
index 000000000..7be098a6b
--- /dev/null
+++ b/pb/dispatch_msg.pb.go
@@ -0,0 +1,538 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: dispatch/dispatch_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 DispatchNoticeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchNoticeReq) Reset() {
+ *x = DispatchNoticeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchNoticeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchNoticeReq) ProtoMessage() {}
+
+func (x *DispatchNoticeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchNoticeReq.ProtoReflect.Descriptor instead.
+func (*DispatchNoticeReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{0}
+}
+
+type DispatchNoticeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Dispatch *DBDispatch `protobuf:"bytes,1,opt,name=dispatch,proto3" json:"dispatch"`
+}
+
+func (x *DispatchNoticeResp) Reset() {
+ *x = DispatchNoticeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchNoticeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchNoticeResp) ProtoMessage() {}
+
+func (x *DispatchNoticeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchNoticeResp.ProtoReflect.Descriptor instead.
+func (*DispatchNoticeResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *DispatchNoticeResp) GetDispatch() *DBDispatch {
+ if x != nil {
+ return x.Dispatch
+ }
+ return nil
+}
+
+//刷新公告
+type DispatchRefreshReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchRefreshReq) Reset() {
+ *x = DispatchRefreshReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchRefreshReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchRefreshReq) ProtoMessage() {}
+
+func (x *DispatchRefreshReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchRefreshReq.ProtoReflect.Descriptor instead.
+func (*DispatchRefreshReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{2}
+}
+
+type DispatchRefreshResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchRefreshResp) Reset() {
+ *x = DispatchRefreshResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchRefreshResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchRefreshResp) ProtoMessage() {}
+
+func (x *DispatchRefreshResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchRefreshResp.ProtoReflect.Descriptor instead.
+func (*DispatchRefreshResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{3}
+}
+
+//一键领取奖励
+type DispatchReceiveReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchReceiveReq) Reset() {
+ *x = DispatchReceiveReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchReceiveReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchReceiveReq) ProtoMessage() {}
+
+func (x *DispatchReceiveReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchReceiveReq.ProtoReflect.Descriptor instead.
+func (*DispatchReceiveReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{4}
+}
+
+type DispatchReceiveResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchReceiveResp) Reset() {
+ *x = DispatchReceiveResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchReceiveResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchReceiveResp) ProtoMessage() {}
+
+func (x *DispatchReceiveResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchReceiveResp.ProtoReflect.Descriptor instead.
+func (*DispatchReceiveResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{5}
+}
+
+// 派遣
+type DispatchDoReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId"`
+ HeroId []string `protobuf:"bytes,2,rep,name=heroId,proto3" json:"heroId"`
+}
+
+func (x *DispatchDoReq) Reset() {
+ *x = DispatchDoReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchDoReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchDoReq) ProtoMessage() {}
+
+func (x *DispatchDoReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchDoReq.ProtoReflect.Descriptor instead.
+func (*DispatchDoReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *DispatchDoReq) GetTaskId() int32 {
+ if x != nil {
+ return x.TaskId
+ }
+ return 0
+}
+
+func (x *DispatchDoReq) GetHeroId() []string {
+ if x != nil {
+ return x.HeroId
+ }
+ return nil
+}
+
+type DispatchDoResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchDoResp) Reset() {
+ *x = DispatchDoResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchDoResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchDoResp) ProtoMessage() {}
+
+func (x *DispatchDoResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchDoResp.ProtoReflect.Descriptor instead.
+func (*DispatchDoResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{7}
+}
+
+var File_dispatch_dispatch_msg_proto protoreflect.FileDescriptor
+
+var file_dispatch_dispatch_msg_proto_rawDesc = []byte{
+ 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x64,
+ 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68,
+ 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x69, 0x73,
+ 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x22, 0x3d,
+ 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x52, 0x08, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x22, 0x14, 0x0a,
+ 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
+ 0x52, 0x65, 0x71, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52,
+ 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x69,
+ 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71,
+ 0x22, 0x15, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x63, 0x65,
+ 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3f, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x44, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b,
+ 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
+ 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x70,
+ 0x61, 0x74, 0x63, 0x68, 0x44, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
+ 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_dispatch_dispatch_msg_proto_rawDescOnce sync.Once
+ file_dispatch_dispatch_msg_proto_rawDescData = file_dispatch_dispatch_msg_proto_rawDesc
+)
+
+func file_dispatch_dispatch_msg_proto_rawDescGZIP() []byte {
+ file_dispatch_dispatch_msg_proto_rawDescOnce.Do(func() {
+ file_dispatch_dispatch_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_dispatch_dispatch_msg_proto_rawDescData)
+ })
+ return file_dispatch_dispatch_msg_proto_rawDescData
+}
+
+var file_dispatch_dispatch_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_dispatch_dispatch_msg_proto_goTypes = []interface{}{
+ (*DispatchNoticeReq)(nil), // 0: DispatchNoticeReq
+ (*DispatchNoticeResp)(nil), // 1: DispatchNoticeResp
+ (*DispatchRefreshReq)(nil), // 2: DispatchRefreshReq
+ (*DispatchRefreshResp)(nil), // 3: DispatchRefreshResp
+ (*DispatchReceiveReq)(nil), // 4: DispatchReceiveReq
+ (*DispatchReceiveResp)(nil), // 5: DispatchReceiveResp
+ (*DispatchDoReq)(nil), // 6: DispatchDoReq
+ (*DispatchDoResp)(nil), // 7: DispatchDoResp
+ (*DBDispatch)(nil), // 8: DBDispatch
+}
+var file_dispatch_dispatch_msg_proto_depIdxs = []int32{
+ 8, // 0: DispatchNoticeResp.dispatch:type_name -> DBDispatch
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_dispatch_dispatch_msg_proto_init() }
+func file_dispatch_dispatch_msg_proto_init() {
+ if File_dispatch_dispatch_msg_proto != nil {
+ return
+ }
+ file_dispatch_dispatch_db_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_dispatch_dispatch_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchNoticeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchNoticeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchRefreshReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchRefreshResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchReceiveReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchReceiveResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchDoReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchDoResp); 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_dispatch_dispatch_msg_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 8,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_dispatch_dispatch_msg_proto_goTypes,
+ DependencyIndexes: file_dispatch_dispatch_msg_proto_depIdxs,
+ MessageInfos: file_dispatch_dispatch_msg_proto_msgTypes,
+ }.Build()
+ File_dispatch_dispatch_msg_proto = out.File
+ file_dispatch_dispatch_msg_proto_rawDesc = nil
+ file_dispatch_dispatch_msg_proto_goTypes = nil
+ file_dispatch_dispatch_msg_proto_depIdxs = nil
+}
diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go
index f31f4aad3..dda496e7a 100644
--- a/pb/errorcode.pb.go
+++ b/pb/errorcode.pb.go
@@ -334,6 +334,8 @@ const (
ErrorCode_SmithyNoActivateAtlas ErrorCode = 4113 // 没有图鉴更新数据
ErrorCode_SmithyLvToolsFailed ErrorCode = 4114 //
ErrorCode_SmithyLvToolsPre ErrorCode = 4115 // 前置条件不足
+ // dispatch
+ ErrorCode_DispatchHeroNoReached ErrorCode = 4201 //英雄条件未达标
)
// Enum value maps for ErrorCode.
@@ -618,6 +620,7 @@ var (
4113: "SmithyNoActivateAtlas",
4114: "SmithyLvToolsFailed",
4115: "SmithyLvToolsPre",
+ 4201: "DispatchHeroNoReached",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@@ -899,6 +902,7 @@ var (
"SmithyNoActivateAtlas": 4113,
"SmithyLvToolsFailed": 4114,
"SmithyLvToolsPre": 4115,
+ "DispatchHeroNoReached": 4201,
}
)
@@ -933,7 +937,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2a, 0xe3, 0x32, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x6f, 0x2a, 0xff, 0x32, 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,
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,
@@ -1339,8 +1343,10 @@ var file_errorcode_proto_rawDesc = []byte{
0x6c, 0x61, 0x73, 0x10, 0x91, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79,
0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x92, 0x20,
0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c,
- 0x73, 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x73, 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64,
+ 0x10, 0xe9, 0x20, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
}
var (
diff --git a/pb/practice_db.pb.go b/pb/practice_db.pb.go
index 395719d41..f8c657324 100644
--- a/pb/practice_db.pb.go
+++ b/pb/practice_db.pb.go
@@ -29,12 +29,13 @@ type DBPracticePillar struct {
Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index"` //柱子下标
Lv int32 `protobuf:"varint,2,opt,name=lv,proto3" json:"lv"` //柱子等级
Isunlock bool `protobuf:"varint,3,opt,name=isunlock,proto3" json:"isunlock"` //是否解锁
- Hero string `protobuf:"bytes,4,opt,name=hero,proto3" json:"hero"` //当前练功英雄
- Teacher string `protobuf:"bytes,5,opt,name=teacher,proto3" json:"teacher"` //教习
- Prop string `protobuf:"bytes,6,opt,name=prop,proto3" json:"prop"` //道具
- Start int64 `protobuf:"varint,7,opt,name=start,proto3" json:"start"` //开始时间
- End int64 `protobuf:"varint,8,opt,name=end,proto3" json:"end"` //结束时间
- Expend int64 `protobuf:"varint,9,opt,name=expend,proto3" json:"expend"` //经验上限时间
+ Uid string `protobuf:"bytes,4,opt,name=uid,proto3" json:"uid"` //英雄uid
+ Hero string `protobuf:"bytes,5,opt,name=hero,proto3" json:"hero"` //当前练功英雄
+ Teacher string `protobuf:"bytes,6,opt,name=teacher,proto3" json:"teacher"` //教习
+ Prop string `protobuf:"bytes,7,opt,name=prop,proto3" json:"prop"` //道具
+ Start int64 `protobuf:"varint,8,opt,name=start,proto3" json:"start"` //开始时间
+ End int64 `protobuf:"varint,9,opt,name=end,proto3" json:"end"` //结束时间
+ Expend int64 `protobuf:"varint,10,opt,name=expend,proto3" json:"expend"` //经验上限时间
}
func (x *DBPracticePillar) Reset() {
@@ -90,6 +91,13 @@ func (x *DBPracticePillar) GetIsunlock() bool {
return false
}
+func (x *DBPracticePillar) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
func (x *DBPracticePillar) GetHero() string {
if x != nil {
return x.Hero
@@ -296,49 +304,50 @@ var File_practice_practice_db_proto protoreflect.FileDescriptor
var file_practice_practice_db_proto_rawDesc = []byte{
0x0a, 0x1a, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x61, 0x63, 0x74,
- 0x69, 0x63, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a,
+ 0x69, 0x63, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe8, 0x01, 0x0a,
0x10, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61,
0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x75, 0x6e, 0x6c,
0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x75, 0x6e, 0x6c,
- 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68,
- 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65,
- 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x70, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65,
- 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a,
- 0x06, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x65,
- 0x78, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x11, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74,
- 0x69, 0x63, 0x65, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07,
- 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
- 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0xde, 0x02, 0x0a, 0x0e, 0x44, 0x42, 0x50, 0x72, 0x61,
- 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x39, 0x0a, 0x08, 0x6b,
- 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
- 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x2e, 0x4b,
- 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e,
- 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72,
- 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63,
- 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c,
- 0x61, 0x72, 0x31, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x32, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63,
- 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x32,
- 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69,
- 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x33, 0x12, 0x2b, 0x0a,
- 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
- 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61,
- 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x66, 0x1a, 0x3b, 0x0a, 0x0d, 0x4b, 0x6e,
- 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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,
+ 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61,
+ 0x63, 0x68, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63,
+ 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a,
+ 0x03, 0x65, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x06, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x11, 0x44, 0x42, 0x50, 0x72, 0x61,
+ 0x63, 0x74, 0x69, 0x63, 0x65, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
+ 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18,
+ 0x0a, 0x07, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0xde, 0x02, 0x0a, 0x0e, 0x44, 0x42, 0x50,
+ 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x39, 0x0a,
+ 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x1d, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d,
+ 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08,
+ 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c,
+ 0x61, 0x72, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72,
+ 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69,
+ 0x6c, 0x6c, 0x61, 0x72, 0x31, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x32,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74,
+ 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61,
+ 0x72, 0x32, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x33, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65,
+ 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x33, 0x12,
+ 0x2b, 0x0a, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c,
+ 0x6c, 0x61, 0x72, 0x52, 0x07, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x66, 0x1a, 0x3b, 0x0a, 0x0d,
+ 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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 (
diff --git a/sys/configure/structs/Game.DispatchCond.go b/sys/configure/structs/Game.DispatchCond.go
new file mode 100644
index 000000000..3bf298e05
--- /dev/null
+++ b/sys/configure/structs/Game.DispatchCond.go
@@ -0,0 +1,37 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type GameDispatchCond struct {
+ Key int32
+ Param int32
+}
+
+const TypeId_GameDispatchCond = -852261064
+
+func (*GameDispatchCond) GetTypeId() int32 {
+ return -852261064
+}
+
+func (_v *GameDispatchCond)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
+ { 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 DeserializeGameDispatchCond(_buf map[string]interface{}) (*GameDispatchCond, error) {
+ v := &GameDispatchCond{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.DispatchCondType.go b/sys/configure/structs/Game.DispatchCondType.go
new file mode 100644
index 000000000..347eb7b26
--- /dev/null
+++ b/sys/configure/structs/Game.DispatchCondType.go
@@ -0,0 +1,14 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+const (
+ GameDispatchCondType_Lv = 1
+ GameDispatchCondType_Star = 2
+)
diff --git a/sys/configure/structs/Game.Dispatch_LvData.go b/sys/configure/structs/Game.Dispatch_LvData.go
index f09d821aa..41cc0d187 100644
--- a/sys/configure/structs/Game.Dispatch_LvData.go
+++ b/sys/configure/structs/Game.Dispatch_LvData.go
@@ -12,7 +12,7 @@ import "errors"
type GameDispatch_LvData struct {
Lv int32
- Probability []float32
+ Probability []int32
Upgrade int32
}
@@ -29,11 +29,11 @@ func (_v *GameDispatch_LvData)Deserialize(_buf map[string]interface{}) (err erro
var _ok_ bool
if _arr_, _ok_ = _buf["probability"].([]interface{}); !_ok_ { err = errors.New("probability error"); return }
- _v.Probability = make([]float32, 0, len(_arr_))
+ _v.Probability = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
- var _list_v_ float32
- { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = float32(_x_) }
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Probability = append(_v.Probability, _list_v_)
}
}
diff --git a/sys/configure/structs/Game.Dispatch_TaskData.go b/sys/configure/structs/Game.Dispatch_TaskData.go
index 92ef5e605..552aead52 100644
--- a/sys/configure/structs/Game.Dispatch_TaskData.go
+++ b/sys/configure/structs/Game.Dispatch_TaskData.go
@@ -14,12 +14,12 @@ type GameDispatch_TaskData struct {
Id int32
Type int32
Taskname string
- Taskcd float32
- Tasktime float32
+ Taskcd int32
+ Tasktime int32
Tasktxt string
Taskneed int32
- Taskreq []string
- Taskreqex []string
+ Taskreq []*GameDispatchCond
+ Taskreqex []*GameDispatchCond
Reward []*Gameatn
Rewardex []*Gameatn
}
@@ -34,8 +34,8 @@ func (_v *GameDispatch_TaskData)Deserialize(_buf map[string]interface{}) (err er
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["taskname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Taskname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Taskname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskcd"].(float64); !_ok_ { err = errors.New("taskcd error"); return }; _v.Taskcd = float32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tasktime"].(float64); !_ok_ { err = errors.New("tasktime error"); return }; _v.Tasktime = float32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskcd"].(float64); !_ok_ { err = errors.New("taskcd error"); return }; _v.Taskcd = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tasktime"].(float64); !_ok_ { err = errors.New("tasktime error"); return }; _v.Tasktime = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["tasktxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Tasktxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Tasktxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskneed"].(float64); !_ok_ { err = errors.New("taskneed error"); return }; _v.Taskneed = int32(_tempNum_) }
{
@@ -43,11 +43,11 @@ func (_v *GameDispatch_TaskData)Deserialize(_buf map[string]interface{}) (err er
var _ok_ bool
if _arr_, _ok_ = _buf["taskreq"].([]interface{}); !_ok_ { err = errors.New("taskreq error"); return }
- _v.Taskreq = make([]string, 0, len(_arr_))
+ _v.Taskreq = make([]*GameDispatchCond, 0, len(_arr_))
for _, _e_ := range _arr_ {
- var _list_v_ string
- { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
+ var _list_v_ *GameDispatchCond
+ { 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 = DeserializeGameDispatchCond(_x_); err != nil { return } }
_v.Taskreq = append(_v.Taskreq, _list_v_)
}
}
@@ -57,11 +57,11 @@ func (_v *GameDispatch_TaskData)Deserialize(_buf map[string]interface{}) (err er
var _ok_ bool
if _arr_, _ok_ = _buf["taskreqex"].([]interface{}); !_ok_ { err = errors.New("taskreqex error"); return }
- _v.Taskreqex = make([]string, 0, len(_arr_))
+ _v.Taskreqex = make([]*GameDispatchCond, 0, len(_arr_))
for _, _e_ := range _arr_ {
- var _list_v_ string
- { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
+ var _list_v_ *GameDispatchCond
+ { 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 = DeserializeGameDispatchCond(_x_); err != nil { return } }
_v.Taskreqex = append(_v.Taskreqex, _list_v_)
}
}
diff --git a/sys/configure/structs/Game.dispatch.go b/sys/configure/structs/Game.dispatch.go
new file mode 100644
index 000000000..f0e0a6f87
--- /dev/null
+++ b/sys/configure/structs/Game.dispatch.go
@@ -0,0 +1,50 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type Gamedispatch struct {
+ N int32
+ G []*Gameatn
+}
+
+const TypeId_Gamedispatch = -1941607722
+
+func (*Gamedispatch) GetTypeId() int32 {
+ return -1941607722
+}
+
+func (_v *Gamedispatch)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["n"].(float64); !_ok_ { err = errors.New("n error"); return }; _v.N = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["g"].([]interface{}); !_ok_ { err = errors.New("g error"); return }
+
+ _v.G = make([]*Gameatn, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ *Gameatn
+ { 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 = DeserializeGameatn(_x_); err != nil { return } }
+ _v.G = append(_v.G, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGamedispatch(_buf map[string]interface{}) (*Gamedispatch, error) {
+ v := &Gamedispatch{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/utils/utils_test.go b/utils/utils_test.go
index 0ebb63e76..daafaac4f 100644
--- a/utils/utils_test.go
+++ b/utils/utils_test.go
@@ -36,7 +36,7 @@ func TestRandom(t *testing.T) {
func TestNumber(t *testing.T) {
for i := 0; i < 100; i++ {
- fmt.Println(utils.RandomNumbers(0, 99, 10))
+ fmt.Println(utils.RandomNumbers(0, 4, 6))
}
}