roll.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package player
  2. import (
  3. "github.com/mhaya/game/game_cluster/internal/code"
  4. "github.com/mhaya/game/game_cluster/internal/constant"
  5. "github.com/mhaya/game/game_cluster/internal/mdb/models"
  6. "github.com/mhaya/game/game_cluster/internal/param"
  7. )
  8. func (p *actorPlayer) roll(req *param.RollReq) (*param.RollResp, int32) {
  9. if !p.isOnline {
  10. return nil, code.PlayerNotLogin
  11. }
  12. if p.Player.Item[models.ItemRoll].Num < req.Multi {
  13. return nil, code.PlayerItemNumError
  14. }
  15. var resp param.RollResp
  16. var addItem = models.AddItem{}
  17. var subItem = models.SubItem{}
  18. var scores int
  19. //for i := 0; i < req.Multi; i++ {
  20. ret := p.Player.RollOnce(req.Multi)
  21. if ret.IsLevelUp == true {
  22. resp.IsLevelUp = true
  23. }
  24. if ret.IsDailyTask == true {
  25. resp.IsDailyTask = true
  26. }
  27. resp.Rolls = append(resp.Rolls, ret.Roll)
  28. addItem.AddById(models.ItemScore, ret.Roll.Score*req.Multi)
  29. subItem.AddById(models.ItemRoll, 1*req.Multi)
  30. scores += ret.Roll.Score * req.Multi
  31. //}
  32. resp.AddItem = addItem
  33. resp.SubItem = subItem
  34. p.dirty = true
  35. //设置榜单
  36. models.SetRank(constant.RankSourceScore, p.Player.IsRobot, p.Player.UserName, scores)
  37. models.SetRank(constant.RankSourceRoll, p.Player.IsRobot, p.Player.UserName, req.Multi)
  38. resp.Multi = req.Multi
  39. return &resp, code.OK
  40. }