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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
func EquipmentTypToPos(typ int32) int32 {
return int32(math.Floor(float64(typ / EquipmentInterval)))
}
func EquipmentTToPos(t int) int {
switch t {
case WeaponT:
return Weapon
case MailT:
return Mail
case ShoseT:
return Shose
case NecklaceT:
return Necklace
case RingTL:
return Ring
case RingTR:
return Ring
default:
return -1
}
}
func EquipmentPosToT(pos int32, left bool) int32 {
switch pos {
case Weapon:
return WeaponT
case Mail:
return MailT
case Shose:
return ShoseT
case Necklace:
return NecklaceT
case Ring:
if left {
return RingTL
} else {
return RingTR
}
default:
return -1
}
}
|