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
|
"fmt"
"github.com/garyburd/redigo/redis"
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
8
|
"math"
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
9
|
"pro2d/common/db/redisproxy"
|
4a502dd5
zhangqijia
fix: game,account...
|
10
|
"strconv"
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
11
|
"strings"
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
12
13
14
|
)
func GetNextRoleId() (string, error) {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
15
|
relay, err := redisproxy.HGET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "role")
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
16
17
18
|
if err != nil {
return "", err
}
|
f415f471
zhangqijia
fix: roleID自增加上限制...
|
19
20
21
22
23
24
25
26
27
|
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的自...
|
28
|
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
29
|
relay, err = redisproxy.HINCRBY(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "role", 1)
|
f415f471
zhangqijia
fix: roleID自增加上限制...
|
30
|
ID, err = redis.Int64(relay, err)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
31
32
33
34
35
36
37
|
if err != nil {
return "", err
}
return fmt.Sprintf("%d", ID), nil
}
func GetNextUId() (string, error) {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
38
|
relay, err := redisproxy.HGET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "uid")
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
39
40
41
42
43
44
45
|
if err != nil {
return "", err
}
var ID int64 = 0
if relay == nil {
ID = 90000
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
46
|
redisproxy.HSET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "uid", ID)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
47
|
} else {
|
a24dea4c
zhangqijia
fix: id自增做了写更新。阵容...
|
48
|
relay, err = redisproxy.HINCRBY(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "uid", 1)
|
101d1cc1
zhangqijia
feat: 一个基于redis的自...
|
49
50
51
52
53
54
55
|
ID, err = redis.Int64(relay, err)
if err != nil {
return "", err
}
}
return fmt.Sprintf("%d", ID), nil
}
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
56
57
|
type IMapString map[string]interface{}
|
ddc88bac
zhangqijia
fix: 记录战斗
|
58
|
type IMapStringNum map[string]int32
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
59
|
|
4a502dd5
zhangqijia
fix: game,account...
|
60
|
func MapToString(params IMapString) string {
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
61
62
63
64
65
66
67
68
69
70
|
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...
|
71
|
func StringToMap(items string, num bool) IMapString {
|
ddc88bac
zhangqijia
fix: 记录战斗
|
72
|
backPack := make(map[string]interface{})
|
17fe96be
zhangqijia
feat: 增加装备相关数据和协议
|
73
74
75
76
77
|
for _, v := range strings.Split(items, " ") {
ii := strings.Split(v, "=")
if len(ii) < 2 {
continue
}
|
4a502dd5
zhangqijia
fix: game,account...
|
78
79
80
81
82
83
84
85
86
|
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: 增加装备相关数据和协议
|
87
88
89
|
}
return backPack
}
|
ddc88bac
zhangqijia
fix: 记录战斗
|
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
116
|
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
}
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
117
|
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
118
|
func EquipmentTyp(typ int32) int32 {
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
119
120
121
|
return int32(math.Floor(float64(typ / EquipmentInterval)))
}
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
122
|
func EquipmentPosToTyp(t int32) int32 {
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
123
|
switch t {
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
124
|
case WeaponPos:
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
125
|
return Weapon
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
126
|
case MailPos:
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
127
|
return Mail
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
128
|
case ShosePos:
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
129
|
return Shose
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
130
|
case NecklacePos:
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
131
|
return Necklace
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
132
|
case RingPosL:
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
133
|
return Ring
|
35adfcdb
zhangqijia
fix: 裝備戒指类型特殊处理
|
134
|
case RingPosR:
|
74286d71
zhangqijia
fix: 裝備 删除pos 添加 ...
|
135
136
137
138
139
|
return Ring
default:
return -1
}
}
|