Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
a60a40d760
21
bin/json/game_seasonloop.json
Normal file
21
bin/json/game_seasonloop.json
Normal file
@ -0,0 +1,21 @@
|
||||
[
|
||||
{
|
||||
"key": 2,
|
||||
"disposable_loop": [
|
||||
201,
|
||||
203,
|
||||
202,
|
||||
204,
|
||||
203,
|
||||
202,
|
||||
201,
|
||||
204
|
||||
],
|
||||
"fixed_loop": [
|
||||
201,
|
||||
202,
|
||||
203,
|
||||
204
|
||||
]
|
||||
}
|
||||
]
|
@ -2,12 +2,11 @@ package hero
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
"go_dreamfactory/modules"
|
||||
)
|
||||
|
||||
type apiComp struct {
|
||||
cbase.ModuleCompBase
|
||||
//cbase.ModuleCompBase
|
||||
modules.MCompGate
|
||||
service core.IService
|
||||
module *Hero
|
||||
|
@ -72,11 +72,11 @@ func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (c
|
||||
}
|
||||
// 获得新卡
|
||||
newHero, err := this.module.modelHero.createHeroOverlying(session.GetUserId(), conf.Hero, 1)
|
||||
if err != nil {
|
||||
if err == nil {
|
||||
session.SendMsg(string(this.module.GetType()), HeroFusionResp, &pb.HeroFusionResp{Heroid: conf.Hero})
|
||||
ChangeList = append(ChangeList, newHero)
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
|
||||
|
||||
session.SendMsg(string(this.module.GetType()), HeroFusionResp, &pb.HeroFusionResp{Heroid: conf.Hero})
|
||||
return
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ import (
|
||||
"go_dreamfactory/lego/sys/cron"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"google.golang.org/protobuf/types/known/anypb"
|
||||
)
|
||||
|
||||
@ -77,6 +78,7 @@ func (this *ChatComp) Start() (err error) {
|
||||
}
|
||||
}
|
||||
})
|
||||
this.module.chat.module.rank.DB.Find("heor", bson.M{})
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -10,22 +10,21 @@ import (
|
||||
/*
|
||||
装备模块 API
|
||||
*/
|
||||
type forumComp struct {
|
||||
type ForumComp struct {
|
||||
modules.MCompModel
|
||||
service core.IService
|
||||
}
|
||||
|
||||
//组件初始化接口
|
||||
func (this *forumComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
func (this *ForumComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
|
||||
this.TableName = comm.TablePagodaRecord
|
||||
this.TableName = comm.TableHuntingRankList
|
||||
this.MCompModel.Init(service, module, comp, options)
|
||||
this.service = service
|
||||
return
|
||||
}
|
||||
|
||||
func (this *forumComp) Start() (err error) {
|
||||
func (this *ForumComp) Start() (err error) {
|
||||
err = this.MCompModel.Start()
|
||||
//cron.AddFunc("*/5 * * * * ?", this.Timer) //每五秒执行一次
|
||||
//cron.AddFunc("*/60 * * * * ?", this.Timer) //每60s执行一次
|
||||
return
|
||||
}
|
||||
|
@ -27,6 +27,8 @@ type Timer struct {
|
||||
rank2 *VikingRank
|
||||
rank3 *HuntingRank
|
||||
chat *ChatComp //俩天系统定时任务
|
||||
season *SeasonPagoda
|
||||
forum *ForumComp
|
||||
}
|
||||
|
||||
//模块名
|
||||
@ -59,6 +61,8 @@ func (this *Timer) OnInstallComp() {
|
||||
this.rank2 = this.RegisterComp(new(VikingRank)).(*VikingRank)
|
||||
this.rank3 = this.RegisterComp(new(HuntingRank)).(*HuntingRank)
|
||||
this.chat = this.RegisterComp(new(ChatComp)).(*ChatComp)
|
||||
this.season = this.RegisterComp(new(SeasonPagoda)).(*SeasonPagoda)
|
||||
|
||||
}
|
||||
|
||||
//日志
|
||||
|
@ -1,23 +1,38 @@
|
||||
package timer
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
"go_dreamfactory/sys/configure"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
"time"
|
||||
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
"go_dreamfactory/lego/sys/cron"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
)
|
||||
|
||||
var (
|
||||
game_seasonloop = "game_seasonloop.json"
|
||||
)
|
||||
|
||||
type SeasonPagoda struct {
|
||||
cbase.ModuleCompBase
|
||||
modules.MCompConfigure
|
||||
modules.MCompModel
|
||||
service core.IService
|
||||
dbName string
|
||||
module *Timer
|
||||
}
|
||||
|
||||
//组件初始化接口
|
||||
func (this *SeasonPagoda) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
this.MCompConfigure.Init(service, module, comp, options)
|
||||
this.TableName = comm.TableSeasonPagoda
|
||||
this.MCompModel.Init(service, module, comp, options)
|
||||
this.service = service
|
||||
@ -27,14 +42,66 @@ func (this *SeasonPagoda) Init(service core.IService, module core.IModule, comp
|
||||
|
||||
func (this *SeasonPagoda) Start() (err error) {
|
||||
err = this.MCompModel.Start()
|
||||
err = this.MCompConfigure.Start()
|
||||
configure.RegisterConfigure(game_seasonloop, cfg.NewGameSeasonLoop, nil)
|
||||
cron.AddFunc("0 0 23 L * ?", this.TimerSeasonOver) //每月最后一天23点执行一次
|
||||
cron.AddFunc("0 0 5 /* * ?", this.TimerSeasonStar) //每月第一天5点执行一次
|
||||
|
||||
// _data := this.GetSeasonLoop(2)
|
||||
// this.module.Debugf("%v", _data)
|
||||
|
||||
// this.TimerSeasonOver()
|
||||
return
|
||||
}
|
||||
func (this *SeasonPagoda) GetSeasonLoop(id int32) *cfg.GameSeasonLoopData {
|
||||
|
||||
if v, err := this.GetConfigure(game_seasonloop); err != nil {
|
||||
log.Errorf("get global conf err:%v", err)
|
||||
return nil
|
||||
} else {
|
||||
if configure, ok := v.(*cfg.GameSeasonLoop); ok {
|
||||
return configure.Get(id)
|
||||
}
|
||||
log.Errorf("%T no is *cfg.Game_global", v)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// // 赛季塔结束
|
||||
func (this *SeasonPagoda) TimerSeasonOver() {
|
||||
this.module.Debugf("TimerSeasonOver:%d", time.Now().Unix())
|
||||
// 修改
|
||||
conf := this.GetSeasonLoop(2)
|
||||
rest, err := this.DB.Find(comm.TableServerData, bson.M{})
|
||||
if err != nil {
|
||||
serverData := &pb.DBServerData{}
|
||||
for rest.Next(context.TODO()) {
|
||||
rest.Decode(serverData)
|
||||
if serverData.FixedLoop == 0 {
|
||||
if len(conf.DisposableLoop) >= int(serverData.DisposableLoop) && len(conf.FixedLoop) > 0 { // 开始执行循环逻辑
|
||||
serverData.FixedLoop = 1
|
||||
serverData.DisposableLoop = 0
|
||||
serverData.SeasonType = conf.FixedLoop[int(serverData.FixedLoop)-1]
|
||||
} else {
|
||||
serverData.DisposableLoop++
|
||||
serverData.SeasonType = conf.DisposableLoop[int(serverData.DisposableLoop)-1]
|
||||
}
|
||||
|
||||
} else { // 循环
|
||||
if len(conf.FixedLoop) >= int(serverData.FixedLoop) {
|
||||
serverData.FixedLoop = 1
|
||||
} else {
|
||||
serverData.FixedLoop++
|
||||
}
|
||||
serverData.SeasonType = conf.FixedLoop[int(serverData.FixedLoop)-1]
|
||||
}
|
||||
|
||||
fmt.Printf("%v", serverData)
|
||||
break
|
||||
}
|
||||
|
||||
this.DB.UpdateOne(comm.TableServerData, bson.M{}, serverData)
|
||||
}
|
||||
}
|
||||
|
||||
// 赛季塔开始
|
||||
|
@ -120,6 +120,14 @@ func (this *Service) InitSys() {
|
||||
conn, err := db.Local()
|
||||
if err == nil {
|
||||
model := db.NewDBModel(comm.TableServerData, 0, conn)
|
||||
// rest, err1 := model.DB.Find(comm.TableServerData, bson.M{})
|
||||
// server1 := &pb.DBServerData{}
|
||||
// for rest.Next(context.TODO()) {
|
||||
// rest.Decode(server1)
|
||||
// fmt.Printf("%v", server1)
|
||||
// break
|
||||
// }
|
||||
|
||||
_len, err1 := model.DB.CountDocuments(comm.TableServerData, bson.M{})
|
||||
if err1 != nil && _len > 0 {
|
||||
fmt.Printf("%v,%v", _len, err1)
|
||||
|
42
sys/configure/structs/Game.SeasonLoop.go
Normal file
42
sys/configure/structs/Game.SeasonLoop.go
Normal file
@ -0,0 +1,42 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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
|
||||
|
||||
type GameSeasonLoop struct {
|
||||
_dataMap map[int32]*GameSeasonLoopData
|
||||
_dataList []*GameSeasonLoopData
|
||||
}
|
||||
|
||||
func NewGameSeasonLoop(_buf []map[string]interface{}) (*GameSeasonLoop, error) {
|
||||
_dataList := make([]*GameSeasonLoopData, 0, len(_buf))
|
||||
dataMap := make(map[int32]*GameSeasonLoopData)
|
||||
for _, _ele_ := range _buf {
|
||||
if _v, err2 := DeserializeGameSeasonLoopData(_ele_); err2 != nil {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Key] = _v
|
||||
}
|
||||
}
|
||||
return &GameSeasonLoop{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
}
|
||||
|
||||
func (table *GameSeasonLoop) GetDataMap() map[int32]*GameSeasonLoopData {
|
||||
return table._dataMap
|
||||
}
|
||||
|
||||
func (table *GameSeasonLoop) GetDataList() []*GameSeasonLoopData {
|
||||
return table._dataList
|
||||
}
|
||||
|
||||
func (table *GameSeasonLoop) Get(key int32) *GameSeasonLoopData {
|
||||
return table._dataMap[key]
|
||||
}
|
||||
|
||||
|
65
sys/configure/structs/Game.SeasonLoopData.go
Normal file
65
sys/configure/structs/Game.SeasonLoopData.go
Normal file
@ -0,0 +1,65 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 GameSeasonLoopData struct {
|
||||
Key int32
|
||||
DisposableLoop []int32
|
||||
FixedLoop []int32
|
||||
}
|
||||
|
||||
const TypeId_GameSeasonLoopData = 1327247853
|
||||
|
||||
func (*GameSeasonLoopData) GetTypeId() int32 {
|
||||
return 1327247853
|
||||
}
|
||||
|
||||
func (_v *GameSeasonLoopData)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 _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["disposable_loop"].([]interface{}); !_ok_ { err = errors.New("disposable_loop error"); return }
|
||||
|
||||
_v.DisposableLoop = make([]int32, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
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.DisposableLoop = append(_v.DisposableLoop, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["fixed_loop"].([]interface{}); !_ok_ { err = errors.New("fixed_loop error"); return }
|
||||
|
||||
_v.FixedLoop = make([]int32, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
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.FixedLoop = append(_v.FixedLoop, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func DeserializeGameSeasonLoopData(_buf map[string]interface{}) (*GameSeasonLoopData, error) {
|
||||
v := &GameSeasonLoopData{}
|
||||
if err := v.Deserialize(_buf); err == nil {
|
||||
return v, nil
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
@ -63,6 +63,7 @@ type Tables struct {
|
||||
Opencond *GameOpencond
|
||||
Stroy *GameStroy
|
||||
Pagoda *GamePagoda
|
||||
SeasonLoop *GameSeasonLoop
|
||||
PagodaTaskReward *GamePagodaTaskReward
|
||||
PagodaSeasonReward *GamePagodaSeasonReward
|
||||
Rdtask *GameRdtask
|
||||
@ -430,6 +431,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
if tables.Pagoda, err = NewGamePagoda(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_seasonloop") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.SeasonLoop, err = NewGameSeasonLoop(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_pagodataskreward") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user