//收摊
//bSendData 是否回发收摊数据- 玩家下线就不发
public void ShutPtich(PlayerObject play, bool bSendData = true)
{
if (play.GetTimerSystem().QueryStatus(GameStruct.RoleStatus.STATUS_PTICH) == null) return;
uint ptich_obj_id = GetPtichObjectTypeID(play.GetCurrentPtichID());
if (ptich_obj_id == 0) return;
for (int i = 0; i < mListPtichInfo[play.GetCurrentPtichID()].mSellItemList.Count; i++)
{
GameStruct.RoleItemInfo item = null;
if (mListPtichInfo[play.GetCurrentPtichID()].mSellItemList[i].item_id >= IDManager.eudemon_start_id)
{
RoleData_Eudemon eudemon = play.GetEudemonSystem().FindEudemon(
mListPtichInfo[play.GetCurrentPtichID()].mSellItemList[i].item_id);
if (eudemon == null) continue;
item = play.GetItemSystem().FindItem(eudemon.itemid);
}
else
{
item = play.GetItemSystem().FindItem(
mListPtichInfo[play.GetCurrentPtichID()].mSellItemList[i].item_id);
}
if (item != null)
{
//放回到包裹
//放回到包裹或幻兽背包
if (item.typeid >= IDManager.eudemon_start_id)
{
item.postion = NetMsg.MsgItemInfo.ITEMPOSITION_EUDEMON_PACK;
}
else
{
item.postion = NetMsg.MsgItemInfo.ITEMPOSITION_BACKPACK;
}
if (bSendData)
{
PacketOut outpack = new PacketOut();
outpack.WriteInt16(28);
outpack.WriteInt16(1009);
outpack.WriteUInt32(item.id);
outpack.WriteUInt32(ptich_obj_id);
outpack.WriteInt32((byte)NetMsg.MsgOperateItem.PTICH_GETBACK_SELLITEM);
outpack.WriteInt32(0);
outpack.WriteInt32(0);
outpack.WriteInt32(0);
play.SendData(outpack.Flush(), true);
}
}
}
mListPtichInfo[play.GetCurrentPtichID()].play = null;
//移除地图对象
play.GetGameMap().RemoveObj(mListPtichInfo[play.GetCurrentPtichID()].PtichObj);
mListPtichInfo[play.GetCurrentPtichID()].PtichObj = null;
mListPtichInfo[play.GetCurrentPtichID()].mSellItemList.Clear();
if (bSendData)
{
PacketOut outpack = new PacketOut();
outpack.WriteInt16(16);
outpack.WriteInt16(2031);
outpack.WriteUInt32(ptich_obj_id);
outpack.WriteUInt32(play.GetTypeId());
outpack.WriteInt32(2);
play.SendData(outpack.Flush(), true);
}
//移除摆摊状态
play.GetTimerSystem().DeleteStatus(GameStruct.RoleStatus.STATUS_PTICH);
}