项目更新
This commit is contained in:
parent
a516884a65
commit
891d9f40c1
@ -3,6 +3,7 @@ package GoUtil
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"reflect"
|
||||
"strconv"
|
||||
@ -177,3 +178,8 @@ func RandString(n int) string {
|
||||
}
|
||||
return string(b)
|
||||
}
|
||||
|
||||
// 生成索要卡牌唯一id
|
||||
func CreateCardId(From, To, CardId int) string {
|
||||
return fmt.Sprintf("%d_%d_%d_%d_%s", From, To, CardId, Now(), RandString(3))
|
||||
}
|
||||
|
||||
@ -10,12 +10,27 @@ const (
|
||||
CFG_CHAMPSHIP_SCORE = "ChampshipScore"
|
||||
CFG_CHAMPSHIP_RANK = "ChampshipRank"
|
||||
CFG_CHAMPSHIP_JACKPOT = "ChampshipJackpot"
|
||||
CFG_CHAMPSHIP_GROUP = "ChampshipGroup"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_SCORE)
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_RANK)
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_JACKPOT)
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_GROUP)
|
||||
}
|
||||
|
||||
func GetGroupId(N int) int {
|
||||
data, err := gamedata.GetData(CFG_CHAMPSHIP_GROUP)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
for k, v := range data {
|
||||
if N >= gamedata.GetIntValue(v, "Min") && N <= gamedata.GetIntValue(v, "Max") {
|
||||
return GoUtil.Int(k)
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func GetChessScore(ChessLv int) int {
|
||||
@ -45,3 +60,16 @@ func GetReward(Reward, Score int) (int, []*item.Item) {
|
||||
}
|
||||
return Reward, r
|
||||
}
|
||||
|
||||
func GetRankReward(Rank int) []*item.Item {
|
||||
data, err := gamedata.GetData(CFG_CHAMPSHIP_RANK)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
for _, v := range data {
|
||||
if Rank >= gamedata.GetIntValue(v, "Min") && Rank <= gamedata.GetIntValue(v, "Max") {
|
||||
return item.ParseItem(gamedata.GetStringValue(v, "Items"))
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
422
src/server/game/ChampshipMgr.go
Normal file
422
src/server/game/ChampshipMgr.go
Normal file
@ -0,0 +1,422 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"server/GoUtil"
|
||||
champshipCfg "server/conf/champship"
|
||||
"server/game/mod/msg"
|
||||
"sort"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
RANK_PLAYER_ROBOT = 2
|
||||
)
|
||||
|
||||
type ChampshipMgr struct {
|
||||
*ServerMod
|
||||
}
|
||||
|
||||
type ChampshipData struct {
|
||||
AutoId int
|
||||
RobotId int
|
||||
Rank map[int][]*ChampshipRank // 锦标赛排行榜
|
||||
Last map[int][]*ChampshipRank // 锦标赛排行榜 备份
|
||||
Pool map[int]*GroupInfo // 锦标赛未分配玩家
|
||||
GroupInfo map[int]int // 锦标赛分组信息
|
||||
Robot map[int]*ChampshipRobot // 机器人
|
||||
}
|
||||
|
||||
type ChampshipRank struct {
|
||||
Uid int
|
||||
Score float64
|
||||
Time int64
|
||||
Type int
|
||||
}
|
||||
|
||||
type ChampshipRobot struct {
|
||||
Max float64
|
||||
Type int
|
||||
Name string
|
||||
Avatar int
|
||||
Face int
|
||||
Level int
|
||||
GroupId int
|
||||
Time int64
|
||||
Score float64
|
||||
}
|
||||
|
||||
type GroupInfo struct {
|
||||
Uid int
|
||||
Score float64
|
||||
Time int64
|
||||
N int
|
||||
H int
|
||||
}
|
||||
|
||||
type CRank struct {
|
||||
Uid int
|
||||
Score float64
|
||||
N int
|
||||
H int
|
||||
}
|
||||
|
||||
func (c *ChampshipMgr) Init() {
|
||||
c.key = CHAMPSHIP_MGR_KEY
|
||||
c.data = &ChampshipData{
|
||||
Rank: make(map[int][]*ChampshipRank, 0),
|
||||
Last: make(map[int][]*ChampshipRank, 0),
|
||||
Pool: make(map[int]*GroupInfo, 0),
|
||||
Robot: make(map[int]*ChampshipRobot, 0),
|
||||
}
|
||||
// 注册处理函数
|
||||
c.init()
|
||||
c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_GROUP, c.group)
|
||||
c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, c.inRank)
|
||||
Now := GoUtil.Now()
|
||||
ZeroTime := GoUtil.ZeroTimestamp()
|
||||
Remain := max(Now-ZeroTime, 3000)
|
||||
Remain1 := 1800 - Remain%1800
|
||||
|
||||
c.mDispatr.AfterFunc(time.Duration(Remain1), func() {
|
||||
c.Send(&msg.Msg{
|
||||
Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func (c *ChampshipMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) {
|
||||
c.getData().Last = c.getData().Rank
|
||||
c.getData().Rank = make(map[int][]*ChampshipRank, 0)
|
||||
c.update = true
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// 分组
|
||||
func (c *ChampshipMgr) group(m *msg.Msg) (interface{}, error) {
|
||||
ChampshipData := c.getData()
|
||||
g := make(map[int][]int, 0)
|
||||
for k, v := range ChampshipData.Pool {
|
||||
x := 0
|
||||
n := champshipCfg.GetGroupId(v.N)
|
||||
h := champshipCfg.GetGroupId(v.H)
|
||||
if n < h {
|
||||
x = min(max(n-1, h-2), 1)
|
||||
} else {
|
||||
x = n
|
||||
}
|
||||
_, ok := g[x]
|
||||
if !ok {
|
||||
g[x] = make([]int, 0)
|
||||
}
|
||||
g[x] = append(g[x], k)
|
||||
}
|
||||
|
||||
for i := 11; i > 0; i-- {
|
||||
if len(g[i]) == 0 {
|
||||
continue
|
||||
}
|
||||
if len(g[i]) < 10 && i > 1 {
|
||||
g[i-1] = append(g[i-1], g[i]...)
|
||||
}
|
||||
ChampshipData.AutoId++
|
||||
StartId := ChampshipData.AutoId
|
||||
for j := 0; j < len(g[i]); j++ {
|
||||
ChampshipData.GroupInfo[g[i][j]] = ChampshipData.AutoId
|
||||
UserData := ChampshipData.Pool[g[i][j]]
|
||||
ChampshipData.Rank[ChampshipData.AutoId] = append(ChampshipData.Rank[ChampshipData.AutoId], &ChampshipRank{
|
||||
Uid: UserData.Uid,
|
||||
Score: UserData.Score,
|
||||
Time: UserData.Time,
|
||||
})
|
||||
sort.Slice(ChampshipData.Rank[ChampshipData.AutoId], func(i, j int) bool { // 排序 从大到小 数值相等按时间排序
|
||||
if ChampshipData.Rank[ChampshipData.AutoId][i].Score > ChampshipData.Rank[ChampshipData.AutoId][j].Score {
|
||||
return true
|
||||
} else if ChampshipData.Rank[ChampshipData.AutoId][i].Score == ChampshipData.Rank[ChampshipData.AutoId][j].Score {
|
||||
return ChampshipData.Rank[ChampshipData.AutoId][i].Time < ChampshipData.Rank[ChampshipData.AutoId][j].Time
|
||||
}
|
||||
return false
|
||||
})
|
||||
if (j+1)/10 == 0 {
|
||||
ChampshipData.AutoId++
|
||||
}
|
||||
}
|
||||
for j := StartId; j <= ChampshipData.AutoId; j++ {
|
||||
RobotNum := 30 - len(ChampshipData.Rank[j])
|
||||
RobotList := CreateRobotList(i, RobotNum, j)
|
||||
for _, v := range RobotList {
|
||||
ChampshipData.Robot[ChampshipData.RobotId] = v
|
||||
ChampshipData.Rank[ChampshipData.AutoId] = append(ChampshipData.Rank[ChampshipData.AutoId], &ChampshipRank{
|
||||
Uid: ChampshipData.RobotId,
|
||||
Score: v.Score,
|
||||
Time: v.Time,
|
||||
Type: RANK_PLAYER_ROBOT,
|
||||
})
|
||||
sort.Slice(ChampshipData.Rank[ChampshipData.AutoId], func(i, j int) bool { // 排序 从大到小 数值相等按时间排序
|
||||
if ChampshipData.Rank[ChampshipData.AutoId][i].Score > ChampshipData.Rank[ChampshipData.AutoId][j].Score {
|
||||
return true
|
||||
} else if ChampshipData.Rank[ChampshipData.AutoId][i].Score == ChampshipData.Rank[ChampshipData.AutoId][j].Score {
|
||||
return ChampshipData.Rank[ChampshipData.AutoId][i].Time < ChampshipData.Rank[ChampshipData.AutoId][j].Time
|
||||
}
|
||||
return false
|
||||
})
|
||||
ChampshipData.RobotId++
|
||||
}
|
||||
}
|
||||
}
|
||||
T := time.Now()
|
||||
H := T.Hour()
|
||||
if H != 0 {
|
||||
c.mDispatr.AfterFunc(time.Duration(1800), func() {
|
||||
c.Send(&msg.Msg{
|
||||
Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP,
|
||||
})
|
||||
})
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (c *ChampshipMgr) getGroupId(Uid int) int {
|
||||
ChampshipData := c.getData()
|
||||
GroupId, ok := ChampshipData.GroupInfo[Uid]
|
||||
if ok {
|
||||
return GroupId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// 进去榜单
|
||||
func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) {
|
||||
ChampshipData := c.getData()
|
||||
data := m.Extra.(CRank)
|
||||
GroupId := c.getGroupId(data.Uid)
|
||||
if GroupId == 0 {
|
||||
ChampshipData.Pool[data.Uid] = &GroupInfo{
|
||||
Uid: data.Uid,
|
||||
Score: data.Score,
|
||||
Time: GoUtil.Now(),
|
||||
N: data.N,
|
||||
H: data.H,
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
_, ok := ChampshipData.Rank[GroupId]
|
||||
if !ok {
|
||||
ChampshipData.Rank[GroupId] = make([]*ChampshipRank, 0)
|
||||
}
|
||||
ChampshipData.Rank[GroupId] = append(ChampshipData.Rank[GroupId], &ChampshipRank{
|
||||
Uid: data.Uid,
|
||||
Score: data.Score,
|
||||
Time: GoUtil.Now(),
|
||||
})
|
||||
sort.Slice(ChampshipData.Rank[GroupId], func(i, j int) bool { // 排序 从大到小 数值相等按时间排序
|
||||
if ChampshipData.Rank[GroupId][i].Score > ChampshipData.Rank[GroupId][j].Score {
|
||||
return true
|
||||
} else if ChampshipData.Rank[GroupId][i].Score == ChampshipData.Rank[GroupId][j].Score {
|
||||
return ChampshipData.Rank[GroupId][i].Time < ChampshipData.Rank[GroupId][j].Time
|
||||
}
|
||||
return false
|
||||
})
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (c *ChampshipMgr) getData() *ChampshipData {
|
||||
return c.data.(*ChampshipData)
|
||||
}
|
||||
|
||||
func CreateRobotList(G, Num, GroupId int) []*ChampshipRobot {
|
||||
r := make([]*ChampshipRobot, 0)
|
||||
switch G {
|
||||
case 1:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
for i := 0; i <= 6; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
for i := 0; i <= 5; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= Num-15; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 2:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
for i := 0; i <= 6; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
n := Num - 10
|
||||
x := n / 2
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= n-x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 3:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
for i := 0; i <= 6; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
n := Num - 10
|
||||
x := n / 3
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= n-x*2; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 4:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
|
||||
n := Num - 4
|
||||
x := n / 4
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= n-x*3; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 5:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
|
||||
n := Num - 3
|
||||
x := n / 5
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= n-x*4; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 6:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
|
||||
n := Num - 2
|
||||
x := n / 6
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= Num-len(r); i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 7:
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
n := Num - 1
|
||||
x := n / 7
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= Num-len(r); i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
case 8, 9, 10, 11:
|
||||
M10 := GoUtil.RandMap(map[int]int{0: 98, 1: 2})
|
||||
if M10 == 1 {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(35131, 64980)), GroupId))
|
||||
}
|
||||
x := Num / 8
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId))
|
||||
}
|
||||
for i := 0; i <= x; i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId))
|
||||
}
|
||||
for i := 0; i <= Num-len(r); i++ {
|
||||
r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId))
|
||||
}
|
||||
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
func CreateRobot(M float64, GroupId int) *ChampshipRobot {
|
||||
Type := GoUtil.RandMap(map[int]int{1: 25, 2: 50, 3: 25})
|
||||
Score := M / 10
|
||||
if Type == 2 {
|
||||
Score = M / 10 * 0.66
|
||||
}
|
||||
|
||||
return &ChampshipRobot{
|
||||
Max: M,
|
||||
Type: Type,
|
||||
Name: "Lily",
|
||||
Avatar: 1,
|
||||
Face: 1,
|
||||
Level: 1,
|
||||
GroupId: GroupId,
|
||||
Time: GoUtil.Now(),
|
||||
Score: Score,
|
||||
}
|
||||
}
|
||||
@ -27,6 +27,12 @@ func (f *FriendMgr) Init() {
|
||||
}
|
||||
// 注册处理函数
|
||||
f.init()
|
||||
if f.data.(*FirendData).List == nil {
|
||||
f.data.(*FirendData).List = make(map[int][]*msg.Msg)
|
||||
}
|
||||
if f.data.(*FirendData).ClusterMsg == nil {
|
||||
f.data.(*FirendData).ClusterMsg = make(map[int][]*msg.Msg)
|
||||
}
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_APPLY, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HADNLE_TYPE_AGREE, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_DEL, f.sendToPlayer)
|
||||
@ -44,6 +50,7 @@ func (f *FriendMgr) Init() {
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_ARGREE_EX_CARD, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_REFUSE_SELECT_CARD, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_REFUSE_EX_CARD, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_SEND_CARD, f.sendToPlayer)
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -365,7 +365,7 @@ func (ad *GameLogic) GetSimplePlayerByUid(Id int) *PlayerSimpleData {
|
||||
p := new(Player)
|
||||
p.GetSimpleData(Id, player)
|
||||
value, _ := json.Marshal(player)
|
||||
db.RedisSetKey(Idstr, string(value), 0)
|
||||
db.RedisSetKey(Idstr, string(value), 300)
|
||||
} else {
|
||||
err := json.Unmarshal([]byte(Value), player)
|
||||
if err != nil {
|
||||
@ -393,11 +393,14 @@ func (ad *GameLogic) GetResSimplePlayerByUid(Id int) *msg.ResPlayerSimple {
|
||||
}
|
||||
|
||||
return &msg.ResPlayerSimple{
|
||||
Uid: int32(player.Uid),
|
||||
Name: player.Name,
|
||||
Level: int32(player.Level),
|
||||
Avatar: int32(player.Avatar),
|
||||
Face: int32(player.Face),
|
||||
Uid: int32(player.Uid),
|
||||
Name: player.Name,
|
||||
Level: int32(player.Level),
|
||||
Avatar: int32(player.Avatar),
|
||||
Face: int32(player.Face),
|
||||
Decorate: int32(player.Decorate),
|
||||
Login: int32(player.Login),
|
||||
Loginout: int32(player.Loginout),
|
||||
}
|
||||
}
|
||||
|
||||
@ -907,6 +910,10 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqUnlockDecorate", ReqUnlockDecorate)
|
||||
RegisterMsgProcessFunc("ReqSaveSelectDecorate", ReqSaveSelectDecorate)
|
||||
|
||||
// 玩家
|
||||
RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo)
|
||||
RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字
|
||||
|
||||
// 棋盘
|
||||
RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数
|
||||
RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子
|
||||
@ -964,6 +971,12 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqLimitSenceReward", ReqLimitSenceReward)
|
||||
|
||||
// 好友
|
||||
RegisterMsgProcessFunc("ReqFriendList", ReqFriendList) // 请求好友列表
|
||||
RegisterMsgProcessFunc("ReqFriendApply", ReqFriendApply) // 请求申请好友列表
|
||||
RegisterMsgProcessFunc("ReqFriendCardMsg", ReqFriendCardMsg) // 请求好友卡牌申请列表
|
||||
RegisterMsgProcessFunc("ReqFriendTimeLine", ReqFriendTimeLine) // 请求好友时间线
|
||||
RegisterMsgProcessFunc("ReqFriendRecommend", ReqFriendRecommend) // 获取推荐好友
|
||||
|
||||
RegisterMsgProcessFunc("ReqSearchPlayer", ReqSearchPlayer) // 搜索好友
|
||||
RegisterMsgProcessFunc("ReqApplyFriend", ReqApplyFriend) // 申请好友
|
||||
RegisterMsgProcessFunc("ReqAgreeFriend", ReqAgreeFriend) // 同意申请
|
||||
@ -992,7 +1005,8 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqPiggyBankReward", ReqPiggyBankReward) // 小猪存钱罐领取奖励
|
||||
|
||||
// 锦标赛
|
||||
RegisterMsgProcessFunc("ReqChampshipReward", ReqChampshipReward) // 领取锦标赛奖励
|
||||
RegisterMsgProcessFunc("ReqChampshipReward", ReqChampshipReward) // 领取锦标赛奖励
|
||||
RegisterMsgProcessFunc("ReqChampshipRankReward", ReqChampshipRankReward) // 领取锦标赛排行榜奖励
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -58,9 +58,8 @@ func ReqGmCommand(args []interface{}) error {
|
||||
CardMod.ReqTimes = 10
|
||||
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
FriendMod.ApplyCard = make(map[int]*card.CardInfo)
|
||||
FriendMod.ExchangeCard = make(map[int]*card.CardInfo)
|
||||
FriendMod.SelectCard = make(map[int]*card.CardInfo)
|
||||
FriendMod.Card = make(map[string]*card.CardInfo)
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -7,4 +7,6 @@ type PlayerSimpleData struct {
|
||||
Level int
|
||||
Face int
|
||||
Decorate int
|
||||
Login int64
|
||||
Loginout int64
|
||||
}
|
||||
|
||||
@ -266,7 +266,11 @@ func (p *Player) InitPlayer(UserName string) error {
|
||||
log.Debug("load PlayerModData failed:", UserName)
|
||||
return errors.New("load PlayerModData failed")
|
||||
}
|
||||
IsUpdate := modData.InitMod()
|
||||
IsUpdate, err := modData.InitMod()
|
||||
if err != nil {
|
||||
log.Debug("InitMod failed:", err)
|
||||
return err
|
||||
}
|
||||
p.PlayMod.mod_list = modData.ModList
|
||||
p.PlayMod.is_update = IsUpdate
|
||||
|
||||
@ -292,7 +296,7 @@ func (p *Player) InitPlayer(UserName string) error {
|
||||
}()
|
||||
|
||||
p.McronSave = cron.New()
|
||||
_, err := p.McronSave.AddFunc("@every 1m", p.AutoSaveData)
|
||||
_, err = p.McronSave.AddFunc("@every 1m", p.AutoSaveData)
|
||||
if err != nil {
|
||||
log.Debug("AddFunc failed:", err)
|
||||
}
|
||||
@ -523,6 +527,9 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
}
|
||||
p.PushClientRes(ChessMod.BackData())
|
||||
case item.ITEM_TYPE_LIMIED_TIME_EVENT: // 限时事件
|
||||
if p.GetPlayerBaseMod().GetLevel() < 6 { // 等级小于6级不触发
|
||||
continue
|
||||
}
|
||||
EffectList := itemCfg.GetItemEffectList(v.Id)
|
||||
LimitedTimeEventMod := p.PlayMod.getLimitedTimeEventMod()
|
||||
if len(EffectList) < 2 {
|
||||
@ -559,6 +566,15 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
Lable: Label,
|
||||
})
|
||||
}
|
||||
NotifyCard := &msg.ResNotifyCard{}
|
||||
NotifyCard.Card = make(map[int32]int32)
|
||||
for _, v := range ResCard {
|
||||
for _, c := range v.Card {
|
||||
NotifyCard.Card[c]++
|
||||
}
|
||||
}
|
||||
|
||||
p.PushClientRes(NotifyCard)
|
||||
|
||||
if is_update {
|
||||
p.PushClientRes(p.GetPlayerBaseMod().BackAsset())
|
||||
@ -576,8 +592,6 @@ func (p *Player) LoginBackData() {
|
||||
p.PushClientRes(p.PlayMod.mod_list.Card.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.Decorate.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.DailyTask.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.Face.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.Avatar.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.SevenLogin.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.Activity.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.LimitedTimeEvent.ProgressBackData())
|
||||
@ -586,8 +600,9 @@ func (p *Player) LoginBackData() {
|
||||
p.PushClientRes(p.PlayMod.mod_list.PiggyBank.BackData())
|
||||
p.PushClientRes(p.GetPlayerBaseMod().BackAsset())
|
||||
p.PushClientRes(p.GetPlayerBaseMod().BackKv())
|
||||
|
||||
p.PushClientRes(p.PlayMod.mod_list.Champship.BackData())
|
||||
MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(p.M_DwUin))
|
||||
p.PushClientRes(p.PlayMod.mod_list.Champship.BackData(MyRank))
|
||||
BackUserInfo(p)
|
||||
}
|
||||
|
||||
// 获取玩家简单数据
|
||||
@ -626,7 +641,9 @@ func (p *Player) GetSimpleData(Uid int, simple *PlayerSimpleData) error {
|
||||
simple.Avatar = p.PlayMod.getAvatarMod().SetId
|
||||
simple.Face = p.PlayMod.getFaceMod().SetId
|
||||
simple.Level = p.GetPlayerBaseMod().GetLevel()
|
||||
simple.Decorate = p.PlayMod.getDecorateMod().GetAreaId()*1000 + p.PlayMod.getDecorateMod().GetProgress()
|
||||
simple.Decorate = p.PlayMod.getDecorateMod().DecorateNum
|
||||
simple.Login = int64(Base.Data.LoginTime)
|
||||
simple.Loginout = int64(Base.Data.LogoutTime)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -658,7 +675,7 @@ func (p *Player) HandleInChampshipRank() {
|
||||
Extra: RankMsg{
|
||||
Uid: int(p.M_DwUin),
|
||||
Score: Score,
|
||||
RankType: RANK_TYPE_USER,
|
||||
RankType: RANK_TYPE_CHAMPSHIP,
|
||||
},
|
||||
}
|
||||
G_GameLogicPtr.RankMgrSend(m)
|
||||
|
||||
@ -458,11 +458,11 @@ func (p *PlayerLevelUpPackData) SaveDataFromDB(Key interface{}) bool {
|
||||
sqlStruck.DwUin = p.M_Player.M_DwUin
|
||||
sqlStruck.CurBuyedLv = p.Data.CurBuyLv
|
||||
|
||||
if p.IsHaveDataDb {
|
||||
db.FormatAllMemUpdateDb(&sqlStruck, "t_player_lv_Pack", "dwUin")
|
||||
} else {
|
||||
db.FormatAllMemInsertDb(&sqlStruck, "t_player_lv_Pack")
|
||||
}
|
||||
// if p.IsHaveDataDb {
|
||||
// db.FormatAllMemUpdateDb(&sqlStruck, "t_player_lv_Pack", "dwUin")
|
||||
// } else {
|
||||
// db.FormatAllMemInsertDb(&sqlStruck, "t_player_lv_Pack")
|
||||
// }
|
||||
p.IsHaveDataDb = true
|
||||
return true
|
||||
}
|
||||
@ -539,11 +539,11 @@ func (p *PlayerGrowthFundData) SaveDataFromDB(Key interface{}) bool {
|
||||
sqlStruck.DwUin = p.M_Player.M_DwUin
|
||||
sqlStruck.CurBuyLv = p.Data.CurBuyLv
|
||||
sqlStruck.IsBuy = p.Data.IsBuy
|
||||
if p.IsHaveDataDb {
|
||||
db.FormatAllMemUpdateDb(&sqlStruck, "t_player_growth_fund", "dwUin")
|
||||
} else {
|
||||
db.FormatAllMemInsertDb(&sqlStruck, "t_player_growth_fund")
|
||||
}
|
||||
// if p.IsHaveDataDb {
|
||||
// db.FormatAllMemUpdateDb(&sqlStruck, "t_player_growth_fund", "dwUin")
|
||||
// } else {
|
||||
// db.FormatAllMemInsertDb(&sqlStruck, "t_player_growth_fund")
|
||||
// }
|
||||
p.IsHaveDataDb = true
|
||||
return true
|
||||
}
|
||||
@ -1315,11 +1315,11 @@ func (p *PlayerPetData) ClearData() bool {
|
||||
return true
|
||||
}
|
||||
func (p *PlayerPetData) SaveDataFromDB(Key interface{}) bool {
|
||||
if p.IsHaveDataDb {
|
||||
db.FormatAllMemUpdateDb(&p.sqlStruck, "t_player_Pet_Data", "dwUin")
|
||||
} else {
|
||||
db.FormatAllMemInsertDb(&p.sqlStruck, "t_player_Pet_Data")
|
||||
}
|
||||
// if p.IsHaveDataDb {
|
||||
// db.FormatAllMemUpdateDb(&p.sqlStruck, "t_player_Pet_Data", "dwUin")
|
||||
// } else {
|
||||
// db.FormatAllMemInsertDb(&p.sqlStruck, "t_player_Pet_Data")
|
||||
// }
|
||||
p.IsHaveDataDb = true
|
||||
return true
|
||||
}
|
||||
|
||||
@ -180,11 +180,11 @@ func (p *PlayerFriendData) SaveDataFromDB(Key interface{}) bool {
|
||||
sqlStruck.DwUin = p.M_Player.M_DwUin
|
||||
sqlStruck.FriendList = str_concat
|
||||
sqlStruck.TreasureStar = p.sqlStruck.TreasureStar
|
||||
if p.IsHaveDataDb {
|
||||
db.FormatAllMemUpdateDb(&sqlStruck, "t_player_Friend_Data", "dwUin")
|
||||
} else {
|
||||
db.FormatAllMemInsertDb(&sqlStruck, "t_player_Friend_Data")
|
||||
}
|
||||
// if p.IsHaveDataDb {
|
||||
// db.FormatAllMemUpdateDb(&sqlStruck, "t_player_Friend_Data", "dwUin")
|
||||
// } else {
|
||||
// db.FormatAllMemInsertDb(&sqlStruck, "t_player_Friend_Data")
|
||||
// }
|
||||
p.IsHaveDataDb = true
|
||||
return true
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"server/GoUtil"
|
||||
"server/MergeConst"
|
||||
@ -13,6 +14,7 @@ import (
|
||||
proto "server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"sort"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// 处理玩家异步请求
|
||||
@ -42,11 +44,25 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
switch m.Type {
|
||||
case msg.HANDLE_TYPE_DEL, msg.HANDLE_TYPE_APPLY, msg.HADNLE_TYPE_AGREE, msg.HANDLE_TYPE_REQ_CARD:
|
||||
return HandleFriendMsg(p, m)
|
||||
case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
|
||||
p.PushClientRes(
|
||||
&proto.NotifyFriendCard{
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
|
||||
p.PlayMod.save()
|
||||
|
||||
case msg.HANDLE_TYPE_AGREE_CARD: // A收到B同意卡牌
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
CardMod.AddCard(CardInfo.CardId)
|
||||
OtherUid, err := CardMod.DelRequestCard(CardInfo.BUid)
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
if err != nil { // 同意失败,请求已失效
|
||||
msg := &msg.Msg{Type: msg.HANDLE_TYPE_AGREE_CARD_FAIL, From: CardInfo.AUid, End: CardInfo.EndTime}
|
||||
FriendMgrSend(msg)
|
||||
@ -57,6 +73,11 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
FriendMgrSend(msg)
|
||||
}
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(
|
||||
&proto.NotifyFriendCard{
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
@ -67,29 +88,35 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
case msg.HANDLE_TYPE_EX_CARD: // B收到A置换卡牌
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
if CardInfo.Type == card.TYPE_GIVE { // A卡牌白送
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
CardMod.AddCard(CardInfo.CardId)
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
} else {
|
||||
FriendMod.SetCardExchange(CardInfo)
|
||||
}
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(
|
||||
&proto.NotifyFriendCard{
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
FriendCardBackData(p)
|
||||
case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
FriendMod.CardSelectExchange(CardInfo)
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(
|
||||
&proto.NotifyFriendCard{
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
FriendCardBackData(p)
|
||||
case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
CardMod.AddCard(CardInfo.CardId)
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.DelCardExchange(CardInfo.AUid)
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
p.PushClientRes(
|
||||
&proto.NotifyFriendCard{
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
case msg.HANDLE_TYPE_REFUSE_SELECT_CARD: // A收到B拒绝置换卡牌
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
@ -103,7 +130,7 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
CardMod.AddCard(CardInfo.ExId)
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.DelCardExchange(CardInfo.AUid)
|
||||
FriendMod.DelCardInfo(CardInfo.Id)
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
case msg.HANDLE_TYPE_MAIL: // 邮件操作
|
||||
@ -142,34 +169,35 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error {
|
||||
FriendMod.HandleMsg(m)
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
switch m.Type {
|
||||
case msg.HANDLE_TYPE_RANK_NOTIFY:
|
||||
p.PushClientRes(p.PlayMod.getChampshipMod().BackData())
|
||||
case msg.HANDLE_TYPE_APPLY:
|
||||
case msg.HANDLE_TYPE_RANK_NOTIFY: // 排行榜更新
|
||||
MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(p.M_DwUin))
|
||||
p.PushClientRes(p.PlayMod.getChampshipMod().BackData(MyRank))
|
||||
case msg.HANDLE_TYPE_APPLY: // 好友申请
|
||||
FriendMod.AddFriendApply(m.From)
|
||||
p.PushClientRes(&proto.ResFriendApplyNotify{
|
||||
Player: PlayerSimpleData,
|
||||
Type: friend.FRIEND_NOTIFY_APPLY,
|
||||
})
|
||||
case msg.HADNLE_TYPE_AGREE:
|
||||
case msg.HADNLE_TYPE_AGREE: // 同意好友申请
|
||||
FriendMod.AgreeApply(m.From)
|
||||
p.PushClientRes(&proto.ResFriendApplyNotify{
|
||||
Player: PlayerSimpleData,
|
||||
Type: friend.FRIEND_NOTIFY_APPLY,
|
||||
})
|
||||
case msg.HANDLE_TYPE_DEL:
|
||||
case msg.HANDLE_TYPE_DEL: // 删除好友
|
||||
FriendMod.DelFriend(m.From)
|
||||
p.PushClientRes(&proto.ResFriendApplyNotify{
|
||||
Player: PlayerSimpleData,
|
||||
Type: friend.FRIEND_NOTIFY_APPLY,
|
||||
})
|
||||
case msg.HANDLE_TYPE_REFUSE:
|
||||
case msg.HANDLE_TYPE_REFUSE: // 拒绝好友申请
|
||||
p.PushClientRes(&proto.ResFriendApplyNotify{
|
||||
Player: PlayerSimpleData,
|
||||
Type: friend.FRIEND_NOTIFY_REFUSE,
|
||||
})
|
||||
case msg.HANDLE_TYPE_REQ_CARD:
|
||||
case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
FriendMod.CardGiveApply(CardInfo)
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -258,29 +286,9 @@ func FriendLogBackData(p *Player) {
|
||||
func FriendCardBackData(p *Player) {
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
var msgList []*proto.ResFriendCard
|
||||
for _, v := range FriendMod.ApplyCard {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(v.BUid)
|
||||
msgList = append(msgList, &proto.ResFriendCard{
|
||||
Uid: int32(v.AUid),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
Level: int32(ps.Level),
|
||||
CardId: int32(v.CardId),
|
||||
Time: int32(v.EndTime),
|
||||
})
|
||||
}
|
||||
for _, v := range FriendMod.ExchangeCard {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(v.BUid)
|
||||
msgList = append(msgList, &proto.ResFriendCard{
|
||||
Uid: int32(v.AUid),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
Level: int32(ps.Level),
|
||||
CardId: int32(v.CardId),
|
||||
Time: int32(v.EndTime),
|
||||
})
|
||||
for _, v := range FriendMod.Card {
|
||||
m := GetCardInfoMsg(v)
|
||||
msgList = append(msgList, m)
|
||||
}
|
||||
p.PushClientRes(&proto.ResFriendCardMsg{
|
||||
MsgList: msgList,
|
||||
@ -324,14 +332,73 @@ func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlCha
|
||||
return Order, nil
|
||||
}
|
||||
|
||||
// func PlayerFriendRecommend(p *Player) {
|
||||
// FriendMod := p.PlayMod.getFriendMod()
|
||||
// n := 0
|
||||
// if len(FriendMod.FriendList) < 10 {
|
||||
// n = 3
|
||||
// } else {
|
||||
// n = int(3 - float64(len(FriendMod.FriendList))*0.1)
|
||||
// }
|
||||
func BackUserInfo(p *Player) {
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
FaceMod := p.PlayMod.getFaceMod()
|
||||
AvatarMod := p.PlayMod.getAvatarMod()
|
||||
DecorateMod := p.PlayMod.getDecorateMod()
|
||||
PlayerBaseMod := p.GetPlayerBaseMod()
|
||||
p.PushClientRes(&proto.UserInfo{
|
||||
Uid: int32(p.M_DwUin),
|
||||
Nickname: BaseMod.NickName,
|
||||
Avatar: int32(AvatarMod.SetId),
|
||||
Face: int32(FaceMod.SetId),
|
||||
DecorateCnt: int32(DecorateMod.DecorateNum),
|
||||
AvatarList: AvatarMod.BackData(),
|
||||
FaceList: FaceMod.BackData(),
|
||||
Login: PlayerBaseMod.Data.LoginTime,
|
||||
})
|
||||
}
|
||||
|
||||
// UserList := G_GameLogicPtr.RankMgr.getRank(RANK_TYPE_USER)
|
||||
// }
|
||||
func UpdateUserInfo(p *Player) {
|
||||
simple := &PlayerSimpleData{}
|
||||
Base := p.GetPlayerBaseMod()
|
||||
simple.Name = p.GetPlayerBaseMod().GetName()
|
||||
simple.Avatar = p.PlayMod.getAvatarMod().SetId
|
||||
simple.Face = p.PlayMod.getFaceMod().SetId
|
||||
simple.Level = p.GetPlayerBaseMod().GetLevel()
|
||||
simple.Decorate = p.PlayMod.getDecorateMod().DecorateNum
|
||||
simple.Login = int64(Base.Data.LoginTime)
|
||||
simple.Loginout = int64(Base.Data.LogoutTime)
|
||||
value, _ := json.Marshal(simple)
|
||||
IdStr := strconv.Itoa(int(p.M_DwUin))
|
||||
db.RedisSetKey(IdStr, string(value), 0)
|
||||
}
|
||||
|
||||
func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard {
|
||||
Uid := 0
|
||||
if CardInfo.Type == card.TYPE_CARD_SEND {
|
||||
Uid = CardInfo.BUid
|
||||
}
|
||||
|
||||
if CardInfo.Type == card.TYPE_CARD_GIVE {
|
||||
if CardInfo.Status == card.STATUS_CARD_GIVE_1 {
|
||||
Uid = CardInfo.BUid
|
||||
} else {
|
||||
Uid = CardInfo.AUid
|
||||
}
|
||||
}
|
||||
|
||||
if CardInfo.Type == card.TYPE_CARD_EX {
|
||||
if CardInfo.Status == card.STATUS_CARD_EX_2 {
|
||||
Uid = CardInfo.AUid
|
||||
} else {
|
||||
Uid = CardInfo.BUid
|
||||
}
|
||||
}
|
||||
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(Uid)
|
||||
return &proto.ResFriendCard{
|
||||
Uid: int32(Uid),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
Level: int32(ps.Level),
|
||||
CardId: int32(CardInfo.CardId),
|
||||
ExCardId: int32(CardInfo.ExId),
|
||||
Time: int32(CardInfo.StartTime),
|
||||
Type: int32(CardInfo.Type),
|
||||
Status: int32(CardInfo.Status),
|
||||
Id: CardInfo.Id,
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,14 +94,15 @@ func (p *PlayerModData) Reconnect(b bool) []byte {
|
||||
return []byte{}
|
||||
}
|
||||
|
||||
func (p *PlayerModData) InitMod() bool {
|
||||
func (p *PlayerModData) InitMod() (bool, error) {
|
||||
playerModList := PlayerModList{}
|
||||
buf := bytes.NewBuffer(p.Data.ModData)
|
||||
decoder := gob.NewDecoder(buf)
|
||||
err := decoder.Decode(&playerModList)
|
||||
// err := json.Unmarshal([]byte(p.Data.ModData), &playerModList)
|
||||
if err != nil {
|
||||
fmt.Printf("playmod get data failed, err:%v\n", err)
|
||||
log.Debug("playmod get data failed, err:%v\n", err)
|
||||
return false, fmt.Errorf("playmod get data failed, err:%v\n", err)
|
||||
}
|
||||
p.ModList = playerModList
|
||||
is_update := false
|
||||
@ -139,7 +140,7 @@ func (p *PlayerModData) InitMod() bool {
|
||||
p.ModList.Charge.InitData()
|
||||
p.ModList.Endless.InitData()
|
||||
|
||||
return is_update
|
||||
return is_update, nil
|
||||
}
|
||||
|
||||
type PlayerMod struct {
|
||||
|
||||
@ -854,11 +854,11 @@ func (p *PlayerAdPackData) SaveDataFromDB(Key interface{}) bool {
|
||||
p.SqlStruct.RewardInfo = strings.Join(p.Data.RewardInfo, ";")
|
||||
p.SqlStruct.DwUin = p.M_Player.M_DwUin
|
||||
p.SqlStruct.Score = p.Data.Score
|
||||
if p.IsHaveDataDb {
|
||||
db.FormatAllMemUpdateDb(&p.SqlStruct, "t_player_AD_Pack", "dwUin")
|
||||
} else {
|
||||
db.FormatAllMemInsertDb(&p.SqlStruct, "t_player_AD_Pack")
|
||||
}
|
||||
// if p.IsHaveDataDb {
|
||||
// db.FormatAllMemUpdateDb(&p.SqlStruct, "t_player_AD_Pack", "dwUin")
|
||||
// } else {
|
||||
// db.FormatAllMemInsertDb(&p.SqlStruct, "t_player_AD_Pack")
|
||||
// }
|
||||
p.IsHaveDataDb = true
|
||||
return true
|
||||
}
|
||||
|
||||
@ -12,8 +12,9 @@ type RankMgr struct {
|
||||
}
|
||||
|
||||
type RankData struct {
|
||||
List map[int][]*Rank // 玩家排行榜
|
||||
BackData map[int][]*Rank // 玩家排行榜 备份
|
||||
List map[int][]*Rank // 玩家排行榜
|
||||
Champship map[int][]*Rank // 锦标赛排行榜
|
||||
BackData map[int][]*Rank // 玩家排行榜 备份
|
||||
}
|
||||
|
||||
const (
|
||||
@ -68,6 +69,35 @@ func (r *RankMgr) getRank(RankType int) []*Rank {
|
||||
return []*Rank{}
|
||||
}
|
||||
|
||||
func (r *RankMgr) getLastChampshipRank() []*Rank {
|
||||
if v, ok := r.getData().BackData[RANK_TYPE_CHAMPSHIP]; ok {
|
||||
return v
|
||||
}
|
||||
return []*Rank{}
|
||||
}
|
||||
|
||||
func (r *RankMgr) getMyRank(Uid, RankType int) int {
|
||||
if d, ok := r.getData().List[RankType]; ok {
|
||||
for k, v := range d {
|
||||
if v.Uid == Uid {
|
||||
return k + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (r *RankMgr) getLastChampship(Uid int) int {
|
||||
if d, ok := r.getData().List[RANK_TYPE_CHAMPSHIP]; ok {
|
||||
for k, v := range d {
|
||||
if v.Uid == Uid {
|
||||
return k + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// 设置榜单数据
|
||||
func (r *RankMgr) setRank(RankType int, data []*Rank) {
|
||||
r.getData().List[RankType] = data
|
||||
|
||||
@ -2026,12 +2026,12 @@ func ReqRewardOrder(args []interface{}) error {
|
||||
|
||||
// 限时事件增加进度
|
||||
LimitedTimeEventMod.AddProgress(player.GetPlayerBaseMod().GetLevel())
|
||||
|
||||
MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(player.M_DwUin))
|
||||
player.HandleInChampshipRank()
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(PiggyBankMod.BackData())
|
||||
player.PushClientRes(OrderMod.BackData())
|
||||
player.PushClientRes(ChampshipMod.BackData())
|
||||
player.PushClientRes(ChampshipMod.BackData(MyRank))
|
||||
player.PushClientRes(LimitedTimeEventMod.BackData())
|
||||
return nil
|
||||
}
|
||||
@ -2062,10 +2062,6 @@ func ReqDecorate(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
// if limitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_SENCE_DASH) { // 场景冲刺奖励
|
||||
// _, Items := limitedTimeEventMod.GetSceneDashReward(DecorateMod.GetAreaId(), DecorateMod.GetProgress())
|
||||
// AddItem = item.Merge(AddItem, Items)
|
||||
// }
|
||||
err = player.HandleItem(AddItem, "DecorateAdd") // 增加道具
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResDecorate{
|
||||
@ -2102,6 +2098,8 @@ func ReqDecorate(args []interface{}) error {
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.HandleInUserRank()
|
||||
BackUserInfo(player)
|
||||
UpdateUserInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -2500,10 +2498,11 @@ func ReqSetAvatar(args []interface{}) error {
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(avatarMod.BackData())
|
||||
player.PushClientRes(&msg.ResSetAvatar{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
BackUserInfo(player)
|
||||
UpdateUserInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -2522,10 +2521,11 @@ func ReqSetFace(args []interface{}) error {
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(FaceMod.BackData())
|
||||
player.PushClientRes(&msg.ResSetFace{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
BackUserInfo(player)
|
||||
UpdateUserInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -2826,7 +2826,6 @@ func ReqCardGive(args []interface{}) error {
|
||||
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
EndTime := GoUtil.Now() + 86400
|
||||
Id := CardMod.CreateRequestCardId(int(player.M_DwUin), int(req.CardId), EndTime)
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
|
||||
err := CardMod.RequestCard()
|
||||
@ -2853,6 +2852,7 @@ func ReqCardGive(args []interface{}) error {
|
||||
})
|
||||
return fmt.Errorf("card id empty")
|
||||
}
|
||||
Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId))
|
||||
for _, v := range req.Uid {
|
||||
Uid := int(v)
|
||||
if !FriendMod.CheckFriend(Uid) {
|
||||
@ -2863,12 +2863,14 @@ func ReqCardGive(args []interface{}) error {
|
||||
return fmt.Errorf("not friend")
|
||||
}
|
||||
CardInfo := &card.CardInfo{
|
||||
Id: Id,
|
||||
AUid: int(player.M_DwUin),
|
||||
BUid: Uid,
|
||||
CardId: CardId,
|
||||
EndTime: EndTime,
|
||||
Type: card.TYPE_REQ,
|
||||
Id: Id,
|
||||
AUid: int(player.M_DwUin),
|
||||
BUid: Uid,
|
||||
CardId: CardId,
|
||||
StartTime: GoUtil.Now(),
|
||||
EndTime: EndTime,
|
||||
Type: card.TYPE_CARD_GIVE,
|
||||
Status: card.STATUS_CARD_GIVE_1,
|
||||
}
|
||||
err = CardMod.AddRequestCard(CardInfo) // 添加请求卡牌
|
||||
if err != nil {
|
||||
@ -2888,6 +2890,7 @@ func ReqCardGive(args []interface{}) error {
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
}
|
||||
|
||||
player.PushClientRes(&msg.ResCardGive{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
@ -2902,7 +2905,7 @@ func ReqAgreeCardGive(args []interface{}) error {
|
||||
req := &msg.ReqAgreeCardGive{}
|
||||
proto.Unmarshal(buf, req)
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetCardGiveId(int(req.Uid))
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil {
|
||||
player.SendErrClienRes(&msg.ResAgreeCardGive{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -2919,6 +2922,8 @@ func ReqAgreeCardGive(args []interface{}) error {
|
||||
})
|
||||
return fmt.Errorf("card not exist")
|
||||
}
|
||||
CardInfo.Status = card.STATUS_CARD_GIVE_2
|
||||
CardInfo.EndTime = 0
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_AGREE_CARD,
|
||||
From: int(player.M_DwUin),
|
||||
@ -2927,6 +2932,9 @@ func ReqAgreeCardGive(args []interface{}) error {
|
||||
Extra: CardInfo,
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): -1},
|
||||
})
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResAgreeCardGive{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
@ -2941,7 +2949,7 @@ func ReqRefuseCardGive(args []interface{}) error {
|
||||
req := &msg.ReqRefuseCardGive{}
|
||||
proto.Unmarshal(buf, req)
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.RefuseCardGive(int(req.Uid))
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil {
|
||||
player.SendErrClienRes(&msg.ResRefuseCardGive{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -2949,6 +2957,7 @@ func ReqRefuseCardGive(args []interface{}) error {
|
||||
})
|
||||
return fmt.Errorf("card apply not exist")
|
||||
}
|
||||
FriendMod.DelCardInfo(req.Id)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResRefuseCardGive{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
@ -2964,6 +2973,42 @@ func ReqRefuseCardGive(args []interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 赠送卡牌
|
||||
func ReqCardSend(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqCardExchange{}
|
||||
proto.Unmarshal(buf, req)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
CardId := int(req.CardId)
|
||||
CardInfo, err := CardMod.SendCard(int(player.M_DwUin), int(req.Uid), CardId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResCardExchange{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_SEND_CARD,
|
||||
From: int(player.M_DwUin),
|
||||
To: int(req.Uid),
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + 86400,
|
||||
Extra: CardInfo,
|
||||
}
|
||||
setRedisLock(CardInfo.Id, "", time.Second*86400)
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResCardExchange{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): -1},
|
||||
})
|
||||
player.PlayMod.save()
|
||||
FriendMgrSend(m)
|
||||
return nil
|
||||
}
|
||||
|
||||
// 卡牌交换
|
||||
func ReqCardExchange(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
@ -2971,7 +3016,7 @@ func ReqCardExchange(args []interface{}) error {
|
||||
proto.Unmarshal(buf, req)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
CardId := int(req.CardId)
|
||||
CardInfo, err := CardMod.ExchangeCard(int(player.M_DwUin), int(req.Uid), CardId, int(req.Type))
|
||||
CardInfo, err := CardMod.ExchangeCard(int(player.M_DwUin), int(req.Uid), CardId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResCardExchange{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -2992,6 +3037,9 @@ func ReqCardExchange(args []interface{}) error {
|
||||
player.PushClientRes(&msg.ResCardExchange{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): -1},
|
||||
})
|
||||
player.PlayMod.save()
|
||||
FriendMgrSend(m)
|
||||
return nil
|
||||
@ -3005,7 +3053,7 @@ func ReqSelectCardExchange(args []interface{}) error {
|
||||
CardId := int(req.CardId)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetCardExchange(int(req.Uid))
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() {
|
||||
player.SendErrClienRes(&msg.ResSelectCardExchange{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -3021,7 +3069,8 @@ func ReqSelectCardExchange(args []interface{}) error {
|
||||
return fmt.Errorf("card already selected")
|
||||
}
|
||||
CardInfo.ExId = CardId
|
||||
FriendMod.SetCardExchange(CardInfo)
|
||||
CardInfo.Status = card.STATUS_CARD_EX_2
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
err := CardMod.SubCard(CardId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSelectCardExchange{
|
||||
@ -3035,25 +3084,27 @@ func ReqSelectCardExchange(args []interface{}) error {
|
||||
player.PushClientRes(&msg.ResSelectCardExchange{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardId): -1},
|
||||
})
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_SELECT_EX_CARD,
|
||||
From: int(player.M_DwUin),
|
||||
To: int(req.Uid),
|
||||
To: CardInfo.AUid,
|
||||
Extra: CardInfo,
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
return nil
|
||||
}
|
||||
|
||||
// 同意卡牌交换
|
||||
func ReqAgreeCardExchange(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqSelectCardExchange{}
|
||||
proto.Unmarshal(buf, req)
|
||||
Uid := int(req.Uid)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetSelectInfo(Uid)
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
|
||||
if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() {
|
||||
player.SendErrClienRes(&msg.ResAgreeCardExchange{
|
||||
@ -3064,7 +3115,9 @@ func ReqAgreeCardExchange(args []interface{}) error {
|
||||
}
|
||||
CardMod.AddCard(CardInfo.ExId)
|
||||
CardMod.DelExCard(CardInfo)
|
||||
FriendMod.DelSelectInfo(CardInfo)
|
||||
FriendMod.DelCardInfo(req.Id)
|
||||
CardInfo.Status = card.STATUS_CARD_EX_3
|
||||
CardInfo.EndTime = 0
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResAgreeCardExchange{
|
||||
@ -3073,20 +3126,23 @@ func ReqAgreeCardExchange(args []interface{}) error {
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_ARGREE_EX_CARD,
|
||||
From: int(player.M_DwUin),
|
||||
To: Uid,
|
||||
To: CardInfo.BUid,
|
||||
Extra: CardInfo,
|
||||
}
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.ExId): 1},
|
||||
})
|
||||
FriendMgrSend(m)
|
||||
return nil
|
||||
}
|
||||
|
||||
// 拒绝选择卡牌
|
||||
func ReqRefuseCardSelect(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqRefuseCardSelect{}
|
||||
proto.Unmarshal(buf, req)
|
||||
Uid := int(req.Uid)
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetCardExchange(Uid)
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil {
|
||||
player.SendErrClienRes(&msg.ResRefuseCardSelect{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -3094,11 +3150,11 @@ func ReqRefuseCardSelect(args []interface{}) error {
|
||||
})
|
||||
return fmt.Errorf("exchange time out")
|
||||
}
|
||||
FriendMod.DelCardExchange(Uid)
|
||||
FriendMod.DelCardInfo(req.Id)
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_REFUSE_SELECT_CARD,
|
||||
From: int(player.M_DwUin),
|
||||
To: Uid,
|
||||
To: CardInfo.AUid,
|
||||
Extra: CardInfo,
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
@ -3109,14 +3165,14 @@ func ReqRefuseCardSelect(args []interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 拒绝进行交换
|
||||
func ReqRefuseCardExchange(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqRefuseCardExchange{}
|
||||
proto.Unmarshal(buf, req)
|
||||
Uid := int(req.Uid)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetSelectInfo(Uid)
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() {
|
||||
player.SendErrClienRes(&msg.ResRefuseCardExchange{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -3124,7 +3180,8 @@ func ReqRefuseCardExchange(args []interface{}) error {
|
||||
})
|
||||
return fmt.Errorf("exchange time out")
|
||||
}
|
||||
FriendMod.DelSelectInfo(CardInfo)
|
||||
FriendMod.DelCardInfo(req.Id)
|
||||
|
||||
CardMod.AddCard(CardInfo.CardId)
|
||||
CardMod.DelExCard(CardInfo)
|
||||
player.PlayMod.save()
|
||||
@ -3135,13 +3192,49 @@ func ReqRefuseCardExchange(args []interface{}) error {
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_REFUSE_EX_CARD,
|
||||
From: int(player.M_DwUin),
|
||||
To: Uid,
|
||||
To: CardInfo.BUid,
|
||||
Extra: CardInfo,
|
||||
}
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): 1},
|
||||
})
|
||||
FriendMgrSend(m)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqGetFriendCard(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqRefuseCardExchange{}
|
||||
proto.Unmarshal(buf, req)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil || CardInfo.EndTime != 0 {
|
||||
player.SendErrClienRes(&msg.ResRefuseCardExchange{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: "exchange time out",
|
||||
})
|
||||
return fmt.Errorf("exchange time out")
|
||||
}
|
||||
CardId := 0
|
||||
if CardInfo.Type == card.TYPE_CARD_EX {
|
||||
CardId = CardInfo.ExId
|
||||
} else {
|
||||
CardId = CardInfo.CardId
|
||||
}
|
||||
FriendMod.DelCardInfo(req.Id)
|
||||
CardMod.AddCard(CardId)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResRefuseCardExchange{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardId): 1},
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// 请求玩家榜单
|
||||
func ReqRank(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
@ -3164,6 +3257,24 @@ func ReqRank(args []interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 请求昨日竞标赛榜单
|
||||
func ReqChampshipRank(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqRank{}
|
||||
proto.Unmarshal(buf, req)
|
||||
rankList := G_GameLogicPtr.RankMgr.getLastChampshipRank()
|
||||
res := make(map[int32]*msg.ResPlayerSimple)
|
||||
for k, rank := range rankList {
|
||||
res[int32(k+1)] = G_GameLogicPtr.GetResSimplePlayerByUid(rank.Uid)
|
||||
}
|
||||
|
||||
player.PushClientRes(&msg.ResRank{
|
||||
Type: req.Type,
|
||||
RankList: res,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// 请求邮件列表
|
||||
func ReqMailList(args []interface{}) error {
|
||||
_, player, _ := ParseArgs(args)
|
||||
@ -3431,8 +3542,9 @@ func ReqChampshipReward(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(player.M_DwUin))
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChampshipMod.BackData())
|
||||
player.PushClientRes(ChampshipMod.BackData(MyRank))
|
||||
player.PushClientRes(&msg.ResChampshipReward{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
@ -3541,3 +3653,52 @@ func ReqFriendTimeLine(args []interface{}) error {
|
||||
FriendLogBackData(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqChampshipRankReward(args []interface{}) error {
|
||||
_, player, _ := ParseArgs(args)
|
||||
MyRank := G_GameLogicPtr.RankMgr.getLastChampship(int(player.M_DwUin))
|
||||
ChampshipMod := player.PlayMod.getChampshipMod()
|
||||
itemList, err := ChampshipMod.GetRankReward(MyRank)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResChampshipRankReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(itemList, "ChampshipRankReward")
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResChampshipRankReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChampshipMod.BackData(MyRank))
|
||||
player.PushClientRes(&msg.ResChampshipRankReward{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqSetName(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqSetName{}
|
||||
proto.Unmarshal(buf, req)
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
BaseMod.SetNickName(req.Name)
|
||||
player.PushClientRes(&msg.ResSetName{
|
||||
ResultCode: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PlayMod.save()
|
||||
BackUserInfo(player)
|
||||
UpdateUserInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqUserInfo(args []interface{}) error {
|
||||
_, player, _ := ParseArgs(args)
|
||||
BackUserInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -12,11 +12,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
FRIEND_MGR_KEY = "FRIEND_MGR"
|
||||
RANK_MGR_KEY = "RANK_MGR"
|
||||
MAIL_MGR_KEY = "MAIL_MGR"
|
||||
|
||||
PER_SAVE_TIME = 1
|
||||
FRIEND_MGR_KEY = "FRIEND_MGR"
|
||||
RANK_MGR_KEY = "RANK_MGR"
|
||||
MAIL_MGR_KEY = "MAIL_MGR"
|
||||
CHAMPSHIP_MGR_KEY = "CHAMPSHIP_MGR"
|
||||
PER_SAVE_TIME = 1
|
||||
)
|
||||
|
||||
type ServerMod struct {
|
||||
|
||||
@ -22,7 +22,7 @@ func (a *AvatarMod) InitData() {
|
||||
for _, v := range InitId {
|
||||
a.List[v] = Avatar{}
|
||||
}
|
||||
a.SetId = InitId[0]
|
||||
a.SetId = 1
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ func (a *AvatarMod) SetAvatar(Id int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *AvatarMod) BackData() *msg.ResAvatarInfo {
|
||||
func (a *AvatarMod) BackData() []*msg.AvatarInfo {
|
||||
l := make([]*msg.AvatarInfo, 0)
|
||||
for k, v := range a.List {
|
||||
l = append(l, &msg.AvatarInfo{
|
||||
@ -43,8 +43,5 @@ func (a *AvatarMod) BackData() *msg.ResAvatarInfo {
|
||||
})
|
||||
}
|
||||
// 返回数据
|
||||
return &msg.ResAvatarInfo{
|
||||
AvatarList: l,
|
||||
SetId: int32(a.SetId),
|
||||
}
|
||||
return l
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ type Base struct {
|
||||
EnergyMul int
|
||||
IsFirstBuy bool
|
||||
EnergyBuy int
|
||||
NickName string
|
||||
}
|
||||
|
||||
func (b *Base) InitData() {
|
||||
@ -30,6 +31,10 @@ func (b *Base) SetEnergyMul(mul int) {
|
||||
b.EnergyMul = mul
|
||||
}
|
||||
|
||||
func (b *Base) SetNickName(Name string) {
|
||||
b.NickName = Name
|
||||
}
|
||||
|
||||
func (b *Base) GetIsFirstBuy() bool {
|
||||
return b.IsFirstBuy
|
||||
}
|
||||
|
||||
@ -22,22 +22,40 @@ type CardMod struct {
|
||||
ExCard map[int]*CardInfo // 交换卡牌
|
||||
}
|
||||
|
||||
type CardInfo struct {
|
||||
Id string
|
||||
AUid int
|
||||
BUid int
|
||||
CardId int
|
||||
ExId int
|
||||
Type int
|
||||
EndTime int64
|
||||
}
|
||||
const (
|
||||
MASTER_CARD_NORMAL = 6
|
||||
MASTER_CARD_GOLD = 7
|
||||
)
|
||||
|
||||
const (
|
||||
TYPE_REQ = 0
|
||||
TYPE_GIVE = 1
|
||||
TYPE_EXCHANGE = 2
|
||||
TYPE_CARD_GIVE = 1 // 请求卡牌
|
||||
TYPE_CARD_SEND = 2 // 赠送卡牌
|
||||
TYPE_CARD_EX = 3 // 卡牌交换
|
||||
)
|
||||
|
||||
const (
|
||||
STATUS_CARD_GIVE_1 = 1 // 请求中
|
||||
STATUS_CARD_GIVE_2 = 2 // 对方同意,等待领取
|
||||
|
||||
STATUS_CARD_SEND_1 = 1 // 赠送成功 等待领取
|
||||
|
||||
STATUS_CARD_EX_1 = 1 // 发起交换
|
||||
STATUS_CARD_EX_2 = 2 // 选择卡牌交换
|
||||
STATUS_CARD_EX_3 = 3 // 交换成功,等待领取
|
||||
)
|
||||
|
||||
type CardInfo struct {
|
||||
Id string
|
||||
AUid int
|
||||
BUid int
|
||||
CardId int
|
||||
ExId int
|
||||
Type int
|
||||
EndTime int64
|
||||
StartTime int64
|
||||
Status int
|
||||
}
|
||||
|
||||
func (c *CardMod) InitData() {
|
||||
// 初始化数据
|
||||
if c.CardList == nil {
|
||||
@ -242,11 +260,6 @@ func (c *CardMod) RequestCard() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 生成索要卡牌唯一id
|
||||
func (c *CardMod) CreateRequestCardId(Uid, CardId int, EndTime int64) string {
|
||||
return fmt.Sprint(Uid, "_", CardId, "_", EndTime)
|
||||
}
|
||||
|
||||
// 增加请求卡牌记录
|
||||
func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error {
|
||||
_, ok := c.ReqFriend[CardInfo.BUid]
|
||||
@ -278,9 +291,9 @@ func (c *CardMod) AddExTimes() {
|
||||
}
|
||||
|
||||
// 交换卡牌
|
||||
func (c *CardMod) ExchangeCard(From, To, CardId, Type int) (*CardInfo, error) {
|
||||
func (c *CardMod) ExchangeCard(From, To, CardId int) (*CardInfo, error) {
|
||||
Now := GoUtil.Now()
|
||||
Id := fmt.Sprintf("%d_%d_%d_%d", From, To, CardId, Now)
|
||||
Id := GoUtil.CreateCardId(From, To, CardId)
|
||||
err := c.SubCard(CardId)
|
||||
if c.ExTimes <= 0 {
|
||||
return nil, fmt.Errorf("ExchangeCard times not enough")
|
||||
@ -293,9 +306,37 @@ func (c *CardMod) ExchangeCard(From, To, CardId, Type int) (*CardInfo, error) {
|
||||
if ok {
|
||||
return nil, fmt.Errorf("ExchangeCard already exchange")
|
||||
}
|
||||
CardInfo := &CardInfo{Id: Id, AUid: From, BUid: To, CardId: CardId, Type: Type, EndTime: Now + 86400}
|
||||
if Type == TYPE_EXCHANGE {
|
||||
c.ExCard[To] = CardInfo
|
||||
CardInfo := &CardInfo{
|
||||
Id: Id,
|
||||
AUid: From,
|
||||
BUid: To,
|
||||
CardId: CardId,
|
||||
Type: TYPE_CARD_EX,
|
||||
EndTime: Now + 86400,
|
||||
}
|
||||
c.ExCard[To] = CardInfo
|
||||
return CardInfo, nil
|
||||
}
|
||||
|
||||
func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) {
|
||||
Now := GoUtil.Now()
|
||||
Id := GoUtil.CreateCardId(From, To, CardId)
|
||||
err := c.SubCard(CardId)
|
||||
if c.ExTimes <= 0 {
|
||||
return nil, fmt.Errorf("SendCard times not enough")
|
||||
}
|
||||
c.ExTimes--
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
CardInfo := &CardInfo{
|
||||
Id: Id,
|
||||
AUid: From,
|
||||
BUid: To,
|
||||
CardId: CardId,
|
||||
Type: TYPE_CARD_EX,
|
||||
StartTime: Now,
|
||||
Status: STATUS_CARD_SEND_1,
|
||||
}
|
||||
return CardInfo, nil
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package champship
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"server/GoUtil"
|
||||
champshipCfg "server/conf/champship"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
@ -11,7 +12,7 @@ import (
|
||||
type ChampshipMod struct {
|
||||
Score int
|
||||
Reward int
|
||||
RankReward int64
|
||||
RankReward bool
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) InitData() {}
|
||||
@ -19,12 +20,21 @@ func (c *ChampshipMod) InitData() {}
|
||||
func (c *ChampshipMod) ZeroUpdate() {
|
||||
c.Score = 0
|
||||
c.Reward = 0
|
||||
c.RankReward = false
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) GetScore() int {
|
||||
return c.Score
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) GetRankReward(Rank int) ([]*item.Item, error) {
|
||||
if c.RankReward {
|
||||
return nil, fmt.Errorf("rank reward has been received")
|
||||
}
|
||||
c.RankReward = true
|
||||
return champshipCfg.GetRankReward(Rank), nil
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) AddScore(Chess []int) {
|
||||
score := 0
|
||||
for _, v := range Chess {
|
||||
@ -41,11 +51,12 @@ func (c *ChampshipMod) GetReward() []*item.Item {
|
||||
return Items
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) BackData() *msg.ResChampship {
|
||||
func (c *ChampshipMod) BackData(MyRank int) *msg.ResChampship {
|
||||
return &msg.ResChampship{
|
||||
Score: int32(c.Score),
|
||||
Reward: int32(c.Reward),
|
||||
EndTime: int32(GoUtil.ZeroTimestamp() + 86400), // 零点结束
|
||||
Period: int32(GoUtil.GetServerOpenDay()),
|
||||
Rank: int32(MyRank),
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,9 +9,10 @@ import (
|
||||
)
|
||||
|
||||
type Decorate struct {
|
||||
AreaId int
|
||||
FinishList map[int]struct{}
|
||||
Progress int
|
||||
AreaId int
|
||||
FinishList map[int]struct{}
|
||||
Progress int
|
||||
DecorateNum int
|
||||
}
|
||||
|
||||
func (d *Decorate) InitData() {
|
||||
@ -41,6 +42,7 @@ func (d *Decorate) Decorate(areaId int, decorateId int) ([]*item.Item, error) {
|
||||
d.Progress = 0
|
||||
d.FinishList = make(map[int]struct{})
|
||||
}
|
||||
d.DecorateNum++
|
||||
return Item, nil
|
||||
}
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ func (f *FaceMod) InitData() {
|
||||
for _, v := range InitId {
|
||||
f.List[v] = Face{}
|
||||
}
|
||||
f.SetId = InitId[0]
|
||||
f.SetId = 1
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ func (f *FaceMod) SetFace(Id int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *FaceMod) BackData() *msg.ResFaceInfo {
|
||||
func (f *FaceMod) BackData() []*msg.FaceInfo {
|
||||
l := make([]*msg.FaceInfo, 0)
|
||||
for k, v := range f.List {
|
||||
l = append(l, &msg.FaceInfo{
|
||||
@ -42,9 +42,5 @@ func (f *FaceMod) BackData() *msg.ResFaceInfo {
|
||||
EndTime: v.Ts,
|
||||
})
|
||||
}
|
||||
// 返回数据
|
||||
return &msg.ResFaceInfo{
|
||||
FaceList: l,
|
||||
SetId: int32(f.SetId),
|
||||
}
|
||||
return l
|
||||
}
|
||||
|
||||
@ -7,12 +7,10 @@ import (
|
||||
)
|
||||
|
||||
type FriendMod struct {
|
||||
FriendList map[int]struct{} // 好友列表
|
||||
Apply map[int]struct{} // 请求列表
|
||||
ApplyCard map[int]*card.CardInfo // 收到的申请交换
|
||||
ExchangeCard map[int]*card.CardInfo // 申请交换
|
||||
SelectCard map[int]*card.CardInfo // 选择交换
|
||||
Log []*LogInfo // 日志
|
||||
FriendList map[int]struct{} // 好友列表
|
||||
Apply map[int]struct{} // 请求列表
|
||||
Card map[string]*card.CardInfo // 收到的申请交换
|
||||
Log []*LogInfo // 日志
|
||||
}
|
||||
|
||||
const (
|
||||
@ -40,14 +38,8 @@ func (f *FriendMod) InitData() {
|
||||
if f.Apply == nil {
|
||||
f.Apply = make(map[int]struct{})
|
||||
}
|
||||
if f.ApplyCard == nil {
|
||||
f.ApplyCard = make(map[int]*card.CardInfo)
|
||||
}
|
||||
if f.ExchangeCard == nil {
|
||||
f.ExchangeCard = make(map[int]*card.CardInfo)
|
||||
}
|
||||
if f.SelectCard == nil {
|
||||
f.SelectCard = make(map[int]*card.CardInfo)
|
||||
if f.Card == nil {
|
||||
f.Card = make(map[string]*card.CardInfo)
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,49 +49,20 @@ func (f *FriendMod) AddFriend(id int) {
|
||||
f.Log = append(f.Log, &LogInfo{Uid: id, Type: LOG_TYPE_ADD, Time: GoUtil.Now()})
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetCardGiveId(Uid int) *card.CardInfo {
|
||||
for _, v := range f.ApplyCard {
|
||||
if v.AUid == Uid {
|
||||
return v
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *FriendMod) CardGiveApply(CardInfo *card.CardInfo) {
|
||||
f.ApplyCard[CardInfo.AUid] = CardInfo
|
||||
}
|
||||
|
||||
func (f *FriendMod) SetCardExchange(CardInfo *card.CardInfo) {
|
||||
f.ExchangeCard[CardInfo.AUid] = CardInfo
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetCardExchange(Uid int) *card.CardInfo {
|
||||
v, ok := f.ExchangeCard[Uid]
|
||||
func (f *FriendMod) GetCardInfo(Id string) *card.CardInfo {
|
||||
v, ok := f.Card[Id]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
func (f *FriendMod) DelCardExchange(Uid int) {
|
||||
delete(f.ExchangeCard, Uid)
|
||||
func (f *FriendMod) SetCardInfo(CardInfo *card.CardInfo) {
|
||||
f.Card[CardInfo.Id] = CardInfo
|
||||
}
|
||||
|
||||
func (f *FriendMod) CardSelectExchange(CardInfo *card.CardInfo) {
|
||||
f.SelectCard[CardInfo.BUid] = CardInfo
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetSelectInfo(Uid int) *card.CardInfo {
|
||||
v, ok := f.SelectCard[Uid]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
func (f *FriendMod) DelSelectInfo(CardInfo *card.CardInfo) {
|
||||
delete(f.SelectCard, CardInfo.BUid)
|
||||
func (f *FriendMod) DelCardInfo(Id string) {
|
||||
delete(f.Card, Id)
|
||||
}
|
||||
|
||||
func (f *FriendMod) DelFriend(id int) {
|
||||
@ -127,7 +90,7 @@ func (f *FriendMod) HandleMsg(m *msg.Msg) {
|
||||
delete(f.FriendList, m.From)
|
||||
case msg.HANDLE_TYPE_REQ_CARD:
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
f.CardGiveApply(CardInfo)
|
||||
f.SetCardInfo(CardInfo)
|
||||
}
|
||||
}
|
||||
|
||||
@ -135,14 +98,6 @@ func (f *FriendMod) CheckApply(id int) bool {
|
||||
_, ok := f.Apply[id]
|
||||
return ok
|
||||
}
|
||||
func (f *FriendMod) RefuseCardGive(Uid int) *card.CardInfo {
|
||||
v, ok := f.ApplyCard[Uid]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
delete(f.ApplyCard, Uid)
|
||||
return v
|
||||
}
|
||||
|
||||
func (f *FriendMod) AddFriendApply(UId int) {
|
||||
f.Apply[UId] = struct{}{}
|
||||
|
||||
@ -33,13 +33,16 @@ const (
|
||||
HANDLE_TYPE_REFUSE_SELECT_CARD = 10 //B拒绝选择置换卡牌
|
||||
HANDLE_TYPE_REFUSE_EX_CARD = 11 //A拒绝置换卡牌
|
||||
|
||||
HANDLE_TYPE_SEND_CARD = 15 //赠送卡牌
|
||||
// 榜单操作
|
||||
HANDLE_TYPE_RANK = 101 //榜单操作
|
||||
HANDLE_TYPE_RANK_INFO = 102 //榜单信息
|
||||
HANDLE_TYPE_RANK_NOTIFY = 103 //榜单信息
|
||||
// 邮件操作
|
||||
HANDLE_TYPE_MAIL = 201 //邮件操作
|
||||
|
||||
// 锦标赛
|
||||
HANDLE_TYPE_CHAMPSHIP_GROUP = 301 //锦标赛分组操作
|
||||
HANDLE_TYPE_CHAMPSHIP_INRANK = 302 //锦标赛入榜操作
|
||||
//server mod handle
|
||||
SERVER_ZERO_UPDATE = 1000 //zero update
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user