bug修复

This commit is contained in:
hahwu 2024-12-13 16:16:50 +08:00
parent 7e794dc2dc
commit b5eb216860
13 changed files with 118 additions and 38 deletions

View File

@ -195,7 +195,7 @@ func PlayroomTrigger(Time int64, Num int) (int64, int) {
Duration = 3600
}
if Time+Duration > Now {
return Time, Num
return Time + Duration, Num
}
Time += Duration
Num -= 10

View File

@ -47,6 +47,11 @@ var Server struct {
func init() {
filePath := "conf/server.json"
if len(os.Args) > 1 {
if os.Args[1] != "" {
filePath = os.Args[1]
}
}
file, err := os.Open(filePath)
if err != nil {
panic(err)

View File

@ -646,8 +646,8 @@ func (ad *GameLogic) CreateDailyLogFile() {
func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqRemoveAd", ReqRemoveAdFunc)
RegisterMsgProcessFunc("ReqPlayerBriefProfileData", ReqPlayerBriefProfileDataFunc)
RegisterMsgProcessFunc("ReqOfflineReconnect", ReqOfflineReconnectFunc)
// 玩家
RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo)

View File

@ -125,6 +125,8 @@ func LimitedTimeCardTrigger(p *Player) {
}
if EndTime > 0 {
p.CallEvent(time.Duration(EndTime-Now)*time.Second, func() {
p.lock.Lock()
defer p.lock.Unlock()
LimitedTimeCardTrigger(p)
p.SendClientRes()
}, "LimitedTimeCard")
@ -143,9 +145,11 @@ func LimitedTimePlayroomTrigger(p *Player, Id int) {
MoodInfo.Num = Num
p.PlayMod.save()
PlayroomBackData(p)
if NewTime > 0 {
NextSecond := NewTime + 1200 - Now
NextSecond := NewTime + 1200 - Now
if NextSecond > 0 {
p.CallEvent(time.Duration(NextSecond)*time.Second, func() {
p.lock.Lock()
defer p.lock.Unlock()
LimitedTimePlayroomTrigger(p, Id)
p.SendClientRes()
}, "Playroom")
@ -163,9 +167,11 @@ func LimitedTimePlayroomWorkTrigger(p *Player) {
p.SendClientRes()
return
}
if EndTime > 0 {
NextSecond := EndTime - GoUtil.Now()
NextSecond := EndTime - GoUtil.Now()
if NextSecond > 0 {
p.CallEvent(time.Duration(NextSecond)*time.Second, func() {
p.lock.Lock()
defer p.lock.Unlock()
LimitedTimePlayroomWorkTrigger(p)
p.SendClientRes()
}, "PlayroomWork")

View File

@ -183,7 +183,7 @@ func (p *Player) InitPlayer(UserName string) error {
p.Msg = make(map[string]PlayerMsg)
p.args = make(map[string]interface{})
p.timerList = make(map[string]*timer.Timer)
p.MDispatr = timer.NewDispatcher(10)
p.MDispatr = timer.NewDispatcher(100)
p.stopSignal = make(chan bool)
p.playerdata = make(map[string]PlayerDataModule)
Base := &PlayerBaseData{PlayerData: NewPlayerData(PLAYER_BASE_DATA, p)}

View File

@ -10,6 +10,7 @@ import (
"server/MergeConst"
userCfg "server/conf/user"
"server/db"
"server/game/mod/item"
"server/game/mod/limitedTimeEvent"
"server/game/mod/quest"
"server/msg"
@ -621,6 +622,7 @@ func (p *PlayerBaseData) AddExp(exp int) (int, error) {
upLv := 0
upExp := userCfg.GetLevUpExp(int(p.Data.Level))
Num := 0
UpLevelItem := make([]*item.Item, 0)
for p.Data.Exp >= int32(upExp) {
if Num > 100 {
break
@ -636,7 +638,8 @@ func (p *PlayerBaseData) AddExp(exp int) (int, error) {
p.M_Player.PushClientRes(DailyTaskMod.BackData())
}
upLv = int(p.Data.Level)
Items := userCfg.GetLevUpReward(upLv)
UpLevelItem = item.Merge(UpLevelItem, Items)
// 棋盘背包解锁
p.M_Player.PushClientRes(p.BackAsset())
ChessMod := p.M_Player.PlayMod.getChessMod()
@ -657,6 +660,12 @@ func (p *PlayerBaseData) AddExp(exp int) (int, error) {
"property_level_reward": userCfg.GetUnlock(int(p.Data.Level)),
})
}
if len(UpLevelItem) > 0 {
err := p.M_Player.HandleItem(UpLevelItem, "LevUpReward")
if err != nil {
return 0, err
}
}
p.M_Player.PushClientRes(p.BackAsset())
return upLv, nil

View File

@ -99,6 +99,9 @@ func (p *PlayerChessData) UpdateChessData(MChessData map[string]int32) error {
return fmt.Errorf("棋子数据不一致")
}
p.M_Player.PlayMod.getChessMod().ChessMap = MChessData
if p.M_Player.M_DwUin == 200042 {
log.Debug("棋子数据一致, %v---%v", p.Data.MChessData, p.M_Player.PlayMod.getChessMod().GetChessList())
}
return nil
}

View File

@ -611,8 +611,8 @@ func GetVisitorPlayer(p *Player) int {
})
return PlayerList2[0].Uid
}
return GetRecommendPlayer(p, 1)[0]
L := GetRecommendPlayer(p, 1)
return L[0]
}
func GetRecommendPlayer(p *Player, Num int) []int {
@ -638,6 +638,14 @@ func GetRecommendPlayer(p *Player, Num int) []int {
}
PlayerList1 = append(PlayerList1, v.Uid)
}
if len(PlayerList1) == 0 {
for _, v := range PlayerList {
if v.Uid == int(p.M_DwUin) {
continue
}
PlayerList1 = append(PlayerList1, v.Uid)
}
}
return GoUtil.RandSliceNum(PlayerList1, Num)
}

View File

@ -121,6 +121,9 @@ func (r *RankMgr) getRedisRankInfo(m *msg.Msg) (interface{}, error) {
if err != nil {
return &RankInfo{}, nil
}
sort.Slice(RedisList, func(i, j int) bool { // 排序 从大到小
return RedisList[i].Score > RedisList[j].Score
})
rankList := make([]*Rank, 0)
for _, v := range RedisList {
rankList = append(rankList, &Rank{

View File

@ -9,8 +9,8 @@ import (
cardCfg "server/conf/card"
mergeDataCfg "server/conf/mergeData"
miningCfg "server/conf/mining"
userCfg "server/conf/user"
"server/db"
"server/game/internal"
"server/game/mod/card"
"server/game/mod/friend"
"server/game/mod/item"
@ -23,6 +23,7 @@ import (
"server/msg"
"strconv"
"server/pkg/github.com/name5566/leaf/gate"
"server/pkg/github.com/name5566/leaf/log"
"google.golang.org/protobuf/proto"
@ -375,7 +376,7 @@ func ReqDecorate(args []interface{}) error {
return err
}
UpLev, err := player.GetPlayerBaseMod().AddExp(10)
_, err = player.GetPlayerBaseMod().AddExp(10)
if err != nil {
player.SendErrClienRes(&msg.ResDecorate{
Code: msg.RES_CODE_FAIL,
@ -397,17 +398,6 @@ func ReqDecorate(args []interface{}) error {
player.TeLog("finish_deco", map[string]interface{}{
"deco_step_id": DecorateId,
})
if UpLev > 0 { //升级 获取奖励
Items := userCfg.GetLevUpReward(UpLev)
err = player.HandleItem(Items, "LevUpReward")
if err != nil {
player.SendErrClienRes(&msg.ResDecorate{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
}
player.PlayMod.save()
player.PushClientRes(DecorateMod.BackData())
@ -447,7 +437,7 @@ func ReqDecorateAll(args []interface{}) error {
return err
}
UpLev, err := player.GetPlayerBaseMod().AddExp(10 * DecorateNum)
_, err = player.GetPlayerBaseMod().AddExp(10 * DecorateNum)
if err != nil {
player.SendErrClienRes(&msg.ResDecorateAll{
Code: msg.RES_CODE_FAIL,
@ -456,18 +446,6 @@ func ReqDecorateAll(args []interface{}) error {
return err
}
if UpLev > 0 { //升级 获取奖励
Items := userCfg.GetLevUpReward(UpLev)
err = player.HandleItem(Items, "LevUpReward")
if err != nil {
player.SendErrClienRes(&msg.ResDecorateAll{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
}
player.TeLog("one_click_decoration", map[string]interface{}{
"deco_step_id": DecorateList,
})
@ -2983,6 +2961,7 @@ func ReqPlayroomDraw(args []interface{}) error {
})
return err
}
player.args["ResItemPopId"] = Id
err = player.HandleItem(Items, "playroomDraw")
if err != nil {
player.SendErrClienRes(&msg.ResPlayroomDraw{
@ -2991,9 +2970,9 @@ func ReqPlayroomDraw(args []interface{}) error {
})
return err
}
player.args["ResItemPopId"] = Id
player.PlayMod.save()
PlayroomBackData(player)
// PlayroomBackData(player)
player.PushClientRes(PlayroomMod.NotifyMood())
player.PushClientRes(&msg.ResPlayroomDraw{
Code: msg.RES_CODE_SUCCESS,
Id: int32(Id),
@ -3001,6 +2980,7 @@ func ReqPlayroomDraw(args []interface{}) error {
return nil
}
// 清理碎片
func ReqPlayroomChip(args []interface{}) error {
_, player, buf := ParseArgs(args)
req := &msg.ReqPlayroomChip{}
@ -3023,6 +3003,7 @@ func ReqPlayroomChip(args []interface{}) error {
return nil
}
// 翻牌游戏
func ReqPlayroomFlip(args []interface{}) error {
_, player, buf := ParseArgs(args)
req := &msg.ReqPlayroomFlip{}
@ -3067,3 +3048,33 @@ func ReqPlayroomFlip(args []interface{}) error {
})
return nil
}
func ReqOfflineReconnectFunc(args []interface{}) error {
a := args[0].(gate.Agent)
buf := args[1].([]byte)
req := &msg.ReqOfflineReconnect{}
proto.Unmarshal(buf, req)
res := &msg.ResOfflineReconnect{}
res.DwUin = req.DwUin
if v, ok := G_GameLogicPtr.M_Players.Load(req.DwUin); ok {
player := v.(*Player)
agent := player.GetAgentByPlayer()
if agent != a {
player.SetAgent(a)
internal.AsignPlayerToAgents(a, player)
internal.Agents.Delete(agent)
}
res.Result = 3
} else {
res.Result = 2
}
data, _ := proto.Marshal(res)
G_GameLogicPtr.PackResInfo(a, "ResOfflineReconnect", data)
return nil
}

View File

@ -3,6 +3,7 @@ package game
import (
"fmt"
"server/game/mod/order"
"server/game/mod/sevenLogin"
)
func UnitEndlessReward(p *Player) error {
@ -64,3 +65,17 @@ func UnitChess(p *Player) error {
ChargeMod.InitChessShop(Emit)
return nil
}
func UnitDecorate(p *Player) error {
PlayerBaseMod := p.GetPlayerBaseMod()
PlayerBaseMod.Data.Level = 6
PlayerBaseMod.Data.Exp = 50
PlayerBaseMod.AddExp(100)
return nil
}
func UnitSevenMonthReward(p *Player) error {
i := sevenLogin.F()
fmt.Print(i)
return nil
}

View File

@ -100,6 +100,9 @@ func (s *SevenLoginMod) BackData() *msg.ResSevenLogin {
}
for k, v := range s.MonthReward {
if k < 0 {
continue
}
Active := sevenLoginCfg.GetMonthActive(k)
Status := GoUtil.IfTrue(!v.Status && s.Active >= Active, 1, 0).(int)
Status = GoUtil.IfTrue(v.Status, 2, Status).(int)

View File

@ -121,3 +121,20 @@ func randMonthReward() map[int]Reward {
}
return result
}
func F() map[int]Reward {
RewardList := sevenLoginCfg.GetSevenLoginMonthReward()
sort.Slice(RewardList, func(i, j int) bool {
return RewardList[i].Id < RewardList[j].Id
})
jackpot := sevenLoginCfg.GetSevenLoginJackpot(1)
sort.Slice(jackpot, func(i, j int) bool {
return jackpot[i].Diamond < jackpot[j].Diamond
})
result := make(map[int]Reward)
for _, v := range RewardList {
Reward := randReward(v, 0, jackpot, []int{}, 0.65, 1)
result[v.Id] = Reward
}
return result
}