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": "功能暂未开启"
|
"text": "功能暂未开启"
|
||||||
},
|
},
|
||||||
"uiid": 0
|
"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": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 102,
|
"id": 102,
|
||||||
@ -22,8 +25,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 103,
|
"id": 103,
|
||||||
@ -35,8 +41,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 104,
|
"id": 104,
|
||||||
@ -48,8 +57,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 105,
|
"id": 105,
|
||||||
@ -61,8 +73,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 106,
|
"id": 106,
|
||||||
@ -74,8 +89,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 107,
|
"id": 107,
|
||||||
@ -87,8 +105,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 108,
|
"id": 108,
|
||||||
@ -100,8 +121,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 109,
|
"id": 109,
|
||||||
@ -113,8 +137,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 110,
|
"id": 110,
|
||||||
@ -126,8 +153,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 111,
|
"id": 111,
|
||||||
@ -139,8 +169,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 112,
|
"id": 112,
|
||||||
@ -152,8 +185,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 113,
|
"id": 113,
|
||||||
@ -165,8 +201,11 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 114,
|
"id": 114,
|
||||||
@ -178,7 +217,10 @@
|
|||||||
"LockSlots": [],
|
"LockSlots": [],
|
||||||
"AssistTeam": 0,
|
"AssistTeam": 0,
|
||||||
"EventList": [],
|
"EventList": [],
|
||||||
"playexp": 1000,
|
"playexp": {
|
||||||
"NoMidwayExit": 0
|
"a": "attr",
|
||||||
|
"t": "exp",
|
||||||
|
"n": 1000
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -336,6 +336,7 @@ const (
|
|||||||
Reddot28 ReddotType = 10028 //任务----周常活跃奖励红点
|
Reddot28 ReddotType = 10028 //任务----周常活跃奖励红点
|
||||||
Reddot29 ReddotType = 10029 //公会----申请红点
|
Reddot29 ReddotType = 10029 //公会----申请红点
|
||||||
Reddot30 ReddotType = 10030 //邮件-----未读邮件红点
|
Reddot30 ReddotType = 10030 //邮件-----未读邮件红点
|
||||||
|
Reddot31 ReddotType = 10031 //维京远征 有挑战次数
|
||||||
)
|
)
|
||||||
|
|
||||||
type TaskType int32
|
type TaskType int32
|
||||||
@ -546,16 +547,16 @@ const (
|
|||||||
ChatSystem3 ChatSystemType = 3 ///装备升级公告
|
ChatSystem3 ChatSystemType = 3 ///装备升级公告
|
||||||
ChatSystem4 ChatSystemType = 4 ///爬塔公告
|
ChatSystem4 ChatSystemType = 4 ///爬塔公告
|
||||||
ChatSystem5 ChatSystemType = 5 ///停机维护公告
|
ChatSystem5 ChatSystemType = 5 ///停机维护公告
|
||||||
ChatSystem10 ChatSystemType = 6 ///通关了赛季塔 【玩家名称】通关了赛季塔50层!
|
ChatSystem6 ChatSystemType = 6 ///通关了赛季塔 【玩家名称】通关了赛季塔50层!
|
||||||
ChatSystem11 ChatSystemType = 7 ///英雄升级 【玩家名称】已将【英雄名称】培养至60级!
|
ChatSystem7 ChatSystemType = 7 ///英雄升级 【玩家名称】已将【英雄名称】培养至60级!
|
||||||
ChatSystem12 ChatSystemType = 8 ///英雄升星 【玩家名称】已将【英雄名称】培养至6星!
|
ChatSystem8 ChatSystemType = 8 ///英雄升星 【玩家名称】已将【英雄名称】培养至6星!
|
||||||
ChatSystem13 ChatSystemType = 9 ///英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
|
ChatSystem9 ChatSystemType = 9 ///英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
|
||||||
ChatSystem14 ChatSystemType = 10 ///英雄共鸣 【玩家名称】已将【英雄名称】共鸣至满级!
|
ChatSystem10 ChatSystemType = 10 ///英雄共鸣 【玩家名称】已将【英雄名称】共鸣至满级!
|
||||||
ChatSystem15 ChatSystemType = 11 ///英雄觉醒 【玩家名称】已将【英雄名称】觉醒至满级!
|
ChatSystem11 ChatSystemType = 11 ///英雄觉醒 【玩家名称】已将【英雄名称】觉醒至满级!
|
||||||
ChatSystem16 ChatSystemType = 12 ///玩家升级 【玩家名称】达到了60级!
|
ChatSystem12 ChatSystemType = 12 ///玩家升级 【玩家名称】达到了60级!
|
||||||
ChatSystem17 ChatSystemType = 13 ///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
|
ChatSystem13 ChatSystemType = 13 ///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
|
||||||
ChatSystem18 ChatSystemType = 14 ///维京远征 【玩家名称】通关了火焰泰坦难度16!
|
ChatSystem14 ChatSystemType = 14 ///维京远征 【玩家名称】通关了火焰泰坦难度16!
|
||||||
ChatSystem24 ChatSystemType = 15 ///狩猎 【玩家名称】通关了巨型猩猩难度8!
|
ChatSystem15 ChatSystemType = 15 ///狩猎 【玩家名称】通关了巨型猩猩难度8!
|
||||||
)
|
)
|
||||||
|
|
||||||
// 巨兽列车
|
// 巨兽列车
|
||||||
|
@ -240,9 +240,11 @@ type (
|
|||||||
}
|
}
|
||||||
IViking interface {
|
IViking interface {
|
||||||
CheckUserBaseVikingInfo(uid string) (data []*pb.DBVikingRank) // 查询玩家最佳通关记录
|
CheckUserBaseVikingInfo(uid string) (data []*pb.DBVikingRank) // 查询玩家最佳通关记录
|
||||||
|
IReddot
|
||||||
}
|
}
|
||||||
IHunting interface {
|
IHunting interface {
|
||||||
CheckUserBaseHuntingInfo(uid string) (data []*pb.DBHuntingRank) // 查询玩家最佳通关记录
|
CheckUserBaseHuntingInfo(uid string) (data []*pb.DBHuntingRank) // 查询玩家最佳通关记录
|
||||||
|
IReddot
|
||||||
}
|
}
|
||||||
// 公会
|
// 公会
|
||||||
ISociaty interface {
|
ISociaty interface {
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
|
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
@ -21,10 +22,8 @@ type clientComp struct {
|
|||||||
options *Options
|
options *Options
|
||||||
service core.IService
|
service core.IService
|
||||||
module *Battle
|
module *Battle
|
||||||
conn *websocket.Conn
|
clinets []*client
|
||||||
seq uint64
|
i int
|
||||||
pendingmutex sync.Mutex
|
|
||||||
pending map[uint64]*MessageCall //高并发回调
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//组件初始化接口
|
//组件初始化接口
|
||||||
@ -32,19 +31,44 @@ func (this *clientComp) Init(service core.IService, module core.IModule, comp co
|
|||||||
this.MCompGate.Init(service, module, comp, options)
|
this.MCompGate.Init(service, module, comp, options)
|
||||||
this.options = options.(*Options)
|
this.options = options.(*Options)
|
||||||
this.module = module.(*Battle)
|
this.module = module.(*Battle)
|
||||||
this.pending = make(map[uint64]*MessageCall)
|
this.clinets = make([]*client, len(this.options.BattleServerAddr))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *clientComp) Start() (err error) {
|
func (this *clientComp) Start() (err error) {
|
||||||
err = this.MCompGate.Start()
|
err = this.MCompGate.Start()
|
||||||
dialer := websocket.Dialer{}
|
for i, v := range this.options.BattleServerAddr {
|
||||||
this.conn, _, err = dialer.Dial(this.options.BattleServerAddr, nil)
|
if this.clinets[i], err = newClient(v, this.options.Log); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//校验战斗过程
|
|
||||||
func (this *clientComp) callBattle(ctx context.Context, method string, req proto.Message, reply proto.Message) (err error) {
|
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 := new(MessageCall)
|
||||||
call.Done = make(chan *MessageCall, 10)
|
call.Done = make(chan *MessageCall, 10)
|
||||||
call.Args = req
|
call.Args = req
|
||||||
@ -74,7 +98,7 @@ func (this *clientComp) callBattle(ctx context.Context, method string, req proto
|
|||||||
this.pendingmutex.Unlock()
|
this.pendingmutex.Unlock()
|
||||||
if call != nil {
|
if call != nil {
|
||||||
call.Error = ctx.Err()
|
call.Error = ctx.Err()
|
||||||
call.done(this.options.Log)
|
call.done(this.log)
|
||||||
}
|
}
|
||||||
return ctx.Err()
|
return ctx.Err()
|
||||||
case call := <-call.Done:
|
case call := <-call.Done:
|
||||||
@ -83,7 +107,7 @@ func (this *clientComp) callBattle(ctx context.Context, method string, req proto
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *clientComp) run() {
|
func (this *client) run() {
|
||||||
var (
|
var (
|
||||||
data []byte
|
data []byte
|
||||||
msg *pb.BattleRpcMessage = &pb.BattleRpcMessage{}
|
msg *pb.BattleRpcMessage = &pb.BattleRpcMessage{}
|
||||||
@ -92,23 +116,23 @@ func (this *clientComp) run() {
|
|||||||
locp:
|
locp:
|
||||||
for {
|
for {
|
||||||
if _, data, err = this.conn.ReadMessage(); err != nil {
|
if _, data, err = this.conn.ReadMessage(); err != nil {
|
||||||
this.module.Errorf("client err:%v", err)
|
this.log.Errorf("client err:%v", err)
|
||||||
break locp
|
break locp
|
||||||
}
|
}
|
||||||
if err = proto.Unmarshal(data, msg); err != nil {
|
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
|
break locp
|
||||||
}
|
}
|
||||||
go this.handleresponse(msg)
|
go this.handleresponse(msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *clientComp) handleresponse(resp *pb.BattleRpcMessage) {
|
func (this *client) handleresponse(resp *pb.BattleRpcMessage) {
|
||||||
var call *MessageCall
|
var call *MessageCall
|
||||||
this.pendingmutex.Lock()
|
this.pendingmutex.Lock()
|
||||||
call = this.pending[resp.Rid]
|
call = this.pending[resp.Rid]
|
||||||
delete(this.pending, resp.Rid)
|
delete(this.pending, resp.Rid)
|
||||||
this.pendingmutex.Unlock()
|
this.pendingmutex.Unlock()
|
||||||
call.Error = resp.Data.UnmarshalTo(call.Reply)
|
call.Error = resp.Data.UnmarshalTo(call.Reply)
|
||||||
call.done(this.options.Log)
|
call.done(this.log)
|
||||||
}
|
}
|
@ -13,7 +13,7 @@ type (
|
|||||||
}
|
}
|
||||||
Options struct {
|
Options struct {
|
||||||
modules.Options
|
modules.Options
|
||||||
BattleServerAddr string
|
BattleServerAddr []string
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ func (this *Options) GetLog() log.ILogger {
|
|||||||
return this.Log
|
return this.Log
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Options) GetBattleServerAddr() string {
|
func (this *Options) GetBattleServerAddr() []string {
|
||||||
return this.BattleServerAddr
|
return this.BattleServerAddr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package hero
|
package hero
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
)
|
)
|
||||||
@ -10,6 +11,7 @@ type apiComp struct {
|
|||||||
modules.MCompGate
|
modules.MCompGate
|
||||||
service core.IService
|
service core.IService
|
||||||
module *Hero
|
module *Hero
|
||||||
|
chat comm.IChat
|
||||||
}
|
}
|
||||||
|
|
||||||
const ( //消息回复的头名称
|
const ( //消息回复的头名称
|
||||||
@ -42,6 +44,10 @@ func (this *apiComp) Init(service core.IService, module core.IModule, comp core.
|
|||||||
|
|
||||||
func (this *apiComp) Start() (err error) {
|
func (this *apiComp) Start() (err error) {
|
||||||
err = this.MCompGate.Start()
|
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
|
return
|
||||||
}
|
}
|
||||||
|
@ -104,6 +104,14 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
|||||||
chanegCard = append(chanegCard, _hero)
|
chanegCard = append(chanegCard, _hero)
|
||||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
|
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
|
||||||
session.SendMsg(string(this.module.GetType()), Awaken, &pb.HeroAwakenResp{Hero: _hero})
|
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.Rtype34, 1, _hero.JuexingLv)
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype119, _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)
|
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
|
rsp.Heroes = szCards
|
||||||
session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
|
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)
|
this.module.DispenseRes(session, resonConfig.Prize, true)
|
||||||
session.SendMsg(string(this.module.GetType()), Resonance, &pb.HeroResonanceResp{Hero: _hero})
|
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.Rtype39, 1)
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype127, _hero.Star, utils.ToInt32(_hero.HeroID), _hero.ResonateNum) //A星英雄共鸣N级
|
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)
|
ChangeList = append(ChangeList, _hero)
|
||||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
|
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
|
||||||
session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
|
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.Rtype52, utils.ToInt32(_hero.HeroID), 1)
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype53, 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 {
|
if maxLv {
|
||||||
|
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype54, 1)
|
this.module.ModuleRtask.SendToRtask(session, comm.Rtype54, 1)
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype57, 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()), "change", &pb.HeroChangePush{List: chanegCard})
|
||||||
session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero})
|
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.Rtype6, utils.ToInt32(_hero.HeroID), _hero.Star)
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype25, 1, utils.ToInt32(_hero.HeroID), _hero.Star)
|
this.module.ModuleRtask.SendToRtask(session, comm.Rtype25, 1, utils.ToInt32(_hero.HeroID), _hero.Star)
|
||||||
if _hero.Star == 4 {
|
if _hero.Star == 4 {
|
||||||
|
@ -136,6 +136,12 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
|||||||
if newhero != nil {
|
if newhero != nil {
|
||||||
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
|
_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()), "change", &pb.HeroChangePush{List: _changeHero})
|
||||||
session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero})
|
session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero})
|
||||||
return
|
return
|
||||||
|
@ -22,6 +22,7 @@ type apiComp struct {
|
|||||||
configure *configureComp
|
configure *configureComp
|
||||||
module *Hunting
|
module *Hunting
|
||||||
friend comm.IFriend
|
friend comm.IFriend
|
||||||
|
chat comm.IChat
|
||||||
}
|
}
|
||||||
|
|
||||||
//组件初始化接口
|
//组件初始化接口
|
||||||
@ -40,5 +41,9 @@ func (this *apiComp) Start() (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.friend = module.(comm.IFriend)
|
this.friend = module.(comm.IFriend)
|
||||||
|
if module, err = this.service.GetModule(comm.ModuleChat); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.chat = module.(comm.IChat)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,10 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.HuntingChallen
|
|||||||
BossType: req.BossType,
|
BossType: req.BossType,
|
||||||
Difficulty: req.Difficulty,
|
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
|
return
|
||||||
}
|
}
|
||||||
|
@ -147,6 +147,11 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
code = this.module.ModifySeasonPagodaData(session.GetUserId(), mapData)
|
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})
|
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) {
|
func (this *ModuleSys) IsAccess(funcName string, userId string) (code pb.ErrorCode) {
|
||||||
// return this.modelSys.IsAccess(funcName, userId)
|
return this.modelSys.IsAccess(funcName, userId)
|
||||||
return pb.ErrorCode_Success
|
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
|
|||||||
|
|
||||||
// 初始化随机任务数据
|
// 初始化随机任务数据
|
||||||
// this.module.ModuleRtask.InitCondiData(user.Uid)
|
// this.module.ModuleRtask.InitCondiData(user.Uid)
|
||||||
|
//this.Sign(session, &pb.UserSignReq{})
|
||||||
// 日常登录任务
|
// 日常登录任务
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype7, 1)
|
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{}
|
update map[string]interface{}
|
||||||
bReward bool
|
bReward bool
|
||||||
)
|
)
|
||||||
|
if code = this.module.ModuleSys.IsAccess(comm.Sign, session.GetUserId()); code != pb.ErrorCode_Success {
|
||||||
|
return
|
||||||
|
}
|
||||||
update = make(map[string]interface{}, 0)
|
update = make(map[string]interface{}, 0)
|
||||||
if sign, err := this.module.modelSign.GetUserSign(session.GetUserId()); err == nil {
|
if sign, err := this.module.modelSign.GetUserSign(session.GetUserId()); err == nil {
|
||||||
start, _ := utils.GetMonthStartEnd()
|
start, _ := utils.GetMonthStartEnd()
|
||||||
|
@ -69,58 +69,3 @@ func (this *ModelSign) updateSignData(uid string, sign *pb.DBSign) (err error) {
|
|||||||
}
|
}
|
||||||
return
|
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,
|
ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush,
|
||||||
&pb.UserLvChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv})
|
&pb.UserLvChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv})
|
||||||
this.module.DispenseRes(ul.session, rewards, true)
|
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
|
session comm.IUserSession
|
||||||
exp int64
|
exp int64
|
||||||
lv int32
|
lv int32
|
||||||
|
name string
|
||||||
}
|
}
|
||||||
|
@ -409,6 +409,7 @@ func (this *User) EventUserChanged(session comm.IUserSession) {
|
|||||||
ul.session = session
|
ul.session = session
|
||||||
ul.exp = user.Exp
|
ul.exp = user.Exp
|
||||||
ul.lv = user.Lv
|
ul.lv = user.Lv
|
||||||
|
ul.name = user.Name
|
||||||
}
|
}
|
||||||
this.modelUser.EventApp.Dispatch(comm.EventUserChanged, ul)
|
this.modelUser.EventApp.Dispatch(comm.EventUserChanged, ul)
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ type apiComp struct {
|
|||||||
configure *configureComp
|
configure *configureComp
|
||||||
module *Viking
|
module *Viking
|
||||||
friend comm.IFriend
|
friend comm.IFriend
|
||||||
|
chat comm.IChat
|
||||||
}
|
}
|
||||||
|
|
||||||
//组件初始化接口
|
//组件初始化接口
|
||||||
@ -40,5 +41,10 @@ func (this *apiComp) Start() (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.friend = module.(comm.IFriend)
|
this.friend = module.(comm.IFriend)
|
||||||
|
|
||||||
|
if module, err = this.service.GetModule(comm.ModuleChat); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.chat = module.(comm.IChat)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,11 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
|||||||
Data: viking,
|
Data: viking,
|
||||||
Asset: asset,
|
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.Rtype73, req.Difficulty, req.BossId, 1)
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype74, req.Difficulty, req.BossId)
|
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 {
|
func (this *modelViking) modifyVikingDataByObjId(uid string, data map[string]interface{}) error {
|
||||||
return this.Change(uid, data)
|
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)
|
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