优化系统bug
This commit is contained in:
parent
3d63153d66
commit
d5325f59e5
@ -1,6 +1,7 @@
|
||||
package GoUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -218,3 +219,9 @@ func InitNumSlice(start, end int) []int {
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func IntSliceToString(slice []int) string {
|
||||
str := fmt.Sprintf("%v", slice)
|
||||
str = strings.Trim(str, "[]")
|
||||
return str
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import (
|
||||
)
|
||||
|
||||
var Server struct {
|
||||
AppID int
|
||||
LogLevel string
|
||||
LogPath string
|
||||
WSAddr string
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
{
|
||||
"AppID": 1,
|
||||
"LogLevel": "debug",
|
||||
"LogPath": "",
|
||||
"TCPAddr": ":3565",
|
||||
|
||||
@ -187,6 +187,9 @@ func FormatAllMemInsertDb(u interface{}, tableName string) (insertID int64, err
|
||||
if k == reflect.Int32 {
|
||||
Values[i] = ufield.Int()
|
||||
}
|
||||
if k == reflect.Int64 {
|
||||
Values[i] = ufield.Int()
|
||||
}
|
||||
}
|
||||
for i := range Fields {
|
||||
Fields[i] = "`" + Fields[i] + "`"
|
||||
|
||||
@ -23,7 +23,7 @@ type Db_Account struct {
|
||||
}
|
||||
|
||||
type ResPlayerBaseInfo struct {
|
||||
DwUin int32 `db:"dwUin"`
|
||||
DwUin int64 `db:"dwUin"`
|
||||
Energy int32 `db:"energy"`
|
||||
Star int32 `db:"star"`
|
||||
RecoverTime int32 `db:"recover_time"`
|
||||
@ -458,7 +458,7 @@ type SqlAddFriendStruct struct {
|
||||
}
|
||||
|
||||
type SqlModStruct struct {
|
||||
DwUin int32 `db:"dwUin"`
|
||||
DwUin int64 `db:"dwUin"`
|
||||
ModData []byte `db:"mData"`
|
||||
UpdataTime int32 `db:"updateTime"`
|
||||
}
|
||||
|
||||
@ -213,7 +213,7 @@ func (c *ChampshipMgr) GetPreRankMsg(Uid int) *proto.ResChampshipPreRank {
|
||||
continue
|
||||
}
|
||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||
Uid: int32(v.Uid),
|
||||
Uid: int64(v.Uid),
|
||||
Score: float32(v.Score),
|
||||
Name: Robot.Name,
|
||||
Avatar: int32(Robot.Avatar),
|
||||
@ -226,7 +226,7 @@ func (c *ChampshipMgr) GetPreRankMsg(Uid int) *proto.ResChampshipPreRank {
|
||||
continue
|
||||
}
|
||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||
Uid: int32(v.Uid),
|
||||
Uid: int64(v.Uid),
|
||||
Score: float32(v.Score),
|
||||
Name: SimplePlayer.Name,
|
||||
Avatar: int32(SimplePlayer.Avatar),
|
||||
@ -266,7 +266,7 @@ func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank {
|
||||
continue
|
||||
}
|
||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||
Uid: int32(v.Uid),
|
||||
Uid: int64(v.Uid),
|
||||
Score: float32(v.Score),
|
||||
Name: Robot.Name,
|
||||
Avatar: int32(Robot.Avatar),
|
||||
@ -279,7 +279,7 @@ func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank {
|
||||
continue
|
||||
}
|
||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||
Uid: int32(v.Uid),
|
||||
Uid: int64(v.Uid),
|
||||
Score: float32(v.Score),
|
||||
Name: SimplePlayer.Name,
|
||||
Avatar: int32(SimplePlayer.Avatar),
|
||||
|
||||
@ -96,7 +96,7 @@ func (f *FriendMgr) sync(m *msg.Msg) (interface{}, error) {
|
||||
|
||||
// 发送消息给玩家
|
||||
func sendToPlayer(m *msg.Msg) error {
|
||||
p := G_GameLogicPtr.GetPlayer(int32(m.To))
|
||||
p := G_GameLogicPtr.GetPlayer(int64(m.To))
|
||||
if p == nil || p.stop {
|
||||
return fmt.Errorf("player %d not online", m.To)
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ func (gl *GameLogic) DelPlayer(player *Player) {
|
||||
gl.M_Players.Delete(player.M_DwUin)
|
||||
}
|
||||
|
||||
func (gl *GameLogic) GetPlayer(DwUin int32) *Player {
|
||||
func (gl *GameLogic) GetPlayer(DwUin int64) *Player {
|
||||
if v, ok := gl.M_Players.Load(DwUin); ok {
|
||||
return v.(*Player)
|
||||
}
|
||||
@ -181,9 +181,9 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
insertId = insertId + int64(conf.Server.ServerID*100000)
|
||||
insertId = insertId + int64(conf.Server.ServerID*100000) + int64(conf.Server.AppID*100000000)
|
||||
playerInfo := &db.ResPlayerBaseInfo{}
|
||||
playerInfo.DwUin = int32(insertId)
|
||||
playerInfo.DwUin = int64(insertId)
|
||||
playerInfo.Energy = 100
|
||||
playerInfo.Star = 0
|
||||
playerInfo.RecoverTime = int32(time.Now().Unix())
|
||||
@ -207,7 +207,7 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool {
|
||||
encode := gob.NewEncoder(&buf)
|
||||
encode.Encode(&PlayerModList{})
|
||||
playerMod := &db.SqlModStruct{
|
||||
DwUin: int32(insertId),
|
||||
DwUin: int64(insertId),
|
||||
ModData: buf.Bytes(),
|
||||
UpdataTime: int32(time.Now().Unix()),
|
||||
}
|
||||
@ -393,7 +393,7 @@ func (ad *GameLogic) GetResSimplePlayerByUid(Id int) *msg.ResPlayerSimple {
|
||||
}
|
||||
|
||||
return &msg.ResPlayerSimple{
|
||||
Uid: int32(player.Uid),
|
||||
Uid: int64(player.Uid),
|
||||
Name: player.Name,
|
||||
Level: int32(player.Level),
|
||||
Avatar: int32(player.Avatar),
|
||||
@ -492,46 +492,6 @@ func (ad *GameLogic) ClearData(args []interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
func (ad *GameLogic) InitPromotionInsertDb(player *Player, StartSvrTime int32, EndSvrTime int32, ConfigActId int) int32 {
|
||||
st := &db.SqlLimitPromotionStruct{}
|
||||
st.DwUin = player.M_DwUin
|
||||
st.IsPay = 0
|
||||
st.StartSvrTime = StartSvrTime
|
||||
st.EndSvrTime = EndSvrTime
|
||||
st.ActiveID = 0
|
||||
st.ConfigActId = int32(ConfigActId)
|
||||
activityID, _ := db.FormatAllMemInsertDb(st, "t_player_LimitPromotion")
|
||||
|
||||
return int32(activityID)
|
||||
}
|
||||
|
||||
func (ad *GameLogic) InitInfinitePackInsertDb(player *Player, StartSvrTime int32, EndSvrTime int32, ConfigActId int) int32 {
|
||||
st := &db.SqlLimitInfinitePackStruct{}
|
||||
st.DwUin = player.M_DwUin
|
||||
st.CurGear = 1
|
||||
st.StartSvrTime = StartSvrTime
|
||||
st.EndSvrTime = EndSvrTime
|
||||
st.ActiveID = 0
|
||||
st.ConfigActId = int32(ConfigActId)
|
||||
activityID, _ := db.FormatAllMemInsertDb(st, "t_player_LimitInfinitePack")
|
||||
|
||||
return int32(activityID)
|
||||
}
|
||||
|
||||
func (ad *GameLogic) Init7DayLoginInsertDb(player *Player, StartSvrTime int32, EndSvrTime int32, ConfigActId int) int32 {
|
||||
st := &db.SqlSevenDayLoginStruct{}
|
||||
st.DwUin = player.M_DwUin
|
||||
st.LastGetTime = 0
|
||||
st.StartSvrTime = StartSvrTime
|
||||
st.EndSvrTime = EndSvrTime
|
||||
st.ActiveID = 0
|
||||
st.GetIndex = 0
|
||||
st.ConfigActId = int32(ConfigActId)
|
||||
activityID, _ := db.FormatAllMemInsertDb(st, "t_player_Limit7DayLogin")
|
||||
|
||||
return int32(activityID)
|
||||
}
|
||||
|
||||
func (ad *GameLogic) LoadSvrGlobalData() {
|
||||
sqlStr := "SELECT * FROM t_server_global_data WHERE Id = ?"
|
||||
|
||||
@ -597,7 +557,7 @@ func (ad *GameLogic) ReplaceExistPlayerAndAgent(a gate.Agent, player *Player) er
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ad *GameLogic) SendMassage(dwUin int32, Func string, data []byte) bool {
|
||||
func (ad *GameLogic) SendMassage(dwUin int64, Func string, data []byte) bool {
|
||||
player := ad.GetPlayer(dwUin)
|
||||
if player != nil {
|
||||
agent := player.GetAgentByPlayer()
|
||||
@ -841,7 +801,7 @@ func (ad *GameLogic) NotifyAll(m *MsgMod.Msg) {
|
||||
}
|
||||
|
||||
func NotifyPlayer(Uid int, m *MsgMod.Msg) {
|
||||
p := G_GameLogicPtr.GetPlayer(int32(Uid))
|
||||
p := G_GameLogicPtr.GetPlayer(int64(Uid))
|
||||
if p == nil || p.stop {
|
||||
return
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ func ReqGmCommand(args []interface{}) error {
|
||||
player.PushClientRes(player.PlayMod.mod_list.Card.BackData())
|
||||
case "addexp":
|
||||
num, _ := strconv.Atoi(arg[1])
|
||||
player.GetPlayerBaseMod().AddExp(num)
|
||||
player.GetPlayerBaseMod().AddExp(player, num)
|
||||
player.PushClientRes(&player.GetPlayerBaseMod().Data)
|
||||
case "setlv":
|
||||
num, _ := strconv.Atoi(arg[1])
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"math"
|
||||
"server/GoUtil"
|
||||
userCfg "server/conf/user"
|
||||
"server/game/mod/card"
|
||||
"server/game/mod/limitedTimeEvent"
|
||||
MsgMod "server/game/mod/msg" // Ensure this package exists and is correctly referenced
|
||||
@ -37,7 +38,7 @@ func LimitedTimeEventTrigger(p *Player, AddEventId int) {
|
||||
switch v {
|
||||
case limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER:
|
||||
EnergyMul := p.PlayMod.getBaseMod().GetEnergyMul()
|
||||
MaxEnergyMul := p.GetPlayerBaseMod().GetMaxEnergyMul()
|
||||
MaxEnergyMul := p.GetPlayerBaseMod().GetMaxEnergyMul(p)
|
||||
p.PlayMod.getBaseMod().ResetEnergyMul(MaxEnergyMul)
|
||||
NewEnergyMul := p.PlayMod.getBaseMod().GetEnergyMul()
|
||||
OrderMod := p.PlayMod.getOrderMod()
|
||||
@ -178,3 +179,27 @@ func LimitedTimePlayroomWorkTrigger(p *Player) {
|
||||
}, "PlayroomWork")
|
||||
}
|
||||
}
|
||||
|
||||
func LimitedTimeEnergyAdd(p *Player) {
|
||||
curtime := time.Now().Unix()
|
||||
PlayerBaseMod := p.GetPlayerBaseMod()
|
||||
delta := curtime - (int64)(PlayerBaseMod.Data.RecoverTime)
|
||||
Recover := userCfg.GetRecover(int(PlayerBaseMod.Data.Level))
|
||||
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()
|
||||
}
|
||||
p.CallEvent(time.Duration(Recover)*time.Second, func() {
|
||||
p.lock.Lock()
|
||||
defer p.lock.Unlock()
|
||||
LimitedTimeEnergyAdd(p)
|
||||
}, "AddEnergy")
|
||||
}
|
||||
PlayerBaseMod.Data.RecoverTime = int32(curtime)
|
||||
p.SendErrClienRes(PlayerBaseMod.BackAsset())
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ type LogMgr struct {
|
||||
}
|
||||
|
||||
type Log struct {
|
||||
Uid int32
|
||||
Uid int64
|
||||
EventName string
|
||||
Param map[string]interface{}
|
||||
TimeStamp int64
|
||||
|
||||
@ -41,23 +41,23 @@ import (
|
||||
//"fmt"
|
||||
|
||||
type Player struct {
|
||||
playerdata map[string]PlayerDataModule
|
||||
PlayMod PlayerMod
|
||||
M_DwUin int32
|
||||
agent gate.Agent
|
||||
lock sync.Mutex
|
||||
stopSignal chan bool
|
||||
Msg map[string]PlayerMsg
|
||||
Trigger []*quest.Trigger
|
||||
MDispatr *timer.Dispatcher
|
||||
McronSave *cron.Cron
|
||||
McronSaveID cron.EntryID
|
||||
msgChan chan *MsgMod.Msg
|
||||
args map[string]interface{}
|
||||
timerList map[string]*timer.Timer
|
||||
activity map[int]*ActivityInfo
|
||||
stop bool
|
||||
wg sync.WaitGroup
|
||||
PlayerBaseMod *PlayerBaseData
|
||||
PlayMod PlayerMod
|
||||
M_DwUin int64
|
||||
agent gate.Agent
|
||||
lock sync.Mutex
|
||||
stopSignal chan bool
|
||||
Msg map[string]PlayerMsg
|
||||
Trigger []*quest.Trigger
|
||||
MDispatr *timer.Dispatcher
|
||||
McronSave *cron.Cron
|
||||
McronSaveID cron.EntryID
|
||||
msgChan chan *MsgMod.Msg
|
||||
args map[string]interface{}
|
||||
timerList map[string]*timer.Timer
|
||||
activity map[int]*ActivityInfo
|
||||
stop bool
|
||||
wg sync.WaitGroup
|
||||
}
|
||||
|
||||
type PlayerBackUp struct {
|
||||
@ -185,9 +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)
|
||||
p.playerdata = make(map[string]PlayerDataModule)
|
||||
Base := &PlayerBaseData{PlayerData: NewPlayerData(PLAYER_BASE_DATA, p)}
|
||||
p.playerdata[PLAYER_BASE_DATA] = Base
|
||||
Base := &PlayerBaseData{}
|
||||
|
||||
// 玩家基础数据
|
||||
ok := Base.LoadDataFromDB(UserName)
|
||||
@ -195,17 +193,10 @@ func (p *Player) InitPlayer(UserName string) error {
|
||||
log.Debug("load PlayerBaseData failed:", UserName)
|
||||
return errors.New("load PlayerBaseData failed")
|
||||
}
|
||||
p.playerdata[PLAYER_BASE_DATA] = Base
|
||||
p.PlayerBaseMod = Base
|
||||
p.M_DwUin = Base.Data.DwUin
|
||||
|
||||
// 棋盘数据
|
||||
Chess := &PlayerChessData{PlayerData: NewPlayerData("PlayerChessData", p)}
|
||||
ok = Chess.LoadDataFromDB(Base.Data.DwUin)
|
||||
if !ok {
|
||||
log.Debug("load PlayerChessData failed:", UserName)
|
||||
return errors.New("load PlayerChessData failed")
|
||||
}
|
||||
p.playerdata["PlayerChessData"] = Chess
|
||||
|
||||
// 玩家模块数据
|
||||
modData := &PlayerModData{PlayerData: NewPlayerData("PlayerModData", p)}
|
||||
@ -377,11 +368,7 @@ func (p *Player) ClearData() {
|
||||
log.Debug("ClearData BeginTx failed:", err)
|
||||
return
|
||||
}
|
||||
for k, v := range p.playerdata {
|
||||
if k == PLAYER_BASE_DATA || k == "PlayerChessData" {
|
||||
v.ClearData()
|
||||
}
|
||||
}
|
||||
p.PlayerBaseMod.ClearData()
|
||||
p.PlayMod.ClearData(p)
|
||||
tx.Commit()
|
||||
p.Stop()
|
||||
@ -399,9 +386,8 @@ func (p *Player) AutoSaveData() {
|
||||
log.Debug("AutoSaveData BeginTx failed:", err)
|
||||
return
|
||||
}
|
||||
for _, v := range p.playerdata {
|
||||
v.SaveDataFromDB("")
|
||||
}
|
||||
|
||||
p.PlayerBaseMod.SaveDataFromDB("")
|
||||
p.PlayMod.ClearData(p)
|
||||
err = tx.Commit()
|
||||
if err != nil {
|
||||
@ -425,36 +411,8 @@ func (p *Player) SetAgent(a gate.Agent) {
|
||||
p.agent = a
|
||||
}
|
||||
|
||||
func (p *Player) GetIFGameData(key string) interface{} {
|
||||
v, ok := p.playerdata[key]
|
||||
if ok {
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Player) GetPlayerBaseMod() *PlayerBaseData {
|
||||
v, ok := p.playerdata[PLAYER_BASE_DATA]
|
||||
if ok {
|
||||
return v.(*PlayerBaseData)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Player) GetGameData(key string) PlayerDataModule {
|
||||
v, ok := p.playerdata[key]
|
||||
if ok {
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Player) GetGameMod(key string) interface{} {
|
||||
v, ok := p.playerdata[key]
|
||||
if ok {
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
return p.PlayerBaseMod
|
||||
}
|
||||
|
||||
func (p *Player) GetAgentByPlayer() gate.Agent {
|
||||
@ -495,7 +453,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
IType := itemCfg.GetItemType(v.Id)
|
||||
switch IType {
|
||||
case item.ITEM_TYPE_ENERGY: // 能量
|
||||
err := p.GetPlayerBaseMod().AddEnergy(v.Num)
|
||||
err := p.GetPlayerBaseMod().AddEnergy(p, v.Num)
|
||||
p.TeLog("asset_change", map[string]interface{}{
|
||||
"item_id": v.Id,
|
||||
"change_type": change_type,
|
||||
@ -507,7 +465,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
return err
|
||||
}
|
||||
case item.ITEM_TYPE_STAR: // 星星
|
||||
err := p.GetPlayerBaseMod().AddStar(v.Num)
|
||||
err := p.GetPlayerBaseMod().AddStar(p, v.Num)
|
||||
is_update = true
|
||||
if err != nil {
|
||||
return err
|
||||
@ -700,16 +658,15 @@ func (p *Player) InitPlayerOnly() {
|
||||
p.timerList = make(map[string]*timer.Timer)
|
||||
p.MDispatr = timer.NewDispatcher(10)
|
||||
p.stopSignal = make(chan bool)
|
||||
p.playerdata = make(map[string]PlayerDataModule)
|
||||
Base := &PlayerBaseData{PlayerData: NewPlayerData(PLAYER_BASE_DATA, p)}
|
||||
p.playerdata[PLAYER_BASE_DATA] = Base
|
||||
|
||||
Base := &PlayerBaseData{}
|
||||
|
||||
// 玩家基础数据
|
||||
ok := Base.GetDataByUid(p.M_DwUin)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
p.playerdata[PLAYER_BASE_DATA] = Base
|
||||
p.PlayerBaseMod = Base
|
||||
p.M_DwUin = Base.Data.DwUin
|
||||
|
||||
// 玩家模块数据
|
||||
@ -724,7 +681,7 @@ func (p *Player) InitPlayerOnly() {
|
||||
|
||||
// 获取玩家简单数据
|
||||
func (p *Player) GetSimpleData(Uid int, simple *PlayerSimpleData) error {
|
||||
p.M_DwUin = int32(Uid)
|
||||
p.M_DwUin = int64(Uid)
|
||||
p.InitPlayerOnly()
|
||||
Base := p.GetPlayerBaseMod()
|
||||
simple.Name = p.GetPlayerBaseMod().GetName()
|
||||
|
||||
@ -1,12 +1,9 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/gob"
|
||||
"errors"
|
||||
"server/GoUtil"
|
||||
"server/MergeConst"
|
||||
userCfg "server/conf/user"
|
||||
"server/db"
|
||||
@ -15,26 +12,14 @@ import (
|
||||
"server/game/mod/quest"
|
||||
"server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"server/pkg/github.com/name5566/leaf/timer"
|
||||
telog "server/thinkdata"
|
||||
"time"
|
||||
|
||||
"github.com/robfig/cron/v3"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
type PlayerBaseData struct {
|
||||
*PlayerData
|
||||
Data msg.ResPlayerBaseInfo
|
||||
KeyValueData map[int]string
|
||||
MLeafTimer *timer.Timer
|
||||
MTicker *time.Ticker
|
||||
McronSave *cron.Cron
|
||||
McronSaveID cron.EntryID
|
||||
Mdispatr *timer.Dispatcher
|
||||
DailyRenewTime int32
|
||||
Update bool
|
||||
isKeyValueDb bool
|
||||
Data msg.ResPlayerBaseInfo
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) GetData() interface{} {
|
||||
@ -103,9 +88,6 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool {
|
||||
log.Debug("get data failed, err:%v\n", err)
|
||||
return false
|
||||
}
|
||||
sqlStr1 := "SELECT * FROM t_player_client_data WHERE dwUin = ?"
|
||||
sqlStruck1 := db.SqlModStruct{}
|
||||
db.SqlDb.Get(&sqlStruck1, sqlStr1, sqlStruck.DwUin)
|
||||
|
||||
p.Data.Diamond = sqlStruck.Diamond
|
||||
p.Data.DwUin = sqlStruck.DwUin
|
||||
@ -127,72 +109,12 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool {
|
||||
p.Data.Rolecreatetime = sqlStruck.Rolecreatetime
|
||||
p.Data.LastChampGroupID = sqlStruck.LastChampGroupID
|
||||
p.Data.ChampshipsGroupID = sqlStruck.ChampshipsGroupID
|
||||
p.DailyRenewTime = sqlStruck.DailyRenewTime
|
||||
p.Data.NoAd = sqlStruck.NoAd
|
||||
p.Data.FaceBookId = sqlStruck.FaceBookId
|
||||
p.McronSave = cron.New()
|
||||
p.Reconnect(false)
|
||||
|
||||
p.KeyValueData = make(map[int]string)
|
||||
if len(sqlStruck1.ModData) > 0 {
|
||||
var buf bytes.Buffer
|
||||
buf.Write(sqlStruck1.ModData)
|
||||
decode := gob.NewDecoder(&buf)
|
||||
err := decode.Decode(&p.KeyValueData)
|
||||
if err != nil {
|
||||
log.Debug("decode failed, err:%v\n", err)
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) AddSta() error {
|
||||
curtime := time.Now().Unix()
|
||||
delta := curtime - (int64)(p.Data.RecoverTime)
|
||||
Recover := userCfg.GetRecover(int(p.Data.Level))
|
||||
Addsta := int(delta) / Recover
|
||||
if Addsta <= 0 {
|
||||
return nil
|
||||
}
|
||||
if p.GetMaxEnergy() > p.Data.Energy {
|
||||
p.Data.Energy = p.Data.Energy + int32(Addsta)
|
||||
if p.Data.Energy > p.GetMaxEnergy() {
|
||||
p.Data.Energy = p.GetMaxEnergy()
|
||||
}
|
||||
p.M_Player.CallEvent(time.Duration(Recover)*time.Second, func() {
|
||||
p.M_Player.lock.Lock()
|
||||
defer p.M_Player.lock.Unlock()
|
||||
p.AddSta()
|
||||
}, "AddEnergy")
|
||||
}
|
||||
p.Data.RecoverTime = int32(curtime)
|
||||
p.M_Player.SendErrClienRes(p.BackAsset())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) Reconnect(b bool) {
|
||||
p.AddSta()
|
||||
if G_GameLogicPtr.DailyTaskTimestamp > (int64)(p.DailyRenewTime) {
|
||||
p.DailyRenewTime = int32(G_GameLogicPtr.DailyTaskTimestamp)
|
||||
p.Data.EnergyBuyCount = 0
|
||||
}
|
||||
// GoUtil.RegisterEvent(MergeConst.Notify_Daily_Renew, p.Notify_Daily_Renew, p)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) Notify_Daily_Renew(param []interface{}) {
|
||||
p.Data.EnergyBuyCount = 0
|
||||
p.DailyRenewTime = int32(G_GameLogicPtr.DailyTaskTimestamp)
|
||||
notify := &msg.NotifyRenewBuyEnergyCnt{}
|
||||
notify.DwUin = p.M_Player.M_DwUin
|
||||
notify.CurCnt = 0
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(notify)
|
||||
G_getGameLogic().PackResInfo(agent, "NotifyRenewBuyEnergyCnt", data)
|
||||
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool {
|
||||
// G_getGameLogic().Mlogger.Debug("SaveDataFromDB:", p.Data.DwUin)
|
||||
sqlStruck := db.ResPlayerBaseInfo{}
|
||||
@ -214,29 +136,18 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool {
|
||||
sqlStruck.LogoutTime = p.Data.LogoutTime
|
||||
sqlStruck.Todayolinetime = p.Data.Todayolinetime
|
||||
sqlStruck.Rolecreatetime = p.Data.Rolecreatetime
|
||||
sqlStruck.DailyRenewTime = p.DailyRenewTime
|
||||
sqlStruck.NoAd = p.Data.NoAd
|
||||
sqlStruck.ChampshipsGroupID = p.Data.ChampshipsGroupID
|
||||
sqlStruck.LastChampGroupID = p.Data.LastChampGroupID
|
||||
sqlStruck.FaceBookId = p.Data.FaceBookId
|
||||
db.FormatAllMemUpdateDb(&sqlStruck, "t_player_baseinfo", "dwUin")
|
||||
|
||||
// 存储KeyValue
|
||||
var buf bytes.Buffer
|
||||
encode := gob.NewEncoder(&buf)
|
||||
encode.Encode(p.KeyValueData)
|
||||
// log.Debug("player :%d KeyValueData Save:%v ", p.Data.DwUin, p.KeyValueData)
|
||||
db.SavePlayerClientData(&db.SqlModStruct{
|
||||
DwUin: p.Data.DwUin,
|
||||
ModData: buf.Bytes(),
|
||||
UpdataTime: int32(GoUtil.Now()),
|
||||
})
|
||||
return true
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) GetMaxEnergyMul() int {
|
||||
func (p *PlayerBaseData) GetMaxEnergyMul(player *Player) int {
|
||||
MaxEnergyMul := userCfg.GetEnergyMulByLv(int(p.Data.Level))
|
||||
if p.M_Player.PlayMod.getLimitedTimeEventMod().CheckExist(limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER) {
|
||||
if player.PlayMod.getLimitedTimeEventMod().CheckExist(limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER) {
|
||||
MaxEnergyMul = 10
|
||||
}
|
||||
return MaxEnergyMul
|
||||
@ -265,26 +176,6 @@ func (p *PlayerBaseData) GetMaxEnergy() int32 {
|
||||
return MaxSta
|
||||
}
|
||||
|
||||
// 定时增加体力
|
||||
func (p *PlayerBaseData) NotifyAddSta(cnt int, timeStamp int64) {
|
||||
p.M_Player.lock.Lock()
|
||||
defer p.M_Player.lock.Unlock()
|
||||
if p.GetMaxEnergy() <= p.Data.Energy {
|
||||
return
|
||||
}
|
||||
G_getGameLogic().Mlogger.Debug("NotifyAddSta:", p.Data.DwUin)
|
||||
p.Data.Energy = p.Data.Energy + int32(cnt)
|
||||
p.Data.RecoverTime = int32(timeStamp)
|
||||
|
||||
notify := &msg.NotifyAddEnergy{}
|
||||
notify.AddCnt = int32(cnt)
|
||||
notify.DwUin = p.M_Player.M_DwUin
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(notify)
|
||||
G_getGameLogic().PackResInfo(agent, "NotifyAddEnergy", data)
|
||||
}
|
||||
|
||||
// 更新游戏道具
|
||||
func (p *PlayerBaseData) UpdateBaseItemInfo(update *msg.UpdateBaseItemInfo) {
|
||||
for k, v := range update.MUpdateItem {
|
||||
@ -304,7 +195,7 @@ func (p *PlayerBaseData) UpdateBaseItemInfo(update *msg.UpdateBaseItemInfo) {
|
||||
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ReqRemoveAd(buf []byte) {
|
||||
func (p *PlayerBaseData) ReqRemoveAd(player *Player, buf []byte) {
|
||||
req := &msg.ReqRemoveAd{}
|
||||
res := &msg.ResRemoveAd{}
|
||||
proto.Unmarshal(buf, req)
|
||||
@ -312,31 +203,18 @@ func (p *PlayerBaseData) ReqRemoveAd(buf []byte) {
|
||||
p.Data.NoAd = 1
|
||||
res.ResultCode = 0
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResRemoveAd", data)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ResPlayerBaseInfo(player *Player) {
|
||||
if player != p.M_Player {
|
||||
return
|
||||
}
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(&p.Data)
|
||||
G_getGameLogic().PackResInfo(agent, "ResPlayerBaseInfo", data)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) BackKv() *msg.ResKv {
|
||||
kv := make(map[int32]string)
|
||||
for k, v := range p.KeyValueData {
|
||||
kv[int32(k)] = v
|
||||
}
|
||||
return &msg.ResKv{
|
||||
Kv: kv,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ReqBindFacebookAccount(buf []byte) {
|
||||
func (p *PlayerBaseData) ReqBindFacebookAccount(player *Player, buf []byte) {
|
||||
req := &msg.ReqBindFacebookAccount{}
|
||||
res := &msg.ResBindFacebookAccount{}
|
||||
proto.Unmarshal(buf, req)
|
||||
@ -360,19 +238,19 @@ func (p *PlayerBaseData) ReqBindFacebookAccount(buf []byte) {
|
||||
res.ResultCode = 0
|
||||
p.Data.FaceBookId = req.BindAccountId
|
||||
res.BindAccountId = req.BindAccountId
|
||||
p.M_Player.TeLog("platform_connect", map[string]interface{}{
|
||||
player.TeLog("platform_connect", map[string]interface{}{
|
||||
"platform_type": "facebook",
|
||||
"platform_id": req.BindAccountId,
|
||||
"is_reward": false,
|
||||
})
|
||||
}
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResBindFacebookAccount", data)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ReqUnBindFacebook(buf []byte) {
|
||||
func (p *PlayerBaseData) ReqUnBindFacebook(player *Player, buf []byte) {
|
||||
req := &msg.ReqUnBindFacebook{}
|
||||
res := &msg.ResUnBindFacebook{}
|
||||
proto.Unmarshal(buf, req)
|
||||
@ -381,15 +259,15 @@ func (p *PlayerBaseData) ReqUnBindFacebook(buf []byte) {
|
||||
res.BindAccountId = req.BindAccountId
|
||||
p.Data.FaceBookId = ""
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResUnBindFacebook", data)
|
||||
p.M_Player.TeLog("platform_disconnect", map[string]interface{}{
|
||||
player.TeLog("platform_disconnect", map[string]interface{}{
|
||||
"platform_type": "facebook",
|
||||
"platform_id": req.BindAccountId,
|
||||
})
|
||||
}
|
||||
func (p *PlayerBaseData) ReqOnlyBindFacebook(buf []byte) {
|
||||
func (p *PlayerBaseData) ReqOnlyBindFacebook(player *Player, buf []byte) {
|
||||
req := &msg.ReqOnlyBindFacebook{}
|
||||
res := &msg.ResOnlyBindFacebook{}
|
||||
proto.Unmarshal(buf, req)
|
||||
@ -430,7 +308,7 @@ func (p *PlayerBaseData) ReqOnlyBindFacebook(buf []byte) {
|
||||
res.ResultCode = 0
|
||||
p.Data.FaceBookId = req.BindAccountId
|
||||
res.BindAccountId = req.BindAccountId
|
||||
p.M_Player.TeLog("platform_connect", map[string]interface{}{
|
||||
player.TeLog("platform_connect", map[string]interface{}{
|
||||
"platform_type": "facebook",
|
||||
"platform_id": req.BindAccountId,
|
||||
"is_reward": false,
|
||||
@ -444,12 +322,12 @@ func (p *PlayerBaseData) ReqOnlyBindFacebook(buf []byte) {
|
||||
|
||||
}
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResOnlyBindFacebook", data)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ReqSynGameData(buf []byte) {
|
||||
func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) {
|
||||
req := &msg.ReqSynGameData{}
|
||||
res := &msg.ResSynGameData{}
|
||||
proto.Unmarshal(buf, req)
|
||||
@ -463,7 +341,7 @@ func (p *PlayerBaseData) ReqSynGameData(buf []byte) {
|
||||
} else {
|
||||
isHaveOther = true
|
||||
}
|
||||
if sqlStruck.DwUin == p.M_Player.M_DwUin {
|
||||
if sqlStruck.DwUin == player.M_DwUin {
|
||||
return
|
||||
}
|
||||
OldPlayer := G_GameLogicPtr.GetPlayer(sqlStruck.DwUin)
|
||||
@ -534,43 +412,32 @@ func (p *PlayerBaseData) ReqSynGameData(buf []byte) {
|
||||
|
||||
}
|
||||
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResSynGameData", data)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ClearData() bool {
|
||||
p.Data.LogoutTime = int32(time.Now().Unix())
|
||||
GoUtil.RemoveEvent(MergeConst.Notify_Daily_Renew, p.Notify_Daily_Renew, p)
|
||||
p.McronSave.Remove(p.McronSaveID)
|
||||
p.McronSave.Stop()
|
||||
if p.MLeafTimer != nil {
|
||||
p.MLeafTimer.Stop()
|
||||
p.MLeafTimer = nil
|
||||
}
|
||||
if p.MTicker != nil {
|
||||
p.MTicker.Stop()
|
||||
p.MTicker = nil
|
||||
}
|
||||
p.SaveDataFromDB("")
|
||||
return true
|
||||
}
|
||||
|
||||
// 增加减少体力
|
||||
func (p *PlayerBaseData) AddEnergy(cnt int) error {
|
||||
func (p *PlayerBaseData) AddEnergy(player *Player, cnt int) error {
|
||||
NewEnergy := p.Data.Energy + int32(cnt)
|
||||
if NewEnergy < 0 {
|
||||
return errors.New("能量不足")
|
||||
}
|
||||
if cnt < 0 {
|
||||
p.M_Player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_ENERGY, A: []interface{}{-cnt}})
|
||||
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))
|
||||
p.M_Player.CallEvent(time.Duration(Recover)*time.Second, func() {
|
||||
p.M_Player.lock.Lock()
|
||||
defer p.M_Player.lock.Unlock()
|
||||
p.AddSta()
|
||||
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())
|
||||
}
|
||||
@ -579,13 +446,13 @@ func (p *PlayerBaseData) AddEnergy(cnt int) error {
|
||||
}
|
||||
|
||||
// 增加减少星星
|
||||
func (p *PlayerBaseData) AddStar(cnt int) error {
|
||||
func (p *PlayerBaseData) AddStar(player *Player, cnt int) error {
|
||||
NewStar := p.Data.Star + int32(cnt)
|
||||
if NewStar < 0 {
|
||||
return errors.New("星星不足")
|
||||
}
|
||||
p.Data.Star = NewStar
|
||||
p.M_Player.UpdateUserInfo()
|
||||
player.UpdateUserInfo()
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -600,7 +467,7 @@ func (p *PlayerBaseData) AddDiamond(cnt int) error {
|
||||
}
|
||||
|
||||
// 增加经验
|
||||
func (p *PlayerBaseData) AddExp(exp int) (int, error) {
|
||||
func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) {
|
||||
p.Data.Exp += int32(exp)
|
||||
upLv := 0
|
||||
upExp := userCfg.GetLevUpExp(int(p.Data.Level))
|
||||
@ -615,26 +482,26 @@ func (p *PlayerBaseData) AddExp(exp int) (int, error) {
|
||||
p.Data.Exp -= int32(upExp)
|
||||
upExp = userCfg.GetLevUpExp(int(p.Data.Level))
|
||||
// 日常任务解锁
|
||||
DailyTaskMod := p.M_Player.PlayMod.getDailyTaskMod()
|
||||
DecorateMod := p.M_Player.PlayMod.getDecorateMod()
|
||||
DailyTaskMod := player.PlayMod.getDailyTaskMod()
|
||||
DecorateMod := player.PlayMod.getDecorateMod()
|
||||
if DailyTaskMod.LevUpTrigger(int(p.Data.Level), DecorateMod.GetAreaId()) {
|
||||
p.M_Player.PushClientRes(DailyTaskMod.BackData())
|
||||
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()
|
||||
player.PushClientRes(p.BackAsset())
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
if ChessMod.TriggerChessBagUnlock(int(p.Data.Level)) {
|
||||
p.M_Player.PushClientRes(ChessMod.BackData())
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
}
|
||||
|
||||
ChargeMod := p.M_Player.PlayMod.getChargeMod()
|
||||
ChargeMod := player.PlayMod.getChargeMod()
|
||||
ChargeMod.TriggerChargeUnlock(int(p.Data.Level), ChessMod.GetEmitList())
|
||||
p.M_Player.PushClientRes(ChargeMod.BackData())
|
||||
player.PushClientRes(ChargeMod.BackData())
|
||||
// 重载活动
|
||||
p.M_Player.initAcitivity()
|
||||
player.initAcitivity()
|
||||
telog.Te.Track(p.Data.UserName, p.Data.UserName, "level_up", map[string]interface{}{
|
||||
"after_level": p.Data.Level,
|
||||
})
|
||||
@ -644,12 +511,12 @@ func (p *PlayerBaseData) AddExp(exp int) (int, error) {
|
||||
})
|
||||
}
|
||||
if len(UpLevelItem) > 0 {
|
||||
err := p.M_Player.HandleItem(UpLevelItem, msg.ITEM_POP_LABEL_LevUpReward.String())
|
||||
err := player.HandleItem(UpLevelItem, msg.ITEM_POP_LABEL_LevUpReward.String())
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
p.M_Player.PushClientRes(p.BackAsset())
|
||||
player.PushClientRes(p.BackAsset())
|
||||
return upLv, nil
|
||||
|
||||
}
|
||||
@ -732,18 +599,7 @@ func (p *PlayerBaseData) GetDataByUid(Uid interface{}) bool {
|
||||
p.Data.Rolecreatetime = sqlStruck.Rolecreatetime
|
||||
p.Data.LastChampGroupID = sqlStruck.LastChampGroupID
|
||||
p.Data.ChampshipsGroupID = sqlStruck.ChampshipsGroupID
|
||||
p.DailyRenewTime = sqlStruck.DailyRenewTime
|
||||
p.Data.NoAd = sqlStruck.NoAd
|
||||
p.Data.FaceBookId = sqlStruck.FaceBookId
|
||||
p.McronSave = cron.New()
|
||||
p.Reconnect(false)
|
||||
return true
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) SetKv(Key int, Value string) error {
|
||||
if p.KeyValueData == nil {
|
||||
p.KeyValueData = make(map[int]string)
|
||||
}
|
||||
p.KeyValueData[Key] = Value
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ import (
|
||||
)
|
||||
|
||||
type PlayerChessData struct {
|
||||
*PlayerData
|
||||
Data msg.ResPlayerChessData
|
||||
ColorData msg.ResChessColorData
|
||||
}
|
||||
@ -35,12 +34,9 @@ func (p *PlayerChessData) SaveDataFromDB(Key interface{}) bool {
|
||||
}
|
||||
|
||||
func (p *PlayerChessData) ResPlayerChessData(player *Player) {
|
||||
if player != p.M_Player {
|
||||
return
|
||||
}
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
Msg := &p.Data
|
||||
ChessMod := p.M_Player.PlayMod.getChessMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
Msg.ChessList = ChessMod.BackData().ChessList
|
||||
Msg.MChessData = ChessMod.ChessMap
|
||||
data, _ := proto.Marshal(Msg)
|
||||
@ -48,66 +44,63 @@ func (p *PlayerChessData) ResPlayerChessData(player *Player) {
|
||||
}
|
||||
|
||||
func (p *PlayerChessData) ResChessColorData(player *Player) {
|
||||
if player != p.M_Player {
|
||||
return
|
||||
}
|
||||
agent := p.GetPlayer().GetAgentByPlayer()
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(&p.ColorData)
|
||||
G_getGameLogic().PackResInfo(agent, "ResChessColorData", data)
|
||||
}
|
||||
|
||||
// 同步棋盘数据
|
||||
func (p *PlayerChessData) UpdatePlayerChessData(buf []byte) error {
|
||||
func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) error {
|
||||
update := &msg.UpdatePlayerChessData{}
|
||||
proto.Unmarshal(buf, update)
|
||||
err := p.HandleChess(update.MChessHandle)
|
||||
err := p.HandleChess(player, update.MChessHandle)
|
||||
if err != nil {
|
||||
res := &msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
}
|
||||
p.M_Player.SendErrClienRes(res)
|
||||
player.SendErrClienRes(res)
|
||||
return err
|
||||
}
|
||||
p.M_Player.PushClientRes(&msg.ResUpdatePlayerChessData{
|
||||
player.PushClientRes(&msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
p.Data.MChessData = update.MChessData
|
||||
|
||||
if !p.checkChessEqual() {
|
||||
if !p.checkChessEqual(player) {
|
||||
res := &msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: "棋子数据不一致",
|
||||
}
|
||||
log.Debug("棋子数据不一致, %v---%v", p.Data.MChessData, p.M_Player.PlayMod.getChessMod().GetChessList())
|
||||
p.M_Player.SendErrClienRes(res)
|
||||
log.Debug("棋子数据不一致, %v---%v", p.Data.MChessData, player.PlayMod.getChessMod().GetChessList())
|
||||
player.SendErrClienRes(res)
|
||||
return fmt.Errorf("棋子数据不一致")
|
||||
}
|
||||
p.M_Player.PlayMod.getChessMod().ChessMap = update.MChessData
|
||||
player.PlayMod.getChessMod().ChessMap = update.MChessData
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *PlayerChessData) UpdateChessData(MChessData map[string]int32) error {
|
||||
func (p *PlayerChessData) UpdateChessData(player *Player, MChessData map[string]int32) error {
|
||||
p.Data.MChessData = MChessData
|
||||
if !p.checkChessEqual() {
|
||||
if !p.checkChessEqual(player) {
|
||||
res := &msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: "棋子数据不一致",
|
||||
}
|
||||
log.Debug("棋子数据不一致, %v---%v", p.Data.MChessData, p.M_Player.PlayMod.getChessMod().GetChessList())
|
||||
p.M_Player.SendErrClienRes(res)
|
||||
log.Debug("棋子数据不一致, %v---%v", p.Data.MChessData, player.PlayMod.getChessMod().GetChessList())
|
||||
player.SendErrClienRes(res)
|
||||
return fmt.Errorf("棋子数据不一致")
|
||||
}
|
||||
p.M_Player.PlayMod.getChessMod().ChessMap = MChessData
|
||||
player.PlayMod.getChessMod().ChessMap = MChessData
|
||||
return nil
|
||||
}
|
||||
|
||||
// 检查棋子数据是否一致
|
||||
func (p *PlayerChessData) checkChessEqual() bool {
|
||||
func (p *PlayerChessData) checkChessEqual(player *Player) bool {
|
||||
if len(p.Data.MChessData) == 0 {
|
||||
return true
|
||||
}
|
||||
ChessList := p.M_Player.PlayMod.getChessMod().GetChessList()
|
||||
ChessList := player.PlayMod.getChessMod().GetChessList()
|
||||
if len(ChessList) != len(p.Data.MChessData) {
|
||||
return false
|
||||
}
|
||||
@ -124,12 +117,12 @@ func (p *PlayerChessData) checkChessEqual() bool {
|
||||
}
|
||||
|
||||
// 棋子操作
|
||||
func (p *PlayerChessData) HandleChess(handle_list []*msg.ChessHandle) error {
|
||||
func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHandle) error {
|
||||
sort.Slice(handle_list, func(i, j int) bool {
|
||||
return handle_list[i].Id < handle_list[j].Id
|
||||
})
|
||||
ChessMod := p.M_Player.PlayMod.getChessMod()
|
||||
HandbookMod := p.M_Player.PlayMod.getHandbookMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
HandbookMod := player.PlayMod.getHandbookMod()
|
||||
var addChessCostEnergy int
|
||||
var buyChess int
|
||||
TriggerList := make([]*quest.Trigger, 0)
|
||||
@ -152,19 +145,19 @@ func (p *PlayerChessData) HandleChess(handle_list []*msg.ChessHandle) error {
|
||||
|
||||
b := HandbookMod.SetHandbook(ChessId) // 添加图鉴
|
||||
if b {
|
||||
p.M_Player.TeLog("collection_add", map[string]interface{}{
|
||||
player.TeLog("collection_add", map[string]interface{}{
|
||||
"item_id": ChessId,
|
||||
"item_name": mergeDataCfg.GetNameById(ChessId),
|
||||
})
|
||||
AddNewEmit = append(AddNewEmit, ChessId)
|
||||
}
|
||||
p.M_Player.PushClientRes(HandbookMod.BackData())
|
||||
player.PushClientRes(HandbookMod.BackData())
|
||||
case msg.HANDLE_TYPE_COMPOSE: //合成棋子
|
||||
NewChessId, err := ChessMod.ComposeChess(ChessId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
HandbookMod := p.M_Player.PlayMod.getHandbookMod() // 添加图鉴
|
||||
HandbookMod := player.PlayMod.getHandbookMod() // 添加图鉴
|
||||
b := HandbookMod.SetHandbook(NewChessId)
|
||||
if b {
|
||||
AddNewEmit = append(AddNewEmit, NewChessId)
|
||||
@ -173,9 +166,9 @@ func (p *PlayerChessData) HandleChess(handle_list []*msg.ChessHandle) error {
|
||||
NewChessIdLv := mergeDataCfg.GetLvById(NewChessId)
|
||||
TriggerList = append(TriggerList, &quest.Trigger{Label: quest.TRIGGER_LABEL_MERGELVTIME, A: []interface{}{NewChessIdLv}})
|
||||
TriggerList = append(TriggerList, &quest.Trigger{Label: quest.TRIGGER_LABEL_MERGETIME})
|
||||
p.M_Player.PushClientRes(HandbookMod.BackData())
|
||||
player.PushClientRes(HandbookMod.BackData())
|
||||
// 获取活动道具
|
||||
ActItem := GetActivityItem(p.M_Player, GoUtil.Int32ToInt(v.ActType))
|
||||
ActItem := GetActivityItem(player, GoUtil.Int32ToInt(v.ActType))
|
||||
itemList = item.Merge(itemList, ActItem)
|
||||
case msg.HANDLE_TYPE_BUY: //购买棋子
|
||||
loseGold, err := ChessMod.BuyChess(ChessId)
|
||||
@ -189,7 +182,7 @@ func (p *PlayerChessData) HandleChess(handle_list []*msg.ChessHandle) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
p.M_Player.TeLog("sell_item", map[string]interface{}{
|
||||
player.TeLog("sell_item", map[string]interface{}{
|
||||
"merge_item_id": ChessId,
|
||||
"get_star_num": items[0].Num,
|
||||
})
|
||||
@ -202,23 +195,23 @@ func (p *PlayerChessData) HandleChess(handle_list []*msg.ChessHandle) error {
|
||||
|
||||
//扣除体力
|
||||
if addChessCostEnergy > 0 {
|
||||
EnergyPow := p.M_Player.PlayMod.getBaseMod().GetEnergyMul()
|
||||
EnergyPow := player.PlayMod.getBaseMod().GetEnergyMul()
|
||||
ReduceEneny := int(math.Pow(2, float64(EnergyPow))) * addChessCostEnergy
|
||||
itemList = append(itemList, &item.Item{Id: item.ITEM_ENERGY_ID, Num: -ReduceEneny})
|
||||
}
|
||||
err := p.M_Player.HandleItem(itemList, msg.ITEM_POP_LABEL_HandleChess.String())
|
||||
err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_HandleChess.String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
OrderMod := p.M_Player.PlayMod.getOrderMod()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetChessList())
|
||||
if Update {
|
||||
p.M_Player.PushClientRes(OrderMod.BackData())
|
||||
player.PushClientRes(OrderMod.BackData())
|
||||
}
|
||||
p.M_Player.QuestTriggerList(TriggerList)
|
||||
EmitRetireTrigger1(p.M_Player)
|
||||
p.M_Player.PushClientRes(ChessMod.BackData())
|
||||
p.M_Player.PlayMod.save()
|
||||
player.QuestTriggerList(TriggerList)
|
||||
EmitRetireTrigger1(player)
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PlayMod.save()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -423,7 +423,7 @@ func BackUserInfo(p *Player) {
|
||||
DecorateMod := p.PlayMod.getDecorateMod()
|
||||
PlayerBaseMod := p.GetPlayerBaseMod()
|
||||
p.PushClientRes(&proto.UserInfo{
|
||||
Uid: int32(p.M_DwUin),
|
||||
Uid: p.M_DwUin,
|
||||
Nickname: BaseMod.NickName,
|
||||
Avatar: int32(AvatarMod.SetId),
|
||||
Face: int32(FaceMod.SetId),
|
||||
@ -459,7 +459,7 @@ func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard {
|
||||
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(Uid)
|
||||
return &proto.ResFriendCard{
|
||||
Uid: int32(Uid),
|
||||
Uid: int64(Uid),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
@ -512,7 +512,7 @@ func PlayroomBackData(p *Player) {
|
||||
}
|
||||
if !FriendMod.CheckFriend(k) {
|
||||
Opponent = append(Opponent, &proto.RoomOpponent{
|
||||
Uid: int32(k),
|
||||
Uid: int64(k),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
@ -528,7 +528,7 @@ func PlayroomBackData(p *Player) {
|
||||
}
|
||||
Times, _ := PlayroomMod.GetVisitorInfo(v)
|
||||
FriendList = append(FriendList, &proto.FriendRoom{
|
||||
Uid: int32(v),
|
||||
Uid: int64(v),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
@ -565,7 +565,7 @@ func PlayroomVisit(p *Player, Uid int) {
|
||||
if PlayerData.WorkStart > 0 && PlayerData.WorkStart+86400 > Now {
|
||||
Work = true
|
||||
}
|
||||
r.Uid = int32(Uid)
|
||||
r.Uid = int64(Uid)
|
||||
r.Name = PlayerData.Name
|
||||
r.Face = int32(PlayerData.Face)
|
||||
r.Avatar = int32(PlayerData.Avatar)
|
||||
|
||||
@ -76,13 +76,13 @@ type PlayerModList struct {
|
||||
func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool {
|
||||
sqlStr := "SELECT * FROM t_player_mod WHERE dwUin = ?"
|
||||
p.Data = db.SqlModStruct{}
|
||||
if err := db.SqlDb.Get(&p.Data, sqlStr, dwUin.(int32)); err != nil {
|
||||
if err := db.SqlDb.Get(&p.Data, sqlStr, dwUin.(int64)); err != nil {
|
||||
|
||||
p.IsHaveDataDb = false
|
||||
} else {
|
||||
p.IsHaveDataDb = true
|
||||
}
|
||||
p.Data.DwUin = dwUin.(int32)
|
||||
p.Data.DwUin = dwUin.(int64)
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@ -35,15 +35,7 @@ func ReqPlayerBaseInfofunction(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
detail := &msg.ReqPlayerBaseInfo{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
|
||||
if player.GetGameData("PlayerBaseData") == nil {
|
||||
data := &PlayerBaseData{PlayerData: NewPlayerData("PlayerBaseData", player)}
|
||||
ok := data.LoadDataFromDB(player.M_DwUin)
|
||||
if ok {
|
||||
player.playerdata["PlayerBaseData"] = data
|
||||
}
|
||||
}
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).ResPlayerBaseInfo(player)
|
||||
player.PlayerBaseMod.ResPlayerBaseInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -67,7 +59,7 @@ func ReqPlayerBriefProfileDataFunc(args []interface{}) error {
|
||||
// 移除广告
|
||||
func ReqRemoveAdFunc(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).ReqRemoveAd(buf)
|
||||
player.PlayerBaseMod.ReqRemoveAd(player, buf)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -76,7 +68,7 @@ func UpdateBaseItemInfofunction(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
detail := &msg.UpdateBaseItemInfo{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).UpdateBaseItemInfo(detail)
|
||||
player.PlayerBaseMod.UpdateBaseItemInfo(detail)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -85,71 +77,33 @@ func ReqPlayerChessDataFunc(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
detail := &msg.ReqPlayerChessData{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
|
||||
if player.GetGameData("PlayerChessData") == nil {
|
||||
data := &PlayerChessData{PlayerData: NewPlayerData("PlayerChessData", player)}
|
||||
ok := data.LoadDataFromDB(player.M_DwUin)
|
||||
if ok {
|
||||
player.playerdata["PlayerChessData"] = data
|
||||
}
|
||||
}
|
||||
player.GetIFGameData("PlayerChessData").(*PlayerChessData).ResPlayerChessData(player)
|
||||
playerChessData := &PlayerChessData{}
|
||||
playerChessData.ResPlayerChessData(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqBindFacebookAccount(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
|
||||
if player.GetGameData("PlayerBaseData") == nil {
|
||||
data := &PlayerBaseData{PlayerData: NewPlayerData("PlayerBaseData", player)}
|
||||
ok := data.LoadDataFromDB(player.M_DwUin)
|
||||
if ok {
|
||||
player.playerdata["PlayerBaseData"] = data
|
||||
}
|
||||
}
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).ReqBindFacebookAccount(buf)
|
||||
player.PlayerBaseMod.ReqBindFacebookAccount(player, buf)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqUnBindFacebook(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
|
||||
if player.GetGameData("PlayerBaseData") == nil {
|
||||
data := &PlayerBaseData{PlayerData: NewPlayerData("PlayerBaseData", player)}
|
||||
ok := data.LoadDataFromDB(player.M_DwUin)
|
||||
if ok {
|
||||
player.playerdata["PlayerBaseData"] = data
|
||||
}
|
||||
}
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).ReqUnBindFacebook(buf)
|
||||
player.PlayerBaseMod.ReqUnBindFacebook(player, buf)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqOnlyBindFacebook(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
|
||||
if player.GetGameData("PlayerBaseData") == nil {
|
||||
data := &PlayerBaseData{PlayerData: NewPlayerData("PlayerBaseData", player)}
|
||||
ok := data.LoadDataFromDB(player.M_DwUin)
|
||||
if ok {
|
||||
player.playerdata["PlayerBaseData"] = data
|
||||
}
|
||||
}
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).ReqOnlyBindFacebook(buf)
|
||||
player.PlayerBaseMod.ReqOnlyBindFacebook(player, buf)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqSynGameData(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
|
||||
if player.GetGameData("PlayerBaseData") == nil {
|
||||
data := &PlayerBaseData{PlayerData: NewPlayerData("PlayerBaseData", player)}
|
||||
ok := data.LoadDataFromDB(player.M_DwUin)
|
||||
if ok {
|
||||
player.playerdata["PlayerBaseData"] = data
|
||||
}
|
||||
}
|
||||
player.GetIFGameData("PlayerBaseData").(*PlayerBaseData).ReqSynGameData(buf)
|
||||
player.PlayerBaseMod.ReqSynGameData(player, buf)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -157,7 +111,7 @@ func RegSetEneryFunc(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqSetEnergyMul{}
|
||||
proto.Unmarshal(buf, req)
|
||||
MaxEnergyMul := player.GetPlayerBaseMod().GetMaxEnergyMul()
|
||||
MaxEnergyMul := player.GetPlayerBaseMod().GetMaxEnergyMul(player)
|
||||
if int(req.EnergyMul) > MaxEnergyMul {
|
||||
player.SendErrClienRes(&msg.ResSetEnergyMul{
|
||||
ResultCode: msg.RES_CODE_FAIL,
|
||||
@ -286,8 +240,8 @@ func ReqRewardOrder(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetChessFromBuff{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -378,7 +332,7 @@ func ReqDecorate(args []interface{}) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = player.GetPlayerBaseMod().AddExp(10)
|
||||
_, err = player.GetPlayerBaseMod().AddExp(player, 10)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResDecorate{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -439,7 +393,7 @@ func ReqDecorateAll(args []interface{}) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = player.GetPlayerBaseMod().AddExp(10 * DecorateNum)
|
||||
_, err = player.GetPlayerBaseMod().AddExp(player, 10*DecorateNum)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResDecorateAll{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -467,8 +421,8 @@ func ReqDecorateAll(args []interface{}) error {
|
||||
// 更新棋盘信息
|
||||
func UpdatePlayerChessDataFunc(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err := data.(*PlayerChessData).UpdatePlayerChessData(buf)
|
||||
data := &PlayerChessData{}
|
||||
err := data.UpdatePlayerChessData(player, buf)
|
||||
RedBackData(player)
|
||||
player.UpdateUserInfo()
|
||||
return err
|
||||
@ -497,8 +451,8 @@ func ReqGetChessFromBuff(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetChessFromBuff{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -534,8 +488,8 @@ func ReqPutChessInBag(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPutChessInBag{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -565,8 +519,8 @@ func ReqTakeChessOutBag(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResTakeChessOutBag{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -650,8 +604,8 @@ func ReqChessEx(args []interface{}) error {
|
||||
}
|
||||
HandbookMod := player.PlayMod.getHandbookMod()
|
||||
HandbookMod.SetHandbook(int(req.NewChessId))
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResChessEx{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -1983,8 +1937,8 @@ func ReqBuyChessShop2(args []interface{}) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResBuyChessShop2{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -3134,8 +3088,8 @@ func ReqPlayroomOutline(args []interface{}) error {
|
||||
}
|
||||
HandbookMod := player.PlayMod.getHandbookMod()
|
||||
HandbookMod.SetHandbook(int(req.NewChessId))
|
||||
data := player.GetIFGameData("PlayerChessData")
|
||||
err = data.(*PlayerChessData).UpdateChessData(req.MChessData)
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomOutline{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
|
||||
@ -142,6 +142,9 @@ func (s *ServerMod) SaveData() {
|
||||
ctx := context.Background()
|
||||
txOptions := &sql.TxOptions{}
|
||||
tx, err := db.SqlDb.BeginTx(ctx, txOptions)
|
||||
if err != nil {
|
||||
log.Debug("SaveData sql begin tx failed,Mod Key: %s err:%v", s.key, err)
|
||||
}
|
||||
err = db.SaveServerData(&DbData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
||||
@ -71,7 +71,7 @@ func UnitDecorate(p *Player) error {
|
||||
PlayerBaseMod := p.GetPlayerBaseMod()
|
||||
PlayerBaseMod.Data.Level = 6
|
||||
PlayerBaseMod.Data.Exp = 50
|
||||
PlayerBaseMod.AddExp(100)
|
||||
PlayerBaseMod.AddExp(p, 100)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"server/GoUtil"
|
||||
"server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/gate"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
@ -33,6 +34,7 @@ func AdminPlayerInfo(args []interface{}) error {
|
||||
player = new(Player)
|
||||
player.M_DwUin = req.Uid
|
||||
player.InitPlayerOnly()
|
||||
player.ZeroUpdate(nil)
|
||||
}
|
||||
res := make(map[string]interface{})
|
||||
res["Name"] = player.PlayMod.getBaseMod().NickName
|
||||
@ -45,6 +47,21 @@ func AdminPlayerInfo(args []interface{}) error {
|
||||
res["Diamond"] = player.GetPlayerBaseMod().GetDiamond()
|
||||
res["Mac"] = player.GetPlayerBaseMod().GetName()
|
||||
res["Login"] = player.GetPlayerBaseMod().Data.LoginTime
|
||||
res["Cumulative"] = player.PlayMod.getBaseMod().Cumulative
|
||||
res["TodayCumulative"] = player.PlayMod.getBaseMod().TodayCumulative
|
||||
OrderMap := make(map[int]interface{})
|
||||
Index := 0
|
||||
for k, v := range player.PlayMod.getOrderMod().OrderList {
|
||||
OrderMap[Index] = map[string]interface{}{
|
||||
"Id": k,
|
||||
"Type": v.Type,
|
||||
"Time": v.Timestamp,
|
||||
"ChessId": GoUtil.IntSliceToString(v.MergeId),
|
||||
"Diff": v.Diff,
|
||||
}
|
||||
Index++
|
||||
}
|
||||
res["Order"] = OrderMap
|
||||
JsonBuff, err := json.Marshal(res)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@ -45,7 +45,7 @@ func HandleAdminReq(args []interface{}) {
|
||||
// 消息的发送者
|
||||
a := args[1].(gate.Agent)
|
||||
buf := m.GetInfo()
|
||||
log.Debug("admin 消息Func : %s", m.GetFunc())
|
||||
// log.Debug("admin 消息Func : %s", m.GetFunc())
|
||||
AdminProcess(m.GetFunc(), []interface{}{a, buf})
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ func HandleClientReq(args []interface{}) {
|
||||
// 消息的发送者
|
||||
a := args[1].(gate.Agent)
|
||||
buf := m.GetInfo()
|
||||
log.Debug("消息Func : %s", m.GetFunc())
|
||||
// log.Debug("消息Func : %s", m.GetFunc())
|
||||
switch m.GetFunc() {
|
||||
case "ClientTick":
|
||||
case "ReqAdminInfo":
|
||||
|
||||
@ -79,7 +79,7 @@ func (f *FriendTreasureMod) EndGame() ([]*item.Item, int, error) {
|
||||
}
|
||||
f.Star = 0
|
||||
f.Shift = 0
|
||||
f.Status = 0
|
||||
f.Status = 2
|
||||
f.Num = 0
|
||||
return Reward, FriendItemNum, nil
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user