playroom优化

This commit is contained in:
hahwu 2025-08-15 17:21:13 +08:00
parent 5d61834398
commit 58729f6500
4 changed files with 821 additions and 594 deletions

View File

@ -284,7 +284,7 @@ func ReqGmCommand_(player *Player, Command string) error {
case "playroomCollect": case "playroomCollect":
CollectList := playroomCfg.GetDecorateList() CollectList := playroomCfg.GetDecorateList()
PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod := player.PlayMod.getPlayroomMod()
PlayroomMod.Collect = make(map[int]int) PlayroomMod.NewCollect = make(map[int]*playroom.CollectInfo, 0)
for _, v := range CollectList { for _, v := range CollectList {
PlayroomMod.AddCollect(v) PlayroomMod.AddCollect(v)
} }
@ -299,7 +299,7 @@ func ReqGmCommand_(player *Player, Command string) error {
PlayroomBackData(player) PlayroomBackData(player)
case "playroomAir": case "playroomAir":
PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod := player.PlayMod.getPlayroomMod()
PlayroomMod.PetAir = make([]int, 0) PlayroomMod.NewPetAir = make(map[int]*playroom.PetAirInfo, 0)
AirList := playroomCfg.GetAirList() AirList := playroomCfg.GetAirList()
for _, v := range AirList { for _, v := range AirList {
PlayroomMod.UnlockPetAir(v) PlayroomMod.UnlockPetAir(v)

View File

@ -69,11 +69,14 @@ func PlayroomBackData(p *Player) {
r.Opponent = Opponent r.Opponent = Opponent
r.Friend = FriendList r.Friend = FriendList
r.Target = TargerRoom r.Target = TargerRoom
Collect := make([]int32, 0) Collect := make([]*proto.PlayroomCollectInfo, 0)
for k, v := range PlayroomMod.GetCollect() { for _, v := range PlayroomMod.GetCollect() {
if v > 0 { Collect = append(Collect, &proto.PlayroomCollectInfo{
Collect = append(Collect, int32(k)) Id: int32(v.Id),
} AddTime: v.AddTime,
EndTime: v.EndTime,
Label: v.Label,
})
} }
r.Collect = Collect r.Collect = Collect
Dress := make(map[int32]*proto.PlayroomDress) Dress := make(map[int32]*proto.PlayroomDress)
@ -108,7 +111,15 @@ func PlayroomBackData(p *Player) {
r.Dress = Dress r.Dress = Dress
r.DressSet = GoUtil.MapIntToInt32(PlayroomMod.GetDressSet()) r.DressSet = GoUtil.MapIntToInt32(PlayroomMod.GetDressSet())
r.PetAir = GoUtil.IntToInt32(PlayroomMod.GetPetAir()) PetAir := make([]*proto.PlayroomAirInfo, 0)
for _, v := range PlayroomMod.GetPetAir() {
PetAir = append(PetAir, &proto.PlayroomAirInfo{
Id: int32(v.Id),
AddTime: int64(v.AddTime),
Label: v.Label,
})
}
r.PetAir = PetAir
r.PetAirSet = int32(PlayroomMod.GetPetAirSet()) r.PetAirSet = int32(PlayroomMod.GetPetAirSet())
r.Chip = ChipMessage r.Chip = ChipMessage
r.StartTime = int32(PlayroomMod.Starttime) r.StartTime = int32(PlayroomMod.Starttime)

View File

@ -12,12 +12,14 @@ import (
) )
type PlayroomMod struct { type PlayroomMod struct {
Collect map[int]int // 装饰 Collect map[int]int // 装饰
NewCollect map[int]*CollectInfo
Room map[int]int // 房间 Room map[int]int // 房间
Dress map[int][]int // 服装仓库 Dress map[int][]int // 服装仓库
NewDress map[int]*DressInfo NewDress map[int]*DressInfo
DressSet map[int]int // 服装穿戴 DressSet map[int]int // 服装穿戴
PetAir []int // 宠物空气背包 PetAir []int // 宠物空气背包
NewPetAir map[int]*PetAirInfo // 新宠物空气背包
PetAirSet int // 宠物空气背包穿戴 PetAirSet int // 宠物空气背包穿戴
Status int // 0: 未拜访 1: 拜访 Status int // 0: 未拜访 1: 拜访
Endtime int64 // 结束时间 Endtime int64 // 结束时间
@ -69,6 +71,24 @@ type DressInfo struct {
Num int // 数量 Num int // 数量
} }
type PetAirInfo struct {
Id int // 空气ID
Part int // 空气部位
AddTime int64 // 添加时间
EndTime int64 // 结束时间
Label string // 标签
Num int // 数量
}
type CollectInfo struct {
Id int // 空气ID
Part int // 空气部位
AddTime int64 // 添加时间
EndTime int64 // 结束时间
Label string // 标签
Num int // 数量
}
type ItemInfo struct { type ItemInfo struct {
Watch int // 观看次数 Watch int // 观看次数
LastTime int64 // 上次观看时间 LastTime int64 // 上次观看时间
@ -151,7 +171,31 @@ func (p *PlayroomMod) InitData() {
if p.GameInfo == nil { if p.GameInfo == nil {
p.GameInfo = make(map[int]interface{}) p.GameInfo = make(map[int]interface{})
} }
if p.NewCollect == nil {
p.NewCollect = make(map[int]*CollectInfo)
}
InitCollect := playroomCfg.GetInitDecorate() InitCollect := playroomCfg.GetInitDecorate()
if len(p.NewCollect) == 0 {
for _, v := range InitCollect {
p.NewCollect[v] = &CollectInfo{
Id: v,
AddTime: GoUtil.Now(),
EndTime: 0,
Num: 1,
}
}
}
if len(p.Collect) > 0 {
for k, v := range p.Collect {
p.NewCollect[k] = &CollectInfo{
Id: k,
AddTime: GoUtil.Now(),
EndTime: 0,
Num: v,
}
}
p.Collect = make(map[int]int)
}
for _, v := range InitCollect { for _, v := range InitCollect {
p.Collect[v] = 1 p.Collect[v] = 1
} }
@ -189,34 +233,32 @@ func (p *PlayroomMod) InitData() {
if p.DailyTask == nil { if p.DailyTask == nil {
p.DailyTask = make(map[int]*DailyTask) p.DailyTask = make(map[int]*DailyTask)
} }
if len(p.PetAir) == 0 { if len(p.NewPetAir) == 0 {
p.PetAir = make([]int, 0) p.NewPetAir = make(map[int]*PetAirInfo, 0)
InitPetAir := playroomCfg.GetInitAirList() InitPetAir := playroomCfg.GetInitAirList()
p.PetAir = append(p.PetAir, InitPetAir...) for _, v := range InitPetAir {
p.NewPetAir[v] = &PetAirInfo{
Id: v,
AddTime: GoUtil.Now(),
Num: 1,
}
}
}
if len(p.PetAir) > 0 {
for _, v := range p.PetAir {
p.NewPetAir[v] = &PetAirInfo{
Id: v,
AddTime: GoUtil.Now(),
Num: 1,
}
}
p.PetAir = make([]int, 0)
} }
if p.NewDress == nil { if p.NewDress == nil {
p.NewDress = make(map[int]*DressInfo) p.NewDress = make(map[int]*DressInfo)
} }
// Dress仓库重构 if len(p.NewDress) == 0 {
if len(p.Dress) != 0 {
for _, v := range p.Dress {
for _, id := range v {
if _, ok := p.NewDress[id]; !ok {
Part := playroomCfg.GetDressPart(id)
p.NewDress[id] = &DressInfo{
Id: id,
Part: Part,
AddTime: GoUtil.Now(),
EndTime: 0,
Label: "",
Num: 1,
}
} else {
p.NewDress[id].Num++
}
}
}
} else {
InitDressList := playroomCfg.GetInitDressList() InitDressList := playroomCfg.GetInitDressList()
for _, v := range InitDressList { for _, v := range InitDressList {
Part := playroomCfg.GetDressPart(v) Part := playroomCfg.GetDressPart(v)
@ -230,6 +272,23 @@ func (p *PlayroomMod) InitData() {
} }
} }
} }
// Dress仓库重构
if len(p.Dress) != 0 {
for _, v := range p.Dress {
for _, id := range v {
Part := playroomCfg.GetDressPart(id)
p.NewDress[id] = &DressInfo{
Id: id,
Part: Part,
AddTime: GoUtil.Now(),
EndTime: 0,
Label: "",
Num: 1,
}
}
}
p.Dress = make(map[int][]int)
}
if p.ADItem == nil { if p.ADItem == nil {
p.ADItem = make(map[int]*ItemInfo) p.ADItem = make(map[int]*ItemInfo)
} }
@ -376,8 +435,8 @@ func (p *PlayroomMod) GetPhysiology(Id int) *Physiology {
return p.Physiology[Id] return p.Physiology[Id]
} }
func (p *PlayroomMod) GetCollect() map[int]int { func (p *PlayroomMod) GetCollect() map[int]*CollectInfo {
return p.Collect return p.NewCollect
} }
func (p *PlayroomMod) GetRoom() map[int]int { func (p *PlayroomMod) GetRoom() map[int]int {
@ -520,7 +579,10 @@ func (p *PlayroomMod) SetRoom(Room map[int]int) (map[int]int, error) {
} }
func (p *PlayroomMod) AddCollect(Id int) { func (p *PlayroomMod) AddCollect(Id int) {
p.Collect[Id]++ p.NewCollect[Id] = &CollectInfo{
Id: Id,
AddTime: GoUtil.Now(),
}
} }
func (p *PlayroomMod) AddDress(Id int) { func (p *PlayroomMod) AddDress(Id int) {
@ -875,7 +937,11 @@ func (p *PlayroomMod) RandGameType() int {
} }
func (p *PlayroomMod) UnlockPetAir(Id int) { func (p *PlayroomMod) UnlockPetAir(Id int) {
p.PetAir = append(p.PetAir, Id) p.NewPetAir[Id] = &PetAirInfo{
Id: Id,
AddTime: GoUtil.Now(),
Num: 1,
}
} }
func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) ([]int, map[int]int, error) { func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) ([]int, map[int]int, error) {
@ -950,8 +1016,8 @@ func (p *PlayroomMod) GetDress() map[int]*DressInfo {
return p.NewDress return p.NewDress
} }
func (p *PlayroomMod) GetPetAir() []int { func (p *PlayroomMod) GetPetAir() map[int]*PetAirInfo {
return p.PetAir return p.NewPetAir
} }
// RoomPoint Get Set // RoomPoint Get Set

File diff suppressed because it is too large Load Diff