This commit is contained in:
liwei1dao 2023-02-07 18:53:02 +08:00
commit 2ea491b859
21 changed files with 300 additions and 2685 deletions

View File

@ -1,62 +0,0 @@
[
{
"index": "hero_reset",
"var": [
{
"a": "attr",
"t": "gold",
"n": 20000
}
]
},
{
"index": "hero_name",
"var": [
{
"a": "attr",
"t": "gold",
"n": 20
}
]
},
{
"index": "friend_peize",
"var": [
{
"a": "attr",
"t": "friend",
"n": 100
}
]
},
{
"index": "equip_wash",
"var": [
{
"a": "attr",
"t": "gold",
"n": 20000
}
]
},
{
"index": "talent_reset",
"var": [
{
"a": "attr",
"t": "gold",
"n": 20000
}
]
},
{
"index": "unified_reward",
"var": [
{
"a": "attr",
"t": "gold",
"n": 20000
}
]
}
]

View File

@ -538,6 +538,7 @@
10, 10,
20, 20,
30 30
] ],
"generaltp": "500000"
} }
] ]

View File

@ -1425,7 +1425,7 @@
"hid": "23003", "hid": "23003",
"name": { "name": {
"key": "hero_23003", "key": "hero_23003",
"text": "泰德·邓普顿" "text": "黛塔黛恩"
}, },
"star": 3, "star": 3,
"color": 2, "color": 2,

File diff suppressed because it is too large Load Diff

View File

@ -6247,6 +6247,50 @@
"text": "波比的天赋点不足" "text": "波比的天赋点不足"
} }
}, },
{
"id": "500000",
"name": {
"key": "itemname_90001",
"text": "通用共鸣道具"
},
"usetype": 3,
"color": 5,
"bagtype": 1,
"index": 99,
"special_type": 0,
"time": 0,
"effects": "effect_ui_wuping_2",
"box_id": 0,
"synthetize_num": 0,
"access": [
155
],
"use_skip": 155,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 0,
"race": 0,
"img": "ytx_js_15005",
"ico": "ytx_js_15005",
"intr": {
"key": "itemdesc_500000",
"text": "亚力克斯天赋点"
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_500000",
"text": "波比的天赋点不足"
}
},
{ {
"id": "1000001", "id": "1000001",
"name": { "name": {

View File

@ -51,7 +51,7 @@ type (
QueryHeroAmount(uId string, heroCfgId string) (amount uint32) QueryHeroAmount(uId string, heroCfgId string) (amount uint32)
// 批量创建英雄 // 批量创建英雄
CreateRepeatHeros(session IUserSession, heros map[string]int32, bPush bool) (hero *pb.DBHero, code pb.ErrorCode) CreateRepeatHeros(session IUserSession, heros map[string]int32, bPush bool) (hero *pb.DBHero, atno []*pb.UserAtno, code pb.ErrorCode)
// 获取英雄 // 获取英雄
// heroId 英雄ID // heroId 英雄ID
GetHeroByObjID(uid, heroId string) (*pb.DBHero, pb.ErrorCode) GetHeroByObjID(uid, heroId string) (*pb.DBHero, pb.ErrorCode)
@ -89,8 +89,6 @@ type (
GetTujianHeroNum(uid string) int32 GetTujianHeroNum(uid string) int32
//拥有觉醒至A级的B星英雄N个 Rtype123 //拥有觉醒至A级的B星英雄N个 Rtype123
CheckJuexingHeroNum(uid string, juexingLv int32, star int32) int32 CheckJuexingHeroNum(uid string, juexingLv int32, star int32) int32
//拥有共鸣至N级的英雄 Rtype124
CheckResonaceHeroNum(uid string, resonaceLv int32) int32
// 获取所有满星满级满觉醒的英雄 // 获取所有满星满级满觉醒的英雄
GetAllMaxHero(session IUserSession) (code pb.ErrorCode) GetAllMaxHero(session IUserSession) (code pb.ErrorCode)

View File

@ -470,12 +470,7 @@ func (this *modelBattleComp) createBattleRole(hero *pb.DBHero, tid, pos int) (ro
for k, v := range hero.AddProperty { for k, v := range hero.AddProperty {
role.Property[k] += v role.Property[k] += v
} }
for k, v := range hero.Energy {
role.Property[k] += v
}
for k, v := range hero.EnergyProperty {
role.Property[k] += v
}
for k, v := range hero.JuexProperty { for k, v := range hero.JuexProperty {
role.Property[k] += v role.Property[k] += v
} }

View File

@ -67,12 +67,11 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
newHero := this.module.modelHero.CloneNewHero(session.GetUserId(), _hero) newHero := this.module.modelHero.CloneNewHero(session.GetUserId(), _hero)
_hero.JuexProperty = map[string]int32{} _hero.JuexProperty = map[string]int32{}
chanegCard = append(chanegCard, newHero) chanegCard = append(chanegCard, newHero)
_heroMap["isOverlying"] = false
_heroMap["sameCount"] = 1 _heroMap["sameCount"] = 1
_heroMap["horoscopeProperty"] = _hero.HoroscopeProperty _heroMap["horoscopeProperty"] = _hero.HoroscopeProperty
} }
_hero.SameCount = 1 _hero.SameCount = 1
_hero.IsOverlying = false
// 加属性 awakenData // 加属性 awakenData
if len(awakenData.Phasebonus) != 2 { if len(awakenData.Phasebonus) != 2 {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound

View File

@ -20,23 +20,22 @@ func (this *apiComp) DrawCardCheck(session comm.IUserSession, req *pb.HeroDrawCa
//抽卡 //抽卡
func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq) (code pb.ErrorCode, data proto.Message) { func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq) (code pb.ErrorCode, data proto.Message) {
var ( var (
szCards []string // 最终抽到的卡牌 szCards []string // 最终抽到的卡牌
drawCount int32 // 抽卡次数 drawCount int32 // 抽卡次数
szStar []int32 //星级 szStar []int32 //星级
costRes []*cfg.Gameatn // 消耗 costRes []*cfg.Gameatn // 消耗
star4Max int32 // 10连抽最大4星数量 star4Max int32 // 10连抽最大4星数量
star5Max int32 // 10连抽最大5星数量 star5Max int32 // 10连抽最大5星数量
cfgDraw *cfg.GameGlobalData cfgDraw *cfg.GameGlobalData
costAtn *cfg.Gameatn costAtn *cfg.Gameatn
heroRecord *pb.DBHeroRecord heroRecord *pb.DBHeroRecord
pool string // 当前抽对应的卡池 pool string // 当前抽对应的卡池
_mapAddHero map[string]int32
strPool []string // 10连跨多个卡池情况 strPool []string // 10连跨多个卡池情况
update map[string]interface{} update map[string]interface{}
normalDraw bool // 是否是普通抽 normalDraw bool // 是否是普通抽
) )
update = make(map[string]interface{}) update = make(map[string]interface{})
_mapAddHero = make(map[string]int32, 0)
cfgDraw = this.module.configure.GetGlobalConf() // 读取抽卡配置文件 cfgDraw = this.module.configure.GetGlobalConf() // 读取抽卡配置文件
if cfgDraw == nil { if cfgDraw == nil {
return return
@ -326,35 +325,30 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
update["totalcount"] = heroRecord.Totalcount update["totalcount"] = heroRecord.Totalcount
update["daycount"] = heroRecord.Daycount update["daycount"] = heroRecord.Daycount
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update) this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
szNewCards := make([]*cfg.Gameatn, 0) rsp := &pb.HeroDrawCardResp{
Data: []*pb.AtnoData{},
}
for _, heroId := range szCards { for _, heroId := range szCards {
bFind := false
_mapAddHero[heroId]++ res := &cfg.Gameatn{
for _, v := range szNewCards { A: "hero",
if v.T == heroId { T: heroId,
v.N++ N: 1,
bFind = true }
break if code, atno := this.module.DispenseAtno(session, []*cfg.Gameatn{res}, true); code == pb.ErrorCode_Success {
var list *pb.AtnoData
list.Atno = atno
rsp.Data = append(rsp.Data, list)
for _, v := range atno {
if v.A == "hero" {
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 广播 首次获得英雄
this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, v.T)
}
}
} }
} }
if !bFind {
res := &cfg.Gameatn{
A: "hero",
T: heroId,
N: 1,
}
szNewCards = append(szNewCards, res)
}
} }
// 获得新卡 session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
if code = this.module.DispenseRes(session, szNewCards, true); code != pb.ErrorCode_Success {
this.module.Errorf("err:%v,create heros:%v,uid,%s", code, szNewCards, session.GetUserId())
code = pb.ErrorCode_HeroCreate // 创建新英雄失败
}
///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
this.module.SendChatMsg(session, _mapAddHero, szCards)
// 任务统计 // 任务统计
this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw) this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw)

View File

@ -32,9 +32,8 @@ func (this *apiComp) GetSpecified(session comm.IUserSession, req *pb.HeroGetSpec
hero.Lv = req.Lv hero.Lv = req.Lv
hero.Star = req.Star hero.Star = req.Star
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{
"lv": hero.Lv, "lv": hero.Lv,
"star": hero.Star, "star": hero.Star,
"isOverlying": false,
} }
// 保存数据 // 保存数据
err1 := this.module.modelHero.ChangeList(session.GetUserId(), hero.Id, _heroMap) err1 := this.module.modelHero.ChangeList(session.GetUserId(), hero.Id, _heroMap)

View File

@ -21,7 +21,8 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe
var ( var (
talent *pb.DBHeroTalent talent *pb.DBHeroTalent
err error err error
chanegCard []*pb.DBHero // 推送属性变化 chanegCard []*pb.DBHero // 推送属性变化
res []*cfg.Gameatn // 学习天赋需要消耗的道具
) )
chanegCard = make([]*pb.DBHero, 0) chanegCard = make([]*pb.DBHero, 0)
if code = this.TalentLearnCheck(session, req); code != pb.ErrorCode_Success { if code = this.TalentLearnCheck(session, req); code != pb.ErrorCode_Success {
@ -81,27 +82,38 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe
} }
} }
} }
// 校验消耗
if code = this.module.CheckRes(session, talentConf.Thing); code != pb.ErrorCode_Success { res = append(res, talentConf.Thing...)
return
}
// 消耗指定的天赋点数 // 消耗指定的天赋点数
t := this.module.configure.GetHeroTalentBoxItem(talent.HeroId) t := this.module.configure.GetHeroTalentBoxItem(talent.HeroId)
if t != "" && talentConf.Point > 0 { if t != "" && talentConf.Point > 0 {
res := &cfg.Gameatn{
A: "item", curItemCount := int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), t))
T: t, if curItemCount < talentConf.Point { // 如果数量不够 则取找其他物品替代
N: talentConf.Point, leftCount := talentConf.Point - curItemCount // 需要其他物品的数量
} generaltp := this.module.configure.GetGlobalConf().Generaltp
if code = this.module.CheckRes(session, []*cfg.Gameatn{res}); code != pb.ErrorCode_Success { otherCount := int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), generaltp))
return if leftCount <= otherCount { // 其他物品够扣
} else { point := &cfg.Gameatn{
if code = this.module.ConsumeRes(session, []*cfg.Gameatn{res}, true); code != pb.ErrorCode_Success { A: "item",
T: generaltp,
N: leftCount,
}
res = append(res, point)
} else { // 其他替代的道具也不足 直接返回
code = pb.ErrorCode_ItemsNoEnough
return return
} }
} else {
point := &cfg.Gameatn{
A: "item",
T: t,
N: talentConf.Point,
}
res = append(res, point)
} }
} }
if code = this.module.ConsumeRes(session, talentConf.Thing, true); code != pb.ErrorCode_Success { if code = this.module.ConsumeRes(session, res, true); code != pb.ErrorCode_Success {
return return
} }

View File

@ -13,26 +13,24 @@ import (
) )
const ( const (
equip_suit = "game_equipsuit.json" //装备套装表 equip_suit = "game_equipsuit.json" //装备套装表
new_hero = "game_hero.json" //英雄 new_hero = "game_hero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数 hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数 hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星 hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性 hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级 hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级 hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能 game_skillatk = "game_skillatk.json" // 英雄技能
//hero_resonance = "game_heroresonance.json" // 英雄共鸣 hero_awaken = "game_heroawaken.json" // 英雄觉醒
//hero_comatn = "game_comatn.json" // 英雄共鸣重置 hero_drawcard = "game_drawcard.json" // 抽卡
hero_awaken = "game_heroawaken.json" // 英雄觉醒 hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcard = "game_drawcard.json" // 抽卡 hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整 hero_fusion = "game_herofusion.json" // 卡牌融合
hero_drawcost = "game_drawcost.json" // 抽卡消耗 hero_starupsp = "game_herostarupsp.json" // 精灵升星
hero_fusion = "game_herofusion.json" // 卡牌融合 hero_talentskill = "game_talentskill.json" // 天赋
hero_starupsp = "game_herostarupsp.json" // 精灵升星 hero_talent = "game_herotalent.json" // 天赋详细数据
hero_talentskill = "game_talentskill.json" // 天赋 hero_itembox = "game_itembox.json" // 天赋详细数据
hero_talent = "game_herotalent.json" // 天赋详细数据
hero_itembox = "game_itembox.json" // 天赋详细数据
game_shopitem = "game_shopitem.json" game_shopitem = "game_shopitem.json"
hero_skill = "game_heroskill.json" hero_skill = "game_heroskill.json"
) )
@ -54,15 +52,14 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options) err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Hero) this.module = module.(*Hero)
err = this.LoadMultiConfigure(map[string]interface{}{ err = this.LoadMultiConfigure(map[string]interface{}{
equip_suit: cfg.NewGameEquipSuit, equip_suit: cfg.NewGameEquipSuit,
new_hero: cfg.NewGameHero, new_hero: cfg.NewGameHero,
hero_stargrow: cfg.NewGameHeroStargrow, hero_stargrow: cfg.NewGameHeroStargrow,
hero_levelgrow: cfg.NewGameHeroLevelgrow, hero_levelgrow: cfg.NewGameHeroLevelgrow,
hero_levelup: cfg.NewGameHeroLevelup, hero_levelup: cfg.NewGameHeroLevelup,
hero_exp: cfg.NewGameHeroExp, hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel, hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk, game_skillatk: cfg.NewGameSkillAtk,
//hero_comatn: cfg.NewGameComAtn,
hero_drawcard: cfg.NewGameDrawCard, hero_drawcard: cfg.NewGameDrawCard,
hero_fusion: cfg.NewGameHerofusion, hero_fusion: cfg.NewGameHerofusion,
hero_starupsp: cfg.NewGameHeroStarupSp, hero_starupsp: cfg.NewGameHeroStarupSp,

View File

@ -50,16 +50,13 @@ func (this *ModelHero) InitHero(uid string, heroCfgId string) *pb.DBHero {
HeroID: heroCfg.Hid, HeroID: heroCfg.Hid,
Star: heroCfg.Star, //初始星级 Star: heroCfg.Star, //初始星级
Lv: 1, //初始等级 Lv: 1, //初始等级
IsOverlying: true, //是否允许叠加,
Block: false, //未锁定 Block: false, //未锁定
CardType: heroCfg.Type, //卡片类型 CardType: heroCfg.Type, //卡片类型
Skins: []int32{}, Skins: []int32{},
EquipID: make([]string, 8), //初始装备 EquipID: make([]string, 8), //初始装备
SameCount: 1, //默认叠加数量 SameCount: 1, //默认叠加数量
AddProperty: make(map[string]int32), AddProperty: make(map[string]int32),
Energy: make(map[string]int32),
Property: make(map[string]int32), Property: make(map[string]int32),
EnergyProperty: make(map[string]int32),
JuexProperty: make(map[string]int32), JuexProperty: make(map[string]int32),
TalentProperty: make(map[string]int32), TalentProperty: make(map[string]int32),
HoroscopeProperty: make(map[string]int32), HoroscopeProperty: make(map[string]int32),
@ -161,58 +158,6 @@ func (this *ModelHero) initHeroOverlying(uid string, heroCfgId string, count int
return return
} }
// 该方法适用创建初始英雄 叠加英雄 count叠加数量
func (this *ModelHero) createHeroOverlying(uid string, heroCfgId string, count int32) (hero *pb.DBHero, err error) {
heros := make([]*pb.DBHero, 0)
if this.moduleHero.IsCross() {
if dbModel, err := this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil {
this.moduleHero.Errorln(err)
} else {
if err = dbModel.GetList(uid, &heros); err != nil {
this.moduleHero.Errorf("err:%v", err)
}
}
} else {
if err = this.GetList(uid, &heros); err != nil {
this.moduleHero.Errorf("err:%v", err)
}
}
for _, obj := range heros {
if obj.HeroID == heroCfgId { // z
return
}
}
for _, h := range heros {
if h.HeroID == heroCfgId &&
h.IsOverlying {
h.SameCount += count
data := map[string]interface{}{
"sameCount": h.SameCount, //叠加数
}
hero = h
if this.moduleHero.IsCross() {
if model, err := this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil {
this.moduleHero.Errorln(err)
} else {
if err := model.ChangeList(uid, h.Id, data); err != nil {
return nil, err
}
}
} else {
if err := this.ChangeList(uid, h.Id, data); err != nil {
return nil, err
}
}
return
}
}
return this.initHeroOverlying(uid, heroCfgId, count)
}
//获取一个英雄(参数唯一objID) //获取一个英雄(参数唯一objID)
func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero { func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero {
hero := &pb.DBHero{} hero := &pb.DBHero{}
@ -394,7 +339,7 @@ func (this *ModelHero) setEquipment(uid string, hero *pb.DBHero) (newHero *pb.DB
suite2Star := hero.Suite2Star suite2Star := hero.Suite2Star
suite1Lv := hero.Suite1Lv suite1Lv := hero.Suite1Lv
suite2Lv := hero.Suite2Lv suite2Lv := hero.Suite2Lv
if hero.IsOverlying && hero.SameCount > 1 { if hero.SameCount > 1 {
// 克隆一个新的 // 克隆一个新的
hero.SameCount -= 1 hero.SameCount -= 1
hero.Suite1Star = 0 hero.Suite1Star = 0
@ -407,8 +352,6 @@ func (this *ModelHero) setEquipment(uid string, hero *pb.DBHero) (newHero *pb.DB
newHero = this.CloneNewHero(uid, hero) newHero = this.CloneNewHero(uid, hero)
hero.EquipID = make([]string, 8) hero.EquipID = make([]string, 8)
hero.SameCount = 1 hero.SameCount = 1
hero.IsOverlying = false
update["isoverlying"] = false
update["sameCount"] = 1 update["sameCount"] = 1
update["horoscopeProperty"] = hero.HoroscopeProperty update["horoscopeProperty"] = hero.HoroscopeProperty
} }
@ -603,12 +546,10 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex
this.moduleHero.Debugf("add hero exp :old lv:%d,old exp:%d,new lv:%d,new exp:%d,addexp:%d", hero.Lv, hero.Exp, curLv, curExp, exp) this.moduleHero.Debugf("add hero exp :old lv:%d,old exp:%d,new lv:%d,new exp:%d,addexp:%d", hero.Lv, hero.Exp, curLv, curExp, exp)
update["lv"] = curLv update["lv"] = curLv
update["exp"] = curExp update["exp"] = curExp
update["isOverlying"] = false
update["sameCount"] = 1 update["sameCount"] = 1
update["horoscopeProperty"] = hero.HoroscopeProperty update["horoscopeProperty"] = hero.HoroscopeProperty
hero.Lv = curLv hero.Lv = curLv
hero.Exp = curExp hero.Exp = curExp
hero.IsOverlying = false
hero.SameCount = 1 hero.SameCount = 1
if err := this.ChangeList(session.GetUserId(), hero.Id, update); err != nil { if err := this.ChangeList(session.GetUserId(), hero.Id, update); err != nil {
@ -721,16 +662,13 @@ func (this *ModelHero) InitMonsterHero(heroCfgId string, star, lv int32) *pb.DBH
HeroID: heroCfg.Hid, HeroID: heroCfg.Hid,
Star: star, //初始星级 Star: star, //初始星级
Lv: lv, //初始等级 Lv: lv, //初始等级
IsOverlying: true, //是否允许叠加,
Block: false, //未锁定 Block: false, //未锁定
CardType: heroCfg.Type, //卡片类型 CardType: heroCfg.Type, //卡片类型
Skins: []int32{}, Skins: []int32{},
EquipID: make([]string, 8), //初始装备 EquipID: make([]string, 8), //初始装备
SameCount: 1, //默认叠加数量 SameCount: 1, //默认叠加数量
AddProperty: make(map[string]int32), AddProperty: make(map[string]int32),
Energy: make(map[string]int32),
Property: make(map[string]int32), Property: make(map[string]int32),
EnergyProperty: make(map[string]int32),
JuexProperty: make(map[string]int32), JuexProperty: make(map[string]int32),
TalentProperty: make(map[string]int32), TalentProperty: make(map[string]int32),
HoroscopeProperty: make(map[string]int32), HoroscopeProperty: make(map[string]int32),
@ -863,13 +801,18 @@ func (this *ModelHero) resetTalentProperty(hero *pb.DBHero) {
} }
// 创建一条英雄信息,如果有这个英雄 则转换成对应的碎片 // 创建一条英雄信息,如果有这个英雄 则转换成对应的碎片
func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, count int32) (hero *pb.DBHero, bFirst bool, err error) { func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, count int32) (hero *pb.DBHero, bFirst bool, atno []*pb.UserAtno, err error) {
heros := make([]*pb.DBHero, 0) heros := make([]*pb.DBHero, 0)
uid := session.GetUserId() uid := session.GetUserId()
heroCfg := this.moduleHero.configure.GetHeroConfig(heroCfgId)
if heroCfg == nil {
err = errors.New("not found hero configID")
this.moduleHero.Errorf("not found hero configID:%s", heroCfgId)
return
}
if this.moduleHero.IsCross() { if this.moduleHero.IsCross() {
if dbModel, err := this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil { if dbModel, err := this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil {
this.moduleHero.Errorln(err) this.moduleHero.Errorln(err)
} else { } else {
if err = dbModel.GetList(uid, &heros); err != nil { if err = dbModel.GetList(uid, &heros); err != nil {
this.moduleHero.Errorf("err:%v", err) this.moduleHero.Errorf("err:%v", err)
@ -894,19 +837,96 @@ func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, c
if err != nil { if err != nil {
return return
} }
atno = append(atno, &pb.UserAtno{
A: "hero",
T: hero.HeroID,
N: 1,
O: hero.Id,
})
} }
// 转碎片处理 // 转碎片处理
if count > 0 { if count > 0 {
heroCfg := this.moduleHero.configure.GetHeroConfig(heroCfgId) res := make([]*cfg.Gameatn, 0)
if heroCfg != nil {
res := make([]*cfg.Gameatn, 0) // 如果技能是满级 则转成其他道具
if this.checkHeroAllSkillMax(hero) {
list := this.moduleHero.configure.GetGlobalConf().Moonshopmoney
if list != nil {
for pos, v := range list {
if int32(pos)+3 == heroCfg.Star && v > 0 {
res = append(res, &cfg.Gameatn{
A: "attr",
T: "moongold",
N: v * count,
})
atno = append(atno, &pb.UserAtno{
A: "attr",
T: "moongold",
N: v * count,
})
break
}
}
}
} else {
for i := 0; i < int(count); i++ { for i := 0; i < int(count); i++ {
res = append(res, heroCfg.Herofrag...) res = append(res, heroCfg.Herofrag...)
for _, v := range heroCfg.Herofrag {
atno = append(atno, &pb.UserAtno{
A: v.A,
T: v.T,
N: v.N,
})
}
} }
}
// expitem 获得
if rst, err := this.moduleHero.ModuleUser.GetUserExpand(session.GetUserId()); err == nil { // 统计主线进度
_mp := rst.Expitem
bAdd := false
if heroCfg.Expitemnum > 0 {
if v, ok := _mp[hero.HeroID]; ok {
if heroCfg.Expitemnum > v {
_mp[hero.HeroID] += 1
bAdd = true
}
} else {
_mp[hero.HeroID] = 1
bAdd = true
}
}
if bAdd {
this.moduleHero.ModuleUser.ChangeUserExpand(session.GetUserId(), map[string]interface{}{
"expitem": _mp,
})
for i := 0; i < int(count); i++ {
res = append(res, heroCfg.Expitem...)
for _, v := range heroCfg.Herofrag {
atno = append(atno, &pb.UserAtno{
A: v.A,
T: v.T,
N: v.N,
})
}
}
}
}
if len(res) > 0 { // 资源统一发放
this.moduleHero.DispenseRes(session, res, true) this.moduleHero.DispenseRes(session, res, true)
} }
} }
return return
} }
// 校验当前技能是否是满级
func (this *ModelHero) checkHeroAllSkillMax(hero *pb.DBHero) bool {
for _, v := range hero.NormalSkill {
if this.moduleHero.configure.GetHeroSkillMaxLvConfig(uint32(v.SkillID)) > v.SkillLv {
return false
}
}
return true
}

View File

@ -76,11 +76,11 @@ func (this *Hero) Start() (err error) {
} }
//创建单个叠加英雄 //创建单个叠加英雄
func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, bFirst bool, code pb.ErrorCode) { func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, bFirst bool, atno []*pb.UserAtno, code pb.ErrorCode) {
var ( var (
err error err error
) )
hero, bFirst, err = this.modelHero.createHero(session, heroCfgId, num) hero, bFirst, atno, err = this.modelHero.createHero(session, heroCfgId, num)
if err == nil && bFirst { if err == nil && bFirst {
//go func(uid string, heroCfgId string) { // 携程处理 图鉴数据 //go func(uid string, heroCfgId string) { // 携程处理 图鉴数据
if db.IsCross() { if db.IsCross() {
@ -233,10 +233,9 @@ func (this *Hero) GetSpecifiedHero(session comm.IUserSession, heroConfId string,
hero.Star = star hero.Star = star
hero.SameCount = amount hero.SameCount = amount
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{
"lv": hero.Lv, "lv": hero.Lv,
"star": hero.Star, "star": hero.Star,
"isOverlying": false, "sameCount": amount,
"sameCount": amount,
} }
// 保存数据 // 保存数据
err = this.modelHero.ChangeList(session.GetUserId(), hero.Id, _heroMap) err = this.modelHero.ChangeList(session.GetUserId(), hero.Id, _heroMap)
@ -256,7 +255,7 @@ func (this *Hero) EventUserOffline(session comm.IUserSession) {
} }
// 批量创建多个英雄 // 批量创建多个英雄
func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]int32, bPush bool) (hero *pb.DBHero, code pb.ErrorCode) { func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]int32, bPush bool) (hero *pb.DBHero, atno []*pb.UserAtno, code pb.ErrorCode) {
var ( var (
changeList []*pb.DBHero changeList []*pb.DBHero
firstGet []string firstGet []string
@ -266,7 +265,7 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]
if num == 0 { // 数量为0 不做处理 if num == 0 { // 数量为0 不做处理
continue continue
} }
if hero, bFirst, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success { if hero, bFirst, atno, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success {
this.Errorf("create hero %s failed", heroCfgId) this.Errorf("create hero %s failed", heroCfgId)
continue continue
} }
@ -352,7 +351,6 @@ func (this *Hero) KungFuHero(session comm.IUserSession, heroObjID string, bKongf
} }
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{
"status": pb.HeroType_HeroTypeKongFu, "status": pb.HeroType_HeroTypeKongFu,
"isOverlying": false,
"sameCount": 1, "sameCount": 1,
"horoscopeProperty": _hero.HoroscopeProperty, "horoscopeProperty": _hero.HoroscopeProperty,
} }
@ -417,9 +415,7 @@ func (this *Hero) QueryCrossHeroinfo(oid string) (hero *pb.DBHero, err error) {
func (this *Hero) GetHeroListByUse(uid string) []*pb.DBHero { func (this *Hero) GetHeroListByUse(uid string) []*pb.DBHero {
tmp := make([]*pb.DBHero, 0) tmp := make([]*pb.DBHero, 0)
for _, v := range this.modelHero.getHeroList(uid) { for _, v := range this.modelHero.getHeroList(uid) {
if !v.IsOverlying { tmp = append(tmp, v)
tmp = append(tmp, v)
}
} }
return tmp return tmp
} }
@ -618,17 +614,6 @@ func (this *Hero) CheckJuexingHeroNum(uid string, juexingLv int32, star int32) i
return int32(len(tmp)) return int32(len(tmp))
} }
//拥有共鸣至N级的英雄
func (this *Hero) CheckResonaceHeroNum(uid string, resonaceLv int32) int32 {
tmp := make([]*pb.DBHero, 0)
for _, v := range this.modelHero.getHeroList(uid) {
if v.ResonateNum >= resonaceLv {
tmp = append(tmp, v)
}
}
return int32(len(tmp))
}
// 获取所有满星满级满觉醒的英雄 // 获取所有满星满级满觉醒的英雄
func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) { func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) {
data := this.modelHero.moduleHero.configure.GetHeroConfigData() data := this.modelHero.moduleHero.configure.GetHeroConfigData()
@ -678,7 +663,6 @@ func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) {
"lv": hero.Lv, "lv": hero.Lv,
"star": hero.Star, "star": hero.Star,
"juexingLv": hero.JuexingLv, "juexingLv": hero.JuexingLv,
"isOverlying": false,
"sameCount": 1, "sameCount": 1,
"normalSkill": hero.NormalSkill, "normalSkill": hero.NormalSkill,
"talentProperty": hero.TalentProperty, "talentProperty": hero.TalentProperty,
@ -701,21 +685,6 @@ func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) {
return return
} }
func (this *Hero) SendChatMsg(session comm.IUserSession, _mapAddHero map[string]int32, cards []string) {
rsp := &pb.HeroDrawCardResp{}
///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
for hid := range _mapAddHero {
if user := this.ModuleUser.GetUser(session.GetUserId()); user != nil {
this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, hid)
} else {
this.Errorf("no found userdata uid:%s", session.GetUserId())
}
}
rsp.Heroes = cards
session.SendMsg(string(this.GetType()), DrawCard, rsp)
}
func (this *Hero) SendTaskMsg(session comm.IUserSession, szStar []int32, drawCount int32, itype bool) { func (this *Hero) SendTaskMsg(session comm.IUserSession, szStar []int32, drawCount int32, itype bool) {
// 任务统计 // 任务统计
if itype { //普通招募 if itype { //普通招募

View File

@ -88,9 +88,7 @@ func (this *modelHoroscope) computeHeroNumeric(uid string, hero ...*pb.DBHero) (
//计算属性 //计算属性
func (this *modelHoroscope) compute(info *pb.DBHoroscope, hero *pb.DBHero) (err error) { func (this *modelHoroscope) compute(info *pb.DBHoroscope, hero *pb.DBHero) (err error) {
if hero.IsOverlying {
return
}
var ( var (
heroconf *cfg.GameHeroData heroconf *cfg.GameHeroData
node *cfg.GameHoroscopeData node *cfg.GameHoroscopeData

View File

@ -50,9 +50,16 @@ func (this *apiComp) Useitem(session comm.IUserSession, req *pb.ItemsUseItemReq)
return return
} }
sale := RandomProps(prop) sale := RandomProps(prop)
if code = this.module.ModuleHero.GetSpecifiedHero(session, sale.Prize[0].T, sale.Star, 1, int32(req.Amount)); code != pb.ErrorCode_Success { var res []*cfg.Gameatn
res = append(res, &cfg.Gameatn{
A: "hero",
T: sale.Prize[0].T,
N: int32(req.Amount),
})
if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success {
return return
} }
//随机任务 //随机任务
this.module.ModuleRtask.SendToRtask(session, comm.Rtype22, 1) this.module.ModuleRtask.SendToRtask(session, comm.Rtype22, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype22, utils.ToInt32(sale.Prize[0].T)) this.module.ModuleRtask.SendToRtask(session, comm.Rtype22, utils.ToInt32(sale.Prize[0].T))

View File

@ -134,19 +134,13 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MlineChall
if first { // 发奖 if first { // 发奖
if rst, err := this.module.ModuleUser.GetUserExpand(session.GetUserId()); err == nil { // 统计主线进度 if rst, err := this.module.ModuleUser.GetUserExpand(session.GetUserId()); err == nil { // 统计主线进度
_mp := rst.Mline _mp := rst.Mline
if _mp == nil { if v, ok := _mp[curChapter.CType]; ok {
_mp = make(map[int32]int32, 1) if v <= req.StageId {
_mp[curChapter.CType] = req.StageId
} else {
if v, ok := _mp[curChapter.CType]; ok {
if v <= req.StageId {
_mp[curChapter.CType] = req.StageId
}
} else {
_mp[curChapter.CType] = req.StageId _mp[curChapter.CType] = req.StageId
} }
} else {
_mp[curChapter.CType] = req.StageId
} }
this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), map[string]interface{}{ this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), map[string]interface{}{
"mline": _mp, "mline": _mp,
}) })
@ -162,7 +156,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MlineChall
N: v.N, N: v.N,
}) })
} }
} else { } else {
if code = this.module.DispenseRes(session, stageConf.Commonaward, true); code != pb.ErrorCode_Success { if code = this.module.DispenseRes(session, stageConf.Commonaward, true); code != pb.ErrorCode_Success {
this.module.Debugf("Mline Commonaward DispenseRes err:+%v", stageConf.Commonaward) this.module.Debugf("Mline Commonaward DispenseRes err:+%v", stageConf.Commonaward)

View File

@ -373,7 +373,7 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
this.Debugf("发放道具资源: %v [%v]", items, code) this.Debugf("发放道具资源: %v [%v]", items, code)
} }
if len(heros) > 0 { //卡片资源 if len(heros) > 0 { //卡片资源
_, code = this.ModuleHero.CreateRepeatHeros(session, heros, bPush) _, _, code = this.ModuleHero.CreateRepeatHeros(session, heros, bPush)
this.Debugf("发放英雄资源: %v [%v]", heros, code) this.Debugf("发放英雄资源: %v [%v]", heros, code)
} }
if len(equips) > 0 { if len(equips) > 0 {
@ -576,14 +576,9 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea
} }
} }
if len(heros) > 0 { //卡片资源 if len(heros) > 0 { //卡片资源
hero, code := this.ModuleHero.CreateRepeatHeros(session, heros, bPush) hero, atn, code := this.ModuleHero.CreateRepeatHeros(session, heros, bPush)
this.Debugf("发放英雄资源: %v [%v]", heros, code) this.Debugf("发放英雄资源: %v [%v]", hero, code)
atno = append(atno, &pb.UserAtno{ atno = append(atno, atn...)
A: "hero",
T: hero.HeroID,
N: int32(len(heros)),
O: hero.Id,
})
} }
if len(equips) > 0 { if len(equips) > 0 {
change, code := this.ModuleEquipment.AddNewEquipments(session, equips, bPush) change, code := this.ModuleEquipment.AddNewEquipments(session, equips, bPush)

View File

@ -85,6 +85,8 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (c
initUpdate := map[string]interface{}{ initUpdate := map[string]interface{}{
"modifynameCount": 1, //修改名称1次 "modifynameCount": 1, //修改名称1次
"sociatyTicket": globalConf.GuildBossInitialNum, //公会BOSS挑战券 "sociatyTicket": globalConf.GuildBossInitialNum, //公会BOSS挑战券
"expitem": make(map[string]int32, 0), // 初始化
"mline": make(map[string]int32, 0),
} }
if err := this.module.modelExpand.ChangeUserExpand(session.GetUserId(), initUpdate); err != nil { if err := this.module.modelExpand.ChangeUserExpand(session.GetUserId(), initUpdate); err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError

View File

@ -555,51 +555,49 @@ var File_rtask_rtask_msg_proto protoreflect.FileDescriptor
var file_rtask_rtask_msg_proto_rawDesc = []byte{ var file_rtask_rtask_msg_proto_rawDesc = []byte{
0x0a, 0x15, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73, 0x0a, 0x15, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73,
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x28, 0x0a,
0x1a, 0x14, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x28, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73,
0x22, 0x45, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73,
0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18,
0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x2b,
0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x52,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x64, 0x73, 0x50, 0x75, 0x73,
0x73, 0x6b, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03,
0x69, 0x73, 0x68, 0x49, 0x64, 0x73, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x13, 0x74, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x3c, 0x0a, 0x12, 0x52, 0x74,
0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
0x52, 0x65, 0x71, 0x22, 0x3c, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x42, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73,
0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b,
0x64, 0x22, 0x42, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b,
0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02,
0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x27, 0x0a, 0x0d,
0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a,
0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x27, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x65, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54,
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x94, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54,
0x01, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02,
0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07,
0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63,
0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x12, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01,
0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x28, 0x09, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x3f, 0x0a, 0x0d,
0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x74, 0x61, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a,
0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x3f, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20,
0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x42, 0x06, 0x5a,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -642,7 +640,6 @@ func file_rtask_rtask_msg_proto_init() {
if File_rtask_rtask_msg_proto != nil { if File_rtask_rtask_msg_proto != nil {
return return
} }
file_battle_battle_msg_proto_init()
file_rtask_rtask_db_proto_init() file_rtask_rtask_db_proto_init()
if !protoimpl.UnsafeEnabled { if !protoimpl.UnsafeEnabled {
file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {

View File

@ -174,6 +174,7 @@ type GameGlobalData struct {
RotateAngle float32 RotateAngle float32
RotateDizzyTime float32 RotateDizzyTime float32
Moonshopmoney []int32 Moonshopmoney []int32
Generaltp string
} }
const TypeId_GameGlobalData = 477542761 const TypeId_GameGlobalData = 477542761
@ -736,6 +737,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
} }
} }
{ var _ok_ bool; if _v.Generaltp, _ok_ = _buf["generaltp"].(string); !_ok_ { err = errors.New("generaltp error"); return } }
return return
} }