修改playroom bug
This commit is contained in:
parent
f4268d781a
commit
a020d44b5c
@ -377,6 +377,7 @@ func (ad *GameLogic) GetSimplePlayerByUid(Id int) *PlayerSimpleData {
|
|||||||
Idstr := strconv.Itoa(Id)
|
Idstr := strconv.Itoa(Id)
|
||||||
Value, _ := db.RedisGetKey(Idstr)
|
Value, _ := db.RedisGetKey(Idstr)
|
||||||
player := &PlayerSimpleData{}
|
player := &PlayerSimpleData{}
|
||||||
|
player.Playroom = make(map[int]int)
|
||||||
player.Uid = Id
|
player.Uid = Id
|
||||||
if Value == "" {
|
if Value == "" {
|
||||||
p := new(Player)
|
p := new(Player)
|
||||||
|
|||||||
@ -150,5 +150,24 @@ func LimitedTimePlayroomTrigger(p *Player, Id int) {
|
|||||||
p.SendClientRes()
|
p.SendClientRes()
|
||||||
}, "Playroom")
|
}, "Playroom")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func LimitedTimePlayroomWorkTrigger(p *Player) {
|
||||||
|
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||||
|
EndTime := PlayroomMod.Endtime
|
||||||
|
Now := GoUtil.Now()
|
||||||
|
if EndTime > 0 && EndTime <= Now {
|
||||||
|
PlayroomMod.ResetWork()
|
||||||
|
p.PlayMod.save()
|
||||||
|
PlayroomBackData(p)
|
||||||
|
p.SendClientRes()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if EndTime > 0 {
|
||||||
|
NextSecond := EndTime - GoUtil.Now()
|
||||||
|
p.CallEvent(time.Duration(NextSecond)*time.Second, func() {
|
||||||
|
LimitedTimePlayroomWorkTrigger(p)
|
||||||
|
p.SendClientRes()
|
||||||
|
}, "PlayroomWork")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -344,6 +344,7 @@ func (p *Player) Login() {
|
|||||||
LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_ENTER)
|
LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_ENTER)
|
||||||
LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_FOOD)
|
LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_FOOD)
|
||||||
LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_CLEAN)
|
LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_CLEAN)
|
||||||
|
LimitedTimePlayroomWorkTrigger(p)
|
||||||
ActivityLogin(p)
|
ActivityLogin(p)
|
||||||
p.PlayMod.getCardMod().Login(G_GameLogicPtr.SeverInfo.OpenTime)
|
p.PlayMod.getCardMod().Login(G_GameLogicPtr.SeverInfo.OpenTime)
|
||||||
}
|
}
|
||||||
@ -714,6 +715,10 @@ func (p *Player) GetSimpleData(Uid int, simple *PlayerSimpleData) error {
|
|||||||
simple.Login = int64(Base.Data.LoginTime)
|
simple.Login = int64(Base.Data.LoginTime)
|
||||||
simple.Loginout = int64(Base.Data.LogoutTime)
|
simple.Loginout = int64(Base.Data.LogoutTime)
|
||||||
simple.FaceBook = Base.Data.FaceBookId
|
simple.FaceBook = Base.Data.FaceBookId
|
||||||
|
simple.FaceBookPic = p.PlayMod.getBaseMod().FacebookUrl
|
||||||
|
simple.Playroom = p.PlayMod.getPlayroomMod().Room
|
||||||
|
simple.Chess = p.PlayMod.getChessMod().GetChessList()
|
||||||
|
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -732,6 +737,7 @@ func (p *Player) UpdateUserInfo() {
|
|||||||
simple.FaceBookPic = p.PlayMod.getBaseMod().FacebookUrl
|
simple.FaceBookPic = p.PlayMod.getBaseMod().FacebookUrl
|
||||||
simple.Playroom = p.PlayMod.getPlayroomMod().Room
|
simple.Playroom = p.PlayMod.getPlayroomMod().Room
|
||||||
simple.Chess = p.PlayMod.getChessMod().GetChessList()
|
simple.Chess = p.PlayMod.getChessMod().GetChessList()
|
||||||
|
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
||||||
value, _ := json.Marshal(simple)
|
value, _ := json.Marshal(simple)
|
||||||
IdStr := strconv.Itoa(int(p.M_DwUin))
|
IdStr := strconv.Itoa(int(p.M_DwUin))
|
||||||
db.RedisSetKey(IdStr, string(value), 0)
|
db.RedisSetKey(IdStr, string(value), 0)
|
||||||
|
|||||||
@ -221,6 +221,7 @@ func handle(p *Player, m *msg.Msg) error {
|
|||||||
p.HandleLoseItem(Items, "")
|
p.HandleLoseItem(Items, "")
|
||||||
} else {
|
} else {
|
||||||
PlayroomMod.Lose(Items)
|
PlayroomMod.Lose(Items)
|
||||||
|
p.PushClientRes(PlayroomMod.NotifyLose())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -476,6 +477,7 @@ func PlayroomOrderTrigger(p *Player) error {
|
|||||||
}
|
}
|
||||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||||
PlayroomMod.CreateOrderReward(Star, p.PlayMod.getItemMod())
|
PlayroomMod.CreateOrderReward(Star, p.PlayMod.getItemMod())
|
||||||
|
PlayroomBackData(p)
|
||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -493,15 +495,7 @@ func PlayroomBackData(p *Player) {
|
|||||||
if ps == nil {
|
if ps == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if FriendMod.CheckFriend(k) {
|
if !FriendMod.CheckFriend(k) {
|
||||||
FriendList = append(FriendList, &proto.FriendRoom{
|
|
||||||
Uid: int32(k),
|
|
||||||
Name: ps.Name,
|
|
||||||
Face: int32(ps.Face),
|
|
||||||
Avatar: int32(ps.Avatar),
|
|
||||||
Times: int32(v.Times),
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
Opponent = append(Opponent, &proto.RoomOpponent{
|
Opponent = append(Opponent, &proto.RoomOpponent{
|
||||||
Uid: int32(k),
|
Uid: int32(k),
|
||||||
Name: ps.Name,
|
Name: ps.Name,
|
||||||
@ -511,6 +505,21 @@ func PlayroomBackData(p *Player) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Friend := FriendMod.GetFriendList()
|
||||||
|
for _, v := range Friend {
|
||||||
|
ps := G_GameLogicPtr.GetSimplePlayerByUid(v)
|
||||||
|
if ps == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
Times, _ := PlayroomMod.GetVisitorInfo(v)
|
||||||
|
FriendList = append(FriendList, &proto.FriendRoom{
|
||||||
|
Uid: int32(v),
|
||||||
|
Name: ps.Name,
|
||||||
|
Face: int32(ps.Face),
|
||||||
|
Avatar: int32(ps.Avatar),
|
||||||
|
Times: int32(Times),
|
||||||
|
})
|
||||||
|
}
|
||||||
r.Opponent = Opponent
|
r.Opponent = Opponent
|
||||||
r.Friend = FriendList
|
r.Friend = FriendList
|
||||||
Collect := make([]int32, 0)
|
Collect := make([]int32, 0)
|
||||||
@ -534,12 +543,18 @@ func PlayroomVisit(p *Player, Uid int) {
|
|||||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||||
r := &proto.ResPlayroomInfo{}
|
r := &proto.ResPlayroomInfo{}
|
||||||
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Uid)
|
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Uid)
|
||||||
|
Now := GoUtil.Now()
|
||||||
|
Work := false
|
||||||
|
if PlayerData.WorkStart > 0 && PlayerData.WorkStart+86400 > Now {
|
||||||
|
Work = true
|
||||||
|
}
|
||||||
r.Uid = int32(Uid)
|
r.Uid = int32(Uid)
|
||||||
r.Name = PlayerData.Name
|
r.Name = PlayerData.Name
|
||||||
r.Face = int32(PlayerData.Face)
|
r.Face = int32(PlayerData.Face)
|
||||||
r.Avatar = int32(PlayerData.Avatar)
|
r.Avatar = int32(PlayerData.Avatar)
|
||||||
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
||||||
r.GameId = int32(PlayroomMod.GameId)
|
r.GameId = int32(PlayroomMod.GameId)
|
||||||
|
r.Defense = Work
|
||||||
Items := make(map[int32]*proto.ItemInfo, 0)
|
Items := make(map[int32]*proto.ItemInfo, 0)
|
||||||
for k, v := range PlayroomMod.GameReward {
|
for k, v := range PlayroomMod.GameReward {
|
||||||
Items[int32(k)] = &proto.ItemInfo{
|
Items[int32(k)] = &proto.ItemInfo{
|
||||||
@ -628,6 +643,9 @@ func EmitRetireTrigger1(p *Player) {
|
|||||||
EmitId := make(map[string]struct{}, 0)
|
EmitId := make(map[string]struct{}, 0)
|
||||||
for _, v := range EmitList {
|
for _, v := range EmitList {
|
||||||
Emit_Id := mergeDataCfg.GetEmitId(v)
|
Emit_Id := mergeDataCfg.GetEmitId(v)
|
||||||
|
if Emit_Id == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
EmitId[Emit_Id] = struct{}{}
|
EmitId[Emit_Id] = struct{}{}
|
||||||
}
|
}
|
||||||
EmitId1 := make([]string, 0)
|
EmitId1 := make([]string, 0)
|
||||||
|
|||||||
@ -2738,6 +2738,12 @@ func ReqPlayroomInfo(args []interface{}) error {
|
|||||||
if req.Uid == 0 {
|
if req.Uid == 0 {
|
||||||
Targer = PlayroomMod.GetTarget()
|
Targer = PlayroomMod.GetTarget()
|
||||||
}
|
}
|
||||||
|
if req.Uid == -1 {
|
||||||
|
Targer = GetVisitorPlayer(player)
|
||||||
|
}
|
||||||
|
if Targer == 0 {
|
||||||
|
return fmt.Errorf("ReqPlayroomInfo no target")
|
||||||
|
}
|
||||||
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Targer)
|
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Targer)
|
||||||
PlayroomMod.SetTarget(Targer)
|
PlayroomMod.SetTarget(Targer)
|
||||||
if PlayerData.Loginout < GoUtil.Now()-300 {
|
if PlayerData.Loginout < GoUtil.Now()-300 {
|
||||||
@ -2905,7 +2911,8 @@ func ReqPlayroomSelectReward(args []interface{}) error {
|
|||||||
func ReqPlayroomLose(args []interface{}) error {
|
func ReqPlayroomLose(args []interface{}) error {
|
||||||
_, player, _ := ParseArgs(args)
|
_, player, _ := ParseArgs(args)
|
||||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||||
PlayroomMod.ResetGame()
|
PlayroomMod.ResetLose()
|
||||||
|
player.PushClientRes(PlayroomMod.NotifyLose())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2923,6 +2930,11 @@ func ReqPlayroomWork(args []interface{}) error {
|
|||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// 开始工作 设置定时器
|
||||||
|
if Items != nil {
|
||||||
|
LimitedTimePlayroomWorkTrigger(player)
|
||||||
|
player.UpdateUserInfo()
|
||||||
|
}
|
||||||
err = player.HandleItem(Items, "playroomWork")
|
err = player.HandleItem(Items, "playroomWork")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResPlayroomWork{
|
player.SendErrClienRes(&msg.ResPlayroomWork{
|
||||||
@ -3016,7 +3028,12 @@ func ReqPlayroomFlip(args []interface{}) error {
|
|||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = player.HandleItem(Items, "playroomFlip")
|
Items1 := Items
|
||||||
|
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) {
|
||||||
|
Items1 = item.Merge(Items1, Items1)
|
||||||
|
}
|
||||||
|
err = player.HandleItem(Items1, "playroomFlip")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResPlayroomFlip{
|
player.SendErrClienRes(&msg.ResPlayroomFlip{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
|||||||
@ -14,6 +14,7 @@ type PlayerSimpleData struct {
|
|||||||
FaceBookPic string
|
FaceBookPic string
|
||||||
Playroom map[int]int
|
Playroom map[int]int
|
||||||
Chess []int
|
Chess []int
|
||||||
|
WorkStart int64
|
||||||
}
|
}
|
||||||
|
|
||||||
type VarGoldCard struct {
|
type VarGoldCard struct {
|
||||||
|
|||||||
@ -57,9 +57,6 @@ func (cb *ChessBorad) InitData() {
|
|||||||
cb.ChessBag.List[i] = ChessBagGrid{}
|
cb.ChessBag.List[i] = ChessBagGrid{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if cb.RetireChessMap == nil {
|
|
||||||
cb.RetireChessMap = make(map[string][]int)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cb *ChessBorad) ver() {
|
func (cb *ChessBorad) ver() {
|
||||||
@ -76,6 +73,15 @@ func (cb *ChessBorad) ver() {
|
|||||||
if cb.ChessMap == nil {
|
if cb.ChessMap == nil {
|
||||||
cb.ChessMap = make(map[string]int32)
|
cb.ChessMap = make(map[string]int32)
|
||||||
}
|
}
|
||||||
|
if cb.RetireChessMap == nil {
|
||||||
|
cb.RetireChessMap = make(map[string][]int)
|
||||||
|
}
|
||||||
|
if cb.Retire == nil {
|
||||||
|
cb.Retire = make(map[string]int)
|
||||||
|
}
|
||||||
|
if cb.Honor == nil {
|
||||||
|
cb.Honor = make(map[int]int)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 棋子合成
|
// 棋子合成
|
||||||
@ -228,6 +234,9 @@ func (cb *ChessBorad) GetEmitList() []int {
|
|||||||
result := make([]int, 0, len(cb.EmitList))
|
result := make([]int, 0, len(cb.EmitList))
|
||||||
for k, v := range cb.EmitList {
|
for k, v := range cb.EmitList {
|
||||||
EmitID := mergeDataCfg.GetEmitId(k)
|
EmitID := mergeDataCfg.GetEmitId(k)
|
||||||
|
if EmitID == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if cb.Retire[EmitID] == 2 {
|
if cb.Retire[EmitID] == 2 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,6 +98,13 @@ func (f *FriendMod) CheckApply(id int) bool {
|
|||||||
func (f *FriendMod) GetFriendNum() int {
|
func (f *FriendMod) GetFriendNum() int {
|
||||||
return len(f.FriendList)
|
return len(f.FriendList)
|
||||||
}
|
}
|
||||||
|
func (f *FriendMod) GetFriendList() []int {
|
||||||
|
var list []int
|
||||||
|
for k, _ := range f.FriendList {
|
||||||
|
list = append(list, k)
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
|
||||||
func (f *FriendMod) AddFriendApply(Uid int) {
|
func (f *FriendMod) AddFriendApply(Uid int) {
|
||||||
f.ApplyList[Uid] = GoUtil.Now()
|
f.ApplyList[Uid] = GoUtil.Now()
|
||||||
|
|||||||
@ -256,6 +256,10 @@ func (p *PlayroomMod) ResetGame() {
|
|||||||
p.GameReward = make(map[int]*item.Item)
|
p.GameReward = make(map[int]*item.Item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PlayroomMod) ResetLose() {
|
||||||
|
p.LoseItem = make([]*item.Item, 0)
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PlayroomMod) SetGameReward(Chess1, Chess2, Star int) {
|
func (p *PlayroomMod) SetGameReward(Chess1, Chess2, Star int) {
|
||||||
p.GameReward[1] = &item.Item{Id: Chess1, Num: 1}
|
p.GameReward[1] = &item.Item{Id: Chess1, Num: 1}
|
||||||
p.GameReward[2] = &item.Item{Id: Chess2, Num: 1}
|
p.GameReward[2] = &item.Item{Id: Chess2, Num: 1}
|
||||||
@ -290,6 +294,19 @@ func (p *PlayroomMod) Rest() {
|
|||||||
p.WorkStatus = 2
|
p.WorkStatus = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PlayroomMod) ResetWork() {
|
||||||
|
p.WorkStatus = 0
|
||||||
|
p.Starttime = 0
|
||||||
|
p.Endtime = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PlayroomMod) GetVisitorInfo(Id int) (int, int64) {
|
||||||
|
v, ok := p.Visitor[Id]
|
||||||
|
if !ok {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
|
return v.Times, v.Time
|
||||||
|
}
|
||||||
func (p *PlayroomMod) Draw() (int, []*item.Item, error) {
|
func (p *PlayroomMod) Draw() (int, []*item.Item, error) {
|
||||||
if p.AllMood < 100 {
|
if p.AllMood < 100 {
|
||||||
return 0, nil, fmt.Errorf("Draw AllMood < 100")
|
return 0, nil, fmt.Errorf("Draw AllMood < 100")
|
||||||
@ -307,6 +324,12 @@ func (p *PlayroomMod) NotifyWork() *msg.NotifyPlayroomWork {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PlayroomMod) NotifyLose() *msg.NotifyPlayroomLose {
|
||||||
|
return &msg.NotifyPlayroomLose{
|
||||||
|
LoseItem: item.ItemToMsg(p.LoseItem),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PlayroomMod) NotifyMood() *msg.NotifyPlayroomMood {
|
func (p *PlayroomMod) NotifyMood() *msg.NotifyPlayroomMood {
|
||||||
Mood := make(map[int32]int32, 0)
|
Mood := make(map[int32]int32, 0)
|
||||||
for k, v := range p.MoodInfo {
|
for k, v := range p.MoodInfo {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user