diff --git a/src/server/game/ActivityFunc.go b/src/server/game/ActivityFunc.go index 54279363..11cab5eb 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/ActivityFunc.go @@ -167,7 +167,8 @@ func (p *Player) GetActivityStatus(actType int) int { return ACT_STATUS_START } -func MiningBackData(p *Player) { +// 挖矿活动数据返回 +func (p *Player) MiningBackData() { ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_MINING) if ActivityInfo == nil { return @@ -187,7 +188,8 @@ func MiningBackData(p *Player) { }) } -func GuessColorBackData(p *Player) { +// 猜颜色活动数据返回 +func (p *Player) GuessColorBackData() { ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_GUESS_COLOR) if ActivityInfo == nil { return @@ -218,7 +220,8 @@ func GuessColorBackData(p *Player) { }) } -func RaceBackData(p *Player) { +// 赛跑活动数据返回 +func (p *Player) RaceBackData() { ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_RACE) if ActivityInfo == nil { return @@ -248,7 +251,8 @@ func RaceBackData(p *Player) { }) } -func RedBackData(p *Player) { +// 红点数据返回 +func (p *Player) RedBackData() { result := make(map[int32]int32) Now := GoUtil.Now() for _, v := range p.activity { @@ -259,7 +263,8 @@ func RedBackData(p *Player) { p.PushClientRes(&msg.ResActRed{Red: result}) } -func ActPassBackData(p *Player) { +// 通行证活动数据返回 +func (p *Player) ActPassBackData() { ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_PASS) if ActivityInfo == nil { return @@ -279,7 +284,8 @@ func ActPassBackData(p *Player) { }) } -func GetActivityItem(p *Player, ActType []int) []*item.Item { +// 获取活动道具 +func (p *Player) GetActivityItem(ActType []int) []*item.Item { Items := make([]*item.Item, 0) for _, v := range ActType { Status := p.GetActivityStatus(v) @@ -310,6 +316,7 @@ func GetActivityItem(p *Player, ActType []int) []*item.Item { return Items } +// 猫草大作战活动数据返回 func (p *Player) CatnipBackData() { ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_PASS) if ActivityInfo == nil { @@ -395,6 +402,7 @@ func (p *Player) CatnipBackData() { p.PushClientRes(res) } +// 设置猫草大作战游戏锁 func (p *Player) SetCatnipGameLock(Uid int, GameId int) error { ActivityInfo := p.GetActivityInfoById(activity.ACT_TYPE_CATNIP) return G_GameLogicPtr.SetDataSync(int(p.M_DwUin), VAR_OP_CATNIP_LOCK, CatnipLock{ diff --git a/src/server/game/ChargeFunc.go b/src/server/game/ChargeFunc.go index 5030241d..b6223dc9 100644 --- a/src/server/game/ChargeFunc.go +++ b/src/server/game/ChargeFunc.go @@ -21,20 +21,20 @@ import ( "strings" ) -func Charge(p *Player, ChargeId int) { - ChargeFire(p, ChargeId) // 充值 - EndlessFire(p, ChargeId) // 无尽礼包 - PiggyBankFire(p, ChargeId) // 猪猪银行 - PlayroomFire(p, ChargeId) // 游乐场 - ActivityFire(p, ChargeId) // 活动礼包 - ADPetWorkFire(p, ChargeId) // 广告宠物工作 - PassFire(p, ChargeId) +func (p *Player) Charge(ChargeId int) { + p.ChargeFire(ChargeId) // 充值 + p.EndlessFire(ChargeId) // 无尽礼包 + p.PiggyBankFire(ChargeId) // 猪猪银行 + p.PlayroomFire(ChargeId) // 游乐场 + p.ActivityFire(ChargeId) // 活动礼包 + p.ADPetWorkFire(ChargeId) // 广告宠物工作 + p.PassFire(ChargeId) OrderMod := p.PlayMod.getOrderMod() OrderMod.SetIsCharge() // 设置订单模块为充值状态 p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PURCHASE, A: []interface{}{}}) } -func SendCharge(p *Player, d *ChargeExtra) { +func (p *Player) SendCharge(d *ChargeExtra) { G_GameLogicPtr.FriendMgrSend(&MsgMod.Msg{ From: int(p.M_DwUin), Type: MsgMod.HANDLE_TYPE_SEND_CHARGE, @@ -44,7 +44,7 @@ func SendCharge(p *Player, d *ChargeExtra) { }) } -func ADPetWorkFire(p *Player, ChargeId int) { +func (p *Player) ADPetWorkFire(ChargeId int) { ChargeMod := p.PlayMod.getChargeMod() Item := ChargeMod.FireAdReward(ChargeId) if Item != nil { @@ -58,7 +58,7 @@ func ADPetWorkFire(p *Player, ChargeId int) { p.ChargeBackData() } -func ActivityFire(p *Player, ChargeId int) { +func (p *Player) ActivityFire(ChargeId int) { ActivityMod := p.PlayMod.getActivityMod() ActivityId := activityCfg.GetActivityGiftId(ChargeId) ActivityInfo := p.GetActivityInfoById(ActivityId) @@ -84,7 +84,7 @@ func ActivityFire(p *Player, ChargeId int) { p.BackDataActivity() } -func PassFire(p *Player, ChargeId int) { +func (p *Player) PassFire(ChargeId int) { ActivityStatus := p.GetActivityStatus(activity.ACT_TYPE_PASS) if ActivityStatus != ACT_STATUS_START { return @@ -114,7 +114,7 @@ func PassFire(p *Player, ChargeId int) { p.PlayMod.save() } -func PlayroomFire(p *Player, ChargeId int) { +func (p *Player) PlayroomFire(ChargeId int) { PlayroomMod := p.PlayMod.getPlayroomMod() Item := PlayroomMod.Fire(ChargeId) if Item == nil { @@ -130,7 +130,7 @@ func PlayroomFire(p *Player, ChargeId int) { p.PlayMod.save() } -func PiggyBankFire(p *Player, ChargeId int) { +func (p *Player) PiggyBankFire(ChargeId int) { PiggyBankMod := p.PlayMod.getPiggyBankMod() Item := PiggyBankMod.Fire(ChargeId) if Item == nil { @@ -140,7 +140,7 @@ func PiggyBankFire(p *Player, ChargeId int) { if err != nil { log.Debug("ChargeFire err : %s", err) } - LimitedTimePiggyBankTrigger(p) + p.LimitedTimePiggyBankTrigger() p.TeLog("piggy_bank_open", map[string]interface{}{ "piggy_bank_type": piggyBank.PIGGY_BANK_TYPE_CHARGE, "item_list": Item, @@ -151,7 +151,7 @@ func PiggyBankFire(p *Player, ChargeId int) { } // 处理玩家充值 -func ChargeFire(p *Player, ChargeId int) { +func (p *Player) ChargeFire(ChargeId int) { ChargeMod := p.PlayMod.getChargeMod() Item := ChargeMod.Fire(ChargeId) if Item == nil { @@ -165,14 +165,14 @@ func ChargeFire(p *Player, ChargeId int) { p.ChargeBackData() } -func ChargeItem(p *Player, ChargeId int) []*item.Item { +func (p *Player) ChargeItem(ChargeId int) []*item.Item { ChargeMod := p.PlayMod.getChargeMod() Item := ChargeMod.Fire(ChargeId) return Item } // 处理玩家充值 -func EndlessFire(p *Player, ChargeId int) { +func (p *Player) EndlessFire(ChargeId int) { EndlessMod := p.PlayMod.getEndlessMod() Item := EndlessMod.Fire(ChargeId) if Item == nil { @@ -187,7 +187,7 @@ func EndlessFire(p *Player, ChargeId int) { } // 创建订单 -func CreateOrderSn(p *Player, req *proto.ReqCreateOrderSn) (string, error) { +func (p *Player) CreateOrderSn(req *proto.ReqCreateOrderSn) (string, error) { Uid := int(p.M_DwUin) OrderSn := GoUtil.CreateOrderSn(Uid) @@ -204,7 +204,7 @@ func CreateOrderSn(p *Player, req *proto.ReqCreateOrderSn) (string, error) { return OrderSn, nil } -func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrderStruct, error) { +func (p *Player) GoogleVerify(OrderSn, ProduceId, Token string) (*db.SqlChargeOrderStruct, error) { Order, err := db.GetPlayerChargeData(OrderSn) if err != nil { return nil, err @@ -259,7 +259,7 @@ func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrd return Order, nil } -func CancelOrder(p *Player, OrderSn string) error { +func (p *Player) CancelOrder(OrderSn string) error { Order, err := db.GetPlayerChargeData(OrderSn) if err != nil { return err diff --git a/src/server/game/CompensationFunc.go b/src/server/game/CompensationFunc.go index 52bfa247..80d7f96e 100644 --- a/src/server/game/CompensationFunc.go +++ b/src/server/game/CompensationFunc.go @@ -1,5 +1,6 @@ package game +// 补偿脚本 import ( "server/game/mod/compensation" "server/game/mod/mail" diff --git a/src/server/game/FriendFunc.go b/src/server/game/FriendFunc.go index 9112e907..dcc1fe67 100644 --- a/src/server/game/FriendFunc.go +++ b/src/server/game/FriendFunc.go @@ -8,7 +8,7 @@ import ( "sort" ) -func GetVisitorPlayer(p *Player) int { +func (p *Player) GetVisitorPlayer() int { PlayroomMod := p.PlayMod.getPlayroomMod() VisitorList := PlayroomMod.GetVisitor() // 到访用户 TodayVisitedUsers := PlayroomMod.GetTodayVisitedUsers() // 今日已互动用户 diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 3fed32b5..99e51177 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -75,7 +75,6 @@ type GameLogic struct { NotInitPlayer *Player Version int32 M_SvrGlobal db.SqlSvrGlobalStruct - MHttpManager *HttpManager SeverInfo *ServerInfo MLogManager *LogMgr // 日志管理器 @@ -655,7 +654,7 @@ func (ad *GameLogic) ReplaceExistPlayerAndAgent(a gate.Agent, player *Player) er if ok { Timer.Stop() } - SyncFriendMsg(player) + player.SyncFriendMsg() log.Debug("player %d 重连", player.M_DwUin) return nil } @@ -949,15 +948,6 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqChargeReceive", ReqChargeReceive) // 礼包回复邮件 } -func (ad *GameLogic) CreateHttpManager() { - - go func() { - ad.MHttpManager = new(HttpManager) - ad.MHttpManager.InitRounter() - }() - -} - func (ad *GameLogic) CreateLogManager() { ad.MLogManager = new(LogMgr) ad.MLogManager.InitManager() diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index ddfd678b..c19f15d7 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -144,7 +144,7 @@ func ReqGmCommand_(player *Player, Command string) error { "CreateTime": GoUtil.Now(), "PayTime": GoUtil.Now(), }) - Charge(player, ChargeId) + player.Charge(ChargeId) case "AddPart": ChessMod := player.PlayMod.getChessMod() ChessMod.PartBag.List[1505] = chess.PartBagGrid{ @@ -183,7 +183,7 @@ func ReqGmCommand_(player *Player, Command string) error { AddTime: Now, } } - BackUserInfo(player) + player.BackUserInfo() case "resetFace": FaceMod := player.PlayMod.getFaceMod() FaceMod.List = nil @@ -285,7 +285,7 @@ func ReqGmCommand_(player *Player, Command string) error { MiningMod.ZeroUpdate(-1) ActivityInfo := player.GetActivityInfo(activity.ACT_TYPE_MINING) MiningMod.ZeroUpdate(ActivityInfo.Id) - MiningBackData(player) + player.MiningBackData() case "catnipReload": CatnipMod := player.PlayMod.getCatnipMod() CatnipMod.ZeroUpdate(-1) @@ -296,17 +296,17 @@ func ReqGmCommand_(player *Player, Command string) error { GuessColorMod.ZeroUpdate(-1) ActivityInfo := player.GetActivityInfo(activity.ACT_TYPE_GUESS_COLOR) GuessColorMod.ZeroUpdate(ActivityInfo.Id) - GuessColorBackData(player) + player.GuessColorBackData() case "raceReload": RaceMod := player.PlayMod.getRaceMod() RaceMod.ZeroUpdate(-1) ActivityInfo := player.GetActivityInfo(activity.ACT_TYPE_RACE) RaceMod.ZeroUpdate(ActivityInfo.Id) - RaceBackData(player) + player.RaceBackData() case "raceAdd": RaceMod := player.PlayMod.getRaceMod() RaceMod.AddCoin(100) - RaceBackData(player) + player.RaceBackData() case "playroomReset": PlayroomMod := playroom.PlayroomMod{} PlayroomMod.InitData() @@ -331,7 +331,7 @@ func ReqGmCommand_(player *Player, Command string) error { Part := playroomCfg.GetDressPart(v) PlayroomMod.UnlockDress(Part, v) } - PlayroomBackData(player) + player.PlayroomBackData() case "playroomAir": PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.NewPetAir = make(map[int]*playroom.PetAirInfo, 0) @@ -339,7 +339,7 @@ func ReqGmCommand_(player *Player, Command string) error { for _, v := range AirList { PlayroomMod.UnlockPetAir(v) } - PlayroomBackData(player) + player.PlayroomBackData() case "resetRetire": ChessMod := player.PlayMod.getChessMod() ChessMod.Retire = make(map[string]int) @@ -352,11 +352,11 @@ func ReqGmCommand_(player *Player, Command string) error { PlayroomMod := player.PlayMod.getPlayroomMod() Num, _ := strconv.Atoi(arg[1]) PlayroomMod.RoomPoint += Num - PlayroomBackData(player) + player.PlayroomBackData() case "resetPlayroomUnlock": PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.UnlockList = make(map[int]int64) - PlayroomBackData(player) + player.PlayroomBackData() case "addChip": PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.AddChip(100100001, 1, 0) @@ -378,8 +378,8 @@ func ReqGmCommand_(player *Player, Command string) error { FriendMod.Id = 0 FriendMod.Log = make([]*friend.LogInfo, 0) FriendMod.InitData() - FriendListBackData(player) - FriendLogBackData(player) + player.FriendListBackData() + player.FriendLogBackData() case "addFriend": FriendMod := player.PlayMod.getFriendMod() Uid, _ := strconv.Atoi(arg[1]) @@ -405,7 +405,7 @@ func ReqGmCommand_(player *Player, Command string) error { case "comfortOrder": BaseMod := player.PlayMod.getBaseMod() BaseMod.LogoutTime = GoUtil.Now() - 7*86400 - TriggerComfortOrder(player) + player.TriggerComfortOrder() player.PushClientRes(player.PlayMod.getOrderMod().BackData()) case "resetGuide": GuildMod := player.PlayMod.getGuideMod() @@ -481,7 +481,7 @@ func ReqGmCommand_(player *Player, Command string) error { case "resetNpc": FriendMod := player.PlayMod.getFriendMod() FriendMod.Npc = []int{} - FriendListBackData(player) + player.FriendListBackData() case "recoverUser": file, err := os.OpenFile(conf.Server.GameConfPath+"user.info", os.O_RDWR|os.O_CREATE, 0666) if err != nil { @@ -548,11 +548,11 @@ func ReqGmCommand_(player *Player, Command string) error { player.ChargeBackData() PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.WeeklyDiscount = make(map[int]int) - PlayroomBackData(player) + player.PlayroomBackData() case "resetCode": BaseMod := player.PlayMod.getBaseMod() BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid))) - BackUserInfo(player) + player.BackUserInfo() default: return fmt.Errorf("Player %d ReqGmCommand:%v not found", player.M_DwUin, arg) } diff --git a/src/server/game/HttpSvr.go b/src/server/game/HttpSvr.go deleted file mode 100644 index 205379df..00000000 --- a/src/server/game/HttpSvr.go +++ /dev/null @@ -1,60 +0,0 @@ -package game - -import ( - "fmt" - "net/http" - "server/conf" - - // "server/msg" - - "github.com/gorilla/mux" -) - -type HttpManager struct { - Rounter *mux.Router -} - -func (p *HttpManager) InitRounter() { - p.Rounter = mux.NewRouter() - p.InitFriendRouter() - p.InitPlayerProfileInfo() - http.ListenAndServe(conf.Server.HttpPort, p.Rounter) -} - -func (p *HttpManager) InitFriendRouter() { - bs := p.Rounter.PathPrefix("/Friend").Subrouter() - bs.HandleFunc("/Add/{SenderId}/{ReceiveId}", p.AddFriend) - bs.HandleFunc("/Del/{SenderId}/{ReceiveId}", p.DeleteFriend) -} - -func (p *HttpManager) InitPlayerProfileInfo() { - bs := p.Rounter.PathPrefix("/Profile").Subrouter() - bs.HandleFunc("/GetBrief/{Id}", p.GetPlayerProfileInfo) -} - -func (p *HttpManager) GetPlayerProfileInfo(w http.ResponseWriter, r *http.Request) { - -} - -func (p *HttpManager) AddFriend(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - SenderId, ok := vars["SenderId"] - if ok { - fmt.Println("AddFreind SenderId:" + SenderId) - } - - ReceiveId, ok1 := vars["ReceiveId"] - if ok1 { - fmt.Println("AddFreind ReceiveId:" + ReceiveId) - } -} - -func (p *HttpManager) DeleteFriend(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - id, ok := vars["id"] - if !ok { - fmt.Println("id is missing in parameters") - } - fmt.Println(`id := `, id) - -} diff --git a/src/server/game/LimitedTimeTrigger.go b/src/server/game/LimitedTimeTrigger.go index ba06c029..6dd6cf8d 100644 --- a/src/server/game/LimitedTimeTrigger.go +++ b/src/server/game/LimitedTimeTrigger.go @@ -62,7 +62,7 @@ func (p *Player) LimitedTimeEventTrigger(AddEventId int) { p.PlayMod.getCardMod().ResetCardFestival() case limitedTimeEvent.EVENT_TYPE_GOLDCARD_EX: p.PlayMod.getFriendMod().ResetGoldCardEx() - LimitedTimeCardTrigger(p) + p.LimitedTimeCardTrigger() } } @@ -92,13 +92,13 @@ func (p *Player) LimitedTimeEventTrigger(AddEventId int) { } // 限时猪猪存钱罐触发器 -func LimitedTimePiggyBankTrigger(p *Player) { +func (p *Player) LimitedTimePiggyBankTrigger() { Remain := p.PlayMod.getPiggyBankMod().TimeOut() if Remain > 0 { p.CallEvent(time.Duration(Remain)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() - LimitedTimePiggyBankTrigger(p) + p.LimitedTimePiggyBankTrigger() p.SendClientRes() }, "PiggyBank") } @@ -106,7 +106,7 @@ func LimitedTimePiggyBankTrigger(p *Player) { } // 限时卡牌触发器 -func LimitedTimeCardTrigger(p *Player) { +func (p *Player) LimitedTimeCardTrigger() { FriendMod := p.PlayMod.getFriendMod() CardMod := p.PlayMod.getCardMod() Now := GoUtil.Now() @@ -140,21 +140,21 @@ func LimitedTimeCardTrigger(p *Player) { p.CallEvent(time.Duration(EndTime-Now)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() - LimitedTimeCardTrigger(p) + p.LimitedTimeCardTrigger() p.SendClientRes() }, "LimitedTimeCard") } } -func LimitedTimePlayroomTrigger(p *Player) { +func (p *Player) LimitedTimePlayroomTrigger() { PlayroomMod := p.PlayMod.getPlayroomMod() for k, v := range PlayroomMod.Physiology { if v.Time > 0 { - LimitedTimePlayroomTrigger_(p, k) + p.LimitedTimePlayroomTrigger_(k) } } } -func LimitedTimePlayroomTrigger_(p *Player, Id int) { +func (p *Player) LimitedTimePlayroomTrigger_(Id int) { PlayroomMod := p.PlayMod.getPlayroomMod() Physiology := PlayroomMod.GetPhysiology(Id) if Physiology == nil { @@ -183,7 +183,7 @@ func LimitedTimePlayroomTrigger_(p *Player, Id int) { p.CallEvent(time.Duration(NextSecond)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() - LimitedTimePlayroomTrigger_(p, Id) + p.LimitedTimePlayroomTrigger_(Id) p.SendClientRes() }, fmt.Sprintf("Playroom_%d", Id)) } @@ -223,7 +223,7 @@ func LimitedTimePlayroomWorkTrigger(p *Player) { if EndTime > 0 && EndTime <= Now { PlayroomMod.ResetWork() p.PlayMod.save() - PlayroomBackData(p) + p.PlayroomBackData() p.SendClientRes() return } diff --git a/src/server/game/MessageHandler.go b/src/server/game/MessageHandler.go index ff503394..ff25d17b 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/MessageHandler.go @@ -29,7 +29,7 @@ import ( ) // 处理玩家异步请求 -func HandleMsg(p *Player, m *msg.Msg) { +func (p *Player) HandleMsg(m *msg.Msg) { p.lock.Lock() //加锁 backup := p.BackUp() // 备份当前的 Player 值 defer func() { @@ -40,7 +40,7 @@ func HandleMsg(p *Player, m *msg.Msg) { p.lock.Unlock() //解锁 }() p.args = make(map[string]interface{}) - err := handle(p, m) + err := p.handle(m) if err != nil { log.Debug("uid : %d, err : %s", p.M_DwUin, err) p.Recover(backup) //还原Player的数据 @@ -51,10 +51,72 @@ func HandleMsg(p *Player, m *msg.Msg) { } // 消息处理 -func handle(p *Player, m *msg.Msg) error { +func (p *Player) handle(m *msg.Msg) error { switch m.Type { - case msg.HANDLE_TYPE_DEL, msg.HANDLE_TYPE_APPLY, msg.HADNLE_TYPE_AGREE, msg.HANDLE_TYPE_REQ_CARD, msg.HANDLE_TYPE_REFUSE: - return HandleFriendMsg(p, m) + case msg.HANDLE_TYPE_APPLY: // 好友申请 + FriendMod := p.PlayMod.getFriendMod() + FriendMod.AddFriendApply(m.From) + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) + PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.ResFriendApplyNotify{ + Player: PlayerSimpleData, + Type: friend.FRIEND_NOTIFY_APPLY, + Time: int32(GoUtil.Now()), + }) + case msg.HADNLE_TYPE_AGREE: // 同意好友申请 + FriendMod := p.PlayMod.getFriendMod() + FriendMod.AgreeApply(m.From) + PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.ResFriendApplyNotify{ + Player: PlayerSimpleData, + Type: friend.FRIEND_NOTIFY_AGREE, + Time: int32(GoUtil.Now()), + }) + PlayroomMod := p.PlayMod.getPlayroomMod() + BaseMod := p.PlayMod.getBaseMod() + PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) + p.PlayroomBackData() + p.TeLog("friend_add", map[string]interface{}{ + "player_id": m.From, + "add_type": "接受申请", + }) + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_BECOME, "", m.SendT) + case msg.HANDLE_TYPE_DEL: // 删除好友 + FriendMod := p.PlayMod.getFriendMod() + FriendMod.DelFriend(m.From) + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) + PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.ResFriendApplyNotify{ + Player: PlayerSimpleData, + Type: friend.FRIEND_NOTIFY_DEL, + Time: int32(GoUtil.Now()), + }) + case msg.HANDLE_TYPE_REFUSE: // 拒绝好友申请 + FriendMod := p.PlayMod.getFriendMod() + FriendMod.RefuseApply(m.From) + PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.ResFriendApplyNotify{ + Player: PlayerSimpleData, + Type: friend.FRIEND_NOTIFY_REFUSE, + Time: int32(GoUtil.Now()), + }) + case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请 + FriendMod := p.PlayMod.getFriendMod() + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } + FriendMod.SetCardInfo(&CardInfo) + p.PushClientRes( + &proto.NotifyFriendCard{ + Info: GetCardInfoMsg(&CardInfo), + }, + ) + case msg.HANDLE_TYPE_FACEBOOK_UNBIND: // facebook解绑 + FaceMod := p.PlayMod.getFaceMod() + if FaceMod.SetId == 0 { + FaceMod.SetId = 2 + } case msg.SERVER_ZERO_UPDATE: p.ZeroUpdate(nil) case msg.SERVER_NOON_UPDATE: @@ -68,7 +130,7 @@ func handle(p *Player, m *msg.Msg) error { PlayroomMod := p.PlayMod.getPlayroomMod() BaseMod := p.PlayMod.getBaseMod() PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - PlayroomBackData(p) + p.PlayroomBackData() p.TeLog("friend_add", map[string]interface{}{ "player_id": m.From, "add_type": "发起申请", @@ -108,7 +170,10 @@ func handle(p *Player, m *msg.Msg) error { p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_REG_CARD_FINISH, msg.HANDLE_TYPE_AGREE_CARD_FAIL: // B收到A的请求已结束 - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } FriendMod := p.PlayMod.getFriendMod() FriendMod.DelCardInfo(CardInfo.Id) p.PushClientRes( @@ -118,7 +183,10 @@ func handle(p *Player, m *msg.Msg) error { ) p.PlayMod.save() case msg.HANDLE_TYPE_AGREE_CARD: // A收到B同意卡牌 - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } CardMod := p.PlayMod.getCardMod() OtherUid, err := CardMod.DelRequestCard(CardInfo.BUid) FriendMod := p.PlayMod.getFriendMod() @@ -143,7 +211,10 @@ func handle(p *Player, m *msg.Msg) error { ) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌 - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } CardMod := p.PlayMod.getCardMod() CardMod.DelRequestCard(CardInfo.BUid) CardMod.AddReqTimes(CardInfo.Id, CardInfo.StartTime) @@ -152,7 +223,10 @@ func handle(p *Player, m *msg.Msg) error { p.PushClientRes(CardMod.NotifyCard()) case msg.HANDLE_TYPE_EX_CARD: // B收到A置换卡牌 FriendMod := p.PlayMod.getFriendMod() - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } FriendMod.SetCardInfo(&CardInfo) FriendMod.Interact(CardInfo.AUid, friend.INTERACT_TYPE_EX, m.SendT) p.PlayMod.save() @@ -163,7 +237,10 @@ func handle(p *Player, m *msg.Msg) error { ) case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换 FriendMod := p.PlayMod.getFriendMod() - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } FriendMod.SetCardInfo(&CardInfo) // p.AddLog(int(p.M_DwUin), friend.LOG_TYPE_CARD_SELECT_GET, fmt.Sprintf("%d", CardInfo.CardId)) p.PlayMod.save() @@ -173,7 +250,10 @@ func handle(p *Player, m *msg.Msg) error { }, ) case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌 - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } FriendMod := p.PlayMod.getFriendMod() FriendMod.SetCardInfo(&CardInfo) p.PushClientRes( @@ -184,7 +264,10 @@ func handle(p *Player, m *msg.Msg) error { p.PlayMod.save() case msg.HANDLE_TYPE_REFUSE_SELECT_CARD: // A收到B拒绝置换卡牌 CardMod := p.PlayMod.getCardMod() - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } CardMod.AddExTimes(&CardInfo) p.AddCard(CardInfo.CardId) CardMod.DelExCard(&CardInfo) @@ -193,7 +276,10 @@ func handle(p *Player, m *msg.Msg) error { p.PlayMod.save() case msg.HANDLE_TYPE_REFUSE_EX_CARD: // B收到A拒绝置换卡牌 CardMod := p.PlayMod.getCardMod() - CardInfo := m.Extra.(card.CardInfo) + CardInfo, ok := m.Extra.(card.CardInfo) + if !ok { + return nil + } p.AddCard(CardInfo.ExId) FriendMod := p.PlayMod.getFriendMod() FriendMod.DelCardInfo(CardInfo.Id) @@ -203,9 +289,9 @@ func handle(p *Player, m *msg.Msg) error { p.PlayMod.save() p.PushClientRes(CardMod.NotifyCard()) case msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY: // # 锦标赛排名变动通知 - BackChampship(p) + p.BackChampship() case msg.HANDLE_TYPE_CHAMPSHIP_RESULT: // # 好友锦标赛结果 - Extra := m.Extra.([]int) + Extra := GoUtil.IntSlice(m.Extra) p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", Extra[0], Extra[1]), m.SendT) case msg.HANDLE_TYPE_TREASURE_RESULT: // # 好友宝藏结果 //p.AddLog(m.From, friend.LOG_TYPE_TREASURE, fmt.Sprintf("%d", m.Extra.(int)), m.SendT) @@ -259,9 +345,9 @@ func handle(p *Player, m *msg.Msg) error { p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_LOSE, fmt.Sprintf("%d", Emoji), m.SendT) FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) case msg.FRIEND_TREASURE_HANDLE: // # 好友宝藏 - Items := make([]*item.Item, 0) - if m.Extra != nil { - Items = m.Extra.([]*item.Item) + Items, ok := m.Extra.([]*item.Item) + if !ok { + Items = []*item.Item{} } p.AddLog(m.From, friend.LOG_TYPE_TREASURE_HELP, "", m.SendT) p.HandleItem(Items, proto.ITEM_POP_LABEL_Friendtreasure.String()) @@ -279,21 +365,21 @@ func handle(p *Player, m *msg.Msg) error { FriendMod.Interact(m.From, friend.INTERACT_TYPE_UPVOTE, m.SendT) p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK_UPVOTE, "", m.SendT) case msg.HANDLE_TYPE_SEND_CHARGE: // 收到好友赠送的充值礼包 - C := &ChargeExtra{} - if m.Extra != nil { - C = m.Extra.(*ChargeExtra) + C, ok := m.Extra.(*ChargeExtra) + if !ok { + C = &ChargeExtra{} } PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) MailMod := p.PlayMod.getMailMod() mt, mc, mt_en, mc_en := mailCfg.GetChargeSendMail(PlayerSimpleData.Name) - Items := ChargeItem(p, C.ChargeId) + Items := p.ChargeItem(C.ChargeId) MailId := MailMod.Send(mt, "", mc, mt_en, "", mc_en, Items, mail.MAIL_TYPE_GIFT) p.AddLog(m.From, friend.LOG_TYPE_CHARGE_SEND, fmt.Sprintf("%d", MailId), m.SendT) p.PushClientRes(MailMod.NotifyMail(MailId)) case msg.HANDLE_TYPE_CHARGE_RECEIVE: // 收到好友的感谢信 - Content := "" - if m.Extra != nil { - Content = m.Extra.(string) + Content, ok := m.Extra.(string) + if !ok { + Content = "" } PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) MailMod := p.PlayMod.getMailMod() @@ -320,7 +406,10 @@ func handle(p *Player, m *msg.Msg) error { p.NotifyPlayroomKiss() case msg.HANDLE_TYPE_CATNIP_INVITE: // 邀请好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg := m.Extra.(CatnipMsg) + CatnipMsg, ok := m.Extra.(CatnipMsg) + if !ok { + return nil + } ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 return nil @@ -330,15 +419,21 @@ func handle(p *Player, m *msg.Msg) error { FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) case msg.HANDLE_TYPE_CATNIP_AGREE: // 同意好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsgInfo := m.Extra.(CatnipMsg) - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipMsgInfo.ActivityId { // 活动ID不匹配 + CatnipMsg, ok := m.Extra.(CatnipMsg) + if !ok { return nil } - CatnipMod.BeAgree(CatnipMsgInfo.GameId, int(m.From)) + ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + return nil + } + CatnipMod.BeAgree(CatnipMsg.GameId, int(m.From)) case msg.HANDLE_TYPE_CATNIP_AGREE_DEL: // 同意好友参与猫咪游戏后删除邀请 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg := m.Extra.(CatnipMsg) + CatnipMsg, ok := m.Extra.(CatnipMsg) + if !ok { + return nil + } ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 return nil @@ -346,7 +441,10 @@ func handle(p *Player, m *msg.Msg) error { CatnipMod.DelInvited(CatnipMsg.GameId, int(m.From)) case msg.HANDLE_TYPE_CATNIP_REFUSE: // 拒绝好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg := m.Extra.(CatnipMsg) + CatnipMsg, ok := m.Extra.(CatnipMsg) + if !ok { + return nil + } ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 return nil @@ -354,14 +452,17 @@ func handle(p *Player, m *msg.Msg) error { CatnipMod.DelInvited(CatnipMsg.GameId, int(m.From)) case msg.HANDLE_TYPE_CATNIP_GROWTH: CatnipMod := p.PlayMod.getCatnipMod() - CatnipGrowthInfo := m.Extra.(CatnipMsg) - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipGrowthInfo.ActivityId { // 活动ID不匹配 + CatnipMsg, ok := m.Extra.(CatnipMsg) + if !ok { return nil } - CatnipMod.GrowthByUid(m.From, CatnipGrowthInfo.Growth) - if CatnipGrowthInfo.FriendItems > 0 { - Items := catnipCfg.GetItemCost(ActivityId, CatnipGrowthInfo.FriendItems) + ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + return nil + } + CatnipMod.GrowthByUid(m.From, CatnipMsg.Growth) + if CatnipMsg.FriendItems > 0 { + Items := catnipCfg.GetItemCost(ActivityId, CatnipMsg.FriendItems) FriendMod := p.PlayMod.getFriendMod() FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) } @@ -375,7 +476,7 @@ func handle(p *Player, m *msg.Msg) error { FriendMod := p.PlayMod.getFriendMod() if v, ok := m.Extra.(friend.ReplyInfo); ok { FriendMod.AddReplyInfo(v.Uid, v.Type, v.Param, GoUtil.Now()+24*3600, nil) - FriendLogBackData(p) + p.FriendLogBackData() } case msg.HANDLE_TYPE_FRIEND_SPONSOER: p.AddLog(m.From, friend.LOG_TYPE_FRIEND_SPONSOR_GET, "", m.SendT) @@ -386,75 +487,8 @@ func handle(p *Player, m *msg.Msg) error { return nil } -// 处理系统请求 -func HandleServerMsg(p *Player, msg *msg.Msg) error { - return nil -} - -// 处理好友请求 -func HandleFriendMsg(p *Player, m *msg.Msg) error { - FriendMod := p.PlayMod.getFriendMod() - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) - switch m.Type { - case msg.HANDLE_TYPE_APPLY: // 好友申请 - FriendMod.AddFriendApply(m.From) - p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) - p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, - Type: friend.FRIEND_NOTIFY_APPLY, - Time: int32(GoUtil.Now()), - }) - case msg.HADNLE_TYPE_AGREE: // 同意好友申请 - FriendMod.AgreeApply(m.From) - p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, - Type: friend.FRIEND_NOTIFY_AGREE, - Time: int32(GoUtil.Now()), - }) - PlayroomMod := p.PlayMod.getPlayroomMod() - BaseMod := p.PlayMod.getBaseMod() - PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - PlayroomBackData(p) - p.TeLog("friend_add", map[string]interface{}{ - "player_id": m.From, - "add_type": "接受申请", - }) - p.AddLog(m.From, friend.LOG_TYPE_FRIEND_BECOME, "", m.SendT) - case msg.HANDLE_TYPE_DEL: // 删除好友 - FriendMod.DelFriend(m.From) - p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) - p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, - Type: friend.FRIEND_NOTIFY_DEL, - Time: int32(GoUtil.Now()), - }) - case msg.HANDLE_TYPE_REFUSE: // 拒绝好友申请 - FriendMod.RefuseApply(m.From) - p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, - Type: friend.FRIEND_NOTIFY_REFUSE, - Time: int32(GoUtil.Now()), - }) - case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请 - CardInfo := m.Extra.(card.CardInfo) - FriendMod.SetCardInfo(&CardInfo) - p.PushClientRes( - &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), - }, - ) - case msg.HANDLE_TYPE_FACEBOOK_UNBIND: // facebook解绑 - FaceMod := p.PlayMod.getFaceMod() - if FaceMod.SetId == 0 { - FaceMod.SetId = 2 - } - } - p.PlayMod.save() - return nil -} - // 同步好友请求 -func SyncFriendMsg(p *Player) { +func (p *Player) SyncFriendMsg() { MsgList := G_GameLogicPtr.FriendMgrCall(&msg.Msg{Type: msg.HANDLE_TYPE_SYNC, From: int(p.M_DwUin)}) FriendMod := p.PlayMod.getFriendMod() MsgId := FriendMod.GetSyncId() @@ -478,7 +512,7 @@ func SyncFriendMsg(p *Player) { continue } log.Debug("uid : %d, handle friend msg : %v", p.M_DwUin, v) - handle(p, v) + p.handle(v) v.H = 1 } FriendMod.SetSyncId(maxId) @@ -569,7 +603,7 @@ func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { } // 发射器退役第一步 不再生成此发射器订单 -func EmitRetireTrigger1(p *Player) { +func (p *Player) EmitRetireTrigger1() { ChessMod := p.PlayMod.getChessMod() EmitList := ChessMod.GetEmitList() EmitId := make(map[string]struct{}, 0) @@ -599,7 +633,7 @@ func EmitRetireTrigger1(p *Player) { } // 发射器退役第二步 生成清理订单 -func EmitRetireTrigger2(p *Player) { +func (p *Player) EmitRetireTrigger2() { ChessMod := p.PlayMod.getChessMod() OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 5f4df5fa..822e9fed 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -110,7 +110,7 @@ func (p *Player) Send(m *MsgMod.Msg) { } func (p *Player) Call(m MsgMod.Msg) { - HandleMsg(p, &m) + p.HandleMsg(m.Clone()) } func (p *Player) SendClientRes() { @@ -239,28 +239,8 @@ func (p *Player) InitPlayer(UserName string) error { } p.PlayMod.mod_list = modData.ModList p.PlayMod.is_update = IsUpdate - - go func() { // 处理数据回调 - var cb *timer.Timer - for { - select { - case <-p.stopSignal: - return - case cb = <-p.MDispatr.ChanTimer: - if cb != nil { - cb.Cb() - } else { - log.Debug("Timer callback or Timer is nil") - } - case msg := <-p.msgChan: - if msg != nil { - p.wg.Done() - log.Debug("player %d recive msg %v", p.M_DwUin, msg) - go HandleMsg(p, msg) - } - } - } - }() + // 启动定时器 + p.DispatcherHandle() p.McronSave = cron.New() _, err = p.McronSave.AddFunc("@every 1m", p.AutoSaveData) if err != nil { @@ -271,10 +251,8 @@ func (p *Player) InitPlayer(UserName string) error { p.ZeroUpdate(nil) p.NoonUpdate(nil) p.Login() - // GoUtil.RegisterEvent(MergeConst.Notify_Daily_Renew, p.ZeroUpdate, p) - // GoUtil.RegisterEvent(MergeConst.Notify_Midday_Renew, p.ZeroUpdate, p) p.OrderShip() - SyncFriendMsg(p) + p.SyncFriendMsg() p.UpdateUserInfo() // fix bug ChargeMod := p.PlayMod.getChargeMod() @@ -291,7 +269,7 @@ func (p *Player) OrderShip() { return } for _, OrderInfo := range OrderList { - go TriggerShippingOrderOrigin(p, &msg.ReqShippingOrder{ + go p.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ OrderSn: OrderInfo.OrderId, }) } @@ -347,7 +325,7 @@ func (p *Player) ZeroUpdate(a []interface{}) { if ChargeMod.IsWeeklyDiscountDay() { PlayroomMod.ResetWeeklyDiscount() } - PlayroomBackData(p) + p.PlayroomBackData() p.PlayMod.getChampshipMod().ZeroUpdate() p.initAcitivity() p.ActivityZeroUpdate() @@ -389,7 +367,7 @@ func (p *Player) Login() { // 限时事件触发 p.LimitedTimeEventTrigger(0) // 猪猪银行触发 - LimitedTimePiggyBankTrigger(p) + p.LimitedTimePiggyBankTrigger() BaseMod := p.PlayMod.getBaseMod() FaceMod := p.PlayMod.getFaceMod() ChargeMod := p.PlayMod.getChargeMod() @@ -397,7 +375,7 @@ func (p *Player) Login() { PlayBaseMod := p.GetPlayerBaseMod() GuideTaskMod := p.PlayMod.getGuideTaskMod() // playroom触发 - LimitedTimePlayroomTrigger(p) // playroom数值变化 + p.LimitedTimePlayroomTrigger() // playroom数值变化 LimitedTimePlayroomWorkTrigger(p) // playroom打工 LimitedTimeEnergyAdd(p) // 能量定时处理 p.ActivityLogin() // 活动登录 @@ -423,14 +401,14 @@ func (p *Player) Login() { PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod.ResetWeeklyDiscount() p.ChargeBackData() - PlayroomBackData(p) + p.PlayroomBackData() }, "WeeklyDiscountStart") } if WeeklyEndTime > now { p.CallEvent(time.Duration(WeeklyEndTime-now)*time.Second, func() { ChargeMod.WeeklyEndTime = 0 p.ChargeBackData() - PlayroomBackData(p) + p.PlayroomBackData() LimitEventMod := p.PlayMod.getLimitedTimeEventMod() LimitEventMod.EndCatDaySale() p.PushClientRes(LimitEventMod.BackData()) @@ -709,7 +687,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { PiggyBankMod := p.PlayMod.getPiggyBankMod() Effect := itemCfg.GetItemEffect(v.Id) PiggyBankMod.AddPiggyBank(Effect) - LimitedTimePiggyBankTrigger(p) + p.LimitedTimePiggyBankTrigger() p.PushClientRes(PiggyBankMod.BackData()) p.TeLog("piggy_bank_income", map[string]interface{}{ "piggy_bank_type": Effect, @@ -755,14 +733,14 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { } RaceMod := p.PlayMod.getRaceMod() RaceMod.AddCoin(v.Num) - RaceBackData(p) + p.RaceBackData() case item.ITEM_TYPE_PLAYROOM_VISIT: // 拜访玩家 - Target := GetVisitorPlayer(p) + Target := p.GetVisitorPlayer() playroomMod := p.PlayMod.getPlayroomMod() playroomMod.Target = Target playroomMod.Status = playroom.STATUS_VISIT // PlayroomVisit(p, Target) - PlayroomBackData(p) + p.PlayroomBackData() case item.ITEM_TYPE_PLAYROOM_DECORATION: // playroom装饰 Effect := itemCfg.GetItemEffect(v.Id) PlayroomMod := p.PlayMod.getPlayroomMod() @@ -830,7 +808,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { } PassMod := p.PlayMod.getPassMod() PassMod.AddExp(v.Num) - ActPassBackData(p) + p.ActPassBackData() default: err := ItemMod.AddItem(v.Id, v.Num) p.TeLog("asset_change", map[string]interface{}{ @@ -860,16 +838,16 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { for k := range BackDataType { switch k { case item.ITEM_TYPE_AVATAR: - BackUserInfo(p) + p.BackUserInfo() case item.ITEM_TYPE_EMOJI: - BackUserInfo(p) + p.BackUserInfo() case item.ITEM_TYPE_FACE: - BackUserInfo(p) + p.BackUserInfo() case item.ITEM_TYPE_PLAYROOM_DECORATION, item.ITEM_TYPE_PLAYROOM_DRESS, item.ITEM_TYPE_PLAYROOM_DECORATION_SET, item.ITEM_TYPE_PLAYROOM_DRESS_SET: - PlayroomBackData(p) + p.PlayroomBackData() } } p.PetItemUseLog(itemList) @@ -906,8 +884,8 @@ func (p *Player) LoginBackData() { p.PushClientRes(p.PlayMod.mod_list.Guide.BackData()) p.BackDataActivity() p.ChargeBackData() - BackChampship(p) - BackUserInfo(p) + p.BackChampship() + p.BackUserInfo() } func (p *Player) InitPlayerOnly() { @@ -1192,3 +1170,27 @@ func (p *Player) GetIp() string { } return p.GetAgent().RemoteAddr().String() } + +func (p *Player) DispatcherHandle() { + go func() { + var cb *timer.Timer + for { + select { + case <-p.stopSignal: + return + case cb = <-p.MDispatr.ChanTimer: + if cb != nil { + cb.Cb() + } else { + log.Debug("Timer callback or Timer is nil") + } + case msg := <-p.msgChan: + if msg != nil { + p.wg.Done() + log.Debug("player %d recive msg %v", p.M_DwUin, msg) + go p.HandleMsg(msg.Clone()) + } + } + } + }() +} diff --git a/src/server/game/PlayerBack.go b/src/server/game/PlayerBack.go index 06554330..e4fc9bc1 100644 --- a/src/server/game/PlayerBack.go +++ b/src/server/game/PlayerBack.go @@ -18,7 +18,7 @@ func (p *Player) NotifyPlayroomTask() { p.PushClientRes(m) } -func PlayroomBackData(p *Player) { +func (p *Player) PlayroomBackData() { r := &proto.ResPlayroom{} PlayroomMod := p.PlayMod.getPlayroomMod() FriendMod := p.PlayMod.getFriendMod() @@ -27,7 +27,7 @@ func PlayroomBackData(p *Player) { Opponent := make([]*proto.RoomOpponent, 0) FriendList := make([]*proto.FriendRoom, 0) if PlayroomMod.Target == 0 { - PlayroomMod.Target = GetVisitorPlayer(p) + PlayroomMod.Target = p.GetVisitorPlayer() } TargerRoom := &proto.FriendRoom{} if PlayroomMod.Target != 0 { @@ -163,7 +163,7 @@ func PlayroomBackData(p *Player) { p.PushClientRes(r) } -func PlayroomVisit(p *Player, Uid int) { +func (p *Player) PlayroomVisit(Uid int) { if Uid == 0 { p.PushClientRes(&proto.ResPlayroomInfo{}) return @@ -211,7 +211,7 @@ func (p *Player) NotifyPlayroomKiss() { p.PushClientRes(m) } -func BackUserInfo(p *Player) { +func (p *Player) BackUserInfo() { BaseMod := p.PlayMod.getBaseMod() FaceMod := p.PlayMod.getFaceMod() AvatarMod := p.PlayMod.getAvatarMod() @@ -295,7 +295,7 @@ func (p *Player) ChargeBackData() { }) } -func BackChampship(p *Player) { +func (p *Player) BackChampship() { ChampshipMod := p.PlayMod.getChampshipMod() MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(p.M_DwUin)) MyPreRank := G_GameLogicPtr.ChampshipMgr.getLastMyRank(int(p.M_DwUin)) @@ -303,7 +303,7 @@ func BackChampship(p *Player) { } // 返回好友信息 -func FriendListBackData(p *Player) { +func (p *Player) FriendListBackData() { FriendMod := p.PlayMod.getFriendMod() var fl []*proto.ResPlayerSimple for k, v := range FriendMod.GetFriendList() { @@ -329,7 +329,7 @@ func FriendListBackData(p *Player) { }) } -func FriendApplyBackData(p *Player) { +func (p *Player) FriendApplyBackData() { FriendMod := p.PlayMod.getFriendMod() var al []*proto.ResFriendApplyInfo for k, v := range FriendMod.ApplyList { @@ -346,7 +346,7 @@ func FriendApplyBackData(p *Player) { }) } -func FriendLogBackData(p *Player) { +func (p *Player) FriendLogBackData() { FriendMod := p.PlayMod.getFriendMod() var log []*proto.ResFriendLog for _, v := range FriendMod.Log { @@ -389,7 +389,7 @@ func FriendLogBackData(p *Player) { }) } -func FriendCardBackData(p *Player) { +func (p *Player) FriendCardBackData() { FriendMod := p.PlayMod.getFriendMod() var msgList []*proto.ResFriendCard for _, v := range FriendMod.Card { diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index f1eaf9fd..cd994d00 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -562,7 +562,7 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error) return 0, err } } - EmitRetireTrigger2(player) + player.EmitRetireTrigger2() player.InitOrderItem() player.PushClientRes(p.BackAsset()) return upLv, nil diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/PlayerChessMod.go index 454390bb..81c0c049 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/PlayerChessMod.go @@ -207,7 +207,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa player.PushClientRes(HandbookMod.BackData()) triggerComposeChess(player, NewChessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) // 获取活动道具 - ActItem := GetActivityItem(player, GoUtil.Int32ToInt(v.ActType)) + ActItem := player.GetActivityItem(GoUtil.Int32ToInt(v.ActType)) itemList = item.Merge(itemList, ActItem) case msg.HANDLE_TYPE_BUY: //购买棋子 loseGold, err := ChessMod.BuyChess(ChessId) @@ -287,7 +287,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa player.PushClientRes(LimitedTimeEventMod.BackData()) } player.QuestTriggerList(TriggerList) - EmitRetireTrigger1(player) + player.EmitRetireTrigger1() player.InitOrderItem() player.PushClientRes(ChessMod.BackData()) player.PlayMod.save() diff --git a/src/server/game/PlayerDataModule.go b/src/server/game/PlayerDataModule.go deleted file mode 100644 index 7068b39c..00000000 --- a/src/server/game/PlayerDataModule.go +++ /dev/null @@ -1,62 +0,0 @@ -package game - -// "fmt" - -// "math" - -type PlayerDataModule interface { - LoadDataFromDB(key interface{}) bool - SaveDataFromDB(key interface{}) bool - SetPlayer(p *Player) - GetPlayer() *Player - GetData() interface{} - ClearData() bool - Reconnect(bool) - AutoSaveInterval() -} - -type PlayerData struct { - Name string - IsHaveDataDb bool - M_Player *Player -} - -func (d *PlayerData) SetPlayer(p *Player) { - d.M_Player = p -} - -func (d *PlayerData) GetPlayer() *Player { - return d.M_Player -} - -func (d *PlayerData) Reconnect(b bool) { - -} -func (d *PlayerData) AutoSaveInterval() { - -} - -func (d *PlayerData) LoadDataFromDB(UserName interface{}) bool { - - return true -} - -func (d *PlayerData) SaveDataFromDB(Key interface{}) bool { - - return true -} -func (d *PlayerData) ClearData() bool { - - return true -} -func (d *PlayerData) GetData() interface{} { - res := struct{}{} - return res -} - -func NewPlayerData(name string, player *Player) *PlayerData { - return &PlayerData{ - Name: name, - M_Player: player, - } -} diff --git a/src/server/game/PlayerMod.go b/src/server/game/PlayerMod.go index 3b9f9e81..939ba214 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/PlayerMod.go @@ -44,6 +44,32 @@ import ( "time" ) +type PlayerData struct { + Name string + IsHaveDataDb bool + M_Player *Player +} + +func (d *PlayerData) SetPlayer(p *Player) { + d.M_Player = p +} + +func (d *PlayerData) GetPlayer() *Player { + return d.M_Player +} + +func (d *PlayerData) GetData() interface{} { + res := struct{}{} + return res +} + +func NewPlayerData(name string, player *Player) *PlayerData { + return &PlayerData{ + Name: name, + M_Player: player, + } +} + type PlayerModData struct { *PlayerData Data db.SqlModStruct diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 86221855..98e0c2d2 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -290,7 +290,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { if OrderType == order.Pet_type { Item = player.FormatPetOrderItem(Item) } - ActItem := GetActivityItem(player, GoUtil.Int32ToInt(req.ActType)) + ActItem := player.GetActivityItem(GoUtil.Int32ToInt(req.ActType)) Item = item.Merge(Item, ActItem) if !OrderMod.CheckSuperOrder() { if LimitedTimeEventMod.RemoveSuperOrder() { @@ -408,11 +408,11 @@ func ReqRewardOrder(player *Player, buf []byte) error { "preset_order_step": preset_order_step, }) player.PetItemGetLog(Item, nil, "Order") - EmitRetireTrigger2(player) + player.EmitRetireTrigger2() Lv := player.GetPlayerBaseMod().GetLevel() EnergyMul := player.PlayMod.getBaseMod().GetEnergyMul() Emit := ChessMod.GetOrderEmit() - TriggerSeedSource(player) + player.TriggerSeedSource() //NewOrder := TriggerSeedOrder(player) // if NewOrder == nil || len(NewOrder.MergeId) == 0 { // OrderMod.CreateOrder(Lv, Emit, EnergyMul) @@ -452,7 +452,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { player.PlayMod.save() player.PushClientRes(PiggyBankMod.BackData()) player.PushClientRes(OrderMod.BackData()) - BackChampship(player) + player.BackChampship() player.PushClientRes(LimitedTimeEventMod.BackData()) player.PushClientRes(ChessMod.BackData()) player.PushClientRes(LimitedTimeEventMod.ProgressBackData()) @@ -578,7 +578,7 @@ func ReqDecorate(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.HandleInUserRank() - BackUserInfo(player) + player.BackUserInfo() player.UpdateUserInfo() return nil } @@ -651,7 +651,7 @@ func ReqDecorateAll(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.HandleInUserRank() - BackUserInfo(player) + player.BackUserInfo() player.UpdateUserInfo() return nil } @@ -666,7 +666,7 @@ func ReqDecorateReward(player *Player, buf []byte) error { func UpdatePlayerChessDataFunc(player *Player, buf []byte) error { data := &PlayerChessData{} err := data.UpdatePlayerChessData(player, buf) - RedBackData(player) + player.RedBackData() player.UpdateUserInfo() return err } @@ -714,7 +714,7 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error { player.PushClientRes(OrderMod.BackData()) } triggerComposeChess(player, ChessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) - EmitRetireTrigger1(player) + player.EmitRetireTrigger1() player.InitOrderItem() player.PlayMod.save() player.PushClientRes(ChessMod.BackData()) @@ -1493,7 +1493,7 @@ func ReqSetAvatar(player *Player, buf []byte) error { player.PushClientRes(&msg.ResSetAvatar{ Code: msg.RES_CODE_SUCCESS, }) - BackUserInfo(player) + player.BackUserInfo() player.UpdateUserInfo() b := false if req.Avatar == 0 { @@ -1536,7 +1536,7 @@ func ReqSetFace(player *Player, buf []byte) error { "is_platform": is_platform, }) player.PlayerDecoSetLog("face", int(req.Face), "") - BackUserInfo(player) + player.BackUserInfo() player.UpdateUserInfo() return nil } @@ -1893,7 +1893,7 @@ func ReqApplyFriend(player *Player, buf []byte) error { PlayroomMod := player.PlayMod.getPlayroomMod() BaseMod := player.PlayMod.getBaseMod() PlayroomMod.AddRoomPointInvite(BaseMod.GetLevel()) - PlayroomBackData(player) + player.PlayroomBackData() return nil } @@ -1932,12 +1932,12 @@ func ReqAgreeFriend(player *Player, buf []byte) error { "add_type": "接受申请", }) player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "", GoUtil.Now()) - FriendApplyBackData(player) - FriendLogBackData(player) + player.FriendApplyBackData() + player.FriendLogBackData() PlayroomMod := player.PlayMod.getPlayroomMod() BaseMod := player.PlayMod.getBaseMod() PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - PlayroomBackData(player) + player.PlayroomBackData() player.PlayMod.save() return nil } @@ -1965,7 +1965,7 @@ func ReqDelFriend(player *Player, buf []byte) error { Uid: req.Uid, }) player.AddLog(Uid, friend.LOG_TYPE_FRIEND_DELETE, "", GoUtil.Now()) - FriendListBackData(player) + player.FriendListBackData() player.TeLog("friend_delete", map[string]interface{}{ "player_id": Uid, }) @@ -1994,7 +1994,7 @@ func ReqRefuseFriend(player *Player, buf []byte) error { SendT: GoUtil.Now(), } FriendMgrSend(m) - FriendApplyBackData(player) + player.FriendApplyBackData() return nil } @@ -2906,7 +2906,7 @@ func ReqCreateOrderSn(player *Player, buf []byte) error { if err != nil { return err } - OrderSn, err := CreateOrderSn(player, req) + OrderSn, err := player.CreateOrderSn(req) if err != nil { return err } @@ -2925,7 +2925,7 @@ func ReqShippingOrder(player *Player, buf []byte) error { return err } - go TriggerShippingOrder(player, req) + go player.TriggerShippingOrder(req) player.PushClientRes(&msg.ResShippingOrder{ Code: msg.RES_CODE_SUCCESS, }) @@ -2945,8 +2945,8 @@ func ReqChampshipReward(player *Player, buf []byte) error { return err } player.PlayMod.save() - BackChampship(player) - TriggerSeed(player) + player.BackChampship() + player.TriggerSeed() player.PushClientRes(&msg.ResChampshipReward{ Code: msg.RES_CODE_SUCCESS, }) @@ -3016,22 +3016,22 @@ func ReqFriendRecommend(player *Player, buf []byte) error { } func ReqFriendList(player *Player, buf []byte) error { - FriendListBackData(player) + player.FriendListBackData() return nil } func ReqFriendApply(player *Player, buf []byte) error { - FriendApplyBackData(player) + player.FriendApplyBackData() return nil } func ReqFriendCardMsg(player *Player, buf []byte) error { - FriendCardBackData(player) + player.FriendCardBackData() return nil } func ReqFriendTimeLine(player *Player, buf []byte) error { - FriendLogBackData(player) + player.FriendLogBackData() return nil } @@ -3132,7 +3132,7 @@ func ReqChampshipRankReward(player *Player, buf []byte) error { FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_CHAMPIONSHIP_RANK, GoUtil.String(MyLastRank)) } player.PlayMod.save() - BackChampship(player) + player.BackChampship() player.PushClientRes(&msg.ResChampshipRankReward{ Code: msg.RES_CODE_SUCCESS, }) @@ -3158,7 +3158,7 @@ func ReqSetName(player *Player, buf []byte) error { ResultCode: msg.RES_CODE_SUCCESS, }) player.PlayMod.save() - BackUserInfo(player) + player.BackUserInfo() player.UpdateUserInfo() player.TeLog("nickname_set", map[string]interface{}{ "nickname_name": req.Name, @@ -3178,10 +3178,10 @@ func ReqSetPetName(player *Player, buf []byte) error { ResultCode: msg.RES_CODE_SUCCESS, }) player.PlayMod.save() - BackUserInfo(player) + player.BackUserInfo() PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.UnLock(BaseMod.GetLevel()) - LimitedTimePlayroomTrigger(player) + player.LimitedTimePlayroomTrigger() player.UpdateUserInfo() player.TeLog("petname_set", map[string]interface{}{ "petname": req.Name, @@ -3190,7 +3190,7 @@ func ReqSetPetName(player *Player, buf []byte) error { } func ReqUserInfo(player *Player, buf []byte) error { - BackUserInfo(player) + player.BackUserInfo() return nil } @@ -3326,7 +3326,7 @@ func ReqAutoAddInviteFriend(player *Player, buf []byte) error { PlayroomMod := player.PlayMod.getPlayroomMod() BaseMod := player.PlayMod.getBaseMod() PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - PlayroomBackData(player) + player.PlayroomBackData() player.TeLog("friend_add", map[string]interface{}{ "player_id": req.Id, "add_type": "邀请注册", @@ -3370,7 +3370,7 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error { PlayroomMod := player.PlayMod.getPlayroomMod() BaseMod := player.PlayMod.getBaseMod() PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - PlayroomBackData(player) + player.PlayroomBackData() player.TeLog("friend_add", map[string]interface{}{ "player_id": req.Id, "add_type": "邀请注册", @@ -3418,7 +3418,7 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error { // 请求挖矿基础数据 func ReqMining(player *Player, buf []byte) error { - MiningBackData(player) + player.MiningBackData() return nil } @@ -3467,7 +3467,7 @@ func ReqMiningTake(player *Player, buf []byte) error { player.TeLog("ReqMiningTake", map[string]interface{}{}) player.PlayMod.save() player.NotifyRed(activity.ACT_TYPE_MINING) - MiningBackData(player) + player.MiningBackData() return nil } @@ -3506,7 +3506,7 @@ func ReqMiningReward(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.PlayMod.save() - MiningBackData(player) + player.MiningBackData() return nil } @@ -3524,7 +3524,7 @@ func ReqGuessColor(player *Player, buf []byte) error { return err } player.PlayMod.save() - GuessColorBackData(player) + player.GuessColorBackData() return nil } @@ -3563,7 +3563,7 @@ func ReqGuessColorTake(player *Player, buf []byte) error { "o_map": req.OMap, }) player.PlayMod.save() - GuessColorBackData(player) + player.GuessColorBackData() player.NotifyRed(activity.ACT_TYPE_GUESS_COLOR) return nil } @@ -3604,13 +3604,13 @@ func ReqGuessColorReward(player *Player, buf []byte) error { "item_list": itemList, }) player.PlayMod.save() - GuessColorBackData(player) + player.GuessColorBackData() return nil } // 请求竞赛基础数据 func ReqRace(player *Player, buf []byte) error { - RaceBackData(player) + player.RaceBackData() return nil } @@ -3630,7 +3630,7 @@ func ReqRaceStart(player *Player, buf []byte) error { }) return err } - RaceBackData(player) + player.RaceBackData() player.PushClientRes(&msg.ResRaceStart{ Code: msg.RES_CODE_SUCCESS, }) @@ -3661,7 +3661,7 @@ func ReqRaceReward(player *Player, buf []byte) error { }) return err } - RaceBackData(player) + player.RaceBackData() player.TeLog("ReqRaceReward", map[string]interface{}{ "item_list": Items, }) @@ -3673,7 +3673,7 @@ func ReqRaceReward(player *Player, buf []byte) error { // 请求playroom基础数据 func ReqPlayroom(player *Player, buf []byte) error { - PlayroomBackData(player) + player.PlayroomBackData() return nil } @@ -3690,10 +3690,10 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { Targer = PlayroomMod.GetTarget() } if req.Uid == -1 { - Targer = GetVisitorPlayer(player) + Targer = player.GetVisitorPlayer() } if Targer == 0 { - PlayroomVisit(player, Targer) + player.PlayroomVisit(Targer) return nil } PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Targer) @@ -3732,7 +3732,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { PlayroomMod.SetGameRewardFlip(int(float64(PlayerData.Star)*0.03), int(float64(PlayerData.Star)*0.05), int(float64(PlayerData.Star)*0.1)) } player.PlayMod.save() - PlayroomVisit(player, Targer) + player.PlayroomVisit(Targer) return nil } @@ -3776,7 +3776,7 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_INTERACT, A: []interface{}{int(req.Id)}}) player.PlayMod.save() G_GameLogicPtr.SetUserData(int(player.M_DwUin), VAR_OP_KISS, 0) - LimitedTimePlayroomTrigger_(player, PType) + player.LimitedTimePlayroomTrigger_(PType) player.NotifyPlayroomKiss() player.TeLog("playroom_interact", map[string]interface{}{ "interact_id": int(req.Id), @@ -3862,7 +3862,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { "item_list": Items, }) PlayroomMod.ResetGame() - PlayroomBackData(player) + player.PlayroomBackData() player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_game") player.PushClientRes(&msg.ResPlayroomGame{ Code: msg.RES_CODE_SUCCESS, @@ -3924,7 +3924,7 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE_1, "") PlayroomMod.ResetGame() player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_select_reward") - PlayroomBackData(player) + player.PlayroomBackData() player.PlayMod.save() player.PushClientRes(&msg.ResPlayroomSelectReward{ Code: msg.RES_CODE_SUCCESS, @@ -3975,7 +3975,7 @@ func ReqPlayroomWork(player *Player, buf []byte) error { }) player.PlayMod.save() player.PushClientRes(PlayroomMod.NotifyWork()) - // PlayroomBackData(player) + // player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomWork{ Code: msg.RES_CODE_SUCCESS, }) @@ -4014,7 +4014,7 @@ func ReqPlayroomDraw(player *Player, buf []byte) error { return err } player.PlayMod.save() - // PlayroomBackData(player) + // player.PlayroomBackData() player.PushClientRes(PlayroomMod.NotifyMood()) player.TeLog("playroom_draw", map[string]interface{}{ "draw_id": Id, @@ -4057,7 +4057,7 @@ func ReqPlayroomChip(player *Player, buf []byte) error { G_GameLogicPtr.SetUserData(int(player.M_DwUin), VAR_OP_CHIP_SET, len(PlayroomMod.ChipList)) player.PlayMod.save() - PlayroomBackData(player) + player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomChip{ Code: msg.RES_CODE_SUCCESS, }) @@ -4086,7 +4086,7 @@ func ReqPlayroomFlip(player *Player, buf []byte) error { "Id": req.Id, }) player.PlayMod.save() - PlayroomBackData(player) + player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomFlip{ Code: msg.RES_CODE_SUCCESS, Id: req.Id, @@ -4145,7 +4145,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { }) player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_flip_reward") player.PlayMod.save() - PlayroomBackData(player) + player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomFlipReward{ Code: msg.RES_CODE_SUCCESS, }) @@ -4264,7 +4264,7 @@ func ReqPlayroomUnlock(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, Id: int32(req.Id), }) - PlayroomBackData(player) + player.PlayroomBackData() return nil } @@ -4301,7 +4301,7 @@ func ReqPlayroomTask(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, Id: int32(req.Id), }) - PlayroomBackData(player) + player.PlayroomBackData() return nil } @@ -4480,7 +4480,7 @@ func ReqPlayroomShop(player *Player, buf []byte) error { player.PetItemGetLog(AddItems, LoseItem, "Shop") player.PlayMod.save() player.PushClientRes(PlayroomMod.NotifyMood()) - PlayroomBackData(player) + player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomShop{ Code: msg.RES_CODE_SUCCESS, }) @@ -4698,7 +4698,7 @@ func ReqSetEmoji(player *Player, buf []byte) error { player.PushClientRes(&msg.ResSetEmoji{ Code: msg.RES_CODE_SUCCESS, }) - BackUserInfo(player) + player.BackUserInfo() return nil } @@ -4797,7 +4797,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error { player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{Parts}}) player.PlayMod.save() //player.PetDecoSetLog(Diff) - PlayroomBackData(player) + player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomDressSet{ Code: msg.RES_CODE_SUCCESS, }) @@ -4820,7 +4820,7 @@ func ReqPlayroomPetAirSet(player *Player, buf []byte) error { return error } player.PlayMod.save() - PlayroomBackData(player) + player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomPetAirSet{ Code: msg.RES_CODE_SUCCESS, }) @@ -4983,12 +4983,12 @@ func ReqAddNpc(player *Player, buf []byte) error { InviteMod.AddInvite(int(req.NpcId)) } player.PlayMod.save() - FriendListBackData(player) + player.FriendListBackData() PlayroomMod := player.PlayMod.getPlayroomMod() BaseMod := player.PlayMod.getBaseMod() PlayroomMod.AddRoomPointInvite(BaseMod.GetLevel()) PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - PlayroomBackData(player) + player.PlayroomBackData() player.TeLog("add_npc", map[string]interface{}{ "NpcId": int(req.NpcId), }) @@ -5669,7 +5669,7 @@ func ReqCatnipRefuse(player *Player, buf []byte) error { } func ReqActPass(player *Player, buf []byte) error { - ActPassBackData(player) + player.ActPassBackData() return nil } @@ -5778,7 +5778,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { }) return err } - FriendLogBackData(player) + player.FriendLogBackData() player.PushClientRes(&msg.ResFriendReplyHandle{ Code: msg.RES_CODE_SUCCESS, LogId: req.LogId, diff --git a/src/server/game/Trigger.go b/src/server/game/Trigger.go index 3e587327..4e9b475f 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/Trigger.go @@ -47,7 +47,7 @@ func (player *Player) MailTrigger(Tr *quest.Trigger) bool { } tr := false for _, v := range t { - if checkTriggerCondition(player, v.Trigger) { + if player.checkTriggerCondition(v.Trigger) { Title := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, v.Title) Content := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, v.Content) TitleEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Title) @@ -76,7 +76,7 @@ func (player *Player) MailTrigger(Tr *quest.Trigger) bool { return tr } -func checkTriggerCondition(player *Player, Trigger []string) bool { +func (player *Player) checkTriggerCondition(Trigger []string) bool { if len(Trigger) < 4 { return false } @@ -93,11 +93,11 @@ func checkTriggerCondition(player *Player, Trigger []string) bool { } } -func TriggerShippingOrderOrigin(player *Player, req *msg.ReqShippingOrder) { +func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) { OrderSn := req.OrderSn Status := int(req.Status) if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付 - CancelOrder(player, OrderSn) + player.CancelOrder(OrderSn) player.PushClientRes(&msg.ResShippingOrder{ Code: msg.RES_CODE_SUCCESS, Msg: "cancel success", @@ -132,9 +132,9 @@ func TriggerShippingOrderOrigin(player *Player, req *msg.ReqShippingOrder) { OrderExtraData.ChargeId = OrderData.ProductId } if OrderExtraData.Type == 0 { - Charge(player, int(OrderData.ProductId)) + player.Charge(int(OrderData.ProductId)) } else { - SendCharge(player, OrderExtraData) + player.SendCharge(OrderExtraData) } OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP OrderData.ProductName = req.ProduceId @@ -159,11 +159,11 @@ func TriggerShippingOrderOrigin(player *Player, req *msg.ReqShippingOrder) { player.SendClientRes() } -func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { +func (player *Player) TriggerShippingOrder(req *msg.ReqShippingOrder) { OrderSn := req.OrderSn Status := int(req.Status) if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付 - CancelOrder(player, OrderSn) + player.CancelOrder(OrderSn) player.PushClientRes(&msg.ResShippingOrder{ Code: msg.RES_CODE_SUCCESS, Msg: "cancel success", @@ -178,7 +178,7 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { if n > 14 { break } - OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token) + OrderData, err = player.GoogleVerify(OrderSn, req.ProduceId, req.Token) if err != nil { log.Debug("GoogleVerify parmas OrderSn:%s; ProduceId:%s; Token:%s", OrderSn, req.ProduceId, req.Token) log.Debug("GoogleVerify err:%v", err) @@ -225,9 +225,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { OrderExtraData.ChargeId = OrderData.ProductId } if OrderExtraData.Type == 0 { - Charge(player, int(OrderData.ProductId)) + player.Charge(int(OrderData.ProductId)) } else { - SendCharge(player, OrderExtraData) + player.SendCharge(OrderExtraData) } OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP OrderData.ProductName = req.ProduceId @@ -249,7 +249,7 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { player.SendClientRes() } -func TriggerComfortOrder(p *Player) { +func (p *Player) TriggerComfortOrder() { BaseMod := p.PlayMod.getBaseMod() Now := GoUtil.Now() Lv := BaseMod.GetLevel() @@ -265,8 +265,8 @@ func TriggerComfortOrder(p *Player) { OrderMod.CreateNormalOrder(BaseMod.GetLevel(), EmitList, EnergyMul, order.COMFORT_TYPE) } -func TriggerSeed(player *Player) { - ChampshipMod := player.PlayMod.getChampshipMod() +func (p *Player) TriggerSeed() { + ChampshipMod := p.PlayMod.getChampshipMod() Items, Score := champshipCfg.GetRewardItems(ChampshipMod.Reward + 1) if Score < 50 { return @@ -278,7 +278,7 @@ func TriggerSeed(player *Player) { break } } - BaseMod := player.PlayMod.getBaseMod() + BaseMod := p.PlayMod.getBaseMod() if !b { BaseMod.SetSeed(false) } else { @@ -286,8 +286,8 @@ func TriggerSeed(player *Player) { } } -func TriggerSeedSource(player *Player) { - BaseMod := player.PlayMod.getBaseMod() +func (p *Player) TriggerSeedSource() { + BaseMod := p.PlayMod.getBaseMod() if !BaseMod.GetSeed() { return } @@ -295,7 +295,7 @@ func TriggerSeedSource(player *Player) { Energy := BaseMod.GetEnergy() Total += Energy - ChessMod := player.PlayMod.getChessMod() + ChessMod := p.PlayMod.getChessMod() ChessList := ChessMod.GetUnlockChessList() ChessBuff := ChessMod.GetChessBuf() AllChess := append(ChessList, ChessBuff...) @@ -322,15 +322,15 @@ func TriggerSeedSource(player *Player) { BaseMod.SetSource(Total) } -func TriggerSeedOrder(player *Player) *order.Order { - OrderMod := player.PlayMod.getOrderMod() - ChessMod := player.PlayMod.getChessMod() - BaseMod := player.PlayMod.getBaseMod() +func (p *Player) TriggerSeedOrder() *order.Order { + OrderMod := p.PlayMod.getOrderMod() + ChessMod := p.PlayMod.getChessMod() + BaseMod := p.PlayMod.getBaseMod() if !BaseMod.GetSeed() { return nil } OrderMod.CreatOrderPool(BaseMod.Level, ChessMod.GetOrderEmit(), BaseMod.EnergyMul) - ChampshipMod := player.PlayMod.getChampshipMod() + ChampshipMod := p.PlayMod.getChampshipMod() NeedScore := champshipCfg.GetRewardTotalScore(ChampshipMod.Reward + 1) E := BaseMod.GetSource() ChessList := ChessMod.GetUnlockChessList() diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 0c0a144e..16c6e055 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -133,8 +133,8 @@ func UnitOrderSeed(player *Player) error { BaseMod := player.PlayMod.getBaseMod() BaseMod.Seed = true - TriggerSeedSource(player) - o := TriggerSeedOrder(player) + player.TriggerSeedSource() + o := player.TriggerSeedOrder() fmt.Println(o) elapsed := time.Since(start) @@ -273,16 +273,15 @@ func UnitOrder2(p *Player, Lv, EnergyMul int) float64 { func UnitChess1(p *Player) error { ChessMod := p.PlayMod.getChessMod() p.PushClientRes(ChessMod.BackData()) - EmitRetireTrigger1(p) + p.EmitRetireTrigger1() DailyTaskMod := p.PlayMod.getDailyTaskMod() p.PushClientRes(DailyTaskMod.BackData()) return nil } func UnitPlayroom(p *Player) error { - //PlayroomMod := p.PlayMod.getPlayroomMod() - //PlayroomMod.UnLock(15) - PlayroomBackData(p) + + p.PlayroomBackData() return nil } diff --git a/src/server/game/admin.go b/src/server/game/admin.go index 59c8befc..ba4a62e1 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -134,7 +134,7 @@ func ReqAdminShipping(args []interface{}) error { } Player := G_GameLogicPtr.GetPlayer(int64(OrderInfo.Uid)) if Player != nil { - go TriggerShippingOrderOrigin(Player, &msg.ReqShippingOrder{ + go Player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ OrderSn: req.OrderSn, }) res["Msg"] = "player online,triggered sync" diff --git a/src/server/go.mod b/src/server/go.mod index b5f48239..5dd700d0 100644 --- a/src/server/go.mod +++ b/src/server/go.mod @@ -11,7 +11,6 @@ require ( github.com/alibabacloud-go/tea-utils/v2 v2.0.7 github.com/aliyun/credentials-go v1.4.6 github.com/go-sql-driver/mysql v1.8.1 - github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.3 github.com/jmoiron/sqlx v1.4.0 github.com/redis/go-redis/v9 v9.6.1 @@ -61,9 +60,9 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/google/uuid v1.6.0 // indirect + github.com/tuyou/galog v0.0.0 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - github.com/tuyou/galog v0.0.0 ) replace github.com/tuyou/galog => ./galog diff --git a/src/server/go.sum b/src/server/go.sum index 8db7fcaf..f3a9147f 100644 --- a/src/server/go.sum +++ b/src/server/go.sum @@ -124,8 +124,6 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= -github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o=