From 0d7eea63562411c7861dee3be171328142503b7b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 25 Dec 2024 11:11:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=B3=BB=E7=BB=9Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/user/UserData.go | 9 ++ src/server/db/Mysql.go | 2 +- src/server/game/GameLogic.go | 2 +- src/server/game/LimitedTimeTrigger.go | 18 ++-- src/server/game/Player.go | 11 +- src/server/game/PlayerBaseMod.go | 150 ++++++++++++++------------ src/server/game/PlayerFunc.go | 3 +- src/server/game/PlayerMod.go | 19 +++- src/server/game/mod/base/Base.go | 91 ++++++++++++++++ 9 files changed, 220 insertions(+), 85 deletions(-) diff --git a/src/server/conf/user/UserData.go b/src/server/conf/user/UserData.go index 788c2878..73fd2c2a 100644 --- a/src/server/conf/user/UserData.go +++ b/src/server/conf/user/UserData.go @@ -22,6 +22,15 @@ func GetEnergyMulByLv(lv int) int { return gamedata.GetIntValue(data, "EnergyMul") } +func GetEnergyMax(Lv int) int { + data, err := gamedata.GetDataByIntKey(CFG_NAME, Lv) + if err != nil { + log.Debug("UserDataCfg GetEnergyMax lv:%v not found", Lv) + return 0 + } + return gamedata.GetIntValue(data, "MaxEnergy") +} + // 获取七天登录加成 func GetSevenloginAdd(Lv int) int { data, err := gamedata.GetDataByIntKey(CFG_NAME, Lv) diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index fcbf2f74..433e0018 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -145,7 +145,7 @@ func FormatAllMemUpdateDb(u interface{}, tableName string, Exclude string) (err if k == reflect.String { keyValue = ufield.String() } - if k == reflect.Int32 || k == reflect.Int { + if k == reflect.Int32 || k == reflect.Int || k == reflect.Int64 { keyValue = ufield.Int() } } diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 6d221fc6..383acb46 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -158,7 +158,7 @@ func (ad *GameLogic) IsExsitAccount(UserName string) bool { func (ad *GameLogic) LoadDataFromDB(UserName string) bool { sqlStr := "SELECT * FROM t_account WHERE user_name = ?" if err := db.SqlDb.Get(&ad.Db_AccountInfo, sqlStr, UserName); err != nil { - log.Debug("get data failed, err:%v\n", err) + // log.Debug("get data failed, err:%v\n", err) return false } diff --git a/src/server/game/LimitedTimeTrigger.go b/src/server/game/LimitedTimeTrigger.go index 8ebecd34..0539bef8 100644 --- a/src/server/game/LimitedTimeTrigger.go +++ b/src/server/game/LimitedTimeTrigger.go @@ -183,16 +183,19 @@ func LimitedTimePlayroomWorkTrigger(p *Player) { func LimitedTimeEnergyAdd(p *Player) { curtime := time.Now().Unix() PlayerBaseMod := p.GetPlayerBaseMod() - delta := curtime - (int64)(PlayerBaseMod.Data.RecoverTime) - Recover := userCfg.GetRecover(int(PlayerBaseMod.Data.Level)) + BaseMod := p.PlayMod.getBaseMod() + delta := curtime - BaseMod.GetLoginTime() + Recover := userCfg.GetRecover(BaseMod.GetLevel()) Addsta := int(delta) / Recover if Addsta <= 0 { return } - if PlayerBaseMod.GetMaxEnergy() > PlayerBaseMod.Data.Energy { - PlayerBaseMod.Data.Energy = PlayerBaseMod.Data.Energy + int32(Addsta) - if PlayerBaseMod.Data.Energy > PlayerBaseMod.GetMaxEnergy() { - PlayerBaseMod.Data.Energy = PlayerBaseMod.GetMaxEnergy() + Energy := BaseMod.GetEnergy() + MaxEnergy := PlayerBaseMod.GetMaxEnergy() + if MaxEnergy > Energy { + Energy += Addsta + if Energy > MaxEnergy { + Energy = MaxEnergy } p.CallEvent(time.Duration(Recover)*time.Second, func() { p.lock.Lock() @@ -200,6 +203,7 @@ func LimitedTimeEnergyAdd(p *Player) { LimitedTimeEnergyAdd(p) }, "AddEnergy") } - PlayerBaseMod.Data.RecoverTime = int32(curtime) + BaseMod.SetEnergy(Energy) + BaseMod.SetRecoverTime(curtime) p.SendErrClienRes(PlayerBaseMod.BackAsset()) } diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 5d3cf5da..6b9a956d 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -171,7 +171,7 @@ func (p *Player) BackUp() *PlayerBackUp { // 接口发生错误时 还原数据 func (p *Player) Recover(backUp *PlayerBackUp) { - p.GetPlayerBaseMod().Data = backUp.Data + // p.GetPlayerBaseMod().Data = backUp.Data p.PlayMod.Recover(backUp) p.Msg = make(map[string]PlayerMsg) } @@ -185,7 +185,7 @@ func (p *Player) InitPlayer(UserName string) error { p.timerList = make(map[string]*timer.Timer) p.MDispatr = timer.NewDispatcher(100) p.stopSignal = make(chan bool) - Base := &PlayerBaseData{} + Base := &PlayerBaseData{p: p} // 玩家基础数据 ok := Base.LoadDataFromDB(UserName) @@ -205,7 +205,7 @@ func (p *Player) InitPlayer(UserName string) error { log.Debug("load PlayerModData failed:", UserName) return errors.New("load PlayerModData failed") } - IsUpdate, err := modData.InitMod() + IsUpdate, err := modData.InitMod(p) if err != nil { log.Debug("InitMod failed:", err) return err @@ -340,6 +340,7 @@ func (p *Player) Login() { LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_FOOD) LimitedTimePlayroomTrigger(p, playroom.MOOD_TYPE_CLEAN) LimitedTimePlayroomWorkTrigger(p) + LimitedTimeEnergyAdd(p) ActivityLogin(p) LoignBack(p) p.PlayMod.getCardMod().Login(G_GameLogicPtr.SeverInfo.OpenTime) @@ -659,7 +660,7 @@ func (p *Player) InitPlayerOnly() { p.MDispatr = timer.NewDispatcher(10) p.stopSignal = make(chan bool) - Base := &PlayerBaseData{} + Base := &PlayerBaseData{p: p} // 玩家基础数据 ok := Base.GetDataByUid(p.M_DwUin) @@ -675,7 +676,7 @@ func (p *Player) InitPlayerOnly() { if !ok { return } - modData.InitMod() + modData.InitMod(p) p.PlayMod.mod_list = modData.ModList } diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index 02d1cce0..415b5482 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -19,6 +19,7 @@ import ( ) type PlayerBaseData struct { + p *Player Data msg.ResPlayerBaseInfo } @@ -85,7 +86,7 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { sqlStr := "SELECT * FROM t_player_baseinfo WHERE user_name = ?" sqlStruck := db.ResPlayerBaseInfo{} if err := db.SqlDb.Get(&sqlStruck, sqlStr, UserName); err != nil { - log.Debug("get data failed, err:%v\n", err) + log.Debug("PlayerBaseData get data failed, err:%v\n", err) return false } @@ -116,64 +117,47 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { } func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { - // G_getGameLogic().Mlogger.Debug("SaveDataFromDB:", p.Data.DwUin) + BaseMod := p.p.PlayMod.getBaseMod() sqlStruck := db.ResPlayerBaseInfo{} - sqlStruck.Diamond = p.Data.Diamond + sqlStruck.Diamond = int32(BaseMod.Diamond) sqlStruck.DwUin = p.Data.DwUin - sqlStruck.Energy = p.Data.Energy - sqlStruck.Star = p.Data.Star - sqlStruck.RecoverTime = p.Data.RecoverTime - sqlStruck.Level = p.Data.Level - sqlStruck.Exp = p.Data.Exp + sqlStruck.Energy = int32(BaseMod.Energy) + sqlStruck.Star = int32(BaseMod.Star) + sqlStruck.RecoverTime = int32(BaseMod.RecoverTime) + sqlStruck.Level = int32(BaseMod.Level) + sqlStruck.Exp = int32(BaseMod.Exp) sqlStruck.StartOrderId = p.Data.StartOrderId sqlStruck.MusicCode = p.Data.MusicCode sqlStruck.Guild = p.Data.Guild sqlStruck.PackUnlockCount = p.Data.PackUnlockCount sqlStruck.LastPlayTime = p.Data.LastPlayTime sqlStruck.EnergyBuyCount = p.Data.EnergyBuyCount - sqlStruck.LoginTime = p.Data.LoginTime + sqlStruck.LoginTime = int32(BaseMod.LoginTime) sqlStruck.UserName = p.Data.UserName - sqlStruck.LogoutTime = p.Data.LogoutTime + sqlStruck.LogoutTime = int32(BaseMod.LogoutTime) sqlStruck.Todayolinetime = p.Data.Todayolinetime sqlStruck.Rolecreatetime = p.Data.Rolecreatetime sqlStruck.NoAd = p.Data.NoAd sqlStruck.ChampshipsGroupID = p.Data.ChampshipsGroupID sqlStruck.LastChampGroupID = p.Data.LastChampGroupID - sqlStruck.FaceBookId = p.Data.FaceBookId + sqlStruck.FaceBookId = BaseMod.FackBookId db.FormatAllMemUpdateDb(&sqlStruck, "t_player_baseinfo", "dwUin") return true } func (p *PlayerBaseData) GetMaxEnergyMul(player *Player) int { - MaxEnergyMul := userCfg.GetEnergyMulByLv(int(p.Data.Level)) + BaseMod := player.PlayMod.getBaseMod() + MaxEnergyMul := userCfg.GetEnergyMulByLv(BaseMod.Level) if player.PlayMod.getLimitedTimeEventMod().CheckExist(limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER) { MaxEnergyMul = 10 } return MaxEnergyMul } -func (p *PlayerBaseData) GetMaxEnergy() int32 { - MaxSta := MergeConst.G_Sta_Limit - - if p.Data.Level < 7 { - MaxSta = MergeConst.G_Sta_Limit - } else if p.Data.Level < 12 { - MaxSta = 120 - } else if p.Data.Level < 19 { - MaxSta = 130 - } else if p.Data.Level < 27 { - MaxSta = 135 - } else if p.Data.Level < 38 { - MaxSta = 140 - } else if p.Data.Level < 44 { - MaxSta = 145 - } else if p.Data.Level < 59 { - MaxSta = 150 - } else { - MaxSta = 155 - } - return MaxSta +func (p *PlayerBaseData) GetMaxEnergy() int { + BaseMod := p.p.PlayMod.getBaseMod() + return userCfg.GetEnergyMax(BaseMod.Level) } // 更新游戏道具 @@ -209,6 +193,19 @@ func (p *PlayerBaseData) ReqRemoveAd(player *Player, buf []byte) { } func (p *PlayerBaseData) ResPlayerBaseInfo(player *Player) { + BaseMod := player.PlayMod.getBaseMod() + player.PushClientRes(&msg.ResPlayerBaseInfo{ + DwUin: p.Data.DwUin, + Energy: int32(BaseMod.Energy), + Star: int32(BaseMod.Star), + RecoverTime: int32(BaseMod.RecoverTime), + Diamond: int32(BaseMod.Diamond), + Level: int32(BaseMod.Level), + Exp: int32(BaseMod.Exp), + LoginTime: int32(BaseMod.LoginTime), + LogoutTime: int32(BaseMod.LogoutTime), + FaceBookId: p.Data.FaceBookId, + }) agent := player.GetAgentByPlayer() data, _ := proto.Marshal(&p.Data) G_getGameLogic().PackResInfo(agent, "ResPlayerBaseInfo", data) @@ -425,61 +422,65 @@ func (p *PlayerBaseData) ClearData() bool { // 增加减少体力 func (p *PlayerBaseData) AddEnergy(player *Player, cnt int) error { - NewEnergy := p.Data.Energy + int32(cnt) + BaseMod := p.p.PlayMod.getBaseMod() + NewEnergy := BaseMod.Energy + cnt if NewEnergy < 0 { return errors.New("能量不足") } if cnt < 0 { player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_ENERGY, A: []interface{}{-cnt}}) } - if p.Data.Energy >= p.GetMaxEnergy() && NewEnergy < p.GetMaxEnergy() { - Recover := userCfg.GetRecover(int(p.Data.Level)) + if BaseMod.Energy >= p.GetMaxEnergy() && NewEnergy < p.GetMaxEnergy() { + Recover := userCfg.GetRecover(int(BaseMod.Level)) player.CallEvent(time.Duration(Recover)*time.Second, func() { player.lock.Lock() defer player.lock.Unlock() LimitedTimeEnergyAdd(player) }, "AddEnergy") - p.Data.RecoverTime = int32(time.Now().Unix()) + BaseMod.RecoverTime = time.Now().Unix() } - p.Data.Energy = NewEnergy + BaseMod.Energy = NewEnergy return nil } // 增加减少星星 func (p *PlayerBaseData) AddStar(player *Player, cnt int) error { - NewStar := p.Data.Star + int32(cnt) + BaseMod := p.p.PlayMod.getBaseMod() + NewStar := BaseMod.Star + cnt if NewStar < 0 { return errors.New("星星不足") } - p.Data.Star = NewStar + BaseMod.Star = NewStar player.UpdateUserInfo() return nil } // 增加减少钻石 func (p *PlayerBaseData) AddDiamond(cnt int) error { - NewDiamond := p.Data.Diamond + int32(cnt) + BaseMod := p.p.PlayMod.getBaseMod() + NewDiamond := BaseMod.Diamond + cnt if NewDiamond < 0 { return errors.New("钻石不足") } - p.Data.Diamond = NewDiamond + BaseMod.Diamond = NewDiamond return nil } // 增加经验 func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) { - p.Data.Exp += int32(exp) + BaseMod := player.PlayMod.getBaseMod() + BaseMod.Exp += exp upLv := 0 upExp := userCfg.GetLevUpExp(int(p.Data.Level)) Num := 0 UpLevelItem := make([]*item.Item, 0) - for p.Data.Exp >= int32(upExp) { + for BaseMod.Exp >= upExp { if Num > 100 { break } Num++ - p.Data.Level++ - p.Data.Exp -= int32(upExp) + BaseMod.Level++ + BaseMod.Exp -= upExp upExp = userCfg.GetLevUpExp(int(p.Data.Level)) // 日常任务解锁 DailyTaskMod := player.PlayMod.getDailyTaskMod() @@ -487,27 +488,27 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) { if DailyTaskMod.LevUpTrigger(int(p.Data.Level), DecorateMod.GetAreaId()) { player.PushClientRes(DailyTaskMod.BackData()) } - upLv = int(p.Data.Level) + upLv = BaseMod.Level Items := userCfg.GetLevUpReward(upLv) UpLevelItem = item.Merge(UpLevelItem, Items) // 棋盘背包解锁 player.PushClientRes(p.BackAsset()) ChessMod := player.PlayMod.getChessMod() - if ChessMod.TriggerChessBagUnlock(int(p.Data.Level)) { + if ChessMod.TriggerChessBagUnlock(int(BaseMod.Level)) { player.PushClientRes(ChessMod.BackData()) } ChargeMod := player.PlayMod.getChargeMod() - ChargeMod.TriggerChargeUnlock(int(p.Data.Level), ChessMod.GetEmitList()) + ChargeMod.TriggerChargeUnlock(int(BaseMod.Level), ChessMod.GetEmitList()) player.PushClientRes(ChargeMod.BackData()) // 重载活动 player.initAcitivity() telog.Te.Track(p.Data.UserName, p.Data.UserName, "level_up", map[string]interface{}{ - "after_level": p.Data.Level, + "after_level": BaseMod.Level, }) telog.Te.Track(p.Data.UserName, p.Data.UserName, "property_level_up", map[string]interface{}{ - "property_level": p.Data.Level, - "property_level_reward": userCfg.GetUnlock(int(p.Data.Level)), + "property_level": BaseMod.Level, + "property_level_reward": userCfg.GetUnlock(int(BaseMod.Level)), }) } if len(UpLevelItem) > 0 { @@ -522,36 +523,47 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) { } func (p *PlayerBaseData) GetLevel() int { - return int(p.Data.Level) + BaseMod := p.p.PlayMod.getBaseMod() + return BaseMod.Level } func (p *PlayerBaseData) GetExp() int { - return int(p.Data.Exp) + BaseMod := p.p.PlayMod.getBaseMod() + return BaseMod.Exp } func (p *PlayerBaseData) GetDiamond() int { - return int(p.Data.Diamond) + BaseMod := p.p.PlayMod.getBaseMod() + return BaseMod.Diamond } func (p *PlayerBaseData) GetEnergy() int { - return int(p.Data.Energy) + BaseMod := p.p.PlayMod.getBaseMod() + return BaseMod.Energy +} + +func (p *PlayerBaseData) SetEnergy(Energy int) { + BaseMod := p.p.PlayMod.getBaseMod() + BaseMod.Energy = Energy } func (p *PlayerBaseData) GetStar() int { - return int(p.Data.Star) + BaseMod := p.p.PlayMod.getBaseMod() + return BaseMod.Star } func (p *PlayerBaseData) BackAsset() *msg.ResPlayerAsset { + BaseMod := p.p.PlayMod.getBaseMod() return &msg.ResPlayerAsset{ - DwUin: p.Data.DwUin, - Diamond: p.Data.Diamond, - Energy: p.Data.Energy, - Star: p.Data.Star, - RecoverTime: p.Data.RecoverTime, - Level: p.Data.Level, - Exp: p.Data.Exp, - Login: p.Data.LoginTime, - Logout: p.Data.LogoutTime, + DwUin: BaseMod.Uid, + Diamond: int32(BaseMod.Diamond), + Energy: int32(BaseMod.Energy), + Star: int32(BaseMod.Star), + RecoverTime: int32(BaseMod.RecoverTime), + Level: int32(BaseMod.Level), + Exp: int32(BaseMod.Exp), + Login: int32(BaseMod.LoginTime), + Logout: int32(BaseMod.LogoutTime), } } @@ -560,7 +572,8 @@ func (p *PlayerBaseData) GetSevenLoginAdd() int { } func (p *PlayerBaseData) GetLastLoginTime() int { - return int(p.Data.LoginTime) + BaseMod := p.p.PlayMod.getBaseMod() + return int(BaseMod.LoginTime) } func (p *PlayerBaseData) GetName() string { @@ -568,7 +581,8 @@ func (p *PlayerBaseData) GetName() string { } func (p *PlayerBaseData) GetLoginTime() int64 { - return int64(p.Data.LoginTime) + BaseMod := p.p.PlayMod.getBaseMod() + return int64(BaseMod.LoginTime) } func (p *PlayerBaseData) GetDataByUid(Uid interface{}) bool { diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index ebea3456..b0e42a0d 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -421,7 +421,6 @@ func BackUserInfo(p *Player) { FaceMod := p.PlayMod.getFaceMod() AvatarMod := p.PlayMod.getAvatarMod() DecorateMod := p.PlayMod.getDecorateMod() - PlayerBaseMod := p.GetPlayerBaseMod() p.PushClientRes(&proto.UserInfo{ Uid: p.M_DwUin, Nickname: BaseMod.NickName, @@ -430,7 +429,7 @@ func BackUserInfo(p *Player) { DecorateCnt: int32(DecorateMod.DecorateNum), AvatarList: AvatarMod.BackData(), FaceList: FaceMod.BackData(), - Login: PlayerBaseMod.Data.LoginTime, + Login: int32(BaseMod.GetLoginTime()), PetName: BaseMod.PetName, }) } diff --git a/src/server/game/PlayerMod.go b/src/server/game/PlayerMod.go index 5769de93..f196eb13 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/PlayerMod.go @@ -107,7 +107,7 @@ func (p *PlayerModData) Reconnect(b bool) []byte { return []byte{} } -func (p *PlayerModData) InitMod() (bool, error) { +func (p *PlayerModData) InitMod(player *Player) (bool, error) { playerModList := PlayerModList{} if len(p.Data.ModData) > 0 { buf := bytes.NewBuffer(p.Data.ModData) @@ -129,6 +129,23 @@ func (p *PlayerModData) InitMod() (bool, error) { p.ModList.Chess = chessMod is_update = true } + BaseMod := p.ModList.Base + if BaseMod.Uid == 0 { + PlayerBaseMod := player.GetPlayerBaseMod() + BaseMod.Uid = PlayerBaseMod.Data.DwUin + BaseMod.SetAccount(PlayerBaseMod.Data.UserName) + BaseMod.SetLevel(int(PlayerBaseMod.Data.Level)) + BaseMod.SetExp(int(PlayerBaseMod.Data.Exp)) + BaseMod.SetEnergy(int(PlayerBaseMod.Data.Energy)) + BaseMod.SetStar(int(PlayerBaseMod.Data.Star)) + BaseMod.SetDiamond(int(PlayerBaseMod.Data.Diamond)) + BaseMod.SetRecoverTime(int64(PlayerBaseMod.Data.RecoverTime)) + BaseMod.FackBookId = PlayerBaseMod.Data.FaceBookId + BaseMod.SetLoginTime(int64(PlayerBaseMod.Data.LoginTime)) + BaseMod.SetLogoutTime(int64(PlayerBaseMod.Data.LogoutTime)) + p.ModList.Base = BaseMod + is_update = true + } p.ModList.Handbook.InitData() p.ModList.Order.InitData() diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index 58fc5ea9..c59ef089 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -2,6 +2,7 @@ package base import ( "fmt" + "server/GoUtil" baseCfg "server/conf/base" "server/game/mod/item" "server/msg" @@ -12,6 +13,17 @@ const ( ) type Base struct { + Account string + Uid int64 + Level int + Exp int + Energy int + Star int + Diamond int + LoginTime int64 + LogoutTime int64 + RecoverTime int64 + FackBookId string EnergyMul int IsFirstBuy bool EnergyBuy int @@ -32,6 +44,11 @@ func (b *Base) InitData(Uid int) { } } +func (b *Base) Login() { + b.LoginTime = GoUtil.Now() + b.LogoutTime = 0 +} + func (b *Base) GetNickName() string { return b.NickName } @@ -68,6 +85,79 @@ func (b *Base) SetFacebookUrl(Url string) { b.FacebookUrl = Url } +func (b *Base) GetEnergyBuy() int { + return b.EnergyBuy +} + +func (b *Base) GetEnergy() int { + return b.Energy +} + +func (b *Base) GetLevel() int { + return b.Level +} + +func (b *Base) GetExp() int { + return b.Exp +} + +func (b *Base) GetStar() int { + return b.Star +} + +func (b *Base) GetDiamond() int { + return b.Diamond +} + +func (b *Base) GetCumulative() int { + return b.Cumulative +} + +func (b *Base) GetLoginTime() int64 { + return b.LoginTime +} + +func (b *Base) SetAccount(Account string) { + b.Account = Account +} + +func (b *Base) SetUid(Uid int64) { + b.Uid = Uid +} + +func (b *Base) SetLevel(Level int) { + b.Level = Level +} + +func (b *Base) SetExp(Exp int) { + b.Exp = Exp +} + +func (b *Base) SetEnergy(Energy int) { + b.Energy = Energy + +} + +func (b *Base) SetStar(Star int) { + b.Star = Star +} + +func (b *Base) SetDiamond(Diamond int) { + b.Diamond = Diamond +} + +func (b *Base) SetRecoverTime(RecoverTime int64) { + b.RecoverTime = RecoverTime +} + +func (b *Base) SetLoginTime(LoginTime int64) { + b.LoginTime = LoginTime +} + +func (b *Base) SetLogoutTime(LogoutTime int64) { + b.LogoutTime = LogoutTime +} + func (b *Base) BuyEnergy(Energy int) ([]*item.Item, int, int) { if !b.IsFirstBuy { b.IsFirstBuy = true @@ -100,6 +190,7 @@ func (b *Base) ZeroUpdate() { } func (b *Base) Outline(Time int) { + b.LogoutTime = GoUtil.Now() b.TodayCumulative += Time b.Cumulative += Time }