上传错误码
This commit is contained in:
parent
06cf76081d
commit
f6ac63de88
@ -21,8 +21,8 @@ func (this *apiComp) Award(session comm.IUserSession, req *pb.AtlasAwardReq) (co
|
|||||||
)
|
)
|
||||||
list, _ := this.module.modelPandaAtlas.getPandaAtlasList(session.GetUserId())
|
list, _ := this.module.modelPandaAtlas.getPandaAtlasList(session.GetUserId())
|
||||||
for {
|
for {
|
||||||
conf := this.module.configure.GetPandoAtlasAwardConf(list.Award + 1)
|
conf, err := this.module.configure.GetPandoAtlasAwardConf(list.Award + 1)
|
||||||
if conf == nil {
|
if err != nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if list.Score < conf.AtlasScore { // 校验积分够不够
|
if list.Score < conf.AtlasScore { // 校验积分够不够
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package atlas
|
package atlas
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/log"
|
"go_dreamfactory/lego/sys/log"
|
||||||
@ -62,9 +61,8 @@ func (this *configureComp) GetPandoJxConf(id string) (conf *cfg.GamePandamasJxDa
|
|||||||
this.module.Errorln(err)
|
this.module.Errorln(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
err = fmt.Errorf("%T no is *cfg.GamePandamasJxData", v)
|
|
||||||
}
|
}
|
||||||
|
err = comm.NewNotFoundConfErr("atlas", pandaJx, id)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,27 +73,32 @@ func (this *configureComp) GetPandoAtlasConf(id string) (conf *cfg.GamePandamasT
|
|||||||
)
|
)
|
||||||
if v, err = this.GetConfigure(pandaAtlas); err == nil {
|
if v, err = this.GetConfigure(pandaAtlas); err == nil {
|
||||||
if configure, ok := v.(*cfg.GamePandamasTj); ok {
|
if configure, ok := v.(*cfg.GamePandamasTj); ok {
|
||||||
conf = configure.Get(id)
|
if conf = configure.Get(id); nil == conf {
|
||||||
if nil == conf {
|
err = comm.NewNotFoundConfErr("atlas", pandaAtlas, id)
|
||||||
err = fmt.Errorf("GamePandamasTj not found key :%s", id)
|
this.module.Errorln(err)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = fmt.Errorf("%T no is *cfg.GetPandoAtlasConf", v)
|
err = comm.NewNotFoundConfErr("atlas", pandaAtlas, id)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取图鉴奖励
|
// 获取图鉴奖励
|
||||||
func (this *configureComp) GetPandoAtlasAwardConf(lv int32) (conf *cfg.GamePandamasTjjlData) {
|
func (this *configureComp) GetPandoAtlasAwardConf(lv int32) (conf *cfg.GamePandamasTjjlData, err error) {
|
||||||
|
var (
|
||||||
if v, err := this.GetConfigure(pandaAtlasAward); err == nil {
|
v interface{}
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(pandaAtlasAward); err == nil {
|
||||||
if configure, ok := v.(*cfg.GamePandamasTjjl); ok {
|
if configure, ok := v.(*cfg.GamePandamasTjjl); ok {
|
||||||
return configure.Get(lv)
|
if conf = configure.Get(lv); nil == conf {
|
||||||
}
|
err = comm.NewNotFoundConfErr("atlas", pandaAtlasAward, lv)
|
||||||
} else {
|
this.module.Errorln(err)
|
||||||
err = fmt.Errorf("%T no is *cfg.GamePandamasTjData", v)
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
err = comm.NewNotFoundConfErr("atlas", pandaAtlasAward, lv)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/lego/core"
|
|
||||||
"go_dreamfactory/modules"
|
|
||||||
)
|
|
||||||
|
|
||||||
const ()
|
|
||||||
|
|
||||||
type apiComp struct {
|
|
||||||
modules.MCompGate
|
|
||||||
service core.IService
|
|
||||||
configure *configureComp
|
|
||||||
module *AutoBattle
|
|
||||||
viking comm.IViking
|
|
||||||
}
|
|
||||||
|
|
||||||
//组件初始化接口
|
|
||||||
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
|
||||||
err = this.MCompGate.Init(service, module, comp, options)
|
|
||||||
this.module = module.(*AutoBattle)
|
|
||||||
|
|
||||||
this.service = service
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *apiComp) Start() (err error) {
|
|
||||||
err = this.MCompGate.Start()
|
|
||||||
var module core.IModule
|
|
||||||
if module, err = this.service.GetModule(comm.ModuleViking); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.viking = module.(comm.IViking)
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/pb"
|
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
)
|
|
||||||
|
|
||||||
//参数校验
|
|
||||||
func (this *apiComp) AutoChallengeCheck(session comm.IUserSession, req *pb.AutoBattleChallengeReq) (code pb.ErrorCode) {
|
|
||||||
if req.BossId <= 0 || req.Difficulty <= 0 {
|
|
||||||
code = pb.ErrorCode_ReqParameterError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *apiComp) AutoChallenge(session comm.IUserSession, req *pb.AutoBattleChallengeReq) (code pb.ErrorCode, data *pb.ErrorData) {
|
|
||||||
var (
|
|
||||||
battleInfo *pb.BattleInfo
|
|
||||||
)
|
|
||||||
if code = this.AutoChallengeCheck(session, req); code != pb.ErrorCode_Success {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
list, err := this.module.modelAutoBattle.getAutoBattleList(session.GetUserId())
|
|
||||||
if err != nil {
|
|
||||||
code = pb.ErrorCode_DBError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for _, v := range list {
|
|
||||||
if v.Ptype == req.Ptype { // 有正在自动战斗的数据
|
|
||||||
code = pb.ErrorCode_AutoBattleStatesErr
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 写入数据
|
|
||||||
battle := make(map[string]interface{}, 0)
|
|
||||||
_d := &pb.DBAutoBattle{
|
|
||||||
Id: primitive.NewObjectID().Hex(),
|
|
||||||
Uid: session.GetUserId(),
|
|
||||||
AutoWin: req.AutoWin,
|
|
||||||
MaxExp: req.MaxExp,
|
|
||||||
AutoBuy: req.AutoBuy,
|
|
||||||
AutoSell: req.AutoSell,
|
|
||||||
Ptype: req.Ptype,
|
|
||||||
BossId: req.BossId,
|
|
||||||
Difficulty: req.Difficulty,
|
|
||||||
Battle: req.Battle,
|
|
||||||
}
|
|
||||||
battle[_d.Id] = _d
|
|
||||||
if err = this.module.modelAutoBattle.AddListByObjId(session.GetUserId(), battle); err != nil {
|
|
||||||
code = pb.ErrorCode_DBError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 优先判断门票够不够
|
|
||||||
if req.Ptype == pb.PlayType_viking {
|
|
||||||
if req.AutoBuy {
|
|
||||||
this.viking.AutoBuyTicket(session, req.BossId, req.Difficulty)
|
|
||||||
code = this.viking.CheckBattelParameter(session, req.Battle, req.BossId, req.Difficulty) // 参数校验
|
|
||||||
if code != pb.ErrorCode_Success {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
code, battleInfo = this.viking.AutoBattleInfo(session, req.Battle, req.BossId, req.Difficulty)
|
|
||||||
if code == pb.ErrorCode_Success {
|
|
||||||
session.SendMsg(string(this.module.GetType()), "challenge", &pb.AutoBattleChallengeResp{
|
|
||||||
Info: battleInfo,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/pb"
|
|
||||||
)
|
|
||||||
|
|
||||||
//参数校验
|
|
||||||
func (this *apiComp) AutoOverCheck(session comm.IUserSession, req *pb.AutoBattleOverReq) (code pb.ErrorCode) {
|
|
||||||
if req.Ptype == pb.PlayType_null || req.Report == nil {
|
|
||||||
code = pb.ErrorCode_ReqParameterError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if req.Report.Info == nil {
|
|
||||||
code = pb.ErrorCode_ReqParameterError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *apiComp) AutoOver(session comm.IUserSession, req *pb.AutoBattleOverReq) (code pb.ErrorCode, data *pb.ErrorData) {
|
|
||||||
var (
|
|
||||||
autoBattle *pb.DBAutoBattle
|
|
||||||
atno []*pb.UserAtno
|
|
||||||
autoOver bool
|
|
||||||
)
|
|
||||||
if code = this.AutoOverCheck(session, req); code != pb.ErrorCode_Success {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
list, err := this.module.modelAutoBattle.getAutoBattleList(session.GetUserId())
|
|
||||||
if err != nil {
|
|
||||||
code = pb.ErrorCode_DBError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for _, v := range list {
|
|
||||||
if v.Ptype == req.Ptype { // 有正在自动战斗的数据
|
|
||||||
autoBattle = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if autoBattle == nil {
|
|
||||||
code = pb.ErrorCode_AutoBattleNoData
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 分析战报 数据
|
|
||||||
if req.Ptype == pb.PlayType_viking {
|
|
||||||
if code, atno = this.viking.AutoBattleOver(session, req.Report, autoBattle); code != pb.ErrorCode_Success {
|
|
||||||
this.module.modelAutoBattle.DelListByObjId(session.GetUserId(), autoBattle.Id) // 自动战斗结束 删除数据
|
|
||||||
autoOver = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
code, battleInfo := this.viking.AutoBattleInfo(session, autoBattle.Battle, autoBattle.BossId, autoBattle.Difficulty)
|
|
||||||
if code == pb.ErrorCode_Success {
|
|
||||||
session.SendMsg(string(this.module.GetType()), "challenge", &pb.AutoBattleChallengeResp{
|
|
||||||
Info: battleInfo,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
session.SendMsg(string(this.module.GetType()), "over", &pb.AutoBattleOverResp{
|
|
||||||
Asset: atno,
|
|
||||||
Info: battleInfo,
|
|
||||||
Over: autoOver,
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/pb"
|
|
||||||
)
|
|
||||||
|
|
||||||
//参数校验
|
|
||||||
func (this *apiComp) AutoStopCheck(session comm.IUserSession, req *pb.AutoBattleStopReq) (code pb.ErrorCode) {
|
|
||||||
if req.Ptype == pb.PlayType_null {
|
|
||||||
code = pb.ErrorCode_ReqParameterError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *apiComp) AutoStop(session comm.IUserSession, req *pb.AutoBattleStopReq) (code pb.ErrorCode, data *pb.ErrorData) {
|
|
||||||
var (
|
|
||||||
autoBattle *pb.DBAutoBattle
|
|
||||||
)
|
|
||||||
if code = this.AutoStopCheck(session, req); code != pb.ErrorCode_Success {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
list, err := this.module.modelAutoBattle.getAutoBattleList(session.GetUserId())
|
|
||||||
if err != nil {
|
|
||||||
code = pb.ErrorCode_DBError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for _, v := range list {
|
|
||||||
if v.Ptype == req.Ptype { // 有正在自动战斗的数据
|
|
||||||
autoBattle = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if autoBattle == nil {
|
|
||||||
code = pb.ErrorCode_AutoBattleNoData
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = this.module.modelAutoBattle.DelListByObjId(session.GetUserId(), autoBattle.Id); err != nil {
|
|
||||||
code = pb.ErrorCode_DBError
|
|
||||||
return
|
|
||||||
}
|
|
||||||
session.SendMsg(string(this.module.GetType()), "stop", &pb.AutoBattleStopReq{
|
|
||||||
Ptype: req.Ptype,
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/lego/core"
|
|
||||||
"go_dreamfactory/lego/sys/log"
|
|
||||||
"go_dreamfactory/modules"
|
|
||||||
"go_dreamfactory/sys/configure"
|
|
||||||
)
|
|
||||||
|
|
||||||
const ()
|
|
||||||
|
|
||||||
///配置管理基础组件
|
|
||||||
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)
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
//加载多个配置文件
|
|
||||||
func (this *configureComp) LoadMultiConfigure(confs map[string]interface{}) (err error) {
|
|
||||||
for k, v := range confs {
|
|
||||||
err = configure.RegisterConfigure(k, v, nil)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("配置文件:%s解析失败!", k)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
//读取配置数据
|
|
||||||
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
|
|
||||||
return configure.GetConfigure(name)
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/lego/core"
|
|
||||||
"go_dreamfactory/lego/sys/mgo"
|
|
||||||
"go_dreamfactory/modules"
|
|
||||||
"go_dreamfactory/pb"
|
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/mongo"
|
|
||||||
"go.mongodb.org/mongo-driver/x/bsonx"
|
|
||||||
)
|
|
||||||
|
|
||||||
type modelAutoBattle struct {
|
|
||||||
modules.MCompModel
|
|
||||||
module *AutoBattle
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *modelAutoBattle) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
|
||||||
this.TableName = string(comm.TableAuto)
|
|
||||||
err = this.MCompModel.Init(service, module, comp, options)
|
|
||||||
this.module = module.(*AutoBattle)
|
|
||||||
// uid 创建索引
|
|
||||||
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
|
|
||||||
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改列表信息
|
|
||||||
func (this *modelAutoBattle) ChangeListByObjId(uid string, id string, data map[string]interface{}) error {
|
|
||||||
err := this.ChangeList(uid, id, data)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除自动战斗信息
|
|
||||||
func (this *modelAutoBattle) DelListByObjId(uid string, id string) error {
|
|
||||||
err := this.DelListlds(uid, []string{id})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除自动战斗信息
|
|
||||||
func (this *modelAutoBattle) AddListByObjId(uid string, data map[string]interface{}) error {
|
|
||||||
err := this.AddLists(uid, data)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取列表信息
|
|
||||||
func (this *modelAutoBattle) getAutoBattleList(uid string) (result []*pb.DBAutoBattle, err error) {
|
|
||||||
result = make([]*pb.DBAutoBattle, 0)
|
|
||||||
err = this.GetList(uid, &result)
|
|
||||||
if err == mgo.MongodbNil {
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 玩家离线清除自动战斗数据
|
|
||||||
func (this *modelAutoBattle) RemoveUserInfo(uid string) (err error) {
|
|
||||||
this.BatchDelLists(uid)
|
|
||||||
return err
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
package autoBattle
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/lego/core"
|
|
||||||
"go_dreamfactory/lego/sys/event"
|
|
||||||
"go_dreamfactory/lego/sys/log"
|
|
||||||
"go_dreamfactory/modules"
|
|
||||||
"go_dreamfactory/pb"
|
|
||||||
)
|
|
||||||
|
|
||||||
type AutoBattle struct {
|
|
||||||
modules.ModuleBase
|
|
||||||
modelAutoBattle *modelAutoBattle
|
|
||||||
api *apiComp
|
|
||||||
configure *configureComp
|
|
||||||
service core.IService
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewModule() core.IModule {
|
|
||||||
return &AutoBattle{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *AutoBattle) GetType() core.M_Modules {
|
|
||||||
return comm.ModuleAutoBattle
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *AutoBattle) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
|
||||||
err = this.ModuleBase.Init(service, module, options)
|
|
||||||
this.service = service
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *AutoBattle) Start() (err error) {
|
|
||||||
err = this.ModuleBase.Start()
|
|
||||||
|
|
||||||
event.RegisterGO(comm.EventUserOffline, this.EventUserOffline)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *AutoBattle) OnInstallComp() {
|
|
||||||
this.ModuleBase.OnInstallComp()
|
|
||||||
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
|
|
||||||
this.modelAutoBattle = this.RegisterComp(new(modelAutoBattle)).(*modelAutoBattle)
|
|
||||||
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 接口信息
|
|
||||||
func (this *AutoBattle) ModifyAutoData(uid string, id string, data map[string]interface{}) (code pb.ErrorCode) {
|
|
||||||
err := this.modelAutoBattle.ChangeListByObjId(uid, id, data)
|
|
||||||
if err != nil {
|
|
||||||
code = pb.ErrorCode_DBError
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
//Event-------------------------------------------------------------------------------------------------玩家离线
|
|
||||||
func (this *AutoBattle) EventUserOffline(uid, sessionid string) {
|
|
||||||
if err := this.modelAutoBattle.RemoveUserInfo(uid); err != nil {
|
|
||||||
this.Error("EventUserOffline", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()})
|
|
||||||
}
|
|
||||||
}
|
|
@ -33,8 +33,13 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
code = pb.ErrorCode_ConfigNoFound
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if c := this.module.configure.GetCaravanLv(caravan.Lv); c != nil {
|
c, err := this.module.configure.GetCaravanLv(caravan.Lv)
|
||||||
|
if err == nil {
|
||||||
upperLimit = c.Bagtagnum // 获取单个格子堆叠数
|
upperLimit = c.Bagtagnum // 获取单个格子堆叠数
|
||||||
|
} else {
|
||||||
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// special 城市卖给玩家的商品
|
// special 城市卖给玩家的商品
|
||||||
@ -89,8 +94,12 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
curLv := this.module.CheckCaravavLvUp(caravan)
|
curLv := this.module.CheckCaravavLvUp(caravan)
|
||||||
if curLv > caravan.Lv {
|
if curLv > caravan.Lv {
|
||||||
for i := caravan.Lv; i <= curLv-caravan.Lv; i++ {
|
for i := caravan.Lv; i <= curLv-caravan.Lv; i++ {
|
||||||
if c := this.module.configure.GetCaravanLv(int32(i)); c != nil {
|
if c, err := this.module.configure.GetCaravanLv(int32(i)); err == nil {
|
||||||
lvReward = append(lvReward, c.Reward...)
|
lvReward = append(lvReward, c.Reward...)
|
||||||
|
} else {
|
||||||
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,13 +138,17 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
caravan.Items[k].Price = totla / caravan.Items[k].Count
|
caravan.Items[k].Price = totla / caravan.Items[k].Count
|
||||||
// 同步更新该城市的 出售货物信息
|
// 同步更新该城市的 出售货物信息
|
||||||
cityInfo.Count[k] += v
|
cityInfo.Count[k] += v
|
||||||
if itemConf := this.configure.GetCaravanGoods(k); itemConf != nil { // 更新商店库存
|
if itemConf, err := this.configure.GetCaravanGoods(k); err == nil { // 更新商店库存
|
||||||
if cityInfo.Count[k] > itemConf.Goodsnum {
|
if cityInfo.Count[k] > itemConf.Goodsnum {
|
||||||
code = pb.ErrorCode_TrollBuyMax // 商品数量不足
|
code = pb.ErrorCode_TrollBuyMax // 商品数量不足
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
update["city"] = caravan.City
|
update["city"] = caravan.City
|
||||||
addScore -= price * v
|
addScore -= price * v
|
||||||
|
} else {
|
||||||
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if this.module.ArrayBag(caravan, upperLimit) { // 背包满了
|
if this.module.ArrayBag(caravan, upperLimit) { // 背包满了
|
||||||
|
@ -24,8 +24,12 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.CaravanGetListRe
|
|||||||
list, err := this.module.modelCaravan.getCaravanList(session.GetUserId())
|
list, err := this.module.modelCaravan.getCaravanList(session.GetUserId())
|
||||||
|
|
||||||
if configure.Now().Unix() >= list.Resettime || err == mgo.MongodbNil { // 初始化门票和虚拟币
|
if configure.Now().Unix() >= list.Resettime || err == mgo.MongodbNil { // 初始化门票和虚拟币
|
||||||
if conf := this.module.configure.GetCaravanLv(list.Lv); conf != nil {
|
if conf, err := this.module.configure.GetCaravanLv(list.Lv); err == nil {
|
||||||
this.module.ModuleItems.CleanItemById(session, conf.Tickettop.T) // 清理之前的门票数据
|
this.module.ModuleItems.CleanItemById(session, conf.Tickettop.T) // 清理之前的门票数据
|
||||||
|
} else {
|
||||||
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if code = this.module.InitCaravanTicket(session, list.Lv); code != pb.ErrorCode_Success {
|
if code = this.module.InitCaravanTicket(session, list.Lv); code != pb.ErrorCode_Success {
|
||||||
return
|
return
|
||||||
|
@ -27,9 +27,10 @@ func (this *apiComp) GetStory(session comm.IUserSession, req *pb.CaravanGetStory
|
|||||||
}
|
}
|
||||||
list, _ := this.module.modelCaravan.getCaravanList(session.GetUserId())
|
list, _ := this.module.modelCaravan.getCaravanList(session.GetUserId())
|
||||||
|
|
||||||
conf := this.module.configure.GetCaravanEventById(req.Cid)
|
conf, err := this.module.configure.GetCaravanEventById(req.Cid)
|
||||||
if conf == nil {
|
if err != nil {
|
||||||
code = pb.ErrorCode_ReqParameterError
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if list.Eventid != req.Cid {
|
if list.Eventid != req.Cid {
|
||||||
|
@ -30,7 +30,7 @@ func (this *apiComp) GotoCity(session comm.IUserSession, req *pb.CaravanGotoCity
|
|||||||
|
|
||||||
// 获取事件
|
// 获取事件
|
||||||
if list.Eventid != 0 {
|
if list.Eventid != 0 {
|
||||||
if event := this.module.configure.GetCaravanEventById(list.Eventid); event != nil {
|
if event, err := this.module.configure.GetCaravanEventById(list.Eventid); err == nil {
|
||||||
// 校验任务是否超时
|
// 校验任务是否超时
|
||||||
if list.Tasktime-configure.Now().Unix() > int64(event.Eventtime) { //TODO 任务超时
|
if list.Tasktime-configure.Now().Unix() > int64(event.Eventtime) { //TODO 任务超时
|
||||||
|
|
||||||
@ -41,6 +41,10 @@ func (this *apiComp) GotoCity(session comm.IUserSession, req *pb.CaravanGotoCity
|
|||||||
} else {
|
} else {
|
||||||
bNewTask = false
|
bNewTask = false
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if bNewTask { // 到该城市随机一个新的任务
|
if bNewTask { // 到该城市随机一个新的任务
|
||||||
@ -61,13 +65,17 @@ func (this *apiComp) GotoCity(session comm.IUserSession, req *pb.CaravanGotoCity
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 校验门票
|
// 校验门票
|
||||||
if d := this.module.configure.GetCaravanLv(list.Lv); d != nil {
|
if d, err := this.module.configure.GetCaravanLv(list.Lv); err == nil {
|
||||||
//d.Tickettop
|
//d.Tickettop
|
||||||
res = &cfg.Gameatn{
|
res = &cfg.Gameatn{
|
||||||
A: d.Tickettop.A,
|
A: d.Tickettop.A,
|
||||||
T: d.Tickettop.T,
|
T: d.Tickettop.T,
|
||||||
N: req.Ticket,
|
N: req.Ticket,
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
data.Message = err.Error()
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if code = this.module.ConsumeRes(session, []*cfg.Gameatn{res}, true); code != pb.ErrorCode_Success { // 校验门票数量
|
if code = this.module.ConsumeRes(session, []*cfg.Gameatn{res}, true); code != pb.ErrorCode_Success { // 校验门票数量
|
||||||
return
|
return
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package caravan
|
package caravan
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/log"
|
"go_dreamfactory/lego/sys/log"
|
||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
@ -61,43 +61,54 @@ func (this *configureComp) GetCaravanCity(cityId int32) (data *cfg.GameCaravanCi
|
|||||||
)
|
)
|
||||||
if v, err = this.GetConfigure(game_caravan); err == nil {
|
if v, err = this.GetConfigure(game_caravan); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanCity); ok {
|
if configure, ok := v.(*cfg.GameCaravanCity); ok {
|
||||||
data = configure.Get(cityId)
|
if data = configure.Get(cityId); data == nil {
|
||||||
if data == nil {
|
err = comm.NewNotFoundConfErr("caravan", game_caravan, cityId)
|
||||||
err = fmt.Errorf("caravan GetCaravanCity conf not found key:%d", cityId)
|
this.module.Errorln(err)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = fmt.Errorf("get GetCaravanCity conf err:%v", err)
|
err = comm.NewNotFoundConfErr("caravan", game_caravan, cityId)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取货物基本信息
|
// 获取货物基本信息
|
||||||
func (this *configureComp) GetCaravanLv(lv int32) (data *cfg.GameCaravanLvData) {
|
func (this *configureComp) GetCaravanLv(lv int32) (data *cfg.GameCaravanLvData, err error) {
|
||||||
if v, err := this.GetConfigure(game_caravan_lv); err == nil {
|
var (
|
||||||
|
v interface{}
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(game_caravan_lv); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanLv); ok {
|
if configure, ok := v.(*cfg.GameCaravanLv); ok {
|
||||||
data = configure.Get(lv)
|
if data = configure.Get(lv); data == nil {
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_lv, lv)
|
||||||
|
this.module.Errorln(err)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
log.Errorf("get GetCaravanGoods conf err:%v", err)
|
|
||||||
}
|
}
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_lv, lv)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *configureComp) GetCaravanGoods(itemId int32) (data *cfg.GameCaravanThingData) {
|
func (this *configureComp) GetCaravanGoods(itemId int32) (data *cfg.GameCaravanThingData, err error) {
|
||||||
if v, err := this.GetConfigure(game_caravan_thing); err == nil {
|
var (
|
||||||
|
v interface{}
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(game_caravan_thing); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanThing); ok {
|
if configure, ok := v.(*cfg.GameCaravanThing); ok {
|
||||||
data = configure.Get(itemId)
|
if data = configure.Get(itemId); data == nil {
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_thing, itemId)
|
||||||
|
this.module.Errorln(err)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
log.Errorf("get GetCaravanGoods conf err:%v", err)
|
|
||||||
}
|
}
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_thing, itemId)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *configureComp) GetAllCaravanCity() (data []*cfg.GameCaravanCityData) {
|
func (this *configureComp) GetAllCaravanCity() (data []*cfg.GameCaravanCityData) {
|
||||||
|
|
||||||
if v, err := this.GetConfigure(game_caravan); err == nil {
|
if v, err := this.GetConfigure(game_caravan); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanCity); ok {
|
if configure, ok := v.(*cfg.GameCaravanCity); ok {
|
||||||
for _, v := range configure.GetDataList() {
|
for _, v := range configure.GetDataList() {
|
||||||
@ -111,6 +122,7 @@ func (this *configureComp) GetAllCaravanCity() (data []*cfg.GameCaravanCityData)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
func (this *configureComp) GetAllCaravanItem() (data []*cfg.GameCaravanThingData) {
|
func (this *configureComp) GetAllCaravanItem() (data []*cfg.GameCaravanThingData) {
|
||||||
|
|
||||||
if v, err := this.GetConfigure(game_caravan_thing); err == nil {
|
if v, err := this.GetConfigure(game_caravan_thing); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanThing); ok {
|
if configure, ok := v.(*cfg.GameCaravanThing); ok {
|
||||||
for _, v := range configure.GetDataList() {
|
for _, v := range configure.GetDataList() {
|
||||||
@ -125,15 +137,20 @@ func (this *configureComp) GetAllCaravanItem() (data []*cfg.GameCaravanThingData
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取随机事件
|
// 获取随机事件
|
||||||
func (this *configureComp) GetCaravanEventById(id int32) (data *cfg.GameCaravanEventData) {
|
func (this *configureComp) GetCaravanEventById(id int32) (data *cfg.GameCaravanEventData, err error) {
|
||||||
if v, err := this.GetConfigure(game_caravan_event); err == nil {
|
var (
|
||||||
|
v interface{}
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(game_caravan_event); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanEvent); ok {
|
if configure, ok := v.(*cfg.GameCaravanEvent); ok {
|
||||||
data = configure.Get(id)
|
if data = configure.Get(id); data == nil {
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_event, id)
|
||||||
|
this.module.Errorln(err)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
log.Errorf("get GetCaravanEventById conf err:%v", err)
|
|
||||||
}
|
}
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_event, id)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,13 +196,15 @@ func (this *configureComp) GetCaravanReward() (reward []*cfg.GameCaravanRewardDa
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *configureComp) GetCaravanRank(index int32) (reward *cfg.GameCaravanRankData) {
|
func (this *configureComp) GetCaravanRank(index int32) (reward *cfg.GameCaravanRankData, err error) {
|
||||||
if v, err := this.GetConfigure(game_caravan_rank); err == nil {
|
if v, err := this.GetConfigure(game_caravan_rank); err == nil {
|
||||||
if configure, ok := v.(*cfg.GameCaravanRank); ok {
|
if configure, ok := v.(*cfg.GameCaravanRank); ok {
|
||||||
reward = configure.Get(index)
|
if reward = configure.Get(index); reward == nil {
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_rank, index)
|
||||||
|
this.module.Errorln(err)
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
log.Errorf("get GetCaravanInitCity conf err:%v", err)
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
err = comm.NewNotFoundConfErr("caravan", game_caravan_rank, index)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ func (this *modelCaravan) getCaravanList(uid string) (result *pb.DBCaravan, err
|
|||||||
result.Citystime = configure.Now().Unix()
|
result.Citystime = configure.Now().Unix()
|
||||||
result.Lv = 1
|
result.Lv = 1
|
||||||
result.Curcity = this.module.configure.GetCaravanInitCity() // 获取默认城市
|
result.Curcity = this.module.configure.GetCaravanInitCity() // 获取默认城市
|
||||||
if conf := this.module.configure.GetCaravanLv(result.Lv); conf != nil {
|
if conf, err := this.module.configure.GetCaravanLv(result.Lv); err != nil {
|
||||||
result.Baglimit = conf.Bagtop
|
result.Baglimit = conf.Bagtop
|
||||||
}
|
}
|
||||||
this.module.InitCaravanCityData(uid, result) // 初始1级
|
this.module.InitCaravanCityData(uid, result) // 初始1级
|
||||||
|
@ -115,7 +115,7 @@ func (this *Caravan) InitCaravanItemData(uid string, data *pb.DBCaravan) {
|
|||||||
// 初始化门票和虚拟币
|
// 初始化门票和虚拟币
|
||||||
func (this *Caravan) InitCaravanTicket(session comm.IUserSession, lv int32) (code pb.ErrorCode) {
|
func (this *Caravan) InitCaravanTicket(session comm.IUserSession, lv int32) (code pb.ErrorCode) {
|
||||||
code = pb.ErrorCode_ConfigNoFound
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
if conf := this.modelCaravan.module.configure.GetCaravanLv(lv); conf != nil {
|
if conf, _ := this.modelCaravan.module.configure.GetCaravanLv(lv); conf != nil {
|
||||||
var res []*cfg.Gameatn
|
var res []*cfg.Gameatn
|
||||||
res = append(res, conf.Tickettop)
|
res = append(res, conf.Tickettop)
|
||||||
res = append(res, conf.Moneynumtop)
|
res = append(res, conf.Moneynumtop)
|
||||||
@ -153,7 +153,7 @@ func (this *Caravan) refreshCaravanCityInfo(uid string, caravan *pb.DBCaravan) {
|
|||||||
icount := int32(subTime / int64(changeTime)) // 循环周期
|
icount := int32(subTime / int64(changeTime)) // 循环周期
|
||||||
caravan.Citystime += int64(changeTime * icount)
|
caravan.Citystime += int64(changeTime * icount)
|
||||||
for k, v := range caravan.Goods {
|
for k, v := range caravan.Goods {
|
||||||
if c := this.configure.GetCaravanGoods(k); c != nil {
|
if c, err := this.configure.GetCaravanGoods(k); err == nil {
|
||||||
caravan.Oldprice[k] = v.Price
|
caravan.Oldprice[k] = v.Price
|
||||||
if icount > 50 { //超过一定的周期 则不计算
|
if icount > 50 { //超过一定的周期 则不计算
|
||||||
// 随机出新的变动周期
|
// 随机出新的变动周期
|
||||||
@ -222,7 +222,7 @@ func (this *Caravan) refreshCaravanCityInfo(uid string, caravan *pb.DBCaravan) {
|
|||||||
// 校验随机事件是否超时
|
// 校验随机事件是否超时
|
||||||
func (this *Caravan) CheckCaravanTask(session comm.IUserSession, data *pb.DBCaravan) {
|
func (this *Caravan) CheckCaravanTask(session comm.IUserSession, data *pb.DBCaravan) {
|
||||||
if data.Eventid != 0 {
|
if data.Eventid != 0 {
|
||||||
if list := this.configure.GetCaravanEventById(data.Eventid); list != nil {
|
if list, err := this.configure.GetCaravanEventById(data.Eventid); err == nil {
|
||||||
// 校验任务是否超时
|
// 校验任务是否超时
|
||||||
if data.Tasktime-configure.Now().Unix() > int64(list.Eventtime) { //TODO 任务超时 通知任务模块处理 并清理相关数据
|
if data.Tasktime-configure.Now().Unix() > int64(list.Eventtime) { //TODO 任务超时 通知任务模块处理 并清理相关数据
|
||||||
module, err := this.service.GetModule(comm.ModuleWorldtask)
|
module, err := this.service.GetModule(comm.ModuleWorldtask)
|
||||||
@ -277,7 +277,7 @@ func (this *Caravan) TaskComplete(session comm.IUserSession, taskid int32) {
|
|||||||
resp *pb.CaravanTaskCompletePush
|
resp *pb.CaravanTaskCompletePush
|
||||||
)
|
)
|
||||||
if !this.IsCross() {
|
if !this.IsCross() {
|
||||||
if conf := this.configure.GetCaravanEventById(taskid); conf != nil {
|
if conf, err := this.configure.GetCaravanEventById(taskid); err == nil {
|
||||||
list, _ := this.modelCaravan.getCaravanList(session.GetUserId())
|
list, _ := this.modelCaravan.getCaravanList(session.GetUserId())
|
||||||
if list.Taskid == taskid {
|
if list.Taskid == taskid {
|
||||||
this.CleanCaravanTask(session.GetUserId(), list) //任务完成 清理任务数据
|
this.CleanCaravanTask(session.GetUserId(), list) //任务完成 清理任务数据
|
||||||
@ -329,7 +329,7 @@ func (this *Caravan) ArrayBag(data *pb.DBCaravan, limit int32) (bFull bool) {
|
|||||||
func (this *Caravan) CheckCaravavLvUp(data *pb.DBCaravan) (curLv int32) {
|
func (this *Caravan) CheckCaravavLvUp(data *pb.DBCaravan) (curLv int32) {
|
||||||
curLv = data.Lv
|
curLv = data.Lv
|
||||||
for {
|
for {
|
||||||
if conf := this.configure.GetCaravanLv(curLv + 1); conf != nil {
|
if conf, err := this.configure.GetCaravanLv(curLv + 1); err == nil {
|
||||||
if conf.Newmoneyexp <= int32(data.Profit) {
|
if conf.Newmoneyexp <= int32(data.Profit) {
|
||||||
curLv++
|
curLv++
|
||||||
} else {
|
} else {
|
||||||
@ -363,8 +363,8 @@ func (this *Caravan) Rpc_ModuleCaravanSettlement(ctx context.Context, args *pb.E
|
|||||||
rankIndex++
|
rankIndex++
|
||||||
temp := &pb.DBUser{}
|
temp := &pb.DBUser{}
|
||||||
if err = _data.Decode(temp); err == nil {
|
if err = _data.Decode(temp); err == nil {
|
||||||
c := this.configure.GetCaravanRank(rankIndex)
|
c, err := this.configure.GetCaravanRank(rankIndex)
|
||||||
if c != nil {
|
if err == nil {
|
||||||
this.mail.SendMailByUID(temp.Uid, "CaravanRank", c.Reward, []string{strconv.Itoa(int(rankIndex))})
|
this.mail.SendMailByUID(temp.Uid, "CaravanRank", c.Reward, []string{strconv.Itoa(int(rankIndex))})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user