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) } }