69d286a7
zhangqijia
fix: 插件用来做部分热更
|
1
|
package action
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
2
3
|
import (
|
29a163be
zhangqijia
fix: CreateReq ui...
|
4
|
"fmt"
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
5
|
"github.com/golang/protobuf/proto"
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
6
|
"pro2d/common"
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
7
|
"pro2d/common/components"
|
29a163be
zhangqijia
fix: CreateReq ui...
|
8
|
"pro2d/common/db/redisproxy"
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
9
|
"pro2d/common/logger"
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
10
|
"pro2d/models"
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
11
|
"pro2d/pb"
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
12
13
|
)
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
14
|
func HeartRpc(agent components.IAgent, msg components.IMessage) (int32, interface{}) {
|
0cc58315
zhangqijia
添加定时器, 检查心跳
|
15
|
//msg.Conn.SetLastHeartCheckTime()
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
16
17
18
|
return 0, nil
}
|
29a163be
zhangqijia
fix: CreateReq ui...
|
19
20
|
func getRandomName() string {
name := ""
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
21
|
for {
|
29a163be
zhangqijia
fix: CreateReq ui...
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
name = common.RandomName(common.DefaultName)
if name == "" {
continue
}
relay, err := redisproxy.SETNX(fmt.Sprintf(common.NickNames, name), "1")
if err != nil {
continue
}
if relay.(int64) == 1 {
break
}
}
return name
}
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
38
|
func CreateRpc(agent components.IAgent, msg components.IMessage) (int32, interface{}) {
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
39
|
req := pb.CreateReq{}
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
40
|
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
41
|
logger.Error("CreateRpc err: %v", err)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
42
|
return 1, err
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
43
|
}
|
29a163be
zhangqijia
fix: CreateReq ui...
|
44
|
role := models.RoleExistByUid(req.Token)
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
45
|
if role != nil {
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
46
47
48
49
50
51
|
return 2, "role exists"
}
roleId, err := common.GetNextRoleId()
if err != nil {
return 3, err
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
52
53
|
}
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
54
|
role = models.NewRole(roleId)
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
55
|
role.Role.Uid = req.Token
|
29a163be
zhangqijia
fix: CreateReq ui...
|
56
|
role.Role.Nick = getRandomName()
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
57
|
if err := role.Create(); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
58
|
logger.Error("CreateRpc role create err: %v", err)
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
59
|
return 4, nil
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
60
|
}
|
8d983031
zhangqijia
loginReq uid -> t...
|
61
|
role.InitRole()
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
62
63
64
|
return 0, nil
}
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
65
|
func LoginRpc(agent components.IAgent, msg components.IMessage) (int32, interface{}) {
|
77f5eec7
zhangqijia
plugin 插件热更 接口
|
66
|
//logger.Debug("11111111cmd: %v, msg: %s", msg.GetHeader().GetMsgID(), msg.GetData())
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
67
|
req := pb.LoginReq{}
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
68
|
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
69
|
logger.Error("loginRpc err: %v", err)
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
70
71
72
|
return 1, nil
}
|
436e0af4
zhangqijia
reactor: dir; Ac...
|
73
|
role := models.RoleExistByUid(req.Token)
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
74
75
76
|
if role == nil {
return 2, nil
}
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
77
|
role.SetProperty("Device", req.Device)
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
78
|
protoMsg := &pb.RoleRsp{
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
79
80
81
82
|
Role: role.Role,
Hero: role.GetAllHero(),
Team: role.GetAllTeam(),
Equipments: role.GetEquipments(),
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
83
84
85
86
87
|
}
//登录成功,存储agent role
agent.SetSchema(role)
return 0, protoMsg
}
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
88
|
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
89
90
|
func ChangeTeamRpc(agent components.IAgent, msg components.IMessage) (int32, interface{}) {
req := pb.ChangeTeamReq{}
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
91
92
93
94
95
96
97
98
99
100
101
|
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
logger.Error("loginRpc err: %v", err)
return 1, nil
}
role := agent.GetSchema().(*models.RoleModel)
if role == nil {
return 2, nil
}
role.UpdateTeam(req.Team)
return 0, nil
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
102
|
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
func HeroEquipReferRpc(agent components.IAgent, msg components.IMessage) (int32, interface{}) {
req := pb.HeroEquipReferReq{}
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
logger.Error("loginRpc err: %v", err)
return 1, nil
}
role := agent.GetSchema().(*models.RoleModel)
if role == nil {
return 2, nil
}
e, ok := role.Equipments[req.EquipId]
if !ok {
return 3, nil
}
equip := e.(*models.EquipModel)
// 装备未被穿戴
if equip.Equip.HeroId == "" {
h, ok := role.Heros[req.HeroId]
if ok {
hero := h.(*models.HeroModel)
hero.UpdateEquipment(equip.Equip.Id, equip.Equip.Type)
}
equip.SetProperty("heroid", req.HeroId)
} else {
//装备已经被穿戴
if req.HeroId != equip.Equip.HeroId {
h, ok := role.Heros[equip.Equip.HeroId]
if ok {
hero := h.(*models.HeroModel)
hero.UpdateEquipment(equip.Equip.Id, "")
}
h, ok = role.Heros[req.HeroId]
if ok {
hero := h.(*models.HeroModel)
hero.UpdateEquipment(equip.Equip.Id, equip.Equip.Type)
}
equip.SetProperty("heroid", req.HeroId)
}
}
return 0, nil
}
|