pet_home_server/src/server/game/Gm.go
2024-12-25 15:23:53 +08:00

209 lines
6.9 KiB
Go

package game
import (
"fmt"
"server/GoUtil"
cardCfg "server/conf/card"
playroomCfg "server/conf/playroom"
"server/db"
"server/game/mod/card"
"server/game/mod/item"
MsgMod "server/game/mod/msg"
"server/game/mod/playroom"
"server/msg"
"server/pkg/github.com/name5566/leaf/log"
"strconv"
"strings"
"google.golang.org/protobuf/proto"
)
func ReqGmCommand(args []interface{}) error {
_, player, buf := ParseArgs(args)
detail := &msg.ReqGmCommand{}
proto.Unmarshal(buf, detail)
arg := strings.Split(detail.Command, " ")
log.Debug("Player %d ReqGmCommand:%v", player.M_DwUin, arg)
switch arg[0] {
case "additem":
id, _ := strconv.Atoi(arg[1])
num, _ := strconv.Atoi(arg[2])
player.HandleItem([]*item.Item{item.NewItem(id, num)}, msg.ITEM_POP_LABEL_GM.String())
case "subitem":
id, _ := strconv.Atoi(arg[1])
num, _ := strconv.Atoi(arg[2])
player.HandleItem([]*item.Item{item.NewItem(id, -num)}, msg.ITEM_POP_LABEL_GM.String())
case "reset_order":
player.PlayMod.mod_list.Order.Step = 0
player.PlayMod.mod_list.Order.InitData()
player.PushClientRes(player.PlayMod.mod_list.Order.BackData())
case "add_card_star":
num, _ := strconv.Atoi(arg[1])
player.PlayMod.mod_list.Card.ExchangeStar += num
player.PushClientRes(player.PlayMod.mod_list.Card.BackData())
case "add_card":
Id, _ := strconv.Atoi(arg[1])
player.PlayMod.mod_list.Card.AddCard(Id)
player.PushClientRes(player.PlayMod.mod_list.Card.NotifyCard())
case "reset_card_reward":
player.PlayMod.mod_list.Card.CollectReward = make(map[int]struct{})
player.PlayMod.mod_list.Card.AllCollect = 0
player.PushClientRes(player.PlayMod.mod_list.Card.BackData())
case "addexp":
num, _ := strconv.Atoi(arg[1])
player.GetPlayerBaseMod().AddExp(player, num)
player.PushClientRes(&player.GetPlayerBaseMod().Data)
case "setlv":
num, _ := strconv.Atoi(arg[1])
player.GetPlayerBaseMod().Data.Level = int32(num)
player.GetPlayerBaseMod().Data.Exp = 0
player.PushClientRes(&player.GetPlayerBaseMod().Data)
case "zeroUpdate":
VarMod := player.PlayMod.getVarMod()
VarMod.DailyResetTime = 0
player.ZeroUpdate(nil)
G_GameLogicPtr.ZeroFlush()
case "setSevenLoginActive":
num, _ := strconv.Atoi(arg[1])
player.PlayMod.getSevenLoginMod().Active = num
case "pay":
ChargeId, _ := strconv.Atoi(arg[1])
Charge(player, ChargeId)
case "resetFace":
FaceMod := player.PlayMod.getFaceMod()
FaceMod.List = nil
FaceMod.InitData()
AvatarMod := player.PlayMod.getAvatarMod()
AvatarMod.List = nil
AvatarMod.InitData()
case "createOrder":
Lv := player.GetPlayerBaseMod().GetLevel()
EmitList := player.PlayMod.getChessMod().GetEmitList()
EnergyMul := player.PlayMod.getBaseMod().GetEnergyMul()
player.PlayMod.getOrderMod().CreateOrder(Lv, EmitList, EnergyMul)
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
case "resetCardReq":
CardMod := player.PlayMod.getCardMod()
CardMod.ReqFriend = make(map[int]*card.CardInfo)
CardMod.ExCard = make(map[int]*card.CardInfo)
CardMod.ExTimes = 10
CardMod.ReqTimes = 10
CardMod.AddCard(1)
CardMod.AddCard(2)
CardMod.AddCard(3)
FriendMod := player.PlayMod.getFriendMod()
FriendMod.Card = make(map[string]*card.CardInfo)
player.PushClientRes(CardMod.NotifyCard())
case "subCard":
ChargeId, _ := strconv.Atoi(arg[1])
CardMod := player.PlayMod.getCardMod()
CardMod.SubCard(ChargeId)
player.PushClientRes(CardMod.NotifyCard())
case "setProgress":
num, _ := strconv.Atoi(arg[1])
player.PlayMod.getLimitedTimeEventMod().Progress = num
case "setProgressReward":
for i := 1; i < 5; i++ {
player.PlayMod.getLimitedTimeEventMod().AddProgress(6)
}
player.PushClientRes(player.PlayMod.getLimitedTimeEventMod().ProgressBackData())
case "champshipGroup":
G_GameLogicPtr.ChampshipMgrSend(&MsgMod.Msg{
Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_GROUP,
})
case "clearRank":
num, _ := strconv.Atoi(arg[1])
G_GameLogicPtr.RankMgr.ClearRank(num)
case "champshipZero":
G_GameLogicPtr.ChampshipMgrSend(&MsgMod.Msg{
Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_ZERO,
})
case "addMail":
MailMod := player.PlayMod.getMailMod()
Id := MailMod.Send("test", "test", []*item.Item{item.NewItem(100001, 1)})
player.PushClientRes(MailMod.NotifyMail(Id))
case "addMail2":
MailMod := player.PlayMod.getMailMod()
Id := MailMod.Send("test", "test", []*item.Item{})
player.PushClientRes(MailMod.NotifyMail(Id))
case "resetEmitOrder":
OrderMod := player.PlayMod.getOrderMod()
OrderMod.EimtOrder = make(map[string]struct{})
HandbookMod := player.PlayMod.getHandbookMod()
delete(HandbookMod.BookList, 125)
case "miningReload":
MiningMod := player.PlayMod.getMiningMod()
MiningMod.ZeroUpdate(-1)
ActivityInfo := GetActivityInfo(player, ACT_TYPE_MINING)
MiningMod.ZeroUpdate(ActivityInfo.Id)
MiningBackData(player)
case "guessColorReload":
GuessColorMod := player.PlayMod.getGuessColorMod()
GuessColorMod.ZeroUpdate(-1)
ActivityInfo := GetActivityInfo(player, ACT_TYPE_GUESS_COLOR)
GuessColorMod.ZeroUpdate(ActivityInfo.Id)
GuessColorBackData(player)
case "raceReload":
RaceMod := player.PlayMod.getRaceMod()
RaceMod.ZeroUpdate(-1)
ActivityInfo := GetActivityInfo(player, ACT_TYPE_RACE)
RaceMod.ZeroUpdate(ActivityInfo.Id)
case "playroomTrigger":
PlayroomOrderTrigger(player)
case "playroomReset":
PlayroomMod := playroom.PlayroomMod{}
PlayroomMod.InitData()
player.PlayMod.mod_list.Playroom = PlayroomMod
case "playroomCollect":
CollectList := playroomCfg.GetDecorateList()
PlayroomMod := player.PlayMod.getPlayroomMod()
for _, v := range CollectList {
PlayroomMod.AddCollect(v)
}
case "resetRetire":
ChessMod := player.PlayMod.getChessMod()
ChessMod.Retire = make(map[string]int)
ChessMod.RetireChessMap = make(map[string][]int)
case "addChip":
PlayroomMod := player.PlayMod.getPlayroomMod()
PlayroomMod.AddChip()
player.PushClientRes(PlayroomMod.NotifyLose())
case "save":
player.PlayMod.ClearData(player)
case "outline":
a := player.GetAgent()
a.Close()
player.ClearData()
case "addFriend":
FriendMod := player.PlayMod.getFriendMod()
Uid, _ := strconv.Atoi(arg[1])
FriendMod.AddFriend(Uid)
case "addAddCard":
CardMod := player.PlayMod.getCardMod()
CardList := cardCfg.GetAllCardId(CardMod.Round)
for _, v := range CardList {
CardMod.AddCard(v)
}
case "resetRankUser":
O := G_GameLogicPtr.RankMgr.getAllRank(RANK_TYPE_USER)
for _, v := range O {
Uid := strconv.Itoa(v.Uid)
TimeSort := fmt.Sprintf("0.%d", RANK_TIME_SORT-GoUtil.Now())
TimeSortF, _ := strconv.ParseFloat(TimeSort, 64)
db.RedisZAdd(RANK_USER, Uid, v.Score+TimeSortF)
}
case "addFriendStar":
FriendTreasureMod := player.PlayMod.getFriendTreasureMod()
FriendTreasureMod.AddStar(200)
case "setDecorateArea":
S, _ := strconv.Atoi(arg[1])
DecorateMod := player.PlayMod.getDecorateMod()
DecorateMod.AreaId = S
DecorateMod.FinishList = make(map[int]struct{})
DecorateMod.Progress = 0
}
player.PlayMod.save()
return nil
}