f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
1
2
3
|
package models
import (
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
4
5
|
"fmt"
"github.com/golang/protobuf/proto"
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
6
|
"pro2d/common"
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
7
8
|
"pro2d/common/logger"
"pro2d/pb"
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
9
10
11
12
13
14
15
16
|
)
//背包系统
func (m *RoleModel) GetItemCount(key string) uint32 {
c, ok := m.Items[key]
if !ok {
c = 0
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
17
|
return c.(uint32)
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
18
19
20
21
22
23
24
25
26
|
}
func (m *RoleModel) CostItem(key string, count int32) bool {
if uint32(count) > m.GetItemCount(key) {
return false
}
return m.AddItem(key, -count)
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
27
|
func (m *RoleModel) CostItems(params common.IMapString) bool {
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
28
|
for k, v := range params {
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
29
|
if v.(uint32) > m.GetItemCount(k) {
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
30
31
32
|
return false
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
33
|
m.AddItem(k, -v.(int32))
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
34
35
36
37
38
39
40
41
42
43
44
45
46
|
}
return true
}
func (m *RoleModel) AddItem(key string, count int32) bool {
c := m.GetItemCount(key)
num := int32(c) + count
if num > 0 {
m.Items[key] = uint32(num)
} else {
delete(m.Items, key)
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
47
|
m.SetProperty("items", common.MapToString(m.Items))
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
48
49
50
51
52
53
54
55
56
57
|
rsp, err := proto.Marshal(&pb.RoleUpdateItemsRsp{Items: fmt.Sprintf("%s=%d", key, num)})
if err != nil {
logger.Error(err.Error())
return true
}
m.GetConn().Send(0, uint32(pb.ProtoCode_RoleUpdateItemsRsp), rsp)
return true
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
58
59
|
func (m *RoleModel) AddItems(params common.IMapString) bool {
tmp := make(common.IMapString)
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
60
61
62
|
for k, v := range params {
c := m.GetItemCount(k)
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
63
|
num := c + v.(uint32)
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
64
65
66
67
68
69
70
71
|
if num > 0 {
m.Items[k] = num
tmp[k] = num
} else {
delete(m.Items, k)
}
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
72
|
m.SetProperty("items", common.MapToString(m.Items))
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
73
|
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
74
|
rsp, err := proto.Marshal(&pb.RoleUpdateItemsRsp{Items: common.MapToString(tmp)})
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
75
76
77
78
79
80
81
82
83
84
85
|
if err != nil {
logger.Error(err.Error())
return true
}
if m.GetConn() != nil {
m.GetConn().Send(0, uint32(pb.ProtoCode_RoleUpdateItemsRsp), rsp)
}
return true
}
|
c8509ef6
zhangqijia
fix: notify equip...
|
86
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
120
121
122
123
124
125
126
127
|
func (m *RoleModel) AddHero(hero *pb.Hero) {
h := NewHero(hero)
h.Create()
m.Heros[hero.Id] = h
}
func (m *RoleModel) AddTeam(team *pb.Team) {
t := NewTeam(team)
t.Create()
m.Teams[team.Id] = t
}
func (m *RoleModel) UpdateTeam(teams []*pb.Team) {
for _, team := range teams {
team.RoleId = m.Role.Id
t := m.Teams[team.Id]
if t != nil {
t.UpdateSchema(team)
}
}
}
func (m *RoleModel) AddEquip(equip *pb.Equipment) *EquipModel {
e := NewEquip(equip)
e.Create()
m.Equipments[equip.Id] = e
m.EquipmentAddNotify(equip)
return e
}
func (m *RoleModel) EquipmentAddNotify(equip *pb.Equipment) {
update := &pb.EquipmentAddRsp{Equip: equip}
if rsp, err := proto.Marshal(update); err != nil {
logger.Error(" EquipmentAddNotify err:", err.Error())
return
} else {
if m.GetConn() != nil {
m.GetConn().SendSuccess(uint32(pb.ProtoCode_EquipmentAddRsp), rsp)
}
}
}
|