package player import ( "f1-game/internal/component/redis" "f1-game/internal/event" nameEvent "f1-game/internal/name/event" nameLocal "f1-game/internal/name/local" nameRedis "f1-game/internal/name/redis" "f1-game/internal/pb" ctime "github.com/cherry-game/cherry/extend/time" cfacade "github.com/cherry-game/cherry/facade" cproto "github.com/cherry-game/cherry/net/proto" ) func (p *actorPlayer) initPlayer() { p.Local().Register(nameLocal.Player_Time, p.time) p.Local().Register(nameLocal.Player_ClientSet, p.setClientSet) p.EventRegister(nameEvent.Lord_LevelUp, p.playerLordLevelUp) } // time 获取服务器时间 func (p *actorPlayer) time(session *cproto.Session, _ *pb.None) { rsp := &pb.I64{ Value: ctime.Now().ToMillisecond(), } p.Response(session, rsp) } // setClientSet 客户端设置 func (p *actorPlayer) setClientSet(session *cproto.Session, req *pb.UI32UI32) { playerTable := p.PlayerTable() if len(playerTable.Settings.List) > 256 { return } playerTable.Settings.List.Put(req.Key, req.Value) playerTable.Save2Queue() resp := &pb.UI32UI32{ Key: req.Key, Value: req.Value, } p.Response(session, resp) p.Debug("[setClientSet]. playerID = %d, req = %v", p.playerID, req) } // playerLordLevelUp 玩家领主升级 func (p *actorPlayer) playerLordLevelUp(eventData cfacade.IEventData) { e, ok := eventData.(*event.LordLevelUp) if !ok { return } var ( playerID = e.UniqueID() lordLevel = e.Level() ) redis.Game.SavePlayerDataFields(playerID, map[string]any{ nameRedis.Player_LordLevel: lordLevel, }) }