Blame view

cmd/gameserver/action/RoleAction.go 1.54 KB
69d286a7   zhangqijia   fix: 插件用来做部分热更
1
  package action
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
2
3
  
  import (
29a163be   zhangqijia   fix: CreateReq ui...
4
  	"fmt"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
5
  	"github.com/golang/protobuf/proto"
765431a4   zhangqijia   增加schema接口, 抽象 mo...
6
  	"pro2d/common"
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
7
  	"pro2d/common/components"
29a163be   zhangqijia   fix: CreateReq ui...
8
  	"pro2d/common/db/redisproxy"
765431a4   zhangqijia   增加schema接口, 抽象 mo...
9
  	"pro2d/common/logger"
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
10
  	"pro2d/models"
7f269318   zhangqijia   add pb.go; 添加关闭连接...
11
  	"pro2d/pb"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
12
13
  )
  
69d286a7   zhangqijia   fix: 插件用来做部分热更
14
  func HeartRpc(msg components.IMessage) (int32, interface{}) {
0cc58315   zhangqijia   添加定时器, 检查心跳
15
  	//msg.Conn.SetLastHeartCheckTime()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
16
17
18
  	return 0, nil
  }
  
29a163be   zhangqijia   fix: CreateReq ui...
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  func getRandomName() string {
  	name := ""
  	for  {
  		name = common.RandomName(common.DefaultName)
  		if name == "" {
  			continue
  		}
  
  		relay, err := redisproxy.SETNX(fmt.Sprintf(common.NickNames, name), "1")
  		if err != nil {
  			continue
  		}
  		if relay.(int64) == 1 {
  			break
  		}
  	}
  	return name
  }
  
69d286a7   zhangqijia   fix: 插件用来做部分热更
38
  func CreateRpc(msg components.IMessage) (int32, interface{}) {
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
39
  	req := pb.CreateReq{}
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
40
  	if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
cad2b7f3   zhangqijia   reactor: 重构目录, 重构...
41
  		logger.Error("CreateRpc err: %v", err)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
42
43
  		return 1, nil
  	}
29a163be   zhangqijia   fix: CreateReq ui...
44
  	role := models.RoleExistByUid(req.Token)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
45
46
47
48
  	if role != nil {
  		return 2, nil
  	}
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
49
  	roleId := common.SnowFlack.NextValStr()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
50
  	role = models.NewRole(roleId)
29a163be   zhangqijia   fix: CreateReq ui...
51
  	role.Role.Nick = getRandomName()
69d286a7   zhangqijia   fix: 插件用来做部分热更
52
  	if err := role.Create(); err != nil {
cad2b7f3   zhangqijia   reactor: 重构目录, 重构...
53
  		logger.Error("CreateRpc role create err: %v", err)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
54
55
  		return 3, nil
  	}
8d983031   zhangqijia   loginReq uid -> t...
56
  	role.InitRole()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
57
58
59
  	return 0, nil
  }
  
69d286a7   zhangqijia   fix: 插件用来做部分热更
60
  func LoginRpc(msg components.IMessage) (int32, interface{}) {
77f5eec7   zhangqijia   plugin 插件热更 接口
61
  	//logger.Debug("11111111cmd: %v, msg: %s", msg.GetHeader().GetMsgID(), msg.GetData())
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
62
  	req := pb.LoginReq{}
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
63
  	if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
cad2b7f3   zhangqijia   reactor: 重构目录, 重构...
64
  		logger.Error("loginRpc err: %v", err)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
65
66
67
  		return 1, nil
  	}
  
436e0af4   zhangqijia   reactor: dir; Ac...
68
  	role := models.RoleExistByUid(req.Token)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
69
70
71
  	if role == nil {
  		return 2, nil
  	}
7f269318   zhangqijia   add pb.go; 添加关闭连接...
72
73
  	role.SetProperty("Device", req.Device)
  
8d983031   zhangqijia   loginReq uid -> t...
74
  	return 0, role
69d286a7   zhangqijia   fix: 插件用来做部分热更
75
  }