diff --git a/data/DB_GameFree.dat b/data/DB_GameFree.dat index 4099424..95796bd 100644 Binary files a/data/DB_GameFree.dat and b/data/DB_GameFree.dat differ diff --git a/data/DB_GameFree.json b/data/DB_GameFree.json index 19bd0cb..c7d92db 100644 --- a/data/DB_GameFree.json +++ b/data/DB_GameFree.json @@ -4319,110 +4319,6 @@ "PlayerWaterRate": 100, "BetWaterRate": 100 }, - { - "Id": 5220006, - "Name": "ChessCambodianRobot", - "Title": "特级大师", - "GameId": 522, - "GameRule": 52200, - "GameType": 2, - "SceneType": 6, - "Desc": "0", - "ShowType": 3, - "ShowId": 44001, - "Turn": 47000, - "BetDec": "0", - "Bot": 1, - "Ai": [ - 6 - ], - "OtherIntParams": [ - 7465, - 15640 - ], - "ChessScoreParams": [ - 7465, - 15640 - ], - "Jackpot": [ - 0 - ], - "RobotNumRng": [ - 1, - 1 - ], - "RobotTakeCoin": [ - 80000, - 500000 - ], - "RobotLimitCoin": [ - 1000000, - 2000000 - ], - "SameIpLimit": 1, - "GameDif": "522", - "GameClass": 1, - "PlatformName": "越南棋牌", - "MaxBetCoin": [ - 0 - ], - "CreateRoomNum": 1, - "MatchTrueMan": -1, - "PlayerWaterRate": 100, - "BetWaterRate": 100 - }, - { - "Id": 5220007, - "Name": "ChessCambodianRobot", - "Title": "棋王", - "GameId": 522, - "GameRule": 52200, - "GameType": 2, - "SceneType": 7, - "Desc": "0", - "ShowType": 3, - "ShowId": 44001, - "Turn": 47000, - "BetDec": "0", - "Bot": 1, - "Ai": [ - 7 - ], - "OtherIntParams": [ - 15640, - 35640 - ], - "ChessScoreParams": [ - 15640, - 35640 - ], - "Jackpot": [ - 0 - ], - "RobotNumRng": [ - 1, - 1 - ], - "RobotTakeCoin": [ - 80000, - 500000 - ], - "RobotLimitCoin": [ - 1000000, - 2000000 - ], - "SameIpLimit": 1, - "GameDif": "522", - "GameClass": 1, - "PlatformName": "越南棋牌", - "MaxBetCoin": [ - 0 - ], - "CreateRoomNum": 1, - "MatchTrueMan": -1, - "PlayerWaterRate": 100, - "BetWaterRate": 100 - }, { "Id": 2110001, "Name": "十三张四人", diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index c47bf25..38855be 100644 --- a/data/DB_PropExchange.dat +++ b/data/DB_PropExchange.dat @@ -1,5 +1,5 @@ -6ֆ׆ӆԆՆ"= -.؆نچۆ"= -WӆֆԆՆ׆؆نچۆ"  -]ԆՆن܆چۆӆֆ׆؆" \ No newline at end of file +6Նֆ׆ӆԆ"= +.نچۆ؆"= +W؆نԆՆ׆ۆӆֆچ"  +]׆؆نچ܆ӆԆՆֆۆ" \ No newline at end of file diff --git a/data/DB_Task.dat b/data/DB_Task.dat index bd1eeed..5b677b1 100644 Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ diff --git a/public b/public index ae18dc9..b069a50 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit ae18dc99a70e1010bd60bf990e0b3a5505cb37db +Subproject commit b069a50a51c0cdcdc46071062cfb711bc1398cb3 diff --git a/worldsrv/action_bag.go b/worldsrv/action_bag.go index e039d59..916df06 100644 --- a/worldsrv/action_bag.go +++ b/worldsrv/action_bag.go @@ -137,7 +137,9 @@ func (this *CSUpBagInfoHandler) Process(s *netlib.Session, packetid int, data in case ItemCanUse: logger.Logger.Trace("道具使用", msg.ItemId) - f := func() { + items := map[int32]*Item{} + var useFunc func() + saleFunc := func() { // 使用道具,减少道具 BagMgrSingleton.SalePlayerItem(p, item, int64(msg.ItemNum)) BagMgrSingleton.RecordItemLog(p.Platform, p.SnId, ItemConsume, item.ItemId, item.Name, int64(msg.ItemNum), "道具使用") @@ -145,11 +147,35 @@ func (this *CSUpBagInfoHandler) Process(s *netlib.Session, packetid int, data in pack.NowItemId = item.ItemId pack.NowItemNum = item.ItemNum } + gainFunc := func() { + for i := 0; i < int(msg.ItemNum); i++ { + useFunc() + } + if len(items) > 0 { + var itemArr []*Item + for _, v := range items { + itemArr = append(itemArr, v) + } + BagMgrSingleton.AddJybBagInfo(p, itemArr, 0, common.GainWay_ItemUse, "player", "道具使用") + for _, v := range itemArr { + data := srvdata.PBDB_GameItemMgr.GetData(v.ItemId) + if data != nil { + // 背包变更记录 + BagMgrSingleton.RecordItemLog(p.Platform, p.SnId, ItemObtain, v.ItemId, data.Name, v.ItemNum, "碎片礼盒获得") + } + pack.Infos = append(pack.Infos, &bag.ItemInfo{ + ItemId: v.ItemId, + ItemNum: v.ItemNum, + ObtainTime: v.ObtainTime, + }) + } + } + } switch item.ItemId { case common.ItemIDGiftBox: - f() - useFunc := func() { + saleFunc() + useFunc = func() { sum := 0 for _, v := range srvdata.PBDB_GiftBoxMgr.Datas.GetArr() { sum += int(v.GetRate()) @@ -160,29 +186,18 @@ func (this *CSUpBagInfoHandler) Process(s *netlib.Session, packetid int, data in for _, v := range srvdata.PBDB_GiftBoxMgr.Datas.GetArr() { n += int(v.GetRate()) if i < n { - var items []*Item for k, vv := range v.ItemID { if vv > 0 { - items = append(items, &Item{ - ItemId: int32(k), - ItemNum: vv, - ObtainTime: ts, - }) - } - } - if len(items) > 0 { - BagMgrSingleton.AddJybBagInfo(p, items, 0, common.GainWay_ItemUse, "player", "道具使用") - for _, v := range items { - data := srvdata.PBDB_GameItemMgr.GetData(v.ItemId) - if data != nil { - // 背包变更记录 - BagMgrSingleton.RecordItemLog(p.Platform, p.SnId, ItemObtain, v.ItemId, data.Name, v.ItemNum, "碎片礼盒获得") + item, ok := items[int32(k)] + if !ok { + items[int32(k)] = &Item{ + ItemId: int32(k), + ItemNum: vv, + ObtainTime: ts, + } + } else { + item.ItemNum += vv } - pack.Infos = append(pack.Infos, &bag.ItemInfo{ - ItemId: v.ItemId, - ItemNum: v.ItemNum, - ObtainTime: v.ObtainTime, - }) } } break @@ -190,13 +205,11 @@ func (this *CSUpBagInfoHandler) Process(s *netlib.Session, packetid int, data in } } } - for i := 0; i < int(msg.ItemNum); i++ { - useFunc() - } + gainFunc() case common.ItemIDCollectBox: - f() - useFunc := func() { + saleFunc() + useFunc = func() { sum := 0 for _, v := range srvdata.PBDB_CollectBoxMgr.Datas.GetArr() { sum += int(v.GetRate()) @@ -207,29 +220,18 @@ func (this *CSUpBagInfoHandler) Process(s *netlib.Session, packetid int, data in for _, v := range srvdata.PBDB_CollectBoxMgr.Datas.GetArr() { n += int(v.GetRate()) if i < n { - var items []*Item for k, vv := range v.ItemID { if vv > 0 { - items = append(items, &Item{ - ItemId: int32(k), - ItemNum: vv, - ObtainTime: ts, - }) - } - } - if len(items) > 0 { - BagMgrSingleton.AddJybBagInfo(p, items, 0, common.GainWay_ItemUse, "player", "道具使用") - for _, v := range items { - data := srvdata.PBDB_GameItemMgr.GetData(v.ItemId) - if data != nil { - // 背包变更记录 - BagMgrSingleton.RecordItemLog(p.Platform, p.SnId, ItemObtain, v.ItemId, data.Name, v.ItemNum, "集卡礼盒获得") + item, ok := items[int32(k)] + if !ok { + items[int32(k)] = &Item{ + ItemId: int32(k), + ItemNum: vv, + ObtainTime: ts, + } + } else { + item.ItemNum += vv } - pack.Infos = append(pack.Infos, &bag.ItemInfo{ - ItemId: v.ItemId, - ItemNum: v.ItemNum, - ObtainTime: v.ObtainTime, - }) } } break @@ -237,9 +239,7 @@ func (this *CSUpBagInfoHandler) Process(s *netlib.Session, packetid int, data in } } } - for i := 0; i < int(msg.ItemNum); i++ { - useFunc() - } + gainFunc() default: logger.Logger.Warnf("道具使用未定义", msg.ItemId) diff --git a/xlsx/DB_GameFree.xlsx b/xlsx/DB_GameFree.xlsx index 3afc904..5ff7cbd 100644 Binary files a/xlsx/DB_GameFree.xlsx and b/xlsx/DB_GameFree.xlsx differ diff --git a/xlsx/DB_GameRule.xlsx b/xlsx/DB_GameRule.xlsx index 31ead19..dc7df92 100644 Binary files a/xlsx/DB_GameRule.xlsx and b/xlsx/DB_GameRule.xlsx differ