ee23102d
zhangqijia
支持mongo, grpc接服务器
|
1
2
3
|
package models
import (
|
eb417b0b
zhangqijia
reactor mongo
|
4
|
"fmt"
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
5
|
"pro2d/common"
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
6
7
|
"pro2d/common/db"
"pro2d/common/logger"
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
8
|
"pro2d/pb"
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
9
|
"pro2d/utils"
|
38dd96b4
zhangqijia
定时器+网络数据 peer 在一条...
|
10
|
"sync/atomic"
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
11
12
13
|
)
type RoleModel struct {
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
14
|
*Schema
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
15
|
Role *pb.Role
|
eb417b0b
zhangqijia
reactor mongo
|
16
|
Heros HeroMap
|
1584eb4b
zhangqijia
修复创建唯一索引的bug
|
17
|
Teams *TeamModel
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
18
19
|
Equip *EquipModel
Prop *PropModel
|
38dd96b4
zhangqijia
定时器+网络数据 peer 在一条...
|
20
21
|
lastSaveTs int64
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
22
23
|
}
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
24
|
func RoleExistByUid(uid string) *RoleModel {
|
1584eb4b
zhangqijia
修复创建唯一索引的bug
|
25
26
27
|
data := &pb.Role{Uid: uid}
if err := db.FindOne(db.GetBsonM("uid", uid), data); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
28
|
logger.Error("Role exist err: %v", err)
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
29
|
return nil
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
30
|
}
|
f7f4beb5
zhangqijia
新增grpc平滑关闭,修复crea...
|
31
|
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
32
33
|
r := &RoleModel{
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
34
|
Schema: NewSchema(data.Id, data),
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
35
36
37
|
Role: data,
Heros: make(HeroMap),
Teams: new(TeamModel),
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
38
39
|
Equip: new(EquipModel),
Prop: new(PropModel),
|
f7f4beb5
zhangqijia
新增grpc平滑关闭,修复crea...
|
40
|
}
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
41
42
|
r.LoadAll()
return r
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
43
44
|
}
|
33ea26ab
zhangqijia
使用schema封装mongo
|
45
|
func NewRole(id string) *RoleModel {
|
1584eb4b
zhangqijia
修复创建唯一索引的bug
|
46
|
data := &pb.Role{Id: id}
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
47
|
m := &RoleModel{
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
48
|
Schema: NewSchema(id, data),
|
0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
49
50
51
|
Role: data,
Heros: make(HeroMap),
Teams: new(TeamModel),
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
52
53
|
Equip: new(EquipModel),
Prop: new(PropModel),
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
54
|
}
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
55
56
57
|
return m
}
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
58
|
func (m *RoleModel) LoadHero() {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
59
|
m.Heros["test"] = NewHero("")
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
60
|
m.Heros["test"].Hero = &pb.Hero{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
61
|
Id: "1",
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
62
63
64
65
66
67
68
|
RoleId: m.Role.Id,
Type: 1,
Level: 1,
ReinCount: 0,
ReinPoint: 0,
Equipments: "123123",
}
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
69
|
}
|
eb417b0b
zhangqijia
reactor mongo
|
70
|
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
71
|
func (m *RoleModel) LoadTeams() {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
72
|
m.Teams = NewTeam("0")
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
73
|
m.Teams.Team = &pb.Team{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
74
|
Id: "1",
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
75
76
77
78
79
|
HeroIds: "1",
}
}
func (m *RoleModel) LoadEquips() {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
80
|
m.Equip = NewEquip("0")
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
81
|
m.Equip.Equip = &pb.Equipment{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
82
|
Id: "0",
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
83
84
85
86
87
88
89
90
91
92
93
|
RoleId: m.Role.Id,
Type: 0,
Equip: false,
EnhanceLevel: false,
}
}
func (m *RoleModel) LoadAll() {
m.LoadHero()
m.LoadTeams()
m.LoadEquips()
|
eb417b0b
zhangqijia
reactor mongo
|
94
95
|
}
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
96
97
98
|
func (m *RoleModel) updateProperty(property map[string]interface{}) {
}
|
eb417b0b
zhangqijia
reactor mongo
|
99
|
func (m *RoleModel) AddHero(hero *pb.Hero) {
|
3592dfd3
zhangqijia
重构models, 索引唯一索引
|
100
101
|
h := NewHero(hero.Id)
h.Hero = hero
|
eb417b0b
zhangqijia
reactor mongo
|
102
|
h.Create()
|
33ea26ab
zhangqijia
使用schema封装mongo
|
103
|
m.Heros[fmt.Sprintf("%s%s", m.Role.Id, h.Hero.Id)] = h
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
104
105
|
}
|
2e0aa298
zhangqijia
update 每条连接新增一条协程...
|
106
107
108
109
|
func (m *RoleModel) GetAllHero() []*pb.Hero {
var h []*pb.Hero
for _, hero := range m.Heros {
h = append(h, hero.Hero)
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
110
111
112
|
}
return h
}
|
38dd96b4
zhangqijia
定时器+网络数据 peer 在一条...
|
113
114
115
116
117
|
func (m *RoleModel) OnRecoverTimer(now int64) {
m.saveRoleData(now)
}
|
7f269318
zhangqijia
add pb.go; 添加关闭连接...
|
118
119
120
121
122
|
func (m *RoleModel) OnOfflineEvent() {
// 设置最新的登录时间
m.saveRoleData(utils.Timex())
}
|
38dd96b4
zhangqijia
定时器+网络数据 peer 在一条...
|
123
124
125
126
127
128
129
|
func (m *RoleModel) saveRoleData(now int64) {
if now - m.lastSaveTs < common.SaveDataInterval {
return
}
atomic.StoreInt64(&m.lastSaveTs, now)
m.Update()
}
|