优化系统bug
This commit is contained in:
parent
d5325f59e5
commit
0d7eea6356
@ -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)
|
||||
|
||||
@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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())
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user