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
|
)
//背包系统
func (m *RoleModel) GetItemCount(key string) uint32 {
c, ok := m.Items[key]
if !ok {
|
4a502dd5
zhangqijia
fix: game,account...
|
15
|
c = uint32(0)
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
16
|
}
|
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
|
rsp, err := proto.Marshal(&pb.RoleUpdateItemsRsp{Items: fmt.Sprintf("%s=%d", key, num)})
if err != nil {
logger.Error(err.Error())
return true
}
|
c2791869
zhangqijia
fix: gm增加删除装备删除物品接口
|
54
55
56
57
|
if m.GetConn() != nil {
m.GetConn().Send(0, uint32(pb.ProtoCode_RoleUpdateItemsRsp), rsp)
}
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
58
59
60
|
return true
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
61
62
|
func (m *RoleModel) AddItems(params common.IMapString) bool {
tmp := make(common.IMapString)
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
63
64
65
|
for k, v := range params {
c := m.GetItemCount(k)
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
66
|
num := c + v.(uint32)
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
67
68
69
70
71
72
73
74
|
if num > 0 {
m.Items[k] = num
tmp[k] = num
} else {
delete(m.Items, k)
}
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
75
|
m.SetProperty("items", common.MapToString(m.Items))
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
76
|
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
77
|
rsp, err := proto.Marshal(&pb.RoleUpdateItemsRsp{Items: common.MapToString(tmp)})
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
78
79
80
81
82
83
84
85
86
87
88
|
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...
|
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
128
129
130
|
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)
}
}
}
|