Commit 4a502dd5e1b6addff80f1c09e66909f90a18cf8d
1 parent
07aebd7d
fix: game,account,gm的action添加godoc
Showing
18 changed files
with
199 additions
and
82 deletions
Show diff stats
Makefile
| @@ -12,7 +12,7 @@ gen: | @@ -12,7 +12,7 @@ gen: | ||
| 12 | test: | 12 | test: |
| 13 | go run cmd/test/client.go | 13 | go run cmd/test/client.go |
| 14 | http: | 14 | http: |
| 15 | - go run $(race) cmd/httpserver/http.go cmd/httpserver/AccountAction.go | 15 | + go run $(race) cmd/httpserver/main.go |
| 16 | 16 | ||
| 17 | game: | 17 | game: |
| 18 | go run -race cmd/gameserver/*.go | 18 | go run -race cmd/gameserver/*.go |
| @@ -27,5 +27,8 @@ plugin: | @@ -27,5 +27,8 @@ plugin: | ||
| 27 | cd bin && rm -rf ./plugin*.so && cd - | 27 | cd bin && rm -rf ./plugin*.so && cd - |
| 28 | go build $(race) $(DEBUG) --buildmode=plugin -o bin/$(pname).so cmd/gameserver/plugin/*.go #--ldflags="-pluginpath=$(pname)" | 28 | go build $(race) $(DEBUG) --buildmode=plugin -o bin/$(pname).so cmd/gameserver/plugin/*.go #--ldflags="-pluginpath=$(pname)" |
| 29 | cd bin && ln -s $(pname).so plugin.so && cd - | 29 | cd bin && ln -s $(pname).so plugin.so && cd - |
| 30 | +doc: | ||
| 31 | + godoc -http=:8980 -goroot="." -play | ||
| 32 | + open localhost:8980/pkg/pro2d/cmd/gameserver/action/#pkg-index | ||
| 30 | 33 | ||
| 31 | -.PHONY: all build protos test cert plugin | ||
| 32 | \ No newline at end of file | 34 | \ No newline at end of file |
| 35 | +.PHONY: all build protos test cert plugin doc | ||
| 33 | \ No newline at end of file | 36 | \ No newline at end of file |
cmd/gameserver/action/GmAction.go
| 1 | +// GM系统API | ||
| 1 | package action | 2 | package action |
| 2 | 3 | ||
| 3 | import ( | 4 | import ( |
| 4 | - "pro2d/common/logger" | ||
| 5 | "pro2d/models" | 5 | "pro2d/models" |
| 6 | "pro2d/pb" | 6 | "pro2d/pb" |
| 7 | "strconv" | 7 | "strconv" |
| 8 | ) | 8 | ) |
| 9 | 9 | ||
| 10 | -type GmAction struct { | ||
| 11 | -} | 10 | +type GmAction struct{} |
| 11 | + | ||
| 12 | +// GMParams GM系统API请求参数的基础类型 | ||
| 13 | +type GMParams map[string]string | ||
| 12 | 14 | ||
| 13 | -func (gm *GmAction) AddExp(role *models.RoleModel, params ...interface{}) { | ||
| 14 | - logger.Debug(params) | ||
| 15 | - expIncrease, _ := strconv.Atoi(params[0].(string)) | 15 | +/* |
| 16 | +AddExp 增加经验 | ||
| 17 | + exp 增加经验数量 | ||
| 18 | +*/ | ||
| 19 | +func (gm *GmAction) AddExp(role *models.RoleModel, params GMParams) { | ||
| 20 | + expIncrease, _ := strconv.Atoi(params["exp"]) | ||
| 16 | exp := role.IncrProperty("exp", int64(expIncrease)) | 21 | exp := role.IncrProperty("exp", int64(expIncrease)) |
| 17 | role.UpdateProperty("exp", exp, true) | 22 | role.UpdateProperty("exp", exp, true) |
| 18 | } | 23 | } |
| 19 | 24 | ||
| 20 | -func (gm *GmAction) AddEquip(role *models.RoleModel, params ...interface{}) { | ||
| 21 | - logger.Debug(params) | 25 | +/* |
| 26 | +AddEquip 添加装备 | ||
| 27 | + id: 装备id | ||
| 28 | +*/ | ||
| 29 | +func (gm *GmAction) AddEquip(role *models.RoleModel, params GMParams) { | ||
| 22 | //TODO 验证装备是否存在 | 30 | //TODO 验证装备是否存在 |
| 23 | 31 | ||
| 24 | equip := &pb.Equipment{ | 32 | equip := &pb.Equipment{ |
| 25 | Id: role.IncreEquipByKey(1), | 33 | Id: role.IncreEquipByKey(1), |
| 26 | RoleId: role.Role.Id, | 34 | RoleId: role.Role.Id, |
| 27 | - Type: params[0].(string), | 35 | + Type: params["id"], |
| 28 | Quality: 1, | 36 | Quality: 1, |
| 29 | } | 37 | } |
| 30 | role.AddEquip(equip) | 38 | role.AddEquip(equip) |
| 31 | } | 39 | } |
| 40 | + | ||
| 41 | +/* | ||
| 42 | +AddItem 添加物品 | ||
| 43 | + id: 物品id | ||
| 44 | + count: 物品数量 | ||
| 45 | +*/ | ||
| 46 | +func (gm *GmAction) AddItem(role *models.RoleModel, params GMParams) { | ||
| 47 | + id := params["id"] | ||
| 48 | + count, _ := strconv.Atoi(params["count"]) | ||
| 49 | + role.AddItem(id, int32(count)) | ||
| 50 | +} | ||
| 51 | + | ||
| 52 | +/* | ||
| 53 | +UpdatePackLimit 更新背包限制 | ||
| 54 | + clotheslimit: 服饰限制数 | ||
| 55 | + weaponslimit: 武器限制数 | ||
| 56 | + otherlimit: 其他限制数 | ||
| 57 | +*/ | ||
| 58 | +func (gm *GmAction) UpdatePackLimit(role *models.RoleModel, params GMParams) { | ||
| 59 | + update := make(map[string]interface{}, 3) | ||
| 60 | + c, ok := params["clotheslimit"] | ||
| 61 | + if ok { | ||
| 62 | + update["clotheslimit"], _ = strconv.Atoi(c) | ||
| 63 | + } | ||
| 64 | + w := params["weaponslimit"] | ||
| 65 | + if ok { | ||
| 66 | + update["weaponslimit"], _ = strconv.Atoi(w) | ||
| 67 | + } | ||
| 68 | + o := params["otherlimit"] | ||
| 69 | + if ok { | ||
| 70 | + update["otherlimit"], _ = strconv.Atoi(o) | ||
| 71 | + } | ||
| 72 | + role.UpdateProperties(update, true) | ||
| 73 | +} |
cmd/gameserver/action/RoleAction.go
| 1 | +// Package action 游戏服角色相关操作 | ||
| 1 | package action | 2 | package action |
| 2 | 3 | ||
| 3 | import ( | 4 | import ( |
| @@ -12,11 +13,13 @@ import ( | @@ -12,11 +13,13 @@ import ( | ||
| 12 | "pro2d/pb" | 13 | "pro2d/pb" |
| 13 | ) | 14 | ) |
| 14 | 15 | ||
| 16 | +// HeartRpc 心跳请求 | ||
| 15 | func HeartRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 17 | func HeartRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 16 | //msg.Conn.SetLastHeartCheckTime() | 18 | //msg.Conn.SetLastHeartCheckTime() |
| 17 | return 0, nil | 19 | return 0, nil |
| 18 | } | 20 | } |
| 19 | 21 | ||
| 22 | +// getRandomName 随机名字 | ||
| 20 | func getRandomName() string { | 23 | func getRandomName() string { |
| 21 | name := "" | 24 | name := "" |
| 22 | for { | 25 | for { |
| @@ -36,6 +39,11 @@ func getRandomName() string { | @@ -36,6 +39,11 @@ func getRandomName() string { | ||
| 36 | return name | 39 | return name |
| 37 | } | 40 | } |
| 38 | 41 | ||
| 42 | +/* | ||
| 43 | +CreateRpc 创建角色请求 | ||
| 44 | + 1: proto解析错误 | ||
| 45 | + 2: 角色不存在 | ||
| 46 | +*/ | ||
| 39 | func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 47 | func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 40 | req := pb.CreateReq{} | 48 | req := pb.CreateReq{} |
| 41 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { | 49 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { |
| @@ -63,6 +71,7 @@ func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interfa | @@ -63,6 +71,7 @@ func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interfa | ||
| 63 | return 0, nil | 71 | return 0, nil |
| 64 | } | 72 | } |
| 65 | 73 | ||
| 74 | +// ChangeTeamRpc 阵容变换 | ||
| 66 | func ChangeTeamRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 75 | func ChangeTeamRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 67 | req := pb.ChangeTeamReq{} | 76 | req := pb.ChangeTeamReq{} |
| 68 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { | 77 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { |
| @@ -74,6 +83,10 @@ func ChangeTeamRpc(role *models.RoleModel, msg components.IMessage) (int32, inte | @@ -74,6 +83,10 @@ func ChangeTeamRpc(role *models.RoleModel, msg components.IMessage) (int32, inte | ||
| 74 | return 0, nil | 83 | return 0, nil |
| 75 | } | 84 | } |
| 76 | 85 | ||
| 86 | +/* | ||
| 87 | +HeroEquipReferRpc 穿戴/脱 装备 | ||
| 88 | + 2: 装备不存在 | ||
| 89 | +*/ | ||
| 77 | func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 90 | func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 78 | req := pb.HeroEquipReferReq{} | 91 | req := pb.HeroEquipReferReq{} |
| 79 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { | 92 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { |
| @@ -118,6 +131,10 @@ func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32, | @@ -118,6 +131,10 @@ func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32, | ||
| 118 | return 0, nil | 131 | return 0, nil |
| 119 | } | 132 | } |
| 120 | 133 | ||
| 134 | +/* | ||
| 135 | +RoleClearItemsRpc 删除物品 | ||
| 136 | + 2 删除失败 | ||
| 137 | +*/ | ||
| 121 | func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 138 | func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 122 | req := pb.RoleClearItemsReq{} | 139 | req := pb.RoleClearItemsReq{} |
| 123 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { | 140 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { |
| @@ -132,6 +149,10 @@ func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, | @@ -132,6 +149,10 @@ func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, | ||
| 132 | return 0, nil | 149 | return 0, nil |
| 133 | } | 150 | } |
| 134 | 151 | ||
| 152 | +/* | ||
| 153 | +EquipmentDelRpc 删除装备 | ||
| 154 | + 2 删除失败 | ||
| 155 | +*/ | ||
| 135 | func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 156 | func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 136 | req := pb.EquipmentDelReq{} | 157 | req := pb.EquipmentDelReq{} |
| 137 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { | 158 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { |
cmd/gameserver/plugin/plugin.go
cmd/gameserver/service/agent.go
| @@ -58,6 +58,9 @@ func (c *Agent) OnConnection(conn components.IConnection) { | @@ -58,6 +58,9 @@ func (c *Agent) OnConnection(conn components.IConnection) { | ||
| 58 | c.IConnection = conn | 58 | c.IConnection = conn |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | +/*OnLoginQuery 登录请求 | ||
| 62 | +2 角色不存在 | ||
| 63 | +*/ | ||
| 61 | func (c *Agent) OnLoginQuery(msg components.IMessage) (int32, proto.Message) { | 64 | func (c *Agent) OnLoginQuery(msg components.IMessage) (int32, proto.Message) { |
| 62 | //logger.Debug("11111111cmd: %v, msg: %s", msg.GetHeader().GetMsgID(), msg.GetData()) | 65 | //logger.Debug("11111111cmd: %v, msg: %s", msg.GetHeader().GetMsgID(), msg.GetData()) |
| 63 | req := pb.LoginReq{} | 66 | req := pb.LoginReq{} |
cmd/gameserver/service/gm.go
| @@ -5,6 +5,7 @@ import ( | @@ -5,6 +5,7 @@ import ( | ||
| 5 | "net/http" | 5 | "net/http" |
| 6 | "pro2d/cmd/gameserver/action" | 6 | "pro2d/cmd/gameserver/action" |
| 7 | "pro2d/common/components" | 7 | "pro2d/common/components" |
| 8 | + "pro2d/common/logger" | ||
| 8 | "pro2d/models" | 9 | "pro2d/models" |
| 9 | "reflect" | 10 | "reflect" |
| 10 | ) | 11 | ) |
| @@ -25,19 +26,20 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | @@ -25,19 +26,20 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | ||
| 25 | return func(c *gin.Context) { | 26 | return func(c *gin.Context) { |
| 26 | var roleId string | 27 | var roleId string |
| 27 | var ok bool | 28 | var ok bool |
| 28 | - properties := make([]interface{}, 2) | 29 | + properties := make(map[string]string, 2) |
| 29 | //请求类型,以及 format 参数 | 30 | //请求类型,以及 format 参数 |
| 30 | if c.Request.Method == "POST" { | 31 | if c.Request.Method == "POST" { |
| 31 | c.Request.ParseForm() | 32 | c.Request.ParseForm() |
| 32 | - for _, v := range c.Request.PostForm { | ||
| 33 | - properties = append(properties, v[0]) | 33 | + for k, v := range c.Request.PostForm { |
| 34 | + properties[k] = v[0] | ||
| 34 | } | 35 | } |
| 35 | roleId, ok = c.GetPostForm("role_id") | 36 | roleId, ok = c.GetPostForm("role_id") |
| 36 | 37 | ||
| 37 | } else if c.Request.Method == "GET" { | 38 | } else if c.Request.Method == "GET" { |
| 38 | roleId, ok = c.GetQuery("role_id") | 39 | roleId, ok = c.GetQuery("role_id") |
| 39 | - for _, v := range c.Request.URL.Query() { | ||
| 40 | - properties = append(properties, v[0]) | 40 | + logger.Debug(c.Request.URL.Query()) |
| 41 | + for k, v := range c.Request.URL.Query() { | ||
| 42 | + properties[k] = v[0] | ||
| 41 | } | 43 | } |
| 42 | } else { | 44 | } else { |
| 43 | c.JSON(http.StatusOK, gin.H{"code": -101, "message": "not support method"}) | 45 | c.JSON(http.StatusOK, gin.H{"code": -101, "message": "not support method"}) |
| @@ -53,6 +55,7 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | @@ -53,6 +55,7 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | ||
| 53 | conn := s.Server.GetConnManage().GetConnByRID(roleId) | 55 | conn := s.Server.GetConnManage().GetConnByRID(roleId) |
| 54 | var role *models.RoleModel | 56 | var role *models.RoleModel |
| 55 | callback := func() { | 57 | callback := func() { |
| 58 | + logger.Debug(properties) | ||
| 56 | tvl.Call([]reflect.Value{obj, reflect.ValueOf(role), reflect.ValueOf(properties)}) | 59 | tvl.Call([]reflect.Value{obj, reflect.ValueOf(role), reflect.ValueOf(properties)}) |
| 57 | role.SaveRoleData(0) | 60 | role.SaveRoleData(0) |
| 58 | } | 61 | } |
cmd/httpserver/AccountAction.go renamed to cmd/httpserver/action/AccountAction.go
| 1 | -package main | 1 | +// Account 账号系统API |
| 2 | +package action | ||
| 2 | 3 | ||
| 3 | import ( | 4 | import ( |
| 4 | "fmt" | 5 | "fmt" |
| 5 | "github.com/garyburd/redigo/redis" | 6 | "github.com/garyburd/redigo/redis" |
| 6 | "github.com/gin-gonic/gin" | 7 | "github.com/gin-gonic/gin" |
| 8 | + "pro2d/cmd/httpserver/service" | ||
| 7 | "pro2d/common" | 9 | "pro2d/common" |
| 8 | "pro2d/common/db/redisproxy" | 10 | "pro2d/common/db/redisproxy" |
| 9 | "pro2d/common/etcd" | 11 | "pro2d/common/etcd" |
| @@ -14,9 +16,16 @@ import ( | @@ -14,9 +16,16 @@ import ( | ||
| 14 | ) | 16 | ) |
| 15 | 17 | ||
| 16 | type AccountAction struct { | 18 | type AccountAction struct { |
| 17 | - HttpServer *AccountServer | 19 | + HttpServer *service.AccountServer |
| 18 | } | 20 | } |
| 19 | 21 | ||
| 22 | +/*Register 账号注册 | ||
| 23 | +2 验证码转化为string错误 | ||
| 24 | +3 验证码错误 | ||
| 25 | +4 手机号已存在,不用重复注册 | ||
| 26 | +5 uid get error | ||
| 27 | +6 mongo create error | ||
| 28 | +*/ | ||
| 20 | func (h *AccountAction) Register(c *gin.Context) (int, interface{}) { | 29 | func (h *AccountAction) Register(c *gin.Context) (int, interface{}) { |
| 21 | var register pb.Register | 30 | var register pb.Register |
| 22 | if err := c.ShouldBindJSON(®ister); err != nil { | 31 | if err := c.ShouldBindJSON(®ister); err != nil { |
| @@ -55,6 +64,10 @@ func (h *AccountAction) Register(c *gin.Context) (int, interface{}) { | @@ -55,6 +64,10 @@ func (h *AccountAction) Register(c *gin.Context) (int, interface{}) { | ||
| 55 | return 0, "success" | 64 | return 0, "success" |
| 56 | } | 65 | } |
| 57 | 66 | ||
| 67 | +/*Login 登录 | ||
| 68 | +2 账号不存在 | ||
| 69 | +3 密码错误 | ||
| 70 | +*/ | ||
| 58 | func (h *AccountAction) Login(c *gin.Context) (int, interface{}) { | 71 | func (h *AccountAction) Login(c *gin.Context) (int, interface{}) { |
| 59 | var login pb.Account | 72 | var login pb.Account |
| 60 | if err := c.ShouldBindJSON(&login); err != nil { | 73 | if err := c.ShouldBindJSON(&login); err != nil { |
| @@ -62,7 +75,7 @@ func (h *AccountAction) Login(c *gin.Context) (int, interface{}) { | @@ -62,7 +75,7 @@ func (h *AccountAction) Login(c *gin.Context) (int, interface{}) { | ||
| 62 | } | 75 | } |
| 63 | account := models.NewAccount(login.Phone) | 76 | account := models.NewAccount(login.Phone) |
| 64 | if err := account.Load(); err != nil { | 77 | if err := account.Load(); err != nil { |
| 65 | - return 2, err.Error() | 78 | + return 2, "account not exists" |
| 66 | } | 79 | } |
| 67 | 80 | ||
| 68 | if common.Md5V(login.Password) != account.Password { | 81 | if common.Md5V(login.Password) != account.Password { |
| @@ -84,6 +97,10 @@ func (h *AccountAction) Login(c *gin.Context) (int, interface{}) { | @@ -84,6 +97,10 @@ func (h *AccountAction) Login(c *gin.Context) (int, interface{}) { | ||
| 84 | return 0, rsp | 97 | return 0, rsp |
| 85 | } | 98 | } |
| 86 | 99 | ||
| 100 | +/*Sms 发短信 | ||
| 101 | +2 发送太频繁 | ||
| 102 | +3 发送失败 | ||
| 103 | +*/ | ||
| 87 | func (h *AccountAction) Sms(c *gin.Context) (int, interface{}) { | 104 | func (h *AccountAction) Sms(c *gin.Context) (int, interface{}) { |
| 88 | phone, ok := c.GetQuery("phone") | 105 | phone, ok := c.GetQuery("phone") |
| 89 | if !ok { | 106 | if !ok { |
cmd/httpserver/http.go renamed to cmd/httpserver/service/http.go
| 1 | -package main | 1 | +package service |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | "math/rand" | 5 | "math/rand" |
| 6 | - "os" | ||
| 7 | - "os/signal" | ||
| 8 | "pro2d/common" | 6 | "pro2d/common" |
| 9 | "pro2d/common/components" | 7 | "pro2d/common/components" |
| 10 | "pro2d/common/db/mongoproxy" | 8 | "pro2d/common/db/mongoproxy" |
| 11 | "pro2d/common/db/redisproxy" | 9 | "pro2d/common/db/redisproxy" |
| 12 | "pro2d/common/etcd" | 10 | "pro2d/common/etcd" |
| 13 | - "pro2d/common/logger" | ||
| 14 | "pro2d/models" | 11 | "pro2d/models" |
| 15 | - "syscall" | ||
| 16 | "time" | 12 | "time" |
| 17 | ) | 13 | ) |
| 18 | 14 | ||
| @@ -70,25 +66,3 @@ func (s *AccountServer) Stop() { | @@ -70,25 +66,3 @@ func (s *AccountServer) Stop() { | ||
| 70 | s.IHttp.Stop() | 66 | s.IHttp.Stop() |
| 71 | etcd.CloseEtcd() | 67 | etcd.CloseEtcd() |
| 72 | } | 68 | } |
| 73 | - | ||
| 74 | -func main() { | ||
| 75 | - err := make(chan error) | ||
| 76 | - stopChan := make(chan os.Signal) | ||
| 77 | - signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) | ||
| 78 | - | ||
| 79 | - common.GlobalSconf = common.GlobalConf.AccountConf | ||
| 80 | - | ||
| 81 | - web := NewAccountServer("v1", fmt.Sprintf(":%d", common.GlobalSconf.Port)) | ||
| 82 | - web.BindHandler(&AccountAction{HttpServer: web}) | ||
| 83 | - go func() { | ||
| 84 | - err <- web.Start() | ||
| 85 | - }() | ||
| 86 | - | ||
| 87 | - select { | ||
| 88 | - case e := <-err: | ||
| 89 | - logger.Error("http server error: %v", e) | ||
| 90 | - case <-stopChan: | ||
| 91 | - logger.Debug("http stop") | ||
| 92 | - web.Stop() | ||
| 93 | - } | ||
| 94 | -} |
common/commonFunc.go
| @@ -6,6 +6,7 @@ import ( | @@ -6,6 +6,7 @@ import ( | ||
| 6 | "fmt" | 6 | "fmt" |
| 7 | "github.com/garyburd/redigo/redis" | 7 | "github.com/garyburd/redigo/redis" |
| 8 | "pro2d/common/db/redisproxy" | 8 | "pro2d/common/db/redisproxy" |
| 9 | + "strconv" | ||
| 9 | "strings" | 10 | "strings" |
| 10 | ) | 11 | ) |
| 11 | 12 | ||
| @@ -54,7 +55,7 @@ func GetNextUId() (string, error) { | @@ -54,7 +55,7 @@ func GetNextUId() (string, error) { | ||
| 54 | 55 | ||
| 55 | type IMapString map[string]interface{} | 56 | type IMapString map[string]interface{} |
| 56 | 57 | ||
| 57 | -func MapToString(params map[string]interface{}) string { | 58 | +func MapToString(params IMapString) string { |
| 58 | var items bytes.Buffer | 59 | var items bytes.Buffer |
| 59 | for k, v := range params { | 60 | for k, v := range params { |
| 60 | items.WriteString(k) | 61 | items.WriteString(k) |
| @@ -65,14 +66,22 @@ func MapToString(params map[string]interface{}) string { | @@ -65,14 +66,22 @@ func MapToString(params map[string]interface{}) string { | ||
| 65 | return items.String() | 66 | return items.String() |
| 66 | } | 67 | } |
| 67 | 68 | ||
| 68 | -func StringToMap(items string) map[string]interface{} { | ||
| 69 | - backPack := make(map[string]interface{}) | 69 | +func StringToMap(items string, num bool) IMapString { |
| 70 | + backPack := make(map[string]interface{}, 10) | ||
| 70 | for _, v := range strings.Split(items, " ") { | 71 | for _, v := range strings.Split(items, " ") { |
| 71 | ii := strings.Split(v, "=") | 72 | ii := strings.Split(v, "=") |
| 72 | if len(ii) < 2 { | 73 | if len(ii) < 2 { |
| 73 | continue | 74 | continue |
| 74 | } | 75 | } |
| 75 | - backPack[ii[0]] = ii[1] | 76 | + if num { |
| 77 | + c, err := strconv.Atoi(ii[1]) | ||
| 78 | + if err != nil { | ||
| 79 | + continue | ||
| 80 | + } | ||
| 81 | + backPack[ii[0]] = uint32(c) | ||
| 82 | + } else { | ||
| 83 | + backPack[ii[0]] = ii[1] | ||
| 84 | + } | ||
| 76 | } | 85 | } |
| 77 | return backPack | 86 | return backPack |
| 78 | } | 87 | } |
common/const.go
| @@ -52,11 +52,12 @@ require ( | @@ -52,11 +52,12 @@ require ( | ||
| 52 | go.uber.org/atomic v1.7.0 // indirect | 52 | go.uber.org/atomic v1.7.0 // indirect |
| 53 | go.uber.org/multierr v1.6.0 // indirect | 53 | go.uber.org/multierr v1.6.0 // indirect |
| 54 | go.uber.org/zap v1.17.0 // indirect | 54 | go.uber.org/zap v1.17.0 // indirect |
| 55 | - golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f // indirect | ||
| 56 | - golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect | 55 | + golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect |
| 56 | + golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect | ||
| 57 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect | 57 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect |
| 58 | - golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect | 58 | + golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 // indirect |
| 59 | golang.org/x/text v0.3.7 // indirect | 59 | golang.org/x/text v0.3.7 // indirect |
| 60 | + golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect | ||
| 60 | google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect | 61 | google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect |
| 61 | google.golang.org/grpc v1.38.0 // indirect | 62 | google.golang.org/grpc v1.38.0 // indirect |
| 62 | gopkg.in/ini.v1 v1.66.4 // indirect | 63 | gopkg.in/ini.v1 v1.66.4 // indirect |
| @@ -242,8 +242,9 @@ golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPh | @@ -242,8 +242,9 @@ golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPh | ||
| 242 | golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | 242 | golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= |
| 243 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | 243 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= |
| 244 | golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | 244 | golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= |
| 245 | -golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f h1:aZp0e2vLN4MToVqnjNEYEtrEA8RH8U8FN1CU7JgqsPU= | ||
| 246 | golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | 245 | golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= |
| 246 | +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= | ||
| 247 | +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||
| 247 | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | 248 | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= |
| 248 | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | 249 | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= |
| 249 | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= | 250 | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= |
| @@ -268,9 +269,10 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R | @@ -268,9 +269,10 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R | ||
| 268 | golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | 269 | golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= |
| 269 | golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | 270 | golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= |
| 270 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | 271 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= |
| 272 | +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||
| 271 | golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= | 273 | golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= |
| 272 | -golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0= | ||
| 273 | -golang.org/x/net v0.0.0-20220403103023-749bd193bc2b/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | 274 | +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= |
| 275 | +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||
| 274 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | 276 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= |
| 275 | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | 277 | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= |
| 276 | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | 278 | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= |
| @@ -305,8 +307,9 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w | @@ -305,8 +307,9 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w | ||
| 305 | golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | 307 | golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |
| 306 | golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | 308 | golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |
| 307 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | 309 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |
| 308 | -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= | ||
| 309 | golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | 310 | golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |
| 311 | +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 h1:nonptSpoQ4vQjyraW20DXPAglgQfVnM9ZC6MmNLMR60= | ||
| 312 | +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||
| 310 | golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | 313 | golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= |
| 311 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | 314 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= |
| 312 | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | 315 | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= |
| @@ -332,8 +335,9 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | @@ -332,8 +335,9 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | ||
| 332 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | 335 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
| 333 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | 336 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
| 334 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | 337 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
| 335 | -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= | ||
| 336 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | 338 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
| 339 | +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U= | ||
| 340 | +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||
| 337 | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | 341 | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= |
| 338 | google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | 342 | google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= |
| 339 | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | 343 | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= |
models/hero.go
| @@ -16,7 +16,7 @@ func NewHero(hero *pb.Hero) *HeroModel { | @@ -16,7 +16,7 @@ func NewHero(hero *pb.Hero) *HeroModel { | ||
| 16 | m := &HeroModel{ | 16 | m := &HeroModel{ |
| 17 | ISchema: NewSchema(hero.Id, hero), | 17 | ISchema: NewSchema(hero.Id, hero), |
| 18 | Hero: hero, | 18 | Hero: hero, |
| 19 | - Equipments: common.StringToMap(hero.Equipments), | 19 | + Equipments: common.StringToMap(hero.Equipments, false), |
| 20 | } | 20 | } |
| 21 | return m | 21 | return m |
| 22 | } | 22 | } |
models/role.go
| @@ -132,6 +132,9 @@ func (m *RoleModel) InitRole() { | @@ -132,6 +132,9 @@ func (m *RoleModel) InitRole() { | ||
| 132 | t4.Id = m.IncreTeamByKey(1) | 132 | t4.Id = m.IncreTeamByKey(1) |
| 133 | m.AddTeam(&t4) | 133 | m.AddTeam(&t4) |
| 134 | 134 | ||
| 135 | + //init limit | ||
| 136 | + m.UpdateProperties(map[string]interface{}{"clotheslimit": 100, "weaponslimit": 100, "otherlimit": 100}, false) | ||
| 137 | + | ||
| 135 | m.Update() | 138 | m.Update() |
| 136 | } | 139 | } |
| 137 | 140 | ||
| @@ -161,7 +164,7 @@ func (m *RoleModel) LoadTeams() { | @@ -161,7 +164,7 @@ func (m *RoleModel) LoadTeams() { | ||
| 161 | 164 | ||
| 162 | //加载背包数据到内存 | 165 | //加载背包数据到内存 |
| 163 | func (m *RoleModel) LoadItems() { | 166 | func (m *RoleModel) LoadItems() { |
| 164 | - m.Items = common.StringToMap(m.Role.Items) | 167 | + m.Items = common.StringToMap(m.Role.Items, true) |
| 165 | } | 168 | } |
| 166 | 169 | ||
| 167 | func (m *RoleModel) LoadEquipments() { | 170 | func (m *RoleModel) LoadEquipments() { |
models/rolePlugin.go
| @@ -12,7 +12,7 @@ import ( | @@ -12,7 +12,7 @@ import ( | ||
| 12 | func (m *RoleModel) GetItemCount(key string) uint32 { | 12 | func (m *RoleModel) GetItemCount(key string) uint32 { |
| 13 | c, ok := m.Items[key] | 13 | c, ok := m.Items[key] |
| 14 | if !ok { | 14 | if !ok { |
| 15 | - c = 0 | 15 | + c = uint32(0) |
| 16 | } | 16 | } |
| 17 | return c.(uint32) | 17 | return c.(uint32) |
| 18 | } | 18 | } |
pb/game.pb.go
| @@ -514,6 +514,7 @@ func (x *RoleUpdateItemsRsp) GetItems() string { | @@ -514,6 +514,7 @@ func (x *RoleUpdateItemsRsp) GetItems() string { | ||
| 514 | return "" | 514 | return "" |
| 515 | } | 515 | } |
| 516 | 516 | ||
| 517 | +//ResponseCmd RoleClearItemsReq | ||
| 517 | type RoleClearItemsReq struct { | 518 | type RoleClearItemsReq struct { |
| 518 | state protoimpl.MessageState | 519 | state protoimpl.MessageState |
| 519 | sizeCache protoimpl.SizeCache | 520 | sizeCache protoimpl.SizeCache |
| @@ -569,6 +570,7 @@ func (x *RoleClearItemsReq) GetCount() int32 { | @@ -569,6 +570,7 @@ func (x *RoleClearItemsReq) GetCount() int32 { | ||
| 569 | return 0 | 570 | return 0 |
| 570 | } | 571 | } |
| 571 | 572 | ||
| 573 | +//ResponseCmd EquipmentDelReq | ||
| 572 | type EquipmentDelReq struct { | 574 | type EquipmentDelReq struct { |
| 573 | state protoimpl.MessageState | 575 | state protoimpl.MessageState |
| 574 | sizeCache protoimpl.SizeCache | 576 | sizeCache protoimpl.SizeCache |
pb/models.pb.go
| @@ -459,19 +459,22 @@ type Role struct { | @@ -459,19 +459,22 @@ type Role struct { | ||
| 459 | sizeCache protoimpl.SizeCache | 459 | sizeCache protoimpl.SizeCache |
| 460 | unknownFields protoimpl.UnknownFields | 460 | unknownFields protoimpl.UnknownFields |
| 461 | 461 | ||
| 462 | - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1" | ||
| 463 | - Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty" index:"unique"` // @inject_tag: index:"unique" | ||
| 464 | - Device string `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` | ||
| 465 | - Nick string `protobuf:"bytes,4,opt,name=nick,proto3" json:"nick,omitempty"` | ||
| 466 | - Level int32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` | ||
| 467 | - Exp int64 `protobuf:"varint,6,opt,name=exp,proto3" json:"exp,omitempty"` | ||
| 468 | - Hp int64 `protobuf:"varint,7,opt,name=hp,proto3" json:"hp,omitempty"` | ||
| 469 | - HpMax int64 `protobuf:"varint,8,opt,name=hp_max,json=hpMax,proto3" json:"hp_max,omitempty"` | ||
| 470 | - BuyR string `protobuf:"bytes,11,opt,name=buy_r,json=buyR,proto3" json:"buy_r,omitempty"` | ||
| 471 | - PayR string `protobuf:"bytes,12,opt,name=pay_r,json=payR,proto3" json:"pay_r,omitempty"` | ||
| 472 | - Del bool `protobuf:"varint,13,opt,name=del,proto3" json:"del,omitempty"` | ||
| 473 | - Incres map[string]uint32 `protobuf:"bytes,14,rep,name=incres,proto3" json:"incres,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` | ||
| 474 | - Items string `protobuf:"bytes,15,opt,name=items,proto3" json:"items,omitempty"` //物品 "id=count id2=count2" | 462 | + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1" |
| 463 | + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty" index:"unique"` // @inject_tag: index:"unique" | ||
| 464 | + Device string `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` | ||
| 465 | + Nick string `protobuf:"bytes,4,opt,name=nick,proto3" json:"nick,omitempty"` | ||
| 466 | + Level int32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` | ||
| 467 | + Exp int64 `protobuf:"varint,6,opt,name=exp,proto3" json:"exp,omitempty"` | ||
| 468 | + Hp int64 `protobuf:"varint,7,opt,name=hp,proto3" json:"hp,omitempty"` | ||
| 469 | + HpMax int64 `protobuf:"varint,8,opt,name=hp_max,json=hpMax,proto3" json:"hp_max,omitempty"` | ||
| 470 | + BuyR string `protobuf:"bytes,11,opt,name=buy_r,json=buyR,proto3" json:"buy_r,omitempty"` | ||
| 471 | + PayR string `protobuf:"bytes,12,opt,name=pay_r,json=payR,proto3" json:"pay_r,omitempty"` | ||
| 472 | + Del bool `protobuf:"varint,13,opt,name=del,proto3" json:"del,omitempty"` | ||
| 473 | + Incres map[string]uint32 `protobuf:"bytes,14,rep,name=incres,proto3" json:"incres,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` | ||
| 474 | + Items string `protobuf:"bytes,15,opt,name=items,proto3" json:"items,omitempty"` //物品 "id=count id2=count2" | ||
| 475 | + Clotheslimit uint32 `protobuf:"varint,16,opt,name=clotheslimit,proto3" json:"clotheslimit,omitempty"` | ||
| 476 | + Weaponslimit uint32 `protobuf:"varint,17,opt,name=weaponslimit,proto3" json:"weaponslimit,omitempty"` | ||
| 477 | + Otherlimit uint32 `protobuf:"varint,18,opt,name=otherlimit,proto3" json:"otherlimit,omitempty"` | ||
| 475 | } | 478 | } |
| 476 | 479 | ||
| 477 | func (x *Role) Reset() { | 480 | func (x *Role) Reset() { |
| @@ -597,6 +600,27 @@ func (x *Role) GetItems() string { | @@ -597,6 +600,27 @@ func (x *Role) GetItems() string { | ||
| 597 | return "" | 600 | return "" |
| 598 | } | 601 | } |
| 599 | 602 | ||
| 603 | +func (x *Role) GetClotheslimit() uint32 { | ||
| 604 | + if x != nil { | ||
| 605 | + return x.Clotheslimit | ||
| 606 | + } | ||
| 607 | + return 0 | ||
| 608 | +} | ||
| 609 | + | ||
| 610 | +func (x *Role) GetWeaponslimit() uint32 { | ||
| 611 | + if x != nil { | ||
| 612 | + return x.Weaponslimit | ||
| 613 | + } | ||
| 614 | + return 0 | ||
| 615 | +} | ||
| 616 | + | ||
| 617 | +func (x *Role) GetOtherlimit() uint32 { | ||
| 618 | + if x != nil { | ||
| 619 | + return x.Otherlimit | ||
| 620 | + } | ||
| 621 | + return 0 | ||
| 622 | +} | ||
| 623 | + | ||
| 600 | var File_models_proto protoreflect.FileDescriptor | 624 | var File_models_proto protoreflect.FileDescriptor |
| 601 | 625 | ||
| 602 | var file_models_proto_rawDesc = []byte{ | 626 | var file_models_proto_rawDesc = []byte{ |
| @@ -642,7 +666,7 @@ var file_models_proto_rawDesc = []byte{ | @@ -642,7 +666,7 @@ var file_models_proto_rawDesc = []byte{ | ||
| 642 | 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, | 666 | 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, |
| 643 | 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, | 667 | 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, |
| 644 | 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, | 668 | 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, |
| 645 | - 0x03, 0x76, 0x61, 0x6c, 0x22, 0xe2, 0x02, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, | 669 | + 0x03, 0x76, 0x61, 0x6c, 0x22, 0xca, 0x03, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, |
| 646 | 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, | 670 | 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, |
| 647 | 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, | 671 | 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, |
| 648 | 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, | 672 | 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, |
| @@ -660,12 +684,19 @@ var file_models_proto_rawDesc = []byte{ | @@ -660,12 +684,19 @@ var file_models_proto_rawDesc = []byte{ | ||
| 660 | 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, | 684 | 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, |
| 661 | 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, | 685 | 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, |
| 662 | 0x52, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, | 686 | 0x52, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, |
| 663 | - 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x39, | ||
| 664 | - 0x0a, 0x0b, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, | ||
| 665 | - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, | ||
| 666 | - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, | ||
| 667 | - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, | ||
| 668 | - 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | 687 | + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, |
| 688 | + 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, | ||
| 689 | + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, | ||
| 690 | + 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, | ||
| 691 | + 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, | ||
| 692 | + 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6c, | ||
| 693 | + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x74, 0x68, 0x65, | ||
| 694 | + 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, | ||
| 695 | + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, | ||
| 696 | + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, | ||
| 697 | + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, | ||
| 698 | + 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, | ||
| 699 | + 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||
| 669 | } | 700 | } |
| 670 | 701 | ||
| 671 | var ( | 702 | var ( |