Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
64da2e66c7
@ -35,7 +35,7 @@ type Battle struct {
|
||||
clientmgr *battleClientMgrComp //c#战斗客户端端管理
|
||||
}
|
||||
|
||||
//模块名
|
||||
// 模块名
|
||||
func (this *Battle) GetType() core.M_Modules {
|
||||
return comm.ModuleBattle
|
||||
}
|
||||
@ -44,7 +44,7 @@ func (this *Battle) NewOptions() (options core.IModuleOptions) {
|
||||
return new(Options)
|
||||
}
|
||||
|
||||
//模块初始化接口 注册用户创建角色事件
|
||||
// 模块初始化接口 注册用户创建角色事件
|
||||
func (this *Battle) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
||||
err = this.ModuleBase.Init(service, module, options)
|
||||
this.service = service.(base.IRPCXService)
|
||||
@ -71,7 +71,7 @@ func (this *Battle) Start() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
//装备组件
|
||||
// 装备组件
|
||||
func (this *Battle) OnInstallComp() {
|
||||
this.ModuleBase.OnInstallComp()
|
||||
this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp)
|
||||
@ -80,7 +80,7 @@ func (this *Battle) OnInstallComp() {
|
||||
this.clientmgr = this.RegisterComp(new(battleClientMgrComp)).(*battleClientMgrComp)
|
||||
}
|
||||
|
||||
//查询战斗记录
|
||||
// 查询战斗记录
|
||||
func (this *Battle) QueryBattleRecord(oid string) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var err error
|
||||
if record, err = this.modelBattle.queryrecord(oid); err != nil {
|
||||
@ -93,7 +93,7 @@ func (this *Battle) QueryBattleRecord(oid string) (errdata *pb.ErrorData, record
|
||||
return
|
||||
}
|
||||
|
||||
//创建pve战斗
|
||||
// 创建pve战斗
|
||||
func (this *Battle) CreateEveBattle(session comm.IUserSession, req *pb.BattleEVEReq) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var (
|
||||
conn *db.DBConn
|
||||
@ -120,7 +120,7 @@ func (this *Battle) CreateEveBattle(session comm.IUserSession, req *pb.BattleEVE
|
||||
return
|
||||
}
|
||||
|
||||
//创建pve战斗
|
||||
// 创建pve战斗
|
||||
func (this *Battle) CreatePveBattle(session comm.IUserSession, req *pb.BattlePVEReq) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var (
|
||||
conn *db.DBConn
|
||||
@ -153,8 +153,10 @@ func (this *Battle) CreatePveBattle(session comm.IUserSession, req *pb.BattlePVE
|
||||
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
||||
}
|
||||
}
|
||||
var flag bool
|
||||
for _, v := range req.Format.Friendformat {
|
||||
if v != "" {
|
||||
flag = true
|
||||
// this.ModuleBuried.SendToRtask(session, comm.Rtype108, 1)
|
||||
go this.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype108, 1))
|
||||
break
|
||||
@ -164,13 +166,13 @@ func (this *Battle) CreatePveBattle(session comm.IUserSession, req *pb.BattlePVE
|
||||
if record, errdata = this.modelBattle.createpve(session, conn, pb.BattleType_pve, req); errdata != nil {
|
||||
return
|
||||
}
|
||||
if req.Format.Friendformat != nil {
|
||||
if flag {
|
||||
go this.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype12, 1))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//创建pve战斗
|
||||
// 创建pve战斗
|
||||
func (this *Battle) CreatePvbBattle(session comm.IUserSession, req *pb.BattlePVBReq) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var (
|
||||
conn *db.DBConn
|
||||
@ -203,7 +205,7 @@ func (this *Battle) CreatePvbBattle(session comm.IUserSession, req *pb.BattlePVB
|
||||
return
|
||||
}
|
||||
|
||||
//创建pve战斗
|
||||
// 创建pve战斗
|
||||
func (this *Battle) CreatePvpBattle(session comm.IUserSession, req *pb.BattlePVPReq) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var (
|
||||
conn *db.DBConn
|
||||
@ -229,7 +231,7 @@ func (this *Battle) CreatePvpBattle(session comm.IUserSession, req *pb.BattlePVP
|
||||
return
|
||||
}
|
||||
|
||||
//只有跨服环境下才可使用
|
||||
// 只有跨服环境下才可使用
|
||||
func (this *Battle) CreateRtPvpBattle(req *pb.BattleRTPVPReq) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var (
|
||||
redmodel *db.DBModel
|
||||
@ -265,7 +267,7 @@ func (this *Battle) CreateRtPvpBattle(req *pb.BattleRTPVPReq) (errdata *pb.Error
|
||||
return
|
||||
}
|
||||
|
||||
//创建连续战斗
|
||||
// 创建连续战斗
|
||||
func (this *Battle) CreateLPVEBattle(session comm.IUserSession, req *pb.BattleLPVEReq) (errdata *pb.ErrorData, record *pb.DBBattleRecord) {
|
||||
var (
|
||||
conn *db.DBConn
|
||||
@ -298,8 +300,10 @@ func (this *Battle) CreateLPVEBattle(session comm.IUserSession, req *pb.BattleLP
|
||||
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
||||
}
|
||||
}
|
||||
var flag bool
|
||||
for _, v := range req.Format.Friendformat {
|
||||
if v != "" {
|
||||
flag = true
|
||||
// this.ModuleBuried.SendToRtask(session, comm.Rtype108, 1)
|
||||
go this.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype108, 1))
|
||||
break
|
||||
@ -309,19 +313,19 @@ func (this *Battle) CreateLPVEBattle(session comm.IUserSession, req *pb.BattleLP
|
||||
if record, errdata = this.modelBattle.createlpve(session, conn, pb.BattleType_lpev, req); errdata != nil {
|
||||
return
|
||||
}
|
||||
if req.Format.Friendformat != nil {
|
||||
if flag {
|
||||
go this.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype12, 1))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
///创建角色列表 更具Format表格
|
||||
// /创建角色列表 更具Format表格
|
||||
func (this *Battle) CreateRolesByFormat(fid int32) (captain int32, roles []*pb.BattleRole, errdata *pb.ErrorData) {
|
||||
captain, roles, errdata = this.modelBattle.createMasterRoles(2, 0, fid)
|
||||
return
|
||||
}
|
||||
|
||||
///创建角色列表 更具英雄列表
|
||||
// /创建角色列表 更具英雄列表
|
||||
func (this *Battle) CreateRolesByHeros(heros []*pb.DBHero) (roles []*pb.BattleRole, errdata *pb.ErrorData) {
|
||||
roles = make([]*pb.BattleRole, len(heros))
|
||||
for i, v := range heros {
|
||||
@ -334,7 +338,7 @@ func (this *Battle) CreateRolesByHeros(heros []*pb.DBHero) (roles []*pb.BattleRo
|
||||
return
|
||||
}
|
||||
|
||||
///获取战斗详情
|
||||
// /获取战斗详情
|
||||
func (this *Battle) GetBattleInfo(req *pb.BattleGetInfoReq) (errdata *pb.ErrorData, resp *pb.BattleGetInfoResp) {
|
||||
this.Debug("GetBattleInfo", log.Field{Key: "req", Value: req})
|
||||
var (
|
||||
@ -352,7 +356,7 @@ func (this *Battle) GetBattleInfo(req *pb.BattleGetInfoReq) (errdata *pb.ErrorDa
|
||||
return
|
||||
}
|
||||
|
||||
//创建战斗服务
|
||||
// 创建战斗服务
|
||||
func (this *Battle) CreateBattleServer(req *pb.BattleInfo) (errdata *pb.ErrorData) {
|
||||
this.Debug("CreateBattleServer", log.Field{Key: "req", Value: req})
|
||||
var (
|
||||
@ -400,7 +404,7 @@ func (this *Battle) InCmdBattle(req *pb.BattleInCmdReq) (errdata *pb.ErrorData)
|
||||
return
|
||||
}
|
||||
|
||||
//pvp认输
|
||||
// pvp认输
|
||||
func (this *Battle) ConcedeBattle(req *pb.BattleConcedeReq) (errdata *pb.ErrorData) {
|
||||
var (
|
||||
resp *pb.BattleConcedeResp
|
||||
@ -422,7 +426,7 @@ func (this *Battle) ConcedeBattle(req *pb.BattleConcedeReq) (errdata *pb.ErrorDa
|
||||
return
|
||||
}
|
||||
|
||||
//校验战报是否成功
|
||||
// 校验战报是否成功
|
||||
func (this *Battle) CheckBattleReport(session comm.IUserSession, report *pb.BattleReport) (errdata *pb.ErrorData, iswin bool) {
|
||||
var (
|
||||
reply *pb.BattleCheckResults
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
)
|
||||
|
||||
//参数校验
|
||||
// 参数校验
|
||||
func (this *apiComp) LoginCheck(session comm.IUserSession, req *pb.UserLoginReq) (errdata *pb.ErrorData) {
|
||||
if req.Account == "" {
|
||||
errdata = &pb.ErrorData{
|
||||
@ -21,7 +21,7 @@ func (this *apiComp) LoginCheck(session comm.IUserSession, req *pb.UserLoginReq)
|
||||
return
|
||||
}
|
||||
|
||||
//登录
|
||||
// 登录
|
||||
func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (errdata *pb.ErrorData) {
|
||||
if errdata = this.LoginCheck(session, req); errdata != nil {
|
||||
return
|
||||
@ -129,6 +129,7 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (err
|
||||
if this.module.modelUser.isLoginFirst(lastLoginTime) {
|
||||
this.module.ModuleHero.NoLoginDay(user.Uid, int32(utils.DiffDays(lastLoginTime, configure.Now().Unix())))
|
||||
go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype8, 1))
|
||||
go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype9, 1))
|
||||
this.module.modelExpand.updateLoginDay(user.Uid, lastLoginTime)
|
||||
// 清理点赞
|
||||
this.module.ModuleFriend.ResetFriend(user.Uid)
|
||||
|
@ -536,10 +536,12 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha
|
||||
}
|
||||
return
|
||||
}
|
||||
change.Ps += add
|
||||
} else {
|
||||
if change.Ps+add > ggd.PsUl {
|
||||
change.Ps = ggd.PsUl
|
||||
} else {
|
||||
change.Ps += add
|
||||
if change.Ps > ggd.PsUl {
|
||||
change.Ps = ggd.PsUl
|
||||
}
|
||||
}
|
||||
|
||||
|
57
modules/version/api.go
Normal file
57
modules/version/api.go
Normal file
@ -0,0 +1,57 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
"go_dreamfactory/lego/sys/gin"
|
||||
"go_dreamfactory/lego/sys/gin/engine"
|
||||
"reflect"
|
||||
"strings"
|
||||
)
|
||||
|
||||
/*
|
||||
web api 服务组件
|
||||
*/
|
||||
type Api_Comp struct {
|
||||
cbase.ModuleCompBase
|
||||
options *Options //模块参数
|
||||
module *Version //当前模块对象
|
||||
gin gin.ISys //gin 框架 web的热门框架
|
||||
}
|
||||
|
||||
// 组件初始化接口 启动web服务 并注册api
|
||||
func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
err = this.ModuleCompBase.Init(service, module, comp, options)
|
||||
this.options = options.(*Options)
|
||||
this.module = module.(*Version)
|
||||
if this.gin, err = gin.NewSys(gin.SetListenPort(this.options.Port)); err != nil {
|
||||
return
|
||||
}
|
||||
this.suitableMethods() //发射注册api
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Api_Comp) suitableMethods() {
|
||||
typ := reflect.TypeOf(this)
|
||||
vof := reflect.ValueOf(this)
|
||||
for m := 0; m < typ.NumMethod(); m++ {
|
||||
method := typ.Method(m)
|
||||
mname := method.Name
|
||||
mtype := method.Type
|
||||
if method.PkgPath != "" {
|
||||
continue
|
||||
}
|
||||
if mtype.NumIn() != 2 {
|
||||
continue
|
||||
}
|
||||
context := mtype.In(1)
|
||||
if context.String() != "*engine.Context" {
|
||||
continue
|
||||
}
|
||||
if mtype.NumOut() != 0 {
|
||||
continue
|
||||
}
|
||||
this.gin.POST(strings.ToLower(mname), vof.MethodByName(mname).Interface().(func(*engine.Context)))
|
||||
this.gin.GET(strings.ToLower(mname), vof.MethodByName(mname).Interface().(func(*engine.Context)))
|
||||
}
|
||||
}
|
47
modules/version/module.go
Normal file
47
modules/version/module.go
Normal file
@ -0,0 +1,47 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/base"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
)
|
||||
|
||||
/*
|
||||
模块名:web
|
||||
描述:提供管理员相关的http接口
|
||||
开发:李伟
|
||||
*/
|
||||
func NewModule() core.IModule {
|
||||
m := new(Version)
|
||||
return m
|
||||
}
|
||||
|
||||
type Version struct {
|
||||
cbase.ModuleBase
|
||||
options *Options
|
||||
service base.IRPCXService
|
||||
api_comp *Api_Comp //提供weba pi服务的组件
|
||||
}
|
||||
|
||||
// 模块名
|
||||
func (this *Version) GetType() core.M_Modules {
|
||||
return "version"
|
||||
}
|
||||
|
||||
// 模块自定义参数
|
||||
func (this *Version) NewOptions() (options core.IModuleOptions) {
|
||||
return new(Options)
|
||||
}
|
||||
|
||||
func (this *Version) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
||||
err = this.ModuleBase.Init(service, module, options)
|
||||
this.service = service.(base.IRPCXService)
|
||||
this.options = options.(*Options)
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Version) OnInstallComp() {
|
||||
this.ModuleBase.OnInstallComp()
|
||||
this.api_comp = this.RegisterComp(new(Api_Comp)).(*Api_Comp)
|
||||
|
||||
}
|
25
modules/version/options.go
Normal file
25
modules/version/options.go
Normal file
@ -0,0 +1,25 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/utils/mapstructure"
|
||||
"go_dreamfactory/modules"
|
||||
)
|
||||
|
||||
type (
|
||||
Options struct {
|
||||
modules.Options
|
||||
WebDir string
|
||||
Port int
|
||||
Key string
|
||||
}
|
||||
)
|
||||
|
||||
func (this *Options) LoadConfig(settings map[string]interface{}) (err error) {
|
||||
if settings != nil {
|
||||
if err = this.Options.LoadConfig(settings); err != nil {
|
||||
return
|
||||
}
|
||||
err = mapstructure.Decode(settings, this)
|
||||
}
|
||||
return
|
||||
}
|
59
services/version/main.go
Normal file
59
services/version/main.go
Normal file
@ -0,0 +1,59 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"go_dreamfactory/modules/version"
|
||||
"go_dreamfactory/services"
|
||||
"go_dreamfactory/sys/db"
|
||||
|
||||
"go_dreamfactory/lego"
|
||||
"go_dreamfactory/lego/base/rpcx"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
)
|
||||
|
||||
/*
|
||||
服务类型:mainte
|
||||
服务描述:数据库维护以及GM后台接口 服务
|
||||
*/
|
||||
var (
|
||||
conf = flag.String("conf", "./conf/version.yaml", "获取需要启动的服务配置文件") //启动服务的Id
|
||||
)
|
||||
|
||||
/*服务启动的入口函数*/
|
||||
func main() {
|
||||
flag.Parse()
|
||||
s := NewService(
|
||||
rpcx.SetConfPath(*conf),
|
||||
rpcx.SetVersion("1.0.0.0"),
|
||||
)
|
||||
s.OnInstallComp( //装备组件
|
||||
//services.NewGateRouteComp(), //此服务需要接受用户的消息 需要装备网关组件
|
||||
)
|
||||
lego.Run(s, //运行模块
|
||||
version.NewModule(),
|
||||
)
|
||||
}
|
||||
|
||||
func NewService(ops ...rpcx.Option) core.IService {
|
||||
s := new(Service)
|
||||
s.Configure(ops...)
|
||||
return s
|
||||
}
|
||||
|
||||
// worker 的服务对象定义
|
||||
type Service struct {
|
||||
services.ServiceBase
|
||||
}
|
||||
|
||||
// 初始化worker需要的一些系统工具
|
||||
func (this *Service) InitSys() {
|
||||
this.ServiceBase.InitSys()
|
||||
//存储系统
|
||||
if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil {
|
||||
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
|
||||
} else {
|
||||
log.Infof("init sys.db success!")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user