Compare commits
2 Commits
c226024401
...
7c00ec5067
Author | SHA1 | Date |
---|---|---|
|
7c00ec5067 | |
|
92bf5fe16e |
|
@ -101,7 +101,8 @@ func (svc *BagSvc) AddBagItem(args *model.BagInfo, ret *bool) error {
|
||||||
for id, v := range args.BagItem {
|
for id, v := range args.BagItem {
|
||||||
if item, exist := bag.BagItem[id]; !exist {
|
if item, exist := bag.BagItem[id]; !exist {
|
||||||
if v.ItemNum <= 0 {
|
if v.ItemNum <= 0 {
|
||||||
continue
|
err = errors.New("item num not enough")
|
||||||
|
break
|
||||||
}
|
}
|
||||||
bag.BagItem[id] = &model.Item{
|
bag.BagItem[id] = &model.Item{
|
||||||
ItemId: v.ItemId,
|
ItemId: v.ItemId,
|
||||||
|
@ -110,7 +111,8 @@ func (svc *BagSvc) AddBagItem(args *model.BagInfo, ret *bool) error {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if v.ItemNum < 0 && -v.ItemNum > item.ItemNum {
|
if v.ItemNum < 0 && -v.ItemNum > item.ItemNum {
|
||||||
v.ItemNum = -item.ItemNum
|
err = errors.New("item num not enough")
|
||||||
|
break
|
||||||
}
|
}
|
||||||
item.ItemNum += v.ItemNum
|
item.ItemNum += v.ItemNum
|
||||||
}
|
}
|
||||||
|
@ -119,10 +121,18 @@ func (svc *BagSvc) AddBagItem(args *model.BagInfo, ret *bool) error {
|
||||||
vCard = v.ItemNum
|
vCard = v.ItemNum
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
*ret = false
|
||||||
|
logger.Logger.Errorf("AddBagItem error: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
_, err = cbag.Upsert(bson.M{"_id": bag.BagId}, bag)
|
_, err = cbag.Upsert(bson.M{"_id": bag.BagId}, bag)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
*ret = false
|
*ret = false
|
||||||
logger.Logger.Info("AddBagItem error ", err)
|
logger.Logger.Info("AddBagItem error ", err)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// v卡返还
|
// v卡返还
|
||||||
|
|
|
@ -73,7 +73,7 @@ func HandleWGBuyRecTimeItem(session *netlib.Session, packetId int, data interfac
|
||||||
// return nil
|
// return nil
|
||||||
//}
|
//}
|
||||||
|
|
||||||
func CreateSceneHandler(session *netlib.Session, packetId int, data interface{}) error {
|
func CreateScene(session *netlib.Session, packetId int, data interface{}) error {
|
||||||
logger.Logger.Tracef("receive CreateScene %v", data)
|
logger.Logger.Tracef("receive CreateScene %v", data)
|
||||||
msg, ok := data.(*server.WGCreateScene)
|
msg, ok := data.(*server.WGCreateScene)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
@ -86,52 +86,53 @@ func CreateSceneHandler(session *netlib.Session, packetId int, data interface{})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DestroyScene(session *netlib.Session, packetId int, data interface{}) error {
|
||||||
|
logger.Logger.Trace("receive WGDestroyScene:", data)
|
||||||
|
msg, ok := data.(*server.WGDestroyScene)
|
||||||
|
if !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if !msg.IsGrace {
|
||||||
|
// 立刻删除,不管游戏是否结束
|
||||||
|
for _, v := range msg.Ids {
|
||||||
|
s := base.SceneMgrSington.GetScene(int(v))
|
||||||
|
if s == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if gameScene, ok := s.ExtraData.(base.GameScene); ok {
|
||||||
|
gameScene.SceneDestroy(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 游戏结束后删除房间
|
||||||
|
for _, v := range msg.Ids {
|
||||||
|
s := base.SceneMgrSington.GetScene(int(v))
|
||||||
|
if s == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if s.IsHundredScene() || s.Gaming {
|
||||||
|
s.SetGraceDestroy()
|
||||||
|
} else {
|
||||||
|
if s.IsMatchScene() {
|
||||||
|
s.SetGraceDestroy()
|
||||||
|
}
|
||||||
|
if gameScene, ok := s.ExtraData.(base.GameScene); ok {
|
||||||
|
gameScene.SceneDestroy(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// 创建房间
|
// 创建房间
|
||||||
netlib.Register(int(server.SSPacketID_PACKET_WG_CREATESCENE), &server.WGCreateScene{}, CreateSceneHandler)
|
netlib.Register(int(server.SSPacketID_PACKET_WG_CREATESCENE), &server.WGCreateScene{}, CreateScene)
|
||||||
|
// 删除房间
|
||||||
//删除场景
|
netlib.Register(int(server.SSPacketID_PACKET_WG_DESTROYSCENE), &server.WGDestroyScene{}, DestroyScene)
|
||||||
// 立刻删除,不管游戏是否结束
|
|
||||||
netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_DESTROYSCENE), netlib.PacketFactoryWrapper(func() interface{} {
|
|
||||||
return &server.WGDestroyScene{}
|
|
||||||
}))
|
|
||||||
netlib.RegisterHandler(int(server.SSPacketID_PACKET_WG_DESTROYSCENE), netlib.HandlerWrapper(func(s *netlib.Session, packetid int, pack interface{}) error {
|
|
||||||
logger.Logger.Trace("receive WGDestroyScene:", pack)
|
|
||||||
msg, ok := pack.(*server.WGDestroyScene)
|
|
||||||
if !ok {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if !msg.IsGrace {
|
|
||||||
// 立刻删除,不管游戏是否结束
|
|
||||||
for _, v := range msg.Ids {
|
|
||||||
s := base.SceneMgrSington.GetScene(int(v))
|
|
||||||
if s != nil {
|
|
||||||
if gameScene, ok := s.ExtraData.(base.GameScene); ok {
|
|
||||||
gameScene.SceneDestroy(true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 游戏结束后删除房间
|
|
||||||
for _, v := range msg.Ids {
|
|
||||||
s := base.SceneMgrSington.GetScene(int(v))
|
|
||||||
if s != nil {
|
|
||||||
if s.IsHundredScene() || s.Gaming {
|
|
||||||
s.SetGraceDestroy(true)
|
|
||||||
} else {
|
|
||||||
if s.IsMatchScene() {
|
|
||||||
s.SetGraceDestroy(true)
|
|
||||||
}
|
|
||||||
if gameScene, ok := s.ExtraData.(base.GameScene); ok {
|
|
||||||
gameScene.SceneDestroy(true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}))
|
|
||||||
|
|
||||||
//玩家进入
|
//玩家进入
|
||||||
netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_PLAYERENTER), netlib.PacketFactoryWrapper(func() interface{} {
|
netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_PLAYERENTER), netlib.PacketFactoryWrapper(func() interface{} {
|
||||||
|
|
|
@ -297,8 +297,8 @@ func (this *Scene) SetScenePolicy(sp ScenePolicy) {
|
||||||
func (this *Scene) GetGraceDestroy() bool {
|
func (this *Scene) GetGraceDestroy() bool {
|
||||||
return this.graceDestroy
|
return this.graceDestroy
|
||||||
}
|
}
|
||||||
func (this *Scene) SetGraceDestroy(graceDestroy bool) {
|
func (this *Scene) SetGraceDestroy() {
|
||||||
this.graceDestroy = graceDestroy
|
this.graceDestroy = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) GetCpControlled() bool {
|
func (this *Scene) GetCpControlled() bool {
|
||||||
|
|
|
@ -3761,15 +3761,21 @@ func init() {
|
||||||
p := PlayerMgrSington.GetPlayerBySnId(msg.GetSnid())
|
p := PlayerMgrSington.GetPlayerBySnId(msg.GetSnid())
|
||||||
if p != nil {
|
if p != nil {
|
||||||
//获取道具Id
|
//获取道具Id
|
||||||
BagMgrSingleton.AddItemsV2(&model.AddItemParam{
|
_, _, ok := BagMgrSingleton.AddItemsV2(&model.AddItemParam{
|
||||||
P: p.PlayerData,
|
P: p.PlayerData,
|
||||||
Change: items,
|
Change: items,
|
||||||
GainWay: msg.GetTypeId(),
|
GainWay: msg.GetTypeId(),
|
||||||
Operator: "system",
|
Operator: "system",
|
||||||
Remark: msg.GetRemark(),
|
Remark: msg.GetRemark(),
|
||||||
})
|
})
|
||||||
|
if !ok {
|
||||||
|
logger.Logger.Errorf("player delete %v err: %v", msg, err)
|
||||||
|
pack.Tag = webapiproto.TagCode_FAILED
|
||||||
|
pack.Msg = "修改道具失败"
|
||||||
|
return common.ResponseTag_Ok, pack
|
||||||
|
}
|
||||||
pack.Tag = webapiproto.TagCode_SUCCESS
|
pack.Tag = webapiproto.TagCode_SUCCESS
|
||||||
pack.Msg = "AddItem success"
|
pack.Msg = "修改道具成功"
|
||||||
return common.ResponseTag_Ok, pack
|
return common.ResponseTag_Ok, pack
|
||||||
} else {
|
} else {
|
||||||
BagMgrSingleton.AddItemsOffline(msg.Platform, msg.Snid, items, msg.GetTypeId(),
|
BagMgrSingleton.AddItemsOffline(msg.Platform, msg.Snid, items, msg.GetTypeId(),
|
||||||
|
|
Loading…
Reference in New Issue