| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package online
- import (
- "f1-game/internal/component/redis"
- facade "f1-game/internal/facade"
- nameRedis "f1-game/internal/name/redis"
- "f1-game/internal/sessions"
- "f1-game/nodes/game/internal/db"
- cproto "github.com/cherry-game/cherry/net/proto"
- )
- var srv = &service{}
- func Service() *service {
- return srv
- }
- type service struct {
- facade.PlayerServiceBase[*db.PlayerTable]
- }
- func (p *service) OnLogin(playerTable *db.PlayerTable, session *cproto.Session) {
- fields := map[string]any{}
- fields[nameRedis.Player_IP] = session.Ip
- fields[nameRedis.Player_IsOnline] = true
- var (
- isNewPlayer = session.Contains(sessions.IsNewPlayer)
- hasValue = redis.Game.GetPlayerDataHash(playerTable.PlayerID, nameRedis.Player_PlayerID)
- )
- if isNewPlayer || hasValue == nil {
- fields[nameRedis.Player_PlayerID] = playerTable.PlayerID
- fields[nameRedis.Player_PlayerName] = playerTable.Lord.Name
- fields[nameRedis.Player_LordLevel] = playerTable.Lord.Level
- fields[nameRedis.Player_IconID] = playerTable.Lord.IconID
- fields[nameRedis.Player_FrameID] = playerTable.Lord.FrameID
- fields[nameRedis.Player_GameNodeID] = playerTable.NodeID
- fields[nameRedis.Player_MapNodeID] = playerTable.Map.MapNodeID
- fields[nameRedis.Player_UID] = session.Uid
- fields[nameRedis.Player_PID] = sessions.GetPID(session)
- }
- redis.Game.SavePlayerDataFields(playerTable.PlayerID, fields)
- }
- // func (p *service) OnLogined(playerTable *db.PlayerTable, session *cproto.Session) {
- // }
- func (p *service) OnLogout(playerTable *db.PlayerTable) {
- // 清除 redis 数据
- redis.Game.SavePlayerDataFields(playerTable.PlayerID, map[string]any{
- nameRedis.Player_IsOnline: false,
- })
- }
- // func (p *service) OnReset(playerTable *db.PlayerTable, time *ctime.CherryTime, byLogin bool) {
- // }
- // func (p *service) Push(playerTable *db.PlayerTable, session *cproto.Session) {
- // }
|