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"
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
8
|
"pro2d/common/db/mongoproxy"
|
29a163be
zhangqijia
fix: CreateReq ui...
|
9
|
"pro2d/common/db/redisproxy"
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
10
|
"pro2d/common/logger"
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
11
|
"pro2d/models"
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
12
|
"pro2d/pb"
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
13
14
|
)
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
15
|
func HeartRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
|
0cc58315
zhangqijia
添加定时器, 检查心跳
|
16
|
//msg.Conn.SetLastHeartCheckTime()
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
17
18
19
|
return 0, nil
}
|
29a163be
zhangqijia
fix: CreateReq ui...
|
20
21
|
func getRandomName() string {
name := ""
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
22
|
for {
|
29a163be
zhangqijia
fix: CreateReq ui...
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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
}
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
39
|
func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interface{}) {
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
40
|
req := pb.CreateReq{}
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
41
|
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
42
|
logger.Error("CreateRpc err: %v", err)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
43
|
return 1, err
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
44
|
}
|
29a163be
zhangqijia
fix: CreateReq ui...
|
45
|
role := models.RoleExistByUid(req.Token)
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
46
|
if role != nil {
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
47
48
49
50
51
52
|
return 2, "role exists"
}
roleId, err := common.GetNextRoleId()
if err != nil {
return 3, err
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
53
54
|
}
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
55
|
role = models.NewRole(roleId)
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
56
|
role.Role.Uid = req.Token
|
29a163be
zhangqijia
fix: CreateReq ui...
|
57
|
role.Role.Nick = getRandomName()
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
58
|
if err := role.Create(); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
59
|
logger.Error("CreateRpc role create err: %v", err)
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
60
|
return 4, nil
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
61
|
}
|
8d983031
zhangqijia
loginReq uid -> t...
|
62
|
role.InitRole()
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
63
64
65
|
return 0, nil
}
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
66
|
func ChangeTeamRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
67
|
req := pb.ChangeTeamReq{}
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
68
69
70
71
|
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
logger.Error("loginRpc err: %v", err)
return 1, nil
}
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
72
73
74
|
role.UpdateTeam(req.Team)
return 0, nil
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
75
|
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
76
|
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
77
|
func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
78
79
80
81
82
|
req := pb.HeroEquipReferReq{}
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
logger.Error("loginRpc err: %v", err)
return 1, nil
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
83
84
85
|
e, ok := role.Equipments[req.EquipId]
if !ok {
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
86
|
return 2, nil
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
}
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
}
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
120
|
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
121
|
func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
122
123
124
125
126
|
req := pb.RoleClearItemsReq{}
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
logger.Error("loginRpc err: %v", err)
return 1, nil
}
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
127
128
129
|
if !role.CostItem(req.Id, req.Count) {
logger.Error("cost err: %s, %d", req.Id, req.Count)
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
130
|
return 2, nil
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
131
132
133
134
|
}
return 0, nil
}
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
135
|
func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
136
137
138
139
140
|
req := pb.EquipmentDelReq{}
if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
logger.Error("loginRpc err: %v", err)
return 1, nil
}
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
141
|
|
a9813bb9
zhangqijia
fix: update
|
142
|
if err := mongoproxy.DelOne("equipment", "id", req.Id); err != nil {
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
143
|
logger.Error(err.Error())
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
144
|
return 2, nil
|
51d48d11
zhangqijia
fix: 删除装备 删除物品请求
|
145
146
147
148
149
|
}
delete(role.Equipments, req.Id)
return 0, nil
}
|