playroom每日任务
This commit is contained in:
parent
a3dc973d91
commit
eac8c6b4d2
@ -33,6 +33,7 @@ func init() {
|
||||
gamedata.InitCfg(CFG_PLAYROOM_AIR)
|
||||
gamedata.InitCfg(CFG_PLAYROOM_LOCK)
|
||||
gamedata.InitCfg(CFG_PLAYROOM_DAILYTASK)
|
||||
gamedata.InitCfg(CFG_PLAYROOM_DAILYTASKREWARD)
|
||||
}
|
||||
|
||||
func GetShopItem(Id int) (int, []*item.Item) {
|
||||
@ -386,12 +387,20 @@ func GetDailyTask(Type int) map[int]string {
|
||||
return r2
|
||||
}
|
||||
|
||||
func GetDailyTaskType(Id int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_DAILYTASK, Id)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetIntValue(data, "Type")
|
||||
}
|
||||
|
||||
func GetDailyTaskReward(Id int) []*item.Item {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_DAILYTASKREWARD, Id)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
return gamedata.GetItemList(data, "Reward")
|
||||
return gamedata.GetItemList(data, "Items")
|
||||
}
|
||||
|
||||
// 获取场景冲刺奖池
|
||||
|
||||
@ -153,7 +153,6 @@ func (p *Player) ProcessTrigger() {
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
IsMailBack := false
|
||||
IsPlayroomBack := false
|
||||
for _, tr := range p.Trigger {
|
||||
if DailyTaskMod.Trigger(tr) {
|
||||
IsDailyBack = true
|
||||
@ -161,9 +160,7 @@ func (p *Player) ProcessTrigger() {
|
||||
if p.MailTrigger(tr) {
|
||||
IsMailBack = true
|
||||
}
|
||||
if PlayroomMod.QuestTrigger(tr) {
|
||||
IsPlayroomBack = true
|
||||
}
|
||||
PlayroomMod.QuestTrigger(tr)
|
||||
}
|
||||
|
||||
if IsDailyBack {
|
||||
@ -172,9 +169,6 @@ func (p *Player) ProcessTrigger() {
|
||||
if IsMailBack {
|
||||
p.PushClientRes(MailMod.BackData())
|
||||
}
|
||||
if IsPlayroomBack {
|
||||
// TODO playroom每日任务返回
|
||||
}
|
||||
p.Trigger = make([]*quest.Trigger, 0)
|
||||
}
|
||||
|
||||
|
||||
127
src/server/game/PlayerBack.go
Normal file
127
src/server/game/PlayerBack.go
Normal file
@ -0,0 +1,127 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"server/GoUtil"
|
||||
"server/game/mod/item"
|
||||
proto "server/msg"
|
||||
)
|
||||
|
||||
func PlayroomBackData(p *Player) {
|
||||
r := &proto.ResPlayroom{}
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
r.Status = int32(PlayroomMod.Status)
|
||||
r.Items = item.ItemToMsg(PlayroomMod.Reward)
|
||||
Opponent := make([]*proto.RoomOpponent, 0)
|
||||
FriendList := make([]*proto.FriendRoom, 0)
|
||||
|
||||
for k, v := range PlayroomMod.Visitor {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(k)
|
||||
if ps == nil {
|
||||
continue
|
||||
}
|
||||
if !FriendMod.CheckFriend(k) {
|
||||
Opponent = append(Opponent, &proto.RoomOpponent{
|
||||
Uid: int64(k),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
LastTime: int32(v.Time),
|
||||
})
|
||||
}
|
||||
}
|
||||
Friend := FriendMod.GetFriendList()
|
||||
for k := range Friend {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(k)
|
||||
if ps == nil {
|
||||
continue
|
||||
}
|
||||
Times, _ := PlayroomMod.GetVisitorInfo(k)
|
||||
FriendList = append(FriendList, &proto.FriendRoom{
|
||||
Uid: int64(k),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
Times: int32(Times),
|
||||
})
|
||||
}
|
||||
r.Opponent = Opponent
|
||||
r.Friend = FriendList
|
||||
Collect := make([]int32, 0)
|
||||
for k, v := range PlayroomMod.GetCollect() {
|
||||
if v > 0 {
|
||||
Collect = append(Collect, int32(k))
|
||||
}
|
||||
}
|
||||
r.Collect = Collect
|
||||
Dress := make(map[int32]*proto.PlayroomDress)
|
||||
for k, v := range PlayroomMod.GetDress() {
|
||||
Dress[int32(k)] = &proto.PlayroomDress{
|
||||
List: GoUtil.IntToInt32(v),
|
||||
}
|
||||
}
|
||||
ChipMessage := make([]*proto.ChipInfo, 0)
|
||||
for _, v := range PlayroomMod.ChipList {
|
||||
ChipMessage = append(ChipMessage, &proto.ChipInfo{
|
||||
Uid: int64(v.Uid),
|
||||
})
|
||||
}
|
||||
r.Dress = Dress
|
||||
r.DressSet = GoUtil.MapIntToInt32(PlayroomMod.GetDressSet())
|
||||
r.PetAir = GoUtil.IntToInt32(PlayroomMod.GetPetAir())
|
||||
r.PetAirSet = int32(PlayroomMod.GetPetAirSet())
|
||||
r.Chip = ChipMessage
|
||||
r.StartTime = int32(PlayroomMod.Starttime)
|
||||
r.WorkStatus = int32(PlayroomMod.WorkStatus)
|
||||
r.Playroom = GoUtil.MapIntToInt32(PlayroomMod.GetRoom())
|
||||
r.Mood = GoUtil.MapIntToInt32(PlayroomMod.GetMood())
|
||||
r.Physiology = GoUtil.MapIntToInt32(PlayroomMod.GetPhysiologyList())
|
||||
r.AllMood = int32(PlayroomMod.AllMood)
|
||||
r.Jackpot = int32(PlayroomMod.JackpotNum)
|
||||
r.Upvote = int32(PlayroomMod.Upvote)
|
||||
r.RoomPoint = int32(PlayroomMod.RoomPoint)
|
||||
r.DailyTaskReward = GoUtil.IntToInt32(PlayroomMod.DailyTaskReward)
|
||||
r.DailyTask = PlayroomMod.BackDataTask()
|
||||
p.PushClientRes(r)
|
||||
}
|
||||
|
||||
func PlayroomVisit(p *Player, Uid int) {
|
||||
if Uid == 0 {
|
||||
return
|
||||
}
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
r := &proto.ResPlayroomInfo{}
|
||||
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Uid)
|
||||
Now := GoUtil.Now()
|
||||
Work := false
|
||||
if PlayerData.WorkStart > 0 && PlayerData.WorkStart+86400 > Now {
|
||||
Work = true
|
||||
}
|
||||
r.Uid = int64(Uid)
|
||||
r.Name = PlayerData.Name
|
||||
r.Face = int32(PlayerData.Face)
|
||||
r.Avatar = int32(PlayerData.Avatar)
|
||||
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
||||
r.GameId = int32(PlayroomMod.GameId)
|
||||
r.Defense = Work
|
||||
r.Emoji = GoUtil.MapIntToInt32(PlayerData.Emoji)
|
||||
// ChipMessage := make([]*proto.ChipInfo, 0)
|
||||
// for _, v := range PlayroomMod.ChipList {
|
||||
// ChipMessage = append(ChipMessage, &proto.ChipInfo{
|
||||
// Uid: int64(v.Uid),
|
||||
// })
|
||||
// }
|
||||
// r.Chip = ChipMessage
|
||||
r.PetName = PlayerData.PetName
|
||||
Items := make(map[int32]*proto.ItemInfo, 0)
|
||||
for k, v := range PlayroomMod.GameReward {
|
||||
Items[int32(k)] = &proto.ItemInfo{
|
||||
Id: int32(v.Id),
|
||||
Num: int32(v.Num),
|
||||
}
|
||||
}
|
||||
r.Upvote = GoUtil.InArray(Uid, PlayroomMod.UpvoteList)
|
||||
r.Items = Items
|
||||
r.Status = int32(PlayroomMod.GameStatus)
|
||||
p.PushClientRes(r)
|
||||
}
|
||||
@ -532,8 +532,9 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) {
|
||||
}
|
||||
}
|
||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||
PlayroomMod.UnLock(int(BaseMod.Level))
|
||||
PlayroomBackData(player)
|
||||
if PlayroomMod.UnLock(int(BaseMod.Level)) {
|
||||
PlayroomBackData(player)
|
||||
}
|
||||
player.PushClientRes(p.BackAsset())
|
||||
return upLv, nil
|
||||
}
|
||||
|
||||
@ -668,124 +668,6 @@ func PlayroomOrderTrigger(p *Player) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func PlayroomBackData(p *Player) {
|
||||
r := &proto.ResPlayroom{}
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
r.Status = int32(PlayroomMod.Status)
|
||||
r.Items = item.ItemToMsg(PlayroomMod.Reward)
|
||||
Opponent := make([]*proto.RoomOpponent, 0)
|
||||
FriendList := make([]*proto.FriendRoom, 0)
|
||||
|
||||
for k, v := range PlayroomMod.Visitor {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(k)
|
||||
if ps == nil {
|
||||
continue
|
||||
}
|
||||
if !FriendMod.CheckFriend(k) {
|
||||
Opponent = append(Opponent, &proto.RoomOpponent{
|
||||
Uid: int64(k),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
LastTime: int32(v.Time),
|
||||
})
|
||||
}
|
||||
}
|
||||
Friend := FriendMod.GetFriendList()
|
||||
for k := range Friend {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(k)
|
||||
if ps == nil {
|
||||
continue
|
||||
}
|
||||
Times, _ := PlayroomMod.GetVisitorInfo(k)
|
||||
FriendList = append(FriendList, &proto.FriendRoom{
|
||||
Uid: int64(k),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
Times: int32(Times),
|
||||
})
|
||||
}
|
||||
r.Opponent = Opponent
|
||||
r.Friend = FriendList
|
||||
Collect := make([]int32, 0)
|
||||
for k, v := range PlayroomMod.GetCollect() {
|
||||
if v > 0 {
|
||||
Collect = append(Collect, int32(k))
|
||||
}
|
||||
}
|
||||
r.Collect = Collect
|
||||
Dress := make(map[int32]*proto.PlayroomDress)
|
||||
for k, v := range PlayroomMod.GetDress() {
|
||||
Dress[int32(k)] = &proto.PlayroomDress{
|
||||
List: GoUtil.IntToInt32(v),
|
||||
}
|
||||
}
|
||||
ChipMessage := make([]*proto.ChipInfo, 0)
|
||||
for _, v := range PlayroomMod.ChipList {
|
||||
ChipMessage = append(ChipMessage, &proto.ChipInfo{
|
||||
Uid: int64(v.Uid),
|
||||
})
|
||||
}
|
||||
r.Dress = Dress
|
||||
r.DressSet = GoUtil.MapIntToInt32(PlayroomMod.GetDressSet())
|
||||
r.PetAir = GoUtil.IntToInt32(PlayroomMod.GetPetAir())
|
||||
r.PetAirSet = int32(PlayroomMod.GetPetAirSet())
|
||||
r.Chip = ChipMessage
|
||||
r.StartTime = int32(PlayroomMod.Starttime)
|
||||
r.WorkStatus = int32(PlayroomMod.WorkStatus)
|
||||
r.Playroom = GoUtil.MapIntToInt32(PlayroomMod.GetRoom())
|
||||
r.Mood = GoUtil.MapIntToInt32(PlayroomMod.GetMood())
|
||||
r.Physiology = GoUtil.MapIntToInt32(PlayroomMod.GetPhysiologyList())
|
||||
r.AllMood = int32(PlayroomMod.AllMood)
|
||||
r.Jackpot = int32(PlayroomMod.JackpotNum)
|
||||
r.Upvote = int32(PlayroomMod.Upvote)
|
||||
r.RoomPoint = int32(PlayroomMod.RoomPoint)
|
||||
p.PushClientRes(r)
|
||||
}
|
||||
|
||||
func PlayroomVisit(p *Player, Uid int) {
|
||||
if Uid == 0 {
|
||||
return
|
||||
}
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
r := &proto.ResPlayroomInfo{}
|
||||
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Uid)
|
||||
Now := GoUtil.Now()
|
||||
Work := false
|
||||
if PlayerData.WorkStart > 0 && PlayerData.WorkStart+86400 > Now {
|
||||
Work = true
|
||||
}
|
||||
r.Uid = int64(Uid)
|
||||
r.Name = PlayerData.Name
|
||||
r.Face = int32(PlayerData.Face)
|
||||
r.Avatar = int32(PlayerData.Avatar)
|
||||
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
||||
r.GameId = int32(PlayroomMod.GameId)
|
||||
r.Defense = Work
|
||||
r.Emoji = GoUtil.MapIntToInt32(PlayerData.Emoji)
|
||||
// ChipMessage := make([]*proto.ChipInfo, 0)
|
||||
// for _, v := range PlayroomMod.ChipList {
|
||||
// ChipMessage = append(ChipMessage, &proto.ChipInfo{
|
||||
// Uid: int64(v.Uid),
|
||||
// })
|
||||
// }
|
||||
// r.Chip = ChipMessage
|
||||
r.PetName = PlayerData.PetName
|
||||
Items := make(map[int32]*proto.ItemInfo, 0)
|
||||
for k, v := range PlayroomMod.GameReward {
|
||||
Items[int32(k)] = &proto.ItemInfo{
|
||||
Id: int32(v.Id),
|
||||
Num: int32(v.Num),
|
||||
}
|
||||
}
|
||||
r.Upvote = GoUtil.InArray(Uid, PlayroomMod.UpvoteList)
|
||||
r.Items = Items
|
||||
r.Status = int32(PlayroomMod.GameStatus)
|
||||
p.PushClientRes(r)
|
||||
}
|
||||
|
||||
func GetVisitorPlayer(p *Player) int {
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
VisitorList := PlayroomMod.GetVisitor()
|
||||
|
||||
@ -315,7 +315,7 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetChessFromBuff{
|
||||
player.SendErrClienRes(&msg.ResRewardOrder{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
@ -3072,6 +3072,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error {
|
||||
}
|
||||
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Targer)
|
||||
PlayroomMod.SetTarget(Targer)
|
||||
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_VISITROOM})
|
||||
if PlayerData.Loginout > 0 && PlayerData.Loginout < GoUtil.Now()-int64(playroomCfg.GetGameOutline()) { // todo DEBUG
|
||||
log.Debug("ReqPlayroomInfo PlayerData.Loginout:%v, %v", PlayerData.Loginout, playroomCfg.GetGameOutline())
|
||||
GameType := PlayroomMod.RandGameType()
|
||||
@ -3153,8 +3154,8 @@ func ReqPlayroomSetRoom(player *Player, buf []byte) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_ROOMDEC})
|
||||
player.PlayMod.save()
|
||||
PlayroomBackData(player)
|
||||
player.PushClientRes(&msg.ResPlayroomSetRoom{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
@ -3281,6 +3282,8 @@ func ReqPlayroomWork(player *Player, buf []byte) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETWORK})
|
||||
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(PlayroomMod.NotifyWork())
|
||||
// PlayroomBackData(player)
|
||||
@ -3512,6 +3515,7 @@ func ReqPlayroomUnlock(player *Player, buf []byte) error {
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Id: int32(req.Id),
|
||||
})
|
||||
PlayroomBackData(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -3540,6 +3544,7 @@ func ReqPlayroomTask(player *Player, buf []byte) error {
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Id: int32(req.Id),
|
||||
})
|
||||
PlayroomBackData(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -3569,6 +3574,7 @@ func ReqPlayroomTaskReward(player *Player, buf []byte) error {
|
||||
Id: int32(Id),
|
||||
Type: req.Type,
|
||||
})
|
||||
PlayroomBackData(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -3714,28 +3720,7 @@ func ReqFriendTreasureStart(player *Player, buf []byte) error {
|
||||
return fmt.Errorf("not enough star")
|
||||
}
|
||||
|
||||
// FriendList := FriendMod.GetFriendList()
|
||||
// FriendList2 := GoUtil.SubSlices(FriendList, FriendTreasureMod.GetFriendList())
|
||||
// if len(FriendList2) < 5 {
|
||||
// player.SendErrClienRes(&msg.ResFriendTreasureStart{
|
||||
// Code: msg.RES_CODE_FAIL,
|
||||
// Msg: "not enough friends",
|
||||
// })
|
||||
// return fmt.Errorf("not enough friends")
|
||||
// }
|
||||
|
||||
// Alive := make([]int, 0)
|
||||
// NotAlive := make([]int, 0)
|
||||
// Now := GoUtil.Now()
|
||||
// for _, v := range FriendList2 {
|
||||
// PD := G_GameLogicPtr.GetSimplePlayerByUid(v)
|
||||
// if PD.Login < Now-86400 {
|
||||
// NotAlive = append(NotAlive, v)
|
||||
// } else {
|
||||
// Alive = append(Alive, v)
|
||||
// }
|
||||
// }
|
||||
|
||||
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETTREASURE})
|
||||
FriendTreasureMod.InitGame(req.List, req.List2)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResFriendTreasureStart{
|
||||
@ -3956,7 +3941,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error {
|
||||
req := &msg.ReqPlayroomDressSet{}
|
||||
proto.Unmarshal(buf, req)
|
||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||
error := PlayroomMod.PlayroomDressSet(GoUtil.MapInt32ToInt(req.DressSet))
|
||||
Parts, error := PlayroomMod.PlayroomDressSet(GoUtil.MapInt32ToInt(req.DressSet))
|
||||
if error != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomDressSet{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -3964,6 +3949,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error {
|
||||
})
|
||||
return error
|
||||
}
|
||||
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{Parts}})
|
||||
player.PlayMod.save()
|
||||
PlayroomBackData(player)
|
||||
player.PushClientRes(&msg.ResPlayroomDressSet{
|
||||
|
||||
@ -179,9 +179,7 @@ func (p *PlayroomMod) ZeroUpdate() {
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) InitDailyTask() {
|
||||
if p.DailyTask == nil {
|
||||
p.DailyTask = make(map[int]*DailyTask)
|
||||
}
|
||||
p.DailyTask = make(map[int]*DailyTask)
|
||||
Index := 1
|
||||
TaskList1 := playroomCfg.GetDailyTask(DAILY_TASK_TYPE_ONE)
|
||||
for k, v := range TaskList1 {
|
||||
@ -190,8 +188,8 @@ func (p *PlayroomMod) InitDailyTask() {
|
||||
p.DailyTask[k] = &DailyTask{
|
||||
Items: Items,
|
||||
Status: 0,
|
||||
Quest: quest.QuestProgress{Label: Quest.Label, Num: 0, Target: Quest.Num, Status: false},
|
||||
UnLock: false,
|
||||
Quest: Quest,
|
||||
UnLock: true,
|
||||
}
|
||||
Index++
|
||||
}
|
||||
@ -202,7 +200,7 @@ func (p *PlayroomMod) InitDailyTask() {
|
||||
p.DailyTask[k] = &DailyTask{
|
||||
Items: Items,
|
||||
Status: 0,
|
||||
Quest: quest.QuestProgress{Label: Quest.Label, Num: 0, Target: Quest.Num, Status: false},
|
||||
Quest: Quest,
|
||||
UnLock: false,
|
||||
}
|
||||
Index++
|
||||
@ -211,7 +209,8 @@ func (p *PlayroomMod) InitDailyTask() {
|
||||
|
||||
func (p *PlayroomMod) QuestTrigger(Tr *quest.Trigger) bool {
|
||||
update := false
|
||||
for _, v := range p.DailyTask {
|
||||
unlock := true
|
||||
for k, v := range p.DailyTask {
|
||||
if !v.UnLock {
|
||||
continue
|
||||
}
|
||||
@ -222,10 +221,20 @@ func (p *PlayroomMod) QuestTrigger(Tr *quest.Trigger) bool {
|
||||
if up {
|
||||
update = true
|
||||
}
|
||||
|
||||
if v.Quest.Status {
|
||||
v.Status = quest.QUEST_STATUS_FINISH
|
||||
|
||||
}
|
||||
Type := playroomCfg.GetDailyTaskType(k)
|
||||
if Type == DAILY_TASK_TYPE_ONE && v.Status == quest.QUEST_STATUS_UNFINISH {
|
||||
unlock = false
|
||||
}
|
||||
}
|
||||
if unlock {
|
||||
for _, v := range p.DailyTask {
|
||||
v.UnLock = true
|
||||
}
|
||||
}
|
||||
return update
|
||||
}
|
||||
@ -670,10 +679,10 @@ func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) {
|
||||
return playroomCfg.GetBuyItem(Id)
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) UnLock(Lv int) {
|
||||
func (p *PlayroomMod) UnLock(Lv int) bool {
|
||||
UnlockLv := playroomCfg.GetUnLockLv()
|
||||
if Lv < UnlockLv {
|
||||
return
|
||||
if Lv < UnlockLv || len(p.Physiology) != 0 {
|
||||
return false
|
||||
}
|
||||
if len(p.Physiology) == 0 {
|
||||
Now := GoUtil.Now()
|
||||
@ -703,6 +712,7 @@ func (p *PlayroomMod) UnLock(Lv int) {
|
||||
InitPetAir := playroomCfg.GetInitAirList()
|
||||
p.PetAir = append(p.PetAir, InitPetAir...)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// shop
|
||||
@ -732,22 +742,26 @@ func (p *PlayroomMod) UnlockPetAir(Id int) {
|
||||
p.PetAir = append(p.PetAir, Id)
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) error {
|
||||
func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) ([]int, error) {
|
||||
// 判断服装是否存在
|
||||
Part := make([]int, 0)
|
||||
for Type, Id := range DressSet {
|
||||
dresses, ok := p.Dress[Type]
|
||||
if Id == 0 {
|
||||
continue
|
||||
}
|
||||
if !ok {
|
||||
return fmt.Errorf("dress type not found")
|
||||
return nil, fmt.Errorf("dress type not found")
|
||||
}
|
||||
if !GoUtil.InArray(Id, dresses) {
|
||||
return fmt.Errorf("dress not found")
|
||||
return nil, fmt.Errorf("dress not found")
|
||||
}
|
||||
if p.DressSet[Type] != Id {
|
||||
Part = append(Part, Type)
|
||||
}
|
||||
}
|
||||
p.DressSet = DressSet
|
||||
return nil
|
||||
return Part, nil
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) GiveUpvote(Uid int) error {
|
||||
@ -813,3 +827,16 @@ func (p *PlayroomMod) AddRoomPointAdd() {
|
||||
p.RoomPoint = 0
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) BackDataTask() map[int32]*msg.DailyTask {
|
||||
DailyTask := make(map[int32]*msg.DailyTask)
|
||||
for k, v := range p.DailyTask {
|
||||
DailyTask[int32(k)] = &msg.DailyTask{
|
||||
Status: int32(v.Status),
|
||||
UnLock: v.UnLock,
|
||||
Progress: quest.QuestProgressToMsg(&v.Quest),
|
||||
Items: item.ItemToMsg(v.Items),
|
||||
}
|
||||
}
|
||||
return DailyTask
|
||||
}
|
||||
|
||||
@ -86,18 +86,15 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool {
|
||||
InteractId := Tr.A[0].(int)
|
||||
Ids := make([]int, 0)
|
||||
for _, v := range q.A {
|
||||
Ids = append(Ids, v.(int))
|
||||
Ids = append(Ids, GoUtil.Int(v))
|
||||
}
|
||||
if GoUtil.InArray(InteractId, Ids) {
|
||||
q.Num += 1
|
||||
}
|
||||
case TRIGGER_LABEL_PETDRESS: // 换装x次
|
||||
DressType := Tr.A[0].(string)
|
||||
Ids := make([]string, 0)
|
||||
for _, v := range q.A {
|
||||
Ids = append(Ids, v.(string))
|
||||
}
|
||||
if GoUtil.InStringArray(DressType, Ids) {
|
||||
DressType := Tr.A[0].(int)
|
||||
Ids := q.A[0].([]int)
|
||||
if GoUtil.InArray(DressType, Ids) {
|
||||
q.Num += 1
|
||||
}
|
||||
default:
|
||||
|
||||
@ -18383,32 +18383,33 @@ func (*ReqPlayroom) Descriptor() ([]byte, []int) {
|
||||
}
|
||||
|
||||
type ResPlayroom struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态
|
||||
Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励
|
||||
Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手
|
||||
Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友
|
||||
Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id
|
||||
Collect []int32 `protobuf:"varint,6,rep,packed,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰
|
||||
Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>
|
||||
LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具
|
||||
StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间
|
||||
WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中
|
||||
AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情
|
||||
Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片
|
||||
WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线
|
||||
Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数
|
||||
Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
||||
Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳
|
||||
DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id
|
||||
PetAir []int32 `protobuf:"varint,18,rep,packed,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包
|
||||
PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置
|
||||
Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数
|
||||
RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分
|
||||
Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id
|
||||
DailyTask map[int32]*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每日任务
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态
|
||||
Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励
|
||||
Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手
|
||||
Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友
|
||||
Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id
|
||||
Collect []int32 `protobuf:"varint,6,rep,packed,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰
|
||||
Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>
|
||||
LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具
|
||||
StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间
|
||||
WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中
|
||||
AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情
|
||||
Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片
|
||||
WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线
|
||||
Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数
|
||||
Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
||||
Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳
|
||||
DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id
|
||||
PetAir []int32 `protobuf:"varint,18,rep,packed,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包
|
||||
PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置
|
||||
Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数
|
||||
RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分
|
||||
Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id
|
||||
DailyTask map[int32]*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每日任务
|
||||
DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *ResPlayroom) Reset() {
|
||||
@ -18602,6 +18603,13 @@ func (x *ResPlayroom) GetDailyTask() map[int32]*DailyTask {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *ResPlayroom) GetDailyTaskReward() []int32 {
|
||||
if x != nil {
|
||||
return x.DailyTaskReward
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 领取任务奖励
|
||||
type ReqPlayroomTask struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
@ -23691,7 +23699,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
||||
"\rResRaceReward\x12&\n" +
|
||||
"\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" +
|
||||
"\x03Msg\x18\x02 \x01(\tR\x03Msg\"\r\n" +
|
||||
"\vReqPlayroom\"\xcd\n" +
|
||||
"\vReqPlayroom\"\xf7\n" +
|
||||
"\n" +
|
||||
"\vResPlayroom\x12\x16\n" +
|
||||
"\x06status\x18\x01 \x01(\x05R\x06status\x12(\n" +
|
||||
@ -23721,7 +23729,8 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
||||
"\x06Upvote\x18\x14 \x01(\x05R\x06Upvote\x12\x1c\n" +
|
||||
"\tRoomPoint\x18\x15 \x01(\x05R\tRoomPoint\x12\x16\n" +
|
||||
"\x06Unlock\x18\x16 \x03(\x05R\x06Unlock\x12B\n" +
|
||||
"\tDailyTask\x18\x17 \x03(\v2$.tutorial.ResPlayroom.DailyTaskEntryR\tDailyTask\x1a;\n" +
|
||||
"\tDailyTask\x18\x17 \x03(\v2$.tutorial.ResPlayroom.DailyTaskEntryR\tDailyTask\x12(\n" +
|
||||
"\x0fDailyTaskReward\x18\x18 \x03(\x05R\x0fDailyTaskReward\x1a;\n" +
|
||||
"\rPlayroomEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" +
|
||||
"\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a7\n" +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user