diff --git a/src/server/conf/decorate/DecorateCfg.go b/src/server/conf/decorate/DecorateCfg.go index 3d2f4d75..355840d3 100644 --- a/src/server/conf/decorate/DecorateCfg.go +++ b/src/server/conf/decorate/DecorateCfg.go @@ -10,11 +10,13 @@ import ( const ( DECORATE_COST = "DecorateCost" INDOOR_PROGRESS = "IndoorProgress" + DECORATE_CONST = "DecorateConst" ) func init() { - gamedata.InitCfg("DecorateCost") - gamedata.InitCfg("IndoorProgress") + gamedata.InitCfg(DECORATE_COST) + gamedata.InitCfg(INDOOR_PROGRESS) + gamedata.InitCfg(DECORATE_CONST) } func GetStarCost(AreaId, SortId int) int { @@ -93,3 +95,13 @@ func GetProgressReward(Scene, Lv int) []*item.Item { } return nil } + +// 获取一键装饰的解锁等级 +func GetOneKeyDecorateUnlockLv() int { + data, err := gamedata.GetDataByKey(DECORATE_CONST, "OneKey") + if err != nil { + log.Debug("GetOneKeyDecorateUnlockLv err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index d271df7b..5fe334df 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -6,6 +6,7 @@ import ( "math" "server/GoUtil" cardCfg "server/conf/card" + decorateCfg "server/conf/decorate" mergeDataCfg "server/conf/mergeData" miningCfg "server/conf/mining" playroomCfg "server/conf/playroom" @@ -419,7 +420,14 @@ func ReqDecorateAll(args []interface{}) error { req := &msg.ReqDecorateAll{} proto.Unmarshal(buf, req) DecorateMod := player.PlayMod.getDecorateMod() - + UnLockLv := decorateCfg.GetOneKeyDecorateUnlockLv() + if player.GetPlayerBaseMod().GetLevel() < UnLockLv { + player.SendErrClienRes(&msg.ResDecorateAll{ + Code: msg.RES_CODE_FAIL, + Msg: fmt.Sprintf("等级不足%d级", UnLockLv), + }) + return errors.New("等级不足") + } PlayerBaseMod := player.GetPlayerBaseMod() CostItem, AddItem, DecorateNum, DecorateList := DecorateMod.DecorateAll(PlayerBaseMod.GetStar()) err := player.HandleItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具 diff --git a/src/server/pkg/github.com/name5566/leaf/log/log.go b/src/server/pkg/github.com/name5566/leaf/log/log.go index 8007ffa1..44f7db4b 100644 --- a/src/server/pkg/github.com/name5566/leaf/log/log.go +++ b/src/server/pkg/github.com/name5566/leaf/log/log.go @@ -7,6 +7,7 @@ import ( "os" "path" "strings" + "sync" "time" ) @@ -26,6 +27,7 @@ const ( ) type Logger struct { + lock sync.Mutex level int baseLogger *log.Logger baseFile *os.File @@ -203,30 +205,43 @@ func (logger *Logger) Fatal(format string, a ...interface{}) { } var gLogger, _ = New("debug", "", log.LstdFlags) +var gloggerLock sync.Mutex // It's dangerous to call the method on logging func Export(logger *Logger) { if logger != nil { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger = logger } } func Debug(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(debugLevel, printDebugLevel, format, a...) } func Release(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(releaseLevel, printReleaseLevel, format, a...) } func Error(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(errorLevel, printErrorLevel, format, a...) } func Fatal(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(fatalLevel, printFatalLevel, format, a...) } func Close() { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.Close() }