宠物怪盗优化
This commit is contained in:
parent
c65ba4d019
commit
4f24b30ba8
@ -6,6 +6,7 @@ import (
|
|||||||
"server/gamedata"
|
"server/gamedata"
|
||||||
"server/pkg/github.com/name5566/leaf/log"
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -330,6 +331,22 @@ func GetHighRollerNeedEnergy() int {
|
|||||||
return gamedata.GetIntValue(data, "Value")
|
return gamedata.GetIntValue(data, "Value")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetThiefProb() int {
|
||||||
|
data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "Thief_Prob")
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("GetThiefProb err:%v", err)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
value := gamedata.GetStringValue(data, "Value")
|
||||||
|
a1 := strings.Split(value, "|")
|
||||||
|
prob := make(map[int]int)
|
||||||
|
for _, v := range a1 {
|
||||||
|
a2 := strings.Split(v, ":")
|
||||||
|
prob[GoUtil.Int(a2[0])] = GoUtil.Int(a2[1])
|
||||||
|
}
|
||||||
|
return GoUtil.RandMap(prob)
|
||||||
|
}
|
||||||
|
|
||||||
// 招财猫
|
// 招财猫
|
||||||
|
|
||||||
func GetMoneyCat(Id int) (float64, int) {
|
func GetMoneyCat(Id int) (float64, int) {
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import (
|
|||||||
cardCfg "server/conf/card"
|
cardCfg "server/conf/card"
|
||||||
chargeCfg "server/conf/charge"
|
chargeCfg "server/conf/charge"
|
||||||
decorateCfg "server/conf/decorate"
|
decorateCfg "server/conf/decorate"
|
||||||
|
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||||
mailCfg "server/conf/mail"
|
mailCfg "server/conf/mail"
|
||||||
mergeDataCfg "server/conf/mergeData"
|
mergeDataCfg "server/conf/mergeData"
|
||||||
playroomCfg "server/conf/playroom"
|
playroomCfg "server/conf/playroom"
|
||||||
@ -1078,45 +1079,6 @@ func (player *Player) GetPetOrderReward(Star int, Items []*item.Item) []*item.It
|
|||||||
return player.GetPetOrderReward(Star, Items)
|
return player.GetPetOrderReward(Star, Items)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Player) GetPetThiefReward(Target int) []*item.Item {
|
|
||||||
PlayerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(Target)
|
|
||||||
if PlayerSimpleData == nil {
|
|
||||||
log.Error("GetPetThiefReward Target %d not exist", Target)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
CardMod := p.PlayMod.getCardMod()
|
|
||||||
CardList := ExcludeCardStar(CardMod.GetCardList())
|
|
||||||
TargetCardList := ExcludeCardStar(PlayerSimpleData.CardInfo)
|
|
||||||
if len(TargetCardList) == 0 {
|
|
||||||
return []*item.Item{
|
|
||||||
{Id: item.ITEM_STAR_ID, Num: 50},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if GoUtil.IsContainSlice(CardList, TargetCardList) {
|
|
||||||
CardId := GoUtil.RandSliceNum(TargetCardList, 1)[0]
|
|
||||||
ItemId := cardCfg.GetItemIdByCardId(CardId)
|
|
||||||
return []*item.Item{
|
|
||||||
{Id: ItemId, Num: 1},
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
CardList2 := GoUtil.SubSlices(TargetCardList, CardList)
|
|
||||||
if len(CardList2) == 0 {
|
|
||||||
return []*item.Item{
|
|
||||||
{Id: item.ITEM_STAR_ID, Num: 50},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CardId := GoUtil.RandSliceNum(CardList2, 1)[0]
|
|
||||||
ItemId := cardCfg.GetItemIdByCardId(CardId)
|
|
||||||
if ItemId == 0 {
|
|
||||||
log.Error("GetPetThiefReward ItemId %d not exist", ItemId)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return []*item.Item{
|
|
||||||
{Id: ItemId, Num: 1},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func ExcludeCardStar(CardList []int) []int {
|
func ExcludeCardStar(CardList []int) []int {
|
||||||
StarList := make([]int, 0)
|
StarList := make([]int, 0)
|
||||||
for _, v := range CardList {
|
for _, v := range CardList {
|
||||||
@ -1146,3 +1108,42 @@ func (p *Player) GetPlayroomGameReward(Type, SelectId int) []*item.Item {
|
|||||||
}
|
}
|
||||||
return Items
|
return Items
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Player) GetPetThiefReward(Target int) error {
|
||||||
|
PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Target)
|
||||||
|
if PlayerData == nil {
|
||||||
|
return fmt.Errorf("target %d not exist", Target)
|
||||||
|
}
|
||||||
|
CardStar := limitedTimeEventCfg.GetThiefProb()
|
||||||
|
starMap := make(map[int][]int, 0)
|
||||||
|
cardList := []int{}
|
||||||
|
for _, v := range PlayerData.CardInfo {
|
||||||
|
Star := cardCfg.GetStarById(v)
|
||||||
|
starMap[Star] = append(starMap[Star], v)
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
if l, ok := starMap[CardStar]; ok {
|
||||||
|
cardList = l
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if CardStar <= 1 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
CardStar--
|
||||||
|
}
|
||||||
|
ItemId := 0
|
||||||
|
if len(cardList) == 0 {
|
||||||
|
List := cardCfg.GetCardListByStar(0, 1, 0)
|
||||||
|
CardId := GoUtil.RandSlice(List)
|
||||||
|
ItemId = cardCfg.GetItemIdByCardId(CardId)
|
||||||
|
if ItemId == 0 {
|
||||||
|
log.Error("LimitEventPetTheif ItemId %d not exist", ItemId)
|
||||||
|
return fmt.Errorf("ItemId %d not exist", ItemId)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CardId := GoUtil.RandSlice(cardList)
|
||||||
|
ItemId = cardCfg.GetItemIdByCardId(CardId)
|
||||||
|
}
|
||||||
|
p.HandleItem([]*item.Item{{Id: ItemId, Num: 1}}, proto.ITEM_POP_LABEL_PetTheif.String())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -3445,9 +3445,12 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error {
|
|||||||
Emoji: int(req.EmojiId),
|
Emoji: int(req.EmojiId),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) {
|
||||||
|
player.GetPetThiefReward(Target)
|
||||||
|
}
|
||||||
G_GameLogicPtr.SetUserData(Target, VAR_OP_CHIP, 1)
|
G_GameLogicPtr.SetUserData(Target, VAR_OP_CHIP, 1)
|
||||||
PlayroomMod.ResetGame()
|
PlayroomMod.ResetGame()
|
||||||
player.PlayMod.save()
|
|
||||||
player.TeLog("finish_mini_game", map[string]interface{}{
|
player.TeLog("finish_mini_game", map[string]interface{}{
|
||||||
"mini_game_type": PlayroomMod.GetGameId(),
|
"mini_game_type": PlayroomMod.GetGameId(),
|
||||||
"is_chip": true,
|
"is_chip": true,
|
||||||
@ -3455,6 +3458,7 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error {
|
|||||||
})
|
})
|
||||||
player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_select_reward")
|
player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_select_reward")
|
||||||
PlayroomBackData(player)
|
PlayroomBackData(player)
|
||||||
|
player.PlayMod.save()
|
||||||
player.PushClientRes(&msg.ResPlayroomSelectReward{
|
player.PushClientRes(&msg.ResPlayroomSelectReward{
|
||||||
Code: msg.RES_CODE_SUCCESS,
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
})
|
})
|
||||||
@ -3630,8 +3634,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
|
|||||||
Items1 := Items
|
Items1 := Items
|
||||||
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) {
|
if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) {
|
||||||
ThiefItem := player.GetPetThiefReward(Target)
|
player.GetPetThiefReward(Target)
|
||||||
Items1 = item.Merge(Items1, ThiefItem)
|
|
||||||
}
|
}
|
||||||
err = player.HandleItem(Items1, msg.ITEM_POP_LABEL_PlayroomFlip.String())
|
err = player.HandleItem(Items1, msg.ITEM_POP_LABEL_PlayroomFlip.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -479,7 +479,6 @@ func initEventInfo(E *LTEInfo, EventType int) {
|
|||||||
MaxEarings: MaxEarning,
|
MaxEarings: MaxEarning,
|
||||||
}
|
}
|
||||||
case EVENT_TYPE_PAYBACK_DAY:
|
case EVENT_TYPE_PAYBACK_DAY:
|
||||||
|
|
||||||
E.D = &PaybackDay{
|
E.D = &PaybackDay{
|
||||||
count: limitedTimeEventCfg.GetPaybackDay(),
|
count: limitedTimeEventCfg.GetPaybackDay(),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -95,6 +95,7 @@ const (
|
|||||||
ITEM_POP_LABEL_CatnipGrandReward ITEM_POP_LABEL = 68 // 猫草大作战大奖奖励
|
ITEM_POP_LABEL_CatnipGrandReward ITEM_POP_LABEL = 68 // 猫草大作战大奖奖励
|
||||||
ITEM_POP_LABEL_CatnipPlay ITEM_POP_LABEL = 69 // 猫草大作战玩法奖励
|
ITEM_POP_LABEL_CatnipPlay ITEM_POP_LABEL = 69 // 猫草大作战玩法奖励
|
||||||
ITEM_POP_LABEL_FriendTReward ITEM_POP_LABEL = 70 // 好友时间线奖励
|
ITEM_POP_LABEL_FriendTReward ITEM_POP_LABEL = 70 // 好友时间线奖励
|
||||||
|
ITEM_POP_LABEL_PetTheif ITEM_POP_LABEL = 71 // 宠物小偷奖励
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for ITEM_POP_LABEL.
|
// Enum value maps for ITEM_POP_LABEL.
|
||||||
@ -171,6 +172,7 @@ var (
|
|||||||
68: "CatnipGrandReward",
|
68: "CatnipGrandReward",
|
||||||
69: "CatnipPlay",
|
69: "CatnipPlay",
|
||||||
70: "FriendTReward",
|
70: "FriendTReward",
|
||||||
|
71: "PetTheif",
|
||||||
}
|
}
|
||||||
ITEM_POP_LABEL_value = map[string]int32{
|
ITEM_POP_LABEL_value = map[string]int32{
|
||||||
"Playroom": 0,
|
"Playroom": 0,
|
||||||
@ -244,6 +246,7 @@ var (
|
|||||||
"CatnipGrandReward": 68,
|
"CatnipGrandReward": 68,
|
||||||
"CatnipPlay": 69,
|
"CatnipPlay": 69,
|
||||||
"FriendTReward": 70,
|
"FriendTReward": 70,
|
||||||
|
"PetTheif": 71,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27061,7 +27064,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
|||||||
"\vReqAdminBan\x12\x10\n" +
|
"\vReqAdminBan\x12\x10\n" +
|
||||||
"\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" +
|
"\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" +
|
||||||
"\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x16\n" +
|
"\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x16\n" +
|
||||||
"\x06Reason\x18\x03 \x01(\tR\x06Reason*\xc8\n" +
|
"\x06Reason\x18\x03 \x01(\tR\x06Reason*\xd6\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x0eITEM_POP_LABEL\x12\f\n" +
|
"\x0eITEM_POP_LABEL\x12\f\n" +
|
||||||
"\bPlayroom\x10\x00\x12\r\n" +
|
"\bPlayroom\x10\x00\x12\r\n" +
|
||||||
@ -27142,7 +27145,8 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
|||||||
"\x11CatnipGrandReward\x10D\x12\x0e\n" +
|
"\x11CatnipGrandReward\x10D\x12\x0e\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"CatnipPlay\x10E\x12\x11\n" +
|
"CatnipPlay\x10E\x12\x11\n" +
|
||||||
"\rFriendTReward\x10F*B\n" +
|
"\rFriendTReward\x10F\x12\f\n" +
|
||||||
|
"\bPetTheif\x10G*B\n" +
|
||||||
"\vHANDLE_TYPE\x12\a\n" +
|
"\vHANDLE_TYPE\x12\a\n" +
|
||||||
"\x03ADD\x10\x00\x12\v\n" +
|
"\x03ADD\x10\x00\x12\v\n" +
|
||||||
"\aCOMPOSE\x10\x01\x12\a\n" +
|
"\aCOMPOSE\x10\x01\x12\a\n" +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user