Blame view

cmd/gameserver/gmaction/GmAction.go 2.7 KB
4a502dd5   zhangqijia   fix: game,account...
1
  // GM系统API
97bec184   zhangqijia   fix: 账号系统只有一个数据库。
2
  package gmaction
c47aa250   zhangqijia   feat: 增加GM相关接口。详情...
3
4
  
  import (
e172952c   zhangqijia   feat: email 系统搭建
5
6
  	"pro2d/common"
  	"pro2d/common/logger"
c47aa250   zhangqijia   feat: 增加GM相关接口。详情...
7
  	"pro2d/models"
d6d589a9   zhangqijia   feat: 增加装备接口
8
  	"pro2d/pb"
c47aa250   zhangqijia   feat: 增加GM相关接口。详情...
9
10
11
  	"strconv"
  )
  
4a502dd5   zhangqijia   fix: game,account...
12
13
14
15
  type GmAction struct{}
  
  // GMParams GM系统API请求参数的基础类型
  type GMParams map[string]string
c47aa250   zhangqijia   feat: 增加GM相关接口。详情...
16
  
4a502dd5   zhangqijia   fix: game,account...
17
18
19
20
21
22
  /*
  AddExp 增加经验
   exp 增加经验数量
  */
  func (gm *GmAction) AddExp(role *models.RoleModel, params GMParams) {
  	expIncrease, _ := strconv.Atoi(params["exp"])
c2791869   zhangqijia   fix: gm增加删除装备删除物品接口
23
24
  	exp := role.IncrProperty("exp", int64(expIncrease))
  	role.UpdateProperty("exp", exp, true)
c47aa250   zhangqijia   feat: 增加GM相关接口。详情...
25
  }
d6d589a9   zhangqijia   feat: 增加装备接口
26
  
4a502dd5   zhangqijia   fix: game,account...
27
28
29
30
31
  /*
  AddEquip 添加装备
   id: 装备id
  */
  func (gm *GmAction) AddEquip(role *models.RoleModel, params GMParams) {
c2791869   zhangqijia   fix: gm增加删除装备删除物品接口
32
  	//TODO 验证装备是否存在
02d11cb7   zhangqijia   fix: update 装备脱/戴
33
34
  	id := params["id"]
  	tbId, _ := strconv.Atoi(id)
c2791869   zhangqijia   fix: gm增加删除装备删除物品接口
35
  
d6d589a9   zhangqijia   feat: 增加装备接口
36
  	equip := &pb.Equipment{
c2791869   zhangqijia   fix: gm增加删除装备删除物品接口
37
  		Id:      role.IncreEquipByKey(1),
23822e2f   zhangqijia   fix: update proto...
38
  		RoleId:  role.Data.Id,
02d11cb7   zhangqijia   fix: update 装备脱/戴
39
  		TbId:    int32(tbId),
c2791869   zhangqijia   fix: gm增加删除装备删除物品接口
40
  		Quality: 1,
d6d589a9   zhangqijia   feat: 增加装备接口
41
  	}
c2791869   zhangqijia   fix: gm增加删除装备删除物品接口
42
43
  	role.AddEquip(equip)
  }
4a502dd5   zhangqijia   fix: game,account...
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
  
  /*
  AddItem 添加物品
   id: 物品id
   count: 物品数量
  */
  func (gm *GmAction) AddItem(role *models.RoleModel, params GMParams) {
  	id := params["id"]
  	count, _ := strconv.Atoi(params["count"])
  	role.AddItem(id, int32(count))
  }
  
  /*
  UpdatePackLimit 更新背包限制
  	clotheslimit: 服饰限制数
  	weaponslimit: 武器限制数
ddc88bac   zhangqijia   fix: 记录战斗
60
61
  	jewelrylimit: 首饰限制数
  	materiallimit: 材料限制数
4a502dd5   zhangqijia   fix: game,account...
62
63
64
  	otherlimit: 其他限制数
  */
  func (gm *GmAction) UpdatePackLimit(role *models.RoleModel, params GMParams) {
ddc88bac   zhangqijia   fix: 记录战斗
65
  	update := make(map[string]interface{}, 5)
4a502dd5   zhangqijia   fix: game,account...
66
67
  	c, ok := params["clotheslimit"]
  	if ok {
d35f4f81   zhangqijia   fix: 优化proto to i...
68
69
  		l, _ := strconv.Atoi(c)
  		update["clotheslimit"] = uint32(l)
4a502dd5   zhangqijia   fix: game,account...
70
  	}
ddc88bac   zhangqijia   fix: 记录战斗
71
  	w, ok := params["weaponslimit"]
4a502dd5   zhangqijia   fix: game,account...
72
  	if ok {
d35f4f81   zhangqijia   fix: 优化proto to i...
73
74
  		l, _ := strconv.Atoi(w)
  		update["weaponslimit"] = uint32(l)
4a502dd5   zhangqijia   fix: game,account...
75
  	}
ddc88bac   zhangqijia   fix: 记录战斗
76
  	o, ok := params["otherlimit"]
4a502dd5   zhangqijia   fix: game,account...
77
  	if ok {
d35f4f81   zhangqijia   fix: 优化proto to i...
78
79
  		l, _ := strconv.Atoi(o)
  		update["otherlimit"] = uint32(l)
4a502dd5   zhangqijia   fix: game,account...
80
  	}
ddc88bac   zhangqijia   fix: 记录战斗
81
82
83
84
85
86
87
88
89
90
91
92
93
  
  	o, ok = params["jewelrylimit"]
  	if ok {
  		l, _ := strconv.Atoi(o)
  		update["jewelrylimit"] = uint32(l)
  	}
  
  	o, ok = params["materiallimit"]
  	if ok {
  		l, _ := strconv.Atoi(o)
  		update["materiallimit"] = uint32(l)
  	}
  
4a502dd5   zhangqijia   fix: game,account...
94
95
  	role.UpdateProperties(update, true)
  }
e172952c   zhangqijia   feat: email 系统搭建
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
131
132
133
134
135
136
137
  
  /*GMEmail 发送邮件
  参数 &title= &stitle= &content= &attachments=
  */
  func (gm *GmAction) GMEmail(role *models.RoleModel, params GMParams) {
  	title, ok := params["title"]
  	if !ok {
  		title = ""
  	}
  	stitle, ok := params["stitle"]
  	if !ok {
  		stitle = ""
  	}
  	content, ok := params["content"]
  	if !ok {
  		content = ""
  	}
  	attachments, ok := params["attachments"]
  	if !ok {
  		attachments = ""
  	}
  	id, err := common.GetNextEmail()
  	if err != nil {
  		logger.Error(err)
  		return
  	}
  	email := &pb.Email{
  		Id:          id,
  		RoleId:      role.Data.Id,
  		Title:       title,
  		Stitle:      stitle,
  		Content:     content,
  		Attachments: attachments,
  		Status:      0,
  		CreateTime:  common.Timex(),
  	}
  	m := models.NewEmailModelPB(email)
  	err = m.Create()
  	if err != nil {
  		logger.Error(err)
  	}
  }