Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
26a63c00c3
@ -644,5 +644,22 @@
|
||||
"text": "功能暂未开启"
|
||||
},
|
||||
"uiid": 0
|
||||
},
|
||||
{
|
||||
"id": "sign",
|
||||
"name": {
|
||||
"key": "num_2028",
|
||||
"text": "签到"
|
||||
},
|
||||
"main": 5,
|
||||
"optional": "",
|
||||
"wkqbx": 2,
|
||||
"kqbx": 0,
|
||||
"img": "zc_icon_01",
|
||||
"prompt": {
|
||||
"key": "opencond_prompt_sign",
|
||||
"text": "功能暂未开启"
|
||||
},
|
||||
"uiid": 0
|
||||
}
|
||||
]
|
@ -9,8 +9,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 102,
|
||||
@ -22,8 +25,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 103,
|
||||
@ -35,8 +41,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 104,
|
||||
@ -48,8 +57,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 105,
|
||||
@ -61,8 +73,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 106,
|
||||
@ -74,8 +89,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 107,
|
||||
@ -87,8 +105,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 108,
|
||||
@ -100,8 +121,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 109,
|
||||
@ -113,8 +137,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 110,
|
||||
@ -126,8 +153,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 111,
|
||||
@ -139,8 +169,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 112,
|
||||
@ -152,8 +185,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 113,
|
||||
@ -165,8 +201,11 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 114,
|
||||
@ -178,7 +217,10 @@
|
||||
"LockSlots": [],
|
||||
"AssistTeam": 0,
|
||||
"EventList": [],
|
||||
"playexp": 1000,
|
||||
"NoMidwayExit": 0
|
||||
"playexp": {
|
||||
"a": "attr",
|
||||
"t": "exp",
|
||||
"n": 1000
|
||||
}
|
||||
}
|
||||
]
|
@ -336,6 +336,7 @@ const (
|
||||
Reddot28 ReddotType = 10028 //任务----周常活跃奖励红点
|
||||
Reddot29 ReddotType = 10029 //公会----申请红点
|
||||
Reddot30 ReddotType = 10030 //邮件-----未读邮件红点
|
||||
Reddot31 ReddotType = 10031 //维京远征 有挑战次数
|
||||
)
|
||||
|
||||
type TaskType int32
|
||||
@ -546,16 +547,16 @@ const (
|
||||
ChatSystem3 ChatSystemType = 3 ///装备升级公告
|
||||
ChatSystem4 ChatSystemType = 4 ///爬塔公告
|
||||
ChatSystem5 ChatSystemType = 5 ///停机维护公告
|
||||
ChatSystem10 ChatSystemType = 6 ///通关了赛季塔 【玩家名称】通关了赛季塔50层!
|
||||
ChatSystem11 ChatSystemType = 7 ///英雄升级 【玩家名称】已将【英雄名称】培养至60级!
|
||||
ChatSystem12 ChatSystemType = 8 ///英雄升星 【玩家名称】已将【英雄名称】培养至6星!
|
||||
ChatSystem13 ChatSystemType = 9 ///英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
|
||||
ChatSystem14 ChatSystemType = 10 ///英雄共鸣 【玩家名称】已将【英雄名称】共鸣至满级!
|
||||
ChatSystem15 ChatSystemType = 11 ///英雄觉醒 【玩家名称】已将【英雄名称】觉醒至满级!
|
||||
ChatSystem16 ChatSystemType = 12 ///玩家升级 【玩家名称】达到了60级!
|
||||
ChatSystem17 ChatSystemType = 13 ///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
|
||||
ChatSystem18 ChatSystemType = 14 ///维京远征 【玩家名称】通关了火焰泰坦难度16!
|
||||
ChatSystem24 ChatSystemType = 15 ///狩猎 【玩家名称】通关了巨型猩猩难度8!
|
||||
ChatSystem6 ChatSystemType = 6 ///通关了赛季塔 【玩家名称】通关了赛季塔50层!
|
||||
ChatSystem7 ChatSystemType = 7 ///英雄升级 【玩家名称】已将【英雄名称】培养至60级!
|
||||
ChatSystem8 ChatSystemType = 8 ///英雄升星 【玩家名称】已将【英雄名称】培养至6星!
|
||||
ChatSystem9 ChatSystemType = 9 ///英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
|
||||
ChatSystem10 ChatSystemType = 10 ///英雄共鸣 【玩家名称】已将【英雄名称】共鸣至满级!
|
||||
ChatSystem11 ChatSystemType = 11 ///英雄觉醒 【玩家名称】已将【英雄名称】觉醒至满级!
|
||||
ChatSystem12 ChatSystemType = 12 ///玩家升级 【玩家名称】达到了60级!
|
||||
ChatSystem13 ChatSystemType = 13 ///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
|
||||
ChatSystem14 ChatSystemType = 14 ///维京远征 【玩家名称】通关了火焰泰坦难度16!
|
||||
ChatSystem15 ChatSystemType = 15 ///狩猎 【玩家名称】通关了巨型猩猩难度8!
|
||||
)
|
||||
|
||||
// 巨兽列车
|
||||
|
@ -240,9 +240,11 @@ type (
|
||||
}
|
||||
IViking interface {
|
||||
CheckUserBaseVikingInfo(uid string) (data []*pb.DBVikingRank) // 查询玩家最佳通关记录
|
||||
IReddot
|
||||
}
|
||||
IHunting interface {
|
||||
CheckUserBaseHuntingInfo(uid string) (data []*pb.DBHuntingRank) // 查询玩家最佳通关记录
|
||||
IReddot
|
||||
}
|
||||
// 公会
|
||||
ISociaty interface {
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"sync"
|
||||
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
"google.golang.org/protobuf/proto"
|
||||
@ -18,13 +19,11 @@ import (
|
||||
*/
|
||||
type clientComp struct {
|
||||
modules.MCompGate
|
||||
options *Options
|
||||
service core.IService
|
||||
module *Battle
|
||||
conn *websocket.Conn
|
||||
seq uint64
|
||||
pendingmutex sync.Mutex
|
||||
pending map[uint64]*MessageCall //高并发回调
|
||||
options *Options
|
||||
service core.IService
|
||||
module *Battle
|
||||
clinets []*client
|
||||
i int
|
||||
}
|
||||
|
||||
//组件初始化接口
|
||||
@ -32,19 +31,44 @@ func (this *clientComp) Init(service core.IService, module core.IModule, comp co
|
||||
this.MCompGate.Init(service, module, comp, options)
|
||||
this.options = options.(*Options)
|
||||
this.module = module.(*Battle)
|
||||
this.pending = make(map[uint64]*MessageCall)
|
||||
this.clinets = make([]*client, len(this.options.BattleServerAddr))
|
||||
return
|
||||
}
|
||||
|
||||
func (this *clientComp) Start() (err error) {
|
||||
err = this.MCompGate.Start()
|
||||
dialer := websocket.Dialer{}
|
||||
this.conn, _, err = dialer.Dial(this.options.BattleServerAddr, nil)
|
||||
for i, v := range this.options.BattleServerAddr {
|
||||
if this.clinets[i], err = newClient(v, this.options.Log); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//校验战斗过程
|
||||
func (this *clientComp) callBattle(ctx context.Context, method string, req proto.Message, reply proto.Message) (err error) {
|
||||
i := this.i % len(this.clinets)
|
||||
this.i += 1
|
||||
err = this.clinets[i].callBattle(ctx, method, req, reply)
|
||||
return
|
||||
}
|
||||
|
||||
func newClient(addr string, log log.ILogger) (c *client, err error) {
|
||||
c = &client{log: log, pending: make(map[uint64]*MessageCall)}
|
||||
dialer := websocket.Dialer{}
|
||||
c.conn, _, err = dialer.Dial(addr, nil)
|
||||
return
|
||||
}
|
||||
|
||||
type client struct {
|
||||
log log.ILogger
|
||||
conn *websocket.Conn
|
||||
seq uint64
|
||||
pendingmutex sync.Mutex
|
||||
pending map[uint64]*MessageCall //高并发回调
|
||||
}
|
||||
|
||||
//校验战斗过程
|
||||
func (this *client) callBattle(ctx context.Context, method string, req proto.Message, reply proto.Message) (err error) {
|
||||
call := new(MessageCall)
|
||||
call.Done = make(chan *MessageCall, 10)
|
||||
call.Args = req
|
||||
@ -74,7 +98,7 @@ func (this *clientComp) callBattle(ctx context.Context, method string, req proto
|
||||
this.pendingmutex.Unlock()
|
||||
if call != nil {
|
||||
call.Error = ctx.Err()
|
||||
call.done(this.options.Log)
|
||||
call.done(this.log)
|
||||
}
|
||||
return ctx.Err()
|
||||
case call := <-call.Done:
|
||||
@ -83,7 +107,7 @@ func (this *clientComp) callBattle(ctx context.Context, method string, req proto
|
||||
return
|
||||
}
|
||||
|
||||
func (this *clientComp) run() {
|
||||
func (this *client) run() {
|
||||
var (
|
||||
data []byte
|
||||
msg *pb.BattleRpcMessage = &pb.BattleRpcMessage{}
|
||||
@ -92,23 +116,23 @@ func (this *clientComp) run() {
|
||||
locp:
|
||||
for {
|
||||
if _, data, err = this.conn.ReadMessage(); err != nil {
|
||||
this.module.Errorf("client err:%v", err)
|
||||
this.log.Errorf("client err:%v", err)
|
||||
break locp
|
||||
}
|
||||
if err = proto.Unmarshal(data, msg); err != nil {
|
||||
this.module.Errorf("client Unmarshal err:%v", err)
|
||||
this.log.Errorf("client Unmarshal err:%v", err)
|
||||
break locp
|
||||
}
|
||||
go this.handleresponse(msg)
|
||||
}
|
||||
}
|
||||
|
||||
func (this *clientComp) handleresponse(resp *pb.BattleRpcMessage) {
|
||||
func (this *client) handleresponse(resp *pb.BattleRpcMessage) {
|
||||
var call *MessageCall
|
||||
this.pendingmutex.Lock()
|
||||
call = this.pending[resp.Rid]
|
||||
delete(this.pending, resp.Rid)
|
||||
this.pendingmutex.Unlock()
|
||||
call.Error = resp.Data.UnmarshalTo(call.Reply)
|
||||
call.done(this.options.Log)
|
||||
call.done(this.log)
|
||||
}
|
@ -13,7 +13,7 @@ type (
|
||||
}
|
||||
Options struct {
|
||||
modules.Options
|
||||
BattleServerAddr string
|
||||
BattleServerAddr []string
|
||||
}
|
||||
)
|
||||
|
||||
@ -25,7 +25,7 @@ func (this *Options) GetLog() log.ILogger {
|
||||
return this.Log
|
||||
}
|
||||
|
||||
func (this *Options) GetBattleServerAddr() string {
|
||||
func (this *Options) GetBattleServerAddr() []string {
|
||||
return this.BattleServerAddr
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package hero
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/modules"
|
||||
)
|
||||
@ -10,6 +11,7 @@ type apiComp struct {
|
||||
modules.MCompGate
|
||||
service core.IService
|
||||
module *Hero
|
||||
chat comm.IChat
|
||||
}
|
||||
|
||||
const ( //消息回复的头名称
|
||||
@ -42,6 +44,10 @@ func (this *apiComp) Init(service core.IService, module core.IModule, comp core.
|
||||
|
||||
func (this *apiComp) Start() (err error) {
|
||||
err = this.MCompGate.Start()
|
||||
|
||||
var module core.IModule
|
||||
if module, err = this.service.GetModule(comm.ModuleChat); err != nil {
|
||||
return
|
||||
}
|
||||
this.chat = module.(comm.IChat)
|
||||
return
|
||||
}
|
||||
|
@ -104,6 +104,14 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
chanegCard = append(chanegCard, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
|
||||
session.SendMsg(string(this.module.GetType()), Awaken, &pb.HeroAwakenResp{Hero: _hero})
|
||||
|
||||
//英雄觉醒 【玩家名称】已将【英雄名称】觉醒至满级!
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem11, nil, _hero.JuexingLv, 0, user.Name, _hero.HeroID)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
|
||||
//任务相关
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype34, 1, _hero.JuexingLv)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype119, _hero.JuexingLv)
|
||||
|
@ -230,6 +230,14 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
||||
}
|
||||
code = this.module.CreateRepeatHeros(session, _mapAddHero, true)
|
||||
|
||||
///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
|
||||
for hid := range _mapAddHero {
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, hid)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
}
|
||||
rsp.Heroes = szCards
|
||||
session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
|
||||
|
||||
|
@ -149,6 +149,12 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
|
||||
this.module.DispenseRes(session, resonConfig.Prize, true)
|
||||
session.SendMsg(string(this.module.GetType()), Resonance, &pb.HeroResonanceResp{Hero: _hero})
|
||||
|
||||
//英雄共鸣 【玩家名称】已将【英雄名称】共鸣至满级!
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem10, nil, _hero.ResonateNum, 0, user.Name, _hero.HeroID)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
// 任务相关
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype39, 1)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype127, _hero.Star, utils.ToInt32(_hero.HeroID), _hero.ResonateNum) //A星英雄共鸣N级
|
||||
|
@ -163,7 +163,12 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
|
||||
ChangeList = append(ChangeList, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
|
||||
session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
|
||||
|
||||
//英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem9, nil, _hero.Lv, 0, user.Name, _hero.HeroID)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype52, utils.ToInt32(_hero.HeroID), 1)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype53, 1)
|
||||
// 检查是不是满级技能
|
||||
@ -175,6 +180,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
|
||||
}
|
||||
}
|
||||
if maxLv {
|
||||
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype54, 1)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype57, 1)
|
||||
}
|
||||
|
@ -169,6 +169,12 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
|
||||
session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero})
|
||||
|
||||
//英雄升星 【玩家名称】已将【英雄名称】培养至6星!
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem8, nil, _hero.Lv, 0, user.Name, _hero.HeroID)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype6, utils.ToInt32(_hero.HeroID), _hero.Star)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype25, 1, utils.ToInt32(_hero.HeroID), _hero.Star)
|
||||
if _hero.Star == 4 {
|
||||
|
@ -136,6 +136,12 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
if newhero != nil {
|
||||
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
|
||||
}
|
||||
//英雄升级 【玩家名称】已将【英雄名称】培养至60级!
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem7, nil, _hero.Lv, 0, user.Name, _hero.HeroID)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
|
||||
session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero})
|
||||
return
|
||||
|
@ -22,6 +22,7 @@ type apiComp struct {
|
||||
configure *configureComp
|
||||
module *Hunting
|
||||
friend comm.IFriend
|
||||
chat comm.IChat
|
||||
}
|
||||
|
||||
//组件初始化接口
|
||||
@ -40,5 +41,9 @@ func (this *apiComp) Start() (err error) {
|
||||
return
|
||||
}
|
||||
this.friend = module.(comm.IFriend)
|
||||
if module, err = this.service.GetModule(comm.ModuleChat); err != nil {
|
||||
return
|
||||
}
|
||||
this.chat = module.(comm.IChat)
|
||||
return
|
||||
}
|
||||
|
@ -66,6 +66,10 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.HuntingChallen
|
||||
BossType: req.BossType,
|
||||
Difficulty: req.Difficulty,
|
||||
})
|
||||
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem15, nil, req.BossType, req.Difficulty, user.Name)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -147,6 +147,11 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
|
||||
}
|
||||
}
|
||||
code = this.module.ModifySeasonPagodaData(session.GetUserId(), mapData)
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem6, nil, pagoda.PagodaId, 0, user.Name)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
|
||||
session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda})
|
||||
}
|
||||
|
@ -33,6 +33,5 @@ func (this *ModuleSys) GetType() core.M_Modules {
|
||||
}
|
||||
|
||||
func (this *ModuleSys) IsAccess(funcName string, userId string) (code pb.ErrorCode) {
|
||||
// return this.modelSys.IsAccess(funcName, userId)
|
||||
return pb.ErrorCode_Success
|
||||
return this.modelSys.IsAccess(funcName, userId)
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
|
||||
|
||||
// 初始化随机任务数据
|
||||
// this.module.ModuleRtask.InitCondiData(user.Uid)
|
||||
|
||||
//this.Sign(session, &pb.UserSignReq{})
|
||||
// 日常登录任务
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype7, 1)
|
||||
|
||||
|
@ -22,7 +22,9 @@ func (this *apiComp) Sign(session comm.IUserSession, req *pb.UserSignReq) (code
|
||||
update map[string]interface{}
|
||||
bReward bool
|
||||
)
|
||||
|
||||
if code = this.module.ModuleSys.IsAccess(comm.Sign, session.GetUserId()); code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
update = make(map[string]interface{}, 0)
|
||||
if sign, err := this.module.modelSign.GetUserSign(session.GetUserId()); err == nil {
|
||||
start, _ := utils.GetMonthStartEnd()
|
||||
|
@ -69,58 +69,3 @@ func (this *ModelSign) updateSignData(uid string, sign *pb.DBSign) (err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 检测是否达到重置日期
|
||||
func (this *ModelSign) checkResetSignData(session comm.IUserSession) (code pb.ErrorCode) {
|
||||
var (
|
||||
update map[string]interface{}
|
||||
bReward bool
|
||||
)
|
||||
|
||||
update = make(map[string]interface{}, 0)
|
||||
if sign, err := this.module.modelSign.GetUserSign(session.GetUserId()); err == nil {
|
||||
start, _ := utils.GetMonthStartEnd()
|
||||
if sign.RTime < start { // 重置
|
||||
sign.RTime = configure.Now().Unix()
|
||||
sign.SignTime = sign.RTime
|
||||
sign.SignCount = 1
|
||||
if newGroup := this.module.configure.GetSignResetConf(sign.Cid + 1); newGroup != -1 { // 获取当前的组id
|
||||
sign.Cid += 1
|
||||
sign.Group = newGroup
|
||||
update["cid"] = sign.Cid
|
||||
update["group"] = sign.Group
|
||||
}
|
||||
update["rTime"] = sign.RTime
|
||||
update["signTime"] = sign.SignTime
|
||||
update["signCount"] = sign.SignCount
|
||||
this.Change(session.GetUserId(), update)
|
||||
bReward = true
|
||||
} else {
|
||||
if !utils.IsToday(sign.SignTime) {
|
||||
sign.SignCount += 1
|
||||
update["signCount"] = sign.SignCount
|
||||
sign.SignTime = configure.Now().Unix()
|
||||
update["signTime"] = sign.SignTime
|
||||
sign.RTime = sign.SignTime
|
||||
update["rTime"] = sign.RTime
|
||||
this.Change(session.GetUserId(), update)
|
||||
bReward = true
|
||||
}
|
||||
}
|
||||
_data := this.module.configure.GetSignConf(sign.Cid, sign.Group)
|
||||
if _data != nil { // 发奖
|
||||
if bReward {
|
||||
this.module.DispenseRes(session, _data.Loopgift, true)
|
||||
}
|
||||
} else {
|
||||
if bReward {
|
||||
this.module.DispenseRes(session, this.module.globalConf.UnifiedReward, true) // 发放通用奖励
|
||||
}
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "sign", &pb.UserSignResp{
|
||||
Data: sign,
|
||||
Reward: bReward,
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -192,6 +192,15 @@ func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{
|
||||
ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush,
|
||||
&pb.UserLvChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv})
|
||||
this.module.DispenseRes(ul.session, rewards, true)
|
||||
|
||||
mc, err := this.module.service.GetModule(comm.ModuleChat)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if chat, ok := mc.(comm.IChat); ok {
|
||||
chat.SendSysChatToUser(ul.session, comm.ChatSystem12, ul.lv, 0, ul.name)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -202,4 +211,5 @@ type UserListen struct {
|
||||
session comm.IUserSession
|
||||
exp int64
|
||||
lv int32
|
||||
name string
|
||||
}
|
||||
|
@ -246,7 +246,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha
|
||||
userEx *pb.DBUserExpand
|
||||
err error
|
||||
)
|
||||
|
||||
|
||||
user = this.GetUser(uid)
|
||||
userEx, err = this.GetUserExpand(uid)
|
||||
if err != nil {
|
||||
@ -409,6 +409,7 @@ func (this *User) EventUserChanged(session comm.IUserSession) {
|
||||
ul.session = session
|
||||
ul.exp = user.Exp
|
||||
ul.lv = user.Lv
|
||||
ul.name = user.Name
|
||||
}
|
||||
this.modelUser.EventApp.Dispatch(comm.EventUserChanged, ul)
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ type apiComp struct {
|
||||
configure *configureComp
|
||||
module *Viking
|
||||
friend comm.IFriend
|
||||
chat comm.IChat
|
||||
}
|
||||
|
||||
//组件初始化接口
|
||||
@ -40,5 +41,10 @@ func (this *apiComp) Start() (err error) {
|
||||
return
|
||||
}
|
||||
this.friend = module.(comm.IFriend)
|
||||
|
||||
if module, err = this.service.GetModule(comm.ModuleChat); err != nil {
|
||||
return
|
||||
}
|
||||
this.chat = module.(comm.IChat)
|
||||
return
|
||||
}
|
||||
|
@ -121,7 +121,11 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
||||
Data: viking,
|
||||
Asset: asset,
|
||||
})
|
||||
|
||||
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
|
||||
this.chat.SendSysChatToWorld(comm.ChatSystem14, nil, req.BossId, req.Difficulty, user.Name)
|
||||
} else {
|
||||
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
|
||||
}
|
||||
// 随机任务统计
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype73, req.Difficulty, req.BossId, 1)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype74, req.Difficulty, req.BossId)
|
||||
|
@ -63,3 +63,15 @@ func (this *modelViking) getVikingList(uid string) (result *pb.DBViking, err err
|
||||
func (this *modelViking) modifyVikingDataByObjId(uid string, data map[string]interface{}) error {
|
||||
return this.Change(uid, data)
|
||||
}
|
||||
|
||||
// 红点检测
|
||||
func (this *modelViking) checkReddot31(uid string) bool {
|
||||
list, err := this.module.modelViking.getVikingList(uid)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
if list.LeftCount > 0 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
@ -144,3 +144,17 @@ func (this *Viking) CheckRank(uid string, boosID int32, difficulty int32, viking
|
||||
this.modulerank.SetRankListData("vikingRank"+strconv.Itoa(int(boosID)), difficulty<<16+costTime, objID)
|
||||
}
|
||||
}
|
||||
|
||||
//红点查询
|
||||
func (this *Viking) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]bool) {
|
||||
reddot = make(map[comm.ReddotType]bool)
|
||||
for _, v := range rid {
|
||||
switch v {
|
||||
case comm.Reddot31:
|
||||
reddot[comm.Reddot31] = this.modelViking.checkReddot31(session.GetUserId())
|
||||
break
|
||||
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user