101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
1
2
3
|
package common
import (
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
4
|
"bytes"
|
f415f471
zhangqijia
fix: roleID自增加上限制...
|
5
|
"errors"
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
6
7
8
|
"fmt"
"github.com/garyburd/redigo/redis"
"pro2d/common/db/redisproxy"
|
4a502dd5
zhangqijia
fix: game,account...
|
9
|
"strconv"
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
10
|
"strings"
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
11
12
13
|
)
func GetNextRoleId() (string, error) {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
14
|
relay, err := redisproxy.HGET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "role")
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
15
16
17
|
if err != nil {
return "", err
}
|
f415f471
zhangqijia
fix: roleID自增加上限制...
|
18
19
20
21
22
23
24
25
26
|
ID, err := redis.Int64(relay, err)
if err != nil {
return "", err
}
//roleID的范围 [GlobalSconf.ID*MaxRoleNum, GlobalSconf.ID*MaxRoleNum + MaxRoleNum]
if ID-GlobalSconf.ID*MaxRoleNum >= MaxCommNum-1 {
return "", errors.New("DB_FULL")
}
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
27
|
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
28
|
relay, err = redisproxy.HINCRBY(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "role", 1)
|
f415f471
zhangqijia
fix: roleID自增加上限制...
|
29
|
ID, err = redis.Int64(relay, err)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
30
31
32
33
34
35
36
|
if err != nil {
return "", err
}
return fmt.Sprintf("%d", ID), nil
}
func GetNextUId() (string, error) {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
37
|
relay, err := redisproxy.HGET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "uid")
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
38
39
40
41
42
43
44
|
if err != nil {
return "", err
}
var ID int64 = 0
if relay == nil {
ID = 90000
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
45
|
redisproxy.HSET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "uid", ID)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
46
|
} else {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
47
|
relay, err = redisproxy.HINCRBY(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "uid", 1)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
48
49
50
51
52
53
54
|
ID, err = redis.Int64(relay, err)
if err != nil {
return "", err
}
}
return fmt.Sprintf("%d", ID), nil
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
55
56
|
type IMapString map[string]interface{}
|
ddc88bac
zhangqijia
fix: 记录战斗
|
57
|
type IMapStringNum map[string]int32
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
58
|
|
4a502dd5
zhangqijia
fix: game,account...
|
59
|
func MapToString(params IMapString) string {
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
60
61
62
63
64
65
66
67
68
69
|
var items bytes.Buffer
for k, v := range params {
items.WriteString(k)
items.WriteString("=")
items.WriteString(fmt.Sprintf("%v", v))
items.WriteString(" ")
}
return items.String()
}
|
4a502dd5
zhangqijia
fix: game,account...
|
70
|
func StringToMap(items string, num bool) IMapString {
|
ddc88bac
zhangqijia
fix: 记录战斗
|
71
|
backPack := make(map[string]interface{})
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
72
73
74
75
76
|
for _, v := range strings.Split(items, " ") {
ii := strings.Split(v, "=")
if len(ii) < 2 {
continue
}
|
4a502dd5
zhangqijia
fix: game,account...
|
77
78
79
80
81
82
83
84
85
|
if num {
c, err := strconv.Atoi(ii[1])
if err != nil {
continue
}
backPack[ii[0]] = uint32(c)
} else {
backPack[ii[0]] = ii[1]
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
86
87
88
|
}
return backPack
}
|
ddc88bac
zhangqijia
fix: 记录战斗
|
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
|
func MapNumToString(params IMapStringNum) string {
var items bytes.Buffer
for k, v := range params {
items.WriteString(k)
items.WriteString("=")
items.WriteString(fmt.Sprintf("%v", v))
items.WriteString(" ")
}
return items.String()
}
func StringToMapNum(items string) IMapStringNum {
backPack := make(IMapStringNum)
for _, v := range strings.Split(items, " ") {
ii := strings.Split(v, "=")
if len(ii) < 2 {
continue
}
c, err := strconv.Atoi(ii[1])
if err != nil {
continue
}
backPack[ii[0]] = int32(c)
}
return backPack
}
|