GmAction.go
1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package action
import (
"github.com/golang/protobuf/proto"
"pro2d/common/db/mongoproxy"
"pro2d/common/logger"
"pro2d/models"
"pro2d/pb"
"strconv"
)
type GmAction struct {
}
func (gm *GmAction) AddExp(role *models.RoleModel, params ...interface{}) {
logger.Debug(params)
expIncrease, _ := strconv.Atoi(params[0].(string))
exp := role.IncrProperty("exp", int64(expIncrease))
role.UpdateProperty("exp", exp, true)
}
func (gm *GmAction) AddEquip(role *models.RoleModel, params ...interface{}) {
logger.Debug(params)
//TODO 验证装备是否存在
equip := &pb.Equipment{
Id: role.IncreEquipByKey(1),
RoleId: role.Role.Id,
Type: params[0].(string),
Quality: 1,
}
role.AddEquip(equip)
}
func (gm *GmAction) DelEquip(role *models.RoleModel, params ...interface{}) {
logger.Debug(params)
id := params[0].(string)
if err := mongoproxy.DelOne("equip", "id", id); err != nil {
logger.Error(err.Error())
return
}
delete(role.Equipments, id)
update := &pb.EquipmentDelRsp{Id: id}
if rsp, err := proto.Marshal(update); err != nil {
logger.Error(" err:", err.Error())
return
} else {
if role.GetConn() != nil {
role.GetConn().SendSuccess(uint32(pb.ProtoCode_EquipmentDelRsp), rsp)
}
}
}
func (gm *GmAction) DelItem(role *models.RoleModel, params ...interface{}) {
logger.Debug(params)
id := params[0].(string)
count := params[1].(int32)
if !role.CostItem(id, count) {
logger.Error("item cost error: ", id)
}
}