player_gm.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package player
  2. import (
  3. "f1-game/internal/code"
  4. "f1-game/internal/enum"
  5. nameRemote "f1-game/internal/name/remote"
  6. "f1-game/internal/pb"
  7. "f1-game/nodes/game/player/asset"
  8. "f1-game/nodes/game/player/gm"
  9. "strings"
  10. )
  11. func (p *actorPlayer) initGM() {
  12. p.Remote().Register(nameRemote.Player_SendGM, p.sendGM)
  13. p.Remote().Register(nameRemote.Player_GetInfo, p.getPlayerInfo)
  14. }
  15. // gm操作
  16. func (p *actorPlayer) sendGM(req *pb.Str) int32 {
  17. gmStr := req.Value
  18. if !strings.HasPrefix(gmStr, "/gm ") {
  19. return code.RequestParamsError
  20. }
  21. return gm.Service().SendGM(p.playerID, gmStr)
  22. }
  23. // 获取玩家信息
  24. func (p *actorPlayer) getPlayerInfo(req *pb.I64) (*pb.PlayerDetailInfo, int32) {
  25. playerDetail := &pb.PlayerDetailInfo{}
  26. playerTable := p.PlayerTable()
  27. // 获取账号信息
  28. account := &pb.AccountInfo{}
  29. account.AccountID = playerTable.OpenID
  30. playerDetail.Account = account
  31. // 获取玩家信息
  32. playerDetail.Player = playerTable.ToPlayerInfo()
  33. playerDetail.Player.IsOnline = p.isOnline
  34. // 获取玩家资产
  35. for _, itemID := range enum.OpsItemInfoList {
  36. count := asset.Service().Get(p.playerID, itemID)
  37. item := &pb.I32I64{
  38. Key: itemID,
  39. Value: count,
  40. }
  41. playerDetail.Items = append(playerDetail.Items, item)
  42. }
  43. // 获取英雄列表
  44. heroTable := p.HeroTable()
  45. playerDetail.Heroes = heroTable.Heroes.HeroGroupMap()
  46. // TODO 充值数据
  47. return playerDetail, code.OK
  48. }